SQL Server索引設計指南( Index Design Guidelines)
文章主要描述的是SQL Server索引設計指南( Index Design Guidelines),SQL Server數據庫的索引對用戶與T-SQL開發者來說幾乎可以說是透明的。除非用戶使用表提示(table hints)來強制優化器使用某個具體的索引,否則查詢中的索引不能被具體指定。
通常情況下,基于索引鍵直方圖的值,SQL Server的基于代價的優化器從I/O角度會選擇代價最小的索引。
Chapter35會詳細講述優化器如何評估I/O,并決定采用最有效的查詢計劃。本節主要講述一些創建有用索引的主要的指導原則,使得優化器能夠有效地使用這些索引。
設計索引的一些通用的指南包括以下幾點:
對于組合索引,盡量保持索引的越靠左邊的列越具有高的選擇性。索引中的***列應該***有唯一性(如果可能),并且索引列的順序總體上應該具有從高到低的唯一性。然而,記住如果索引的***列沒有在SARG或join子句中出現,那么選擇性將不會有任何幫助。為了確保索引能夠被大多數查詢使用,***列應該是查詢中最常用的列。
確保join中使用的列具有索引。如果join中的列上沒有索引,Join的處理將是低效的。記住:一個PRIMARY KEY約束將自動會在一個列上創建索引,但是FOREIGN KEY約束不會的。如果你的查詢通常在表的primary Key 和foreign key之間進行join操作,那么你將會在foreign key上創建索引。
為你的最關鍵查詢和事務來調整索引。你不能為每個可能的查詢都創建索引。然而,如果你能識別你的關鍵和最常用的查詢,并為它們創建索引,那么你的應用將運行地更好。SQL Profile是一個識別你的最常用查詢的有用工具。SQL Profie也能識別那些運行慢的查詢。
避免列上的索引具有低選擇性。優化器將不可能使用這些索引,它們只是占有些空間并且在插入、刪除、修改時增加了以一些不必的負擔而已。當索引能覆蓋一個查詢則是一個例外。索引覆蓋將在后面詳細介紹。
小心選擇你的聚集和非聚集索引。接下來的兩個小節將討論給出一些選擇聚集和非聚集索引的技巧和指南。這些都基于對列上包含的數據和該列上所執行的查詢類型來給出的。
以上的相關內容就是對SQL Server索引設計指南( Index Design Guidelines的介紹,望你能有所收獲。
上述的相關內容就是對SQL Server索引設計指南( Index Design Guidelines)的描述,希望會給你帶來一些幫助在此方面。
【編輯推薦】
- SQL Server 2000全文檢索的使用方案描述
- SQL Server數據庫與identity列
- SQL Server更多內存的提供步驟描述
- SQL Server 實用操作的代碼演示
- SQL Server 2005固定服務器角色的操作全過程