白皮書使命:三大受眾、雙版本對比
- 用戶:使用/維護/開發 SQL Server 應用,特別是 2000 遷移者
- 開發人員:內核背景知識參考
- 測試/項目經理:編譯重編譯功能驗收依據
全文對比 SQL Server 2000 vs 2005 行為差異,所有語句適用於雙版本。
核心定義:編譯 vs 重新編譯
- 批處理:含 SELECT/INSERT/UPDATE/DELETE、存儲過程調用、T-SQL 控制結構、DDL、權限語句、CLR 結構
- 編譯:批處理 → 查詢計劃集合,存入計劃緩存(Plan Cache,舊稱過程緩存)
- 重新編譯:執行前檢查計劃有效性/最優性,失敗則重新編譯對應語句或整批次
關鍵點:無需預先緩存也可觸發重新編譯(如大文本批次創建臨時表插入第 7 行觸發重編譯,但因體積大不緩存)。
重新編譯的雙重性
- 多數有據:保證正確性、適應數據變化獲取最優計劃
- 過度重編譯:嚴重拖慢執行速度,需主動減少
里程碑創新:語句級重新編譯