my understanding is that if you rebuild indexes then (as you are amending the indexes) sql server will detect the change and mark the relevant entries in the cache to be dropped - therefore you don't need to flush the cache. 1) is this correct? 2) however, is there another reason to flush the cache? can old unused entries be left permanently in procedurte cache accidentally? will there be times when an empty cache is more efficient?