Google’s spiders regularly crawl the web to rebuild our index. Crawls are based on many factors such as PageRank, links to a page, and crawling constraints such as the number of parameters in a URL. And I think the reason in my mind is Google is slow in crawling your site might be that your server is slow
Here is a relevant link that i have googled for you and after reading you will get an idea how to make search engine to crawl your site: www(.)searchenginejournal(.)com/10-ways-to-increase-your-site-crawl-rate/7159/ Hope it helps...
Firstly upload the xml file in your web page server & Resolve the canonical issue.you have continued work in SMO.
If small site, the sitemap.xml is not necessary. just keep your site with good content and good structure
Create a youtube video and put your link in it. Get visitors for the youtube video by sharing with your friends in fb, twitter and all other social networks. Create your profile in Google+ link that youtube video in your Google+ profile. Then Submit your site to digg also.
Like someone said above, submit your website's XML sitemap to google. http://blog.larryweaver.com/2006/11/how-to-submit-your-xml-site-map-to.asp
Its very important to get high quality relevant backlinks from niche specific, authoritative sources online. This helps a site to build an authority online and this leads to search engines to crawl and cache the latest pages on the site often. It definitely helps you increase the crawl budget for your site. If its a new site and you want all the pages to be crawled and indexed by search engines, its very important to submit a sitemap.xml using webmaster tools.
It also depends on your site, how active your site is, some sites crawled at every second, think of this forum, spiders are available at any time... So activity in your site would improve crawler rate.