8.5.1 索引與系統性能
索引可以加快數據檢索的速度,但它會使數據的插入、刪除和更新變慢。尤其是簇索引,數據是按照邏輯順序存放在一定的物理位置,當變更數據時,根據新的數據順序,需要將許多數據進行物理位置的移動,這將增加系統的負擔。對非簇索引,數據更新時也需要更新索引頁,這也需要占用系統時間。因此在一個表中使用太多的索引,會影響數據庫的性能。對於一個經常會改變的表,應該盡量限制表只使用一個簇索引和不超過3~4 個非簇索引。對事務處理特別繁重的表,其索引應盡量不超過3 個。
8.5.2 索引調整向導(Index Tuning Wizard)
索引調整向導可以幫助選擇並創建一個最優化的索引集合,以提高數據庫的性能。
要使用索引調整向導需要一個工作負荷記錄(Workload)。 工作負荷記錄由SQL 腳本或SQL Server Profiler 創建的存儲在文件或表中的跟蹤組成。如果沒有現存的針對要進行索引調整的數據庫或表的工作負荷記錄,可以通過SQL Server Profiler 來創建一個(其具體方法請參見第19 章中SQL Server Profiler 的用法)。可以用Sample 1 – TSQL 跟蹤定義來創建或新建一個跟蹤。索引調整向導可以使用查詢優化器根據工作負荷記錄分析索引的性能,並提出相應的調整建議。可以立即讓系統根據建議修改索引,也可以將任務列入計劃以後再創建。
8.5.3 使用索引調整向導:
使用索引調整向導的步驟如下
(1) 從“Tools” 菜單中選擇“Wizards” 選項,出現如圖8-15 所示的選擇向導界面。
(2) 從樹型目錄中選擇“Management” 下的“Index Tuning Wizard” 選項,出現如圖8-16 所示的索引調整向導界面。
(3) 單擊“下一步”按鈕,出現如圖8-17 所示的選擇服務器和數據庫對話框。在此選擇要進行索引調整的數據庫。各選項含義如下:
Keep all existing indexes
保留已經存在的索引。如果不選擇此選項,在進行索引優化時可能將刪除一些索引。
Perform thorough analysis
對工作負荷記錄進行徹底地分析。