我在工作中重寫了一個存儲過程,主要是爲了阻止它乾淨地讀取數據並且沒有做出任何重大的結構性更改。然而,針對當前版本運行新版本,我發現新版本在開發數據庫上運行的時間差不多有兩倍,而這些數據庫沒有太多活動!是什麼觸發了SqlServer 2000中的緩存清除工作
繼本網站的建議: http://www.sql-server-performance.com/articles/per/optimizing_sp_recompiles_p1.aspx 我使用Profiler來看看發生了什麼事讓我吃驚有很多的「緩存中刪除」的新版本,但沒有爲當前的版本!
誰能告訴我什麼觸發緩存被丟棄?
我有所有的臨時表定義和索引建立在前面(雖然教科書說INSERT後構建標記通常更好,我已經用這種方法進行了實驗,發現其實際運行速度較慢);而且我還沒有對任何引用的對象進行任何模式更改。
感謝,
你能否給我們多一點想法存儲過程在做什麼,以及它究竟從緩存中刪除了什麼? – 2009-02-27 13:11:09