延展性和效能增強功能 (Database Engine)
Database Engine 中的延展性和效能增強功能包括篩選的索引和統計資料、新的資料表和查詢提示,以及新的查詢效能和處理功能。
篩選的索引和統計資料
在 SQL Server 2008 中,您可以使用述詞,針對資料表中的資料列子集建立篩選的索引和統計資料。在舊版 SQL Server 中,系統會針對資料表中的所有資料列建立索引和統計資料。篩選的索引和統計資料特別適合從妥善定義的資料子集中選取的查詢,例如包含大部分是 NULL 值的資料行、具有異質值類別的資料行,以及具有相異值範圍的資料行。
與完整資料表索引相較,設計良好的篩選索引可以提升查詢效能、降低索引維護成本,並降低索引儲存成本。如需詳細資訊,請參閱<篩選索引設計指導方針>。篩選的統計資料可以改善查詢計畫品質,因為它們僅涵蓋篩選索引中的資料列。Database Engine 會自動建立及維護篩選索引的篩選統計資料。您也可以針對非索引資料行建立篩選的統計資料,以便改善不需要篩選索引之資料子集的查詢計畫品質。如需詳細資訊,請參閱<使用統計資料來改善查詢效能>。
資料表和查詢提示
OPTIMIZE FOR 查詢提示選項包含 UNKNOWN 變數值
OPTIMIZE FOR 查詢提示選項已經利用 UNKNOWN 語法強化,它會指定 Database Engine 在查詢最佳化期間使用統計資料來判斷一或多個區域變數的值,而非初始值。您可以針對查詢中的所有區域變數指定此語法,也可以針對一或多個具名區域變數指定此語法。如需詳細資訊,請參閱<查詢提示 (Transact-SQL)>。
查詢提示
資料表提示現在可以指定為查詢提示,以便提供進階查詢效能微調選項。我們建議您只有在計畫指南的內容中,才將資料表提示當做查詢提示使用。如需詳細資訊,請參閱<查詢提示 (Transact-SQL)>和<在計畫指南中使用 INDEX 和 FORCESEEK 查詢提示>。
資料表提示
新增的 FORCESEEK 資料表提示可提供進階查詢效能微調選項。這個提示會指定查詢最佳化工具只使用索引搜尋作業,當做查詢中參考之資料表或檢視表資料的存取路徑。如需詳細資訊,請參閱<使用 FORCESEEK 資料表提示>。
查詢效能和處理
鎖定擴大選項
ALTER TABLE 的全新 LOCK_ESCALATION 選項可讓您停用資料表的鎖定擴大。在資料分割資料表上,您可以設定鎖定擴大至資料分割而非整份資料表。這個選項可以在您使用資料分割資料表時減少鎖定爭用,藉以改善並行作業。如需詳細資訊,請參閱<ALTER TABLE (Transact-SQL)>。
最佳化點陣圖篩選
查詢最佳化工具可以用動態方式將點陣圖篩選放入平行查詢計畫中,以便改善星型結構描述的查詢效能。最佳化點陣圖篩選可藉由盡早在查詢計畫中,從事實資料表中移除不合格的資料列,大幅改善這些資料倉儲查詢的效能。如需詳細資訊,請參閱<透過點陣圖篩選讓資料倉儲查詢效能最佳化>。
資料分割物件的平行查詢處理
SQL Server 2008 針對許多平行計畫提升了資料分割資料表上的查詢處理效能、變更了平行計畫和序列計畫的表示方式,以及增強了編譯時間和執行階段執行計畫內所提供的資料分割資訊。SQL Server 2008 會針對資料分割物件的平行查詢執行計畫,自動化並改善執行緒資料分割策略。如需詳細資訊,請參閱<資料分割資料表和索引上的查詢處理增強功能>。
計畫指南
sp_create_plan_guide 預存程序已經擴充成直接在 @hints 參數中接受 XML 執行程序表輸出,而非將輸出嵌入 USE PLAN 提示中。這樣做會簡化將固定查詢計畫當做計畫指南提示套用的程序。此外,新的預存程序 sp_create_plan_guide_from_handle 可讓您根據計畫快取中的查詢計畫建立一或多個計畫指南。
您可以針對相同的查詢和批次或模組,建立多個 OBJECT 或 SQL 計畫指南。不過,在任何指定的時間內,只能啟用其中一個計畫指南。
新的系統函數 sys.fn_validate_plan_guide 可用於驗證計畫指南。當資料庫的實體設計變更 (例如卸除索引) 之後,計畫指南可能變成無效。您可以藉由驗證計畫指南,判斷查詢最佳化工具是否可在不修改的情況下使用該計畫指南。
新的事件類別 Plan Guide Successful 和 Plan Guide Unsuccessful 可讓您更方便地確認查詢最佳化工具是否正在使用計畫指南。當 SQL Server 無法針對包含計畫指南的查詢產生執行計畫時,系統就會自動編譯查詢,而不使用計畫指南。當初始計畫指南編譯失敗時,就會發生 Plan Guide Unsuccessful 事件。
<SQL Server 的 SQL Statistics 物件>中的新計數器 Guided Plan Executions/sec 和 Misguided Plan Executions/sec 可用於監視已經使用計畫指南產生查詢計畫成功或失敗的計畫執行次數。
您可以使用 SQL Server Management Studio 來執行建立、刪除、啟用、停用或編寫計畫指南指令碼等作業。計畫指南會顯示在 [物件總管] 的 [可程式性] 資料夾中。
尋找並微調類似查詢的雜湊值
搜尋需要大量資源的查詢時,您應該考量如何尋找並微調個別耗用最少系統資源但共同耗用大量系統資源的類似查詢。sys.dm_exec_query_stats 和 sys.dm_exec_requests 目錄檢視提供了查詢雜湊和查詢計畫雜湊值,可讓您用於協助判斷類似查詢與類似查詢執行計畫的彙總資源使用量。如需詳細資訊,請參閱<使用查詢和查詢計畫雜湊來尋找並微調類似的查詢>。