Stored Procedure slow after weekend When I come to work on monday some stored procedures take several minutes to execute and STATISTICS IO shows a lot of PHYSICAL READS and READ AHEADS going on.
However, after running the procedures 10-20 times with different parameters, the execution time drops to less than one second.

I think that for some reason the data buffer expires over the weekend, and it takes a lot of time to reload the buffer on monday.

How do I make sure my application works fast even if it's not used regulary. Is there a way to persist the buffer, or should I rewrite the procedures in a way that doesn't rely on the buffer?
Most likely activity on the server over the weekend has caused your data to be evicted from memory. This is just the way life is in a shared environment with limited resources. It would be good to understand what's happening over the weekend and how your usage affect other users of this service.

You could schedule a job for early on Monday, before anyone is in the office.  It would run your SPs with the various parameter values to warm up the bufferpool with the data you will be using.  This will evict whatever is in memory currently, slowing the process that is using it.