程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> 合理建立索引-提高SQL Server 的性能之法(4)

合理建立索引-提高SQL Server 的性能之法(4)

編輯:關於SqlServer


 (3)、要進行大量插入操作或已經完成。

  (4)、使用大塊I/O的查詢的磁盤讀次數比預料的要多。

  (5)、由於大量數據修改,使得數據頁和索引頁沒有充分使用而導致空間的使用超出估算。

  (6)、dbcc檢查出索引有問題。

  當重建聚簇索引時,這張表的所有非聚簇索引將被重建。

  2、索引統計信息的更新

  當在一個包含數據的表上創建索引的時候,SQL Server會創建分布數據頁來存放有關索引的兩種統計信息:分布表和密度表。優化器利用這個頁來判斷該索引對某個特定查詢是否有用。但這個統計信息並不動態地重新計算。這意味著,當表的數據改變之後,統計信息有可能是過時的,從而影響優化器追求最有工作的目標。因此,在下面情況下應該運行update statistics命令:

  (1)、數據行的插入和刪除修改了數據的分布。

  (2)、對用truncate table刪除數據的表上增加數據行。

  (3)、修改索引列的值。

  六、結束語

  實踐表明,不恰當的索引不但於事無補,反而會降低系統的執行性能。因為大量的索引在插入、修改和刪除操作時比沒有索引花費更多的系統時間。例如下面情況下建立的索引是不恰當的:

  1、在查詢中很少或從不引用的列不會受益於索引,因為索引很少或從來不必搜索基於這些列的行。

  2、只有兩個或三個值的列,如男性和女性(是或否),從不會從索引中得到好處。

  另外,鑒於索引加快了查詢速度,但減慢了數據更新速度的特點。可通過在一個段上建表,而在另一個段上建其非聚簇索引,而這兩段分別在單獨的物理設備上來改善操作性能。


 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved