估計表的大小(一)

2021-04-08 12:22:25 字數 1385 閱讀 8348

估計表的大小

下列步驟可用於估計儲存表中的資料所需的空間量。

指定表中的行數:

表中的行數= num_rows

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

。 列數= num_cols

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

可變長度列數= num_variable_cols

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

如果表中有固定長度列,行的一部分(稱為空位圖)將保留以管理列的可為空性。計算大小:

空位圖(null_bitmap) = 2 + (( num_cols + 7) / 8 )

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

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

可變長度列的總大小(variable_data_size) = 2 + (num_variable_cols x 2) + max_var_size

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

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

計算行大小:

行總大小(row_size) = fixed_data_size + variable_data_size + null_bitmap +4

最後乙個值4 表示資料行首結構。

下一步,計算每頁的行數(每頁有8096 可用位元組):

每頁的行數(rows_per_page) = ( 8096 ) / (row_size + 2)

因為行不跨頁,所以每頁的行數應向下舌入到最接近的整數。

如果要在表上建立聚集索引,那麼要根據指定的填充因子計算每頁保留的可用行數。有關更多資訊,請參見填充因子

。如果不建立聚集索引,請將fill_factor 指定為100。

每頁的可用行數(free_rows_per_page) = 8096 x ((100 - fill_factor) / 100) / (row_size + 2)

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

因為行不跨頁,所以每頁的行數應向下捨入到最接近的整數。填充因子增大時,每頁將儲存更多的資料,因此頁數將減少。

計算儲存所有行所需的頁數:

頁數(num_pages) = num_rows / (rows_per_page - free_rows_per_page)

估計的頁數應向上捨入到最接近的整數。

最後,計算儲存表中的資料所需的空間量(每頁總位元組為8192):

表大小(位元組)= 8192 x num_pages

估計表的大小(一)

估計表的大小 下列步驟可用於估計儲存表中的資料所需的空間量。指定表中的行數 表中的行數 num rows 如果在表的定義中有固定長度和可變長度列,請計算資料行中這兩組列的每一組所占用的空間。列的大小取決於資料型別和長度說明。有關更多資訊,請參見資料型別 列數 num cols 所有固定長度列中的位元...

估計表的大小(一)

估計表的大小 下列步驟可用於估計儲存表中的資料所需的空間量。指定表中的行數 表中的行數 num rows 如果在表的定義中有固定長度和可變長度列,請計算資料行中這兩組列的每一組所占用的空間。列的大小取決於資料型別和長度說明。有關更多資訊,請參見資料型別 列數 num cols 所有固定長度列中的位元...

估計表的大小(一)

估計表的大小 下列步驟可用於估計儲存表中的資料所需的空間量。指定表中的行數 表中的行數 num rows 如果在表的定義中有固定長度和可變長度列,請計算資料行中這兩組列的每一組所占用的空間。列的大小取決於資料型別和長度說明。有關更多資訊,請參見資料型別 列數 num cols 所有固定長度列中的位元...