索引 集群因子

2021-06-07 16:50:54 字數 475 閱讀 6006

什麼是集群因子(clustering factor)呢?集群因子是通過乙個索引掃瞄一張表時需要訪問的表的資料塊的數量。集群因子的計算方法如下:

(1) 掃瞄乙個索引;

(2) 比較某行的rowid和前一行的rowid,如果這兩個rowid不屬於同乙個資料塊,那麼集群因子增加1;

(3) 整個索引掃瞄完畢後,就得到了該索引的集群因子。

以上面集群因子的計算方式可以看出,集群因子反映了索引範圍掃瞄可能帶來的對整個表訪問過程的io開銷情況,如果集群因子接近於表儲存的塊數,說明這張表是按照索引欄位的順序儲存的。如果集群因子接近於行的數量,那說明這張表不是按索引字段順序儲存的。在計算索引訪問成本時,集群因子十分有用。集群因子乘以選擇性引數就是訪問索引的開銷。

如果這個統計資料不能反映出索引的真實情況,那麼可能會造成優化器錯誤地選擇執行計畫。另外,如果某張表上的大多數訪問是按照某個索引做索引掃瞄,那麼將該錶的資料按照索引欄位的順序重新組織,可以提高該錶的訪問效能。

索引的填充因子

建立索引時,可以指定乙個填充因子,以便在索引的每個葉級頁上留出額外的間隙和保留一定百分比的空間,供將來表的資料儲存容量進行擴充和減少頁拆分的可能性。填充因子的值是從 0 到 100 的百分比數值,指定在建立索引後對資料頁的填充比例。值為 100 時表示頁將填滿,所留出的儲存空間量最小。只有當不會對資...

重建索引的填充因子

開啟高階選項才能檢視修改預設填充因子 execsp configure show advanced options 1 reconfigure 檢視預設的填充因子 預設config value 0,也就是100 execsp configure fill factor 檢視某一索引的填充因子 sel...

mysql的填充因子 資料庫索引的填充因子

舉個例子 假定你剛剛用預設的填充因子新建立了乙個索引。當sqlserver建立它時,它把索引放在相鄰的物理頁面上,因為資料能夠順序的讀所以這樣會有最優的i o訪問。但當表隨著 增加和改變時,發生了頁拆分。當頁拆分發生時,sqlserver必須在磁碟的某處分配乙個新的頁,這些新的頁和最初的物理頁不是連...