估計表大小(三) 估計無聚集索引的表的大小

2021-04-16 18:19:56 字數 2317 閱讀 6893

估計無聚集索引的表的大小

下列步驟可用於估計儲存沒有聚集索引的表上的資料和任何附加的非聚集索引所需的空間。

計算儲存資料所用的空間。

計算儲存每個附加非聚集索引所用的空間。

彙總計算所得的值。

對於每個計算,都要指定將在表中出現的行數。表中的行數將對錶的大小有直接影響:

表中的行數= num_rows

計算儲存資料所用的空間

若要計算儲存資料所用的空間,請參見估計表的大小

。 記下計算所得的值:

儲存資料所用的空間= data_space_used

計算儲存每個附加非聚集索引所用的空間

下列步驟可用於估計沒有聚集索引的表上的單個非聚集索引的大小。

如果索引定義包含固定長度和可變長度列,請計算索引行中這兩組列的每一組所占用的空間。列的大小取決於資料型別和長度說明。有關更多資訊,請參見

資料型別

。 索引鍵中的列數= num_key_cols

所有固定長度鍵列中的位元組總和= fixed_key_size

索引鍵中的可變長度列數= num_variable_key_cols

所有可變長度鍵列的最大值= max_var_key_size

如果索引中有固定長度列,那麼索引行的一部分將為空位圖保留。計算大小:

索引空位圖(index_null_bitmap) = 2 + (( num_key_cols + 7) / 8 )

僅使用上述表示式中的整數部分,而去掉其餘部分。

如果索引中有可變長度列,請確定儲存索引行中的這些列需使用的空間:

可變長度列的總大小(variable_key_size) = 2 + (num_variable_key_cols x 2) + max_var_key_size

如果沒有可變長度列,請將variable_key_size 設定為0。

此公式假設所有可變長度鍵列均百分之百充滿。如果預計可變長度鍵列占用的儲存空間比例較低,則可以按照該比例調整結果以對整個索引大小得出乙個更準確的估計。

計算索引行大小:

索引行總大小(index_row_size) = fixed_key_size + variable_key_size + index_null_bitmap + 1 + 8

下一步,計算每頁的索引行數(每頁有

8096

個可用位元組):

每頁的索引行數(index_rows_per_page) = ( 8096 ) / (index_row_size + 2)

由於索引行不能跨頁,所以每頁的索引行數應向下捨入到最接近的整數。

根據為非聚集索引指定的填充因子,計算每葉級頁保留的可用索引行數。有關更多資訊,請參見

填充因子

。 每葉級頁的可用索引行數

(free_index_rows_per_page) = 8096 x ((100 - fill_factor) / 100) /

index_row_size

計算中使用的填充因子為整數值,而不是百分數。

由於索引行不能跨頁,所以每頁的索引行數應向下捨入到最接近的整數。

下一步,計算儲存索引的每一級別的所有索引行所需的頁數:

頁數(第0 級)(num_pages_level_0) = num_rows / (index_rows_per_page - free_index_rows_per_page)

頁數(第1 級)(num_pages_level_1) = num_pages_level_0 / index_rows_per_page

重複第二個計算,將從前面的第 n

級中計算的頁數除以index_rows_per_page,直到指定的第 n

(num_pages_level_n) 級頁數等於1(根頁)。例如,若要計算第二個索引級別所需的頁數:

頁數(第2 級)(num_pages_level_2) = num_pages_level_1 / index_rows_per_page

對於每一級別,預計的頁數應向上捨入到最接近的整數。

彙總儲存各索引級別所需頁數:

總頁數(num_index_pages) = num_pages_level_0 + num_pages_level_1 +num_pages_level_2 + ...+ num_pages_level_n

計算聚集索引的大小(每頁總共有

8192

個位元組):

非聚集索引大小(位元組)= 8192 x num_index_pages

計算表的大小

計算表的大小:

表的總大小(位元組)= data_space_used +  nonclustered index size + ...n

估計表大小(三) 估計無聚集索引的表的大小

估計無聚集索引的表的大小 下列步驟可用於估計儲存沒有聚集索引的表上的資料和任何附加的非聚集索引所需的空間。計算儲存資料所用的空間。計算儲存每個附加非聚集索引所用的空間。彙總計算所得的值。對於每個計算,都要指定將在表中出現的行數。表中的行數將對錶的大小有直接影響 表中的行數 num rows 計算儲存...

估計表大小(三) 估計無聚集索引的表的大小

估計無聚集索引的表的大小 下列步驟可用於估計儲存沒有聚集索引的表上的資料和任何附加的非聚集索引所需的空間。計算儲存資料所用的空間。計算儲存每個附加非聚集索引所用的空間。彙總計算所得的值。對於每個計算,都要指定將在表中出現的行數。表中的行數將對錶的大小有直接影響 表中的行數 num rows 計算儲存...

估計表大小(三) 估計無聚集索引的表的大小

估計無聚集索引的表的大小 下列步驟可用於估計儲存沒有聚集索引的表上的資料和任何附加的非聚集索引所需的空間。計算儲存資料所用的空間。計算儲存每個附加非聚集索引所用的空間。彙總計算所得的值。對於每個計算,都要指定將在表中出現的行數。表中的行數將對錶的大小有直接影響 表中的行數 num rows 計算儲存...