please post the times from the script I posted.
you do not have any method to force SQL to keep data in memory. It uses a LRU (Least Recently Used) algorithm to keep the data that users are currently using in memory. If you run a query once a day, it will likely be flushed out be the next day.
The only way to guarantee that it will be in memory is to have enough memory to hold all your data, which is getting amazing cheap these days. Seems like overkill, but our credit card system, which cannot tolerate delays of any kind, fits in memory on a VM server. Our 5 TB data warehouse is a different story.