欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
如何估算數據庫的大小

--得到數據庫中所有表的空間/記錄情況

exec   sp_MSForEachTable  
@precommand=N '
create   table   ##(
id   int   identity,
表名   sysname,
字段數   int,
記錄數   int,
保留空間   Nvarchar(10),
使用空間   varchar(10),
索引使用空間   varchar(10),
未用空間   varchar(10)) ',
@command1=N 'insert   ##(表名,記錄數,保留空間,使用空間,索引使用空間,未用空間)   exec   sp_spaceused   ' '? ' '
update   ##   set   字段數=(select   count(*)   from   syscolumns   where   id=object_id( ' '? ' '))   where   id=scope_identity() ',
@postcommand=N 'select   *   from   ##   order   by   id   drop   table   ## '

 

以使用下列步驟估計在表中存儲數據所需的空間:
1.   按照估計堆的大小或估計聚集索引的大小中的說(shuō)明計算堆或聚集索引所需的空間。
2.   對于每個(gè)非聚集索引,按照估計非聚集索引的大小中的說(shuō)明計算其所需的空間。
3.   對步驟   1   和步驟   2   中計算的值求和。

 

1.1   估計堆的大小
可以使用以下步驟估計在堆中存儲數據所需的空間量:
指定表中顯示的行數:  
Num_Rows   =   表中的行數
指定固定長(cháng)度和可變長(cháng)度列的數量,并計算存儲所需的空間:
計算每組列在數據行中所占據的空間。列的大小取決于數據類(lèi)型和長(cháng)度說(shuō)明。有關(guān)詳細信息,請參閱   數據類(lèi)型(數據庫引擎)。  
Num_Cols   =   總列數(固定長(cháng)度和可變長(cháng)度)
Fixed_Data_Size   =   所有固定長(cháng)度列的總字節大小
Num_Variable_Cols   =   可變長(cháng)度列的數量
Max_Var_Size   =   所有可變長(cháng)度列的最大字節大小
保留行中稱(chēng)為空位圖的部分以管理列的為空性。計算大?。? 
Null_Bitmap   =   2   +   ((Num_Cols   +   7)   /   8)
只應使用該表達式的整數部分。而去掉其余部分。  
計算可變長(cháng)度數據的大?。?
如果表中有可變長(cháng)度列,請確定在行中存儲這些列需使用的空間:  
Variable_Data_Size   =   2   +   (Num_Variable_Cols   x   2)   +   Max_Var_Size  
此公式假設所有可變長(cháng)度列均百分之百充滿(mǎn)。如果預計可變長(cháng)度列占用的存儲空間比例較低,則可以按照該比例調整   Max_Var_Size   值,從而對整個(gè)表大小得出一個(gè)更準確的估計。  
如果沒(méi)有可變長(cháng)度列,請將   Variable_Data_Size   設置為   0。  
計算總的行大?。? 
Row_Size   =   Fixed_Data_Size   +   Variable_Data_Size   +   Null_Bitmap   +   4  
公式中的值   4   是數據行的行標題開(kāi)銷(xiāo)。
下一步,計算每頁(yè)的行數(每頁(yè)有   8096   可用字節):  
Rows_Per_Page   =   8096   /   (Row_Size   +   2)
因為行不跨頁(yè),所以每頁(yè)的行數應向下舍入到最接近的整數。   公式中的數值   2   是計算行數時(shí)引入的行大小余量。
計算存儲所有行所需的頁(yè)數:  
Num_Pages   =   Num_Rows   /   Rows_Per_Page  
估計的頁(yè)數應向上舍入到最接近的整數。  
計算在堆中存儲數據所需的空間量(每頁(yè)的總字節為   8192):  
堆大?。ㄗ止潱?   8192   x   Num_Pages  
此計算不考慮以下因素:
分區  
分區的空間開(kāi)銷(xiāo)很小,但是計算復雜。是否包括它并不重要。
分配頁(yè)
至少有一個(gè)   IAM   頁(yè)用于跟蹤為堆分配的頁(yè),但是空間開(kāi)銷(xiāo)很小,并且沒(méi)有算法可以精確地計算出要使用的   IAM   頁(yè)數。
大型對象   (LOB)   值
具體確定需要多少空間來(lái)存儲   LOB   數據類(lèi)型(varchar(max)、varbinary(max)、nvarchar(max)、text、ntext   xml   和   image)值的算法是復雜的。只添加所期望的   LOB   值的平均大小就足夠了,然后將其添加至總的堆大小中。

1.2   估計聚集索引的大小
您可以使用下列步驟估計存儲聚集索引中的數據所需的空間大?。?
計算存儲聚集索引葉級數據所用的空間。
計算存儲聚集索引的索引信息所用的空間。
對計算出的值求和。
步驟1.   計算在葉級別存儲數據所用的空間
指定表中顯示的行數:  
Num_Rows   =   表中的行數
指定固定長(cháng)度和可變長(cháng)度列的數量,并計算存儲所需的空間:
計算每組列在數據行中所占據的空間。列的大小取決于數據類(lèi)型和長(cháng)度規定。有關(guān)詳細信息,請參閱數據類(lèi)型(數據庫引擎)。  
Num_Cols   =   總列數(固定長(cháng)度和可變長(cháng)度)
Fixed_Data_Size   =   所有固定長(cháng)度列的總字節大小
Num_Variable_Cols   =   可變長(cháng)度列的數量
Max_Var_Size   =   所有可變長(cháng)度列的最大字節大小
如果聚集索引不唯一,則請說(shuō)明“唯一標識符”列:
唯一標識符是可為空的可變長(cháng)度列。在具有非唯一鍵值的行中,它非空而且大小為   4   個(gè)字節。此值是索引鍵的一部分,用于確保每一行都具有唯一的鍵值。
Num_Cols   =   Num_Cols   +   1
Num_Variable_Cols   =   Num_Variable_Cols   +   1
Max_Var_Size   =   Max_Var_Size   +   4
這些修改假定所有值都不是唯一的。
保留行中稱(chēng)為空位圖的部分以管理列的為空性。計算大?。? 
Null_Bitmap   =   2   +   ((Num_Cols   +   7)   /   8)  
僅使用上述表達式中的整數部分,而放棄所有余數。  
計算可變長(cháng)度數據的大?。?
如果表中有可變長(cháng)度列,請確定在行中存儲這些列需使用的空間:  
Variable_Data_Size   =   2   +   (Num_Variable_Cols   x   2)   +   Max_Var_Size  
此公式假設所有可變長(cháng)度列均百分之百填充。如果預計可變長(cháng)度列占用的存儲空間比例較低,則可以按照該比例調整   Max_Var_Size   值,從而對整個(gè)表大小得出一個(gè)更準確的估計。  
注意:    
SQL   Server   2005   引入了組合   varchar、nvarchar、varbinary   或   sql_variant   列的功能,這些列使定義的表的總寬度超過(guò)   8,060   字節。對于   varchar、varbinary   或   sql_variant   中的每一列,其長(cháng)度不能超過(guò)   8,000   字節,對于   nvarchar   列,不能超過(guò)   4,000   字節。但是,表中這些列的組合寬度可超過(guò)   8,060   字節。有關(guān)詳細信息,請參閱行溢出數據超過(guò)   8   KB。
如果沒(méi)有可變長(cháng)度列,請將   Variable_Data_Size   設置為   0。  
計算總的行大?。? 
Row_Size   =   Fixed_Data_Size   +   Variable_Data_Size   +   Null_Bitmap   +   4  
值   4   是數據行的行標題的開(kāi)銷(xiāo)。
下一步,計算每頁(yè)的行數(每頁(yè)有   8096   個(gè)可用字節):  
Rows_Per_Page   =   8096   /   (Row_Size   +   2)
因為行不能跨頁(yè),所以每頁(yè)的行數應向下舍入到最接近的整數。公式中的值   2   是計算行數時(shí)引入的行大小余量。
根據指定的填充因子計算每頁(yè)保留的空行數:
Free_Rows_Per_Page   =   8096   x   ((100   -   Fill_Factor)   /   100)   /   (Row_Size   +   2)  
計算中使用的填充因子為整數值,而不是百分比。因為行不能跨頁(yè),所以每頁(yè)的行數應向下舍入到最接近的整數。填充因子增大時(shí),每頁(yè)將存儲更多的數據,因此頁(yè)數將減少。公式中的值   2   是計算行數時(shí)引入的行大小余量。
計算存儲所有行所需的頁(yè)數:  
Num_Pages   =   Num_Rows   /   (Rows_Per_Page   -   Free_Rows_Per_Page)  
估計的頁(yè)數應向上舍入到最接近的整數。  
計算在葉級別中存儲數據所需的空間大?。宽?yè)共有   8192   個(gè)字節):  
Leaf_space_used   =   8192   x   Num_Pages
步驟   2.   計算存儲索引信息所用的空間
您可以使用下列步驟估計存儲索引的較高級別所需的空間大?。? 
指定索引鍵中固定長(cháng)度和可變長(cháng)度列的數量,并計算存儲所需的空間:
索引鍵列可以包括固定長(cháng)度和可變長(cháng)度列。若要估計內部級別索引行的大小,請計算每組列在索引行中所占據的空間。列的大小取決于數據類(lèi)型和長(cháng)度規定。有關(guān)詳細信息,請參閱數據類(lèi)型(數據庫引擎)。
Num_Key_Cols   =   總鍵列數(固定長(cháng)度和可變長(cháng)度)
Fixed_Key_Size   =   所有固定長(cháng)度鍵列的總字節大小
Num_Variable_Key_Cols   =   可變長(cháng)度鍵列的數量
Max_Var_Key_Size   =   所有可變長(cháng)度鍵列的最大字節大小
如果索引不唯一,則請說(shuō)明所需的任意唯一標識符:
唯一標識符是可為空的可變長(cháng)度列。它將是非空的,在具有非唯一索引鍵值的行中的大小是   4   個(gè)字節。此值是索引鍵的一部分,用于確保每一行都具有唯一的鍵值。
Num_Key_Cols   =   Num_Key_Cols   +   1
Num_Variable_Key_Cols   =   Num_Variable_Key_Cols   +   1
Max_Var_Key_Size   =   Max_Var_Key_Size   +   4
這些修改假定所有值都不是唯一的。
計算空位圖大?。?
如果索引鍵中有允許為空的列,則索引行的一部分將為空位圖保留。計算大?。? 
Index_Null_Bitmap   =   2   +   ((可為空的鍵列數   +   7)   /   8)  
僅使用上述表達式中的整數部分,而放棄所有余數。  
如果沒(méi)有可為空的鍵列,請將   Index_Null_Bitmap   設置為   0。
計算可變長(cháng)度數據的大?。?
如果索引中有可變長(cháng)度列,請確定在索引行中存儲這些列需使用的空間:  
Variable_Key_Size   =   2   +   (Num_Variable_Key_Cols   x   2)   +   Max_Var_Key_Size  
此公式假設所有可變長(cháng)度列均百分之百填充。如果預計可變長(cháng)度列占用的存儲空間比例較低,則可以按照該比例調整   Max_Var_Key_Size   值,從而對整個(gè)表大小得出一個(gè)更準確的估計。  
如果沒(méi)有可變長(cháng)度列,請將   Variable_Key_Size   設置為   0。  
計算索引行大?。? 
Index_Row_Size   =   Fixed_Key_Size   +   Variable_Key_Size   +   Index_Null_Bitmap   +   1(對應于索引行的行標題開(kāi)銷(xiāo))+   6(對應于子頁(yè)   ID   指針)
下一步,計算每頁(yè)的索引行數(每頁(yè)有   8096   個(gè)可用字節):  
Index_Rows_Per_Page   =   8096   /   (Index_Row_Size   +   2)  
因為索引行不能跨頁(yè),所以每頁(yè)的索引行數應向下舍入到最接近的整數。公式中的數值   2   是計算行數時(shí)引入的行大小余量。
計算索引中的級別數:
Levels   =   1   +   log   Index_Rows_Per_Page   (Num_Rows   /   Index_Rows_Per_Page)
注意:該值不包括聚集索引的葉級別。
計算索引中的頁(yè)數:  
Num_Index_Pages   =   Level   (Index_Rows_Per_Page)Level   –   1
其中,1   <=   Level   <=   Levels
這是一個(gè)簡(jiǎn)單的示例,所討論的索引在葉以上的級別共需要   1000   個(gè)索引行,每頁(yè)容納   10   個(gè)索引行。這意味著(zhù)存儲這   1000   行需要   100   頁(yè)。下一級索引必須存儲   100   行。這意味著(zhù)需要   10   頁(yè)。最后一級索引必須存儲   10   行。這意味著(zhù)需要   1   頁(yè)。如果將這些數代入前面的公式中,結果如下:
Height   =   1   +   log10   (1000   /   10)   =   3
Num_Index_Pages   =   (10)3-1   +   (10)2-1   +   (10)1-1   =   111,這是示例中所述的頁(yè)數。
計算索引的大?。宽?yè)共有   8192   個(gè)字節):  
Index_Space_Used   =   8192   x   Num_Index_Pages  
步驟   3.   對計算出的值求和
對從前面兩個(gè)步驟中得到的值求和:  
聚集索引大?。ㄗ止潱?   Leaf_Space_Used   +   Index_Space_used
此計算不考慮以下因素:
分區  
分區的空間開(kāi)銷(xiāo)很小,但是計算復雜。是否包括它并不重要。
分配頁(yè)
至少有一個(gè)   IAM   頁(yè)用于跟蹤為堆分配的頁(yè),但是空間開(kāi)銷(xiāo)很小,并且沒(méi)有算法可以精確地計算出要使用的   IAM   頁(yè)數。
大型對象   (LOB)   值
精確確定存儲   LOB   數據類(lèi)型   varchar(max)、varbinary(max)、nvarchar(max)、text、ntext、xml   和   image   值所用的空間量的算法非常復雜。只需加上所期望的   LOB   值的平均大小、再乘以   Num_Rows,然后再加上聚集索引的總大小。

 

2   對于每個(gè)非聚集索引,按照估計非聚集索引的大小中的說(shuō)明計算其所需的空間
可使用下列步驟估計存儲非聚集索引所需的空間大?。? 
計算用于存儲非聚集索引的非葉級中的索引信息的空間。
計算用于存儲非聚集索引的葉級中的索引信息的空間。
對計算出的值求和。
步驟   1.   計算用于存儲非葉級中的索引信息的空間
重要事項:    
保留在此步驟中使用的值,以便在步驟   2   中使用。
可使用下列步驟估計存儲索引的較高級別所需的空間大小。
指定表中顯示的行數:  
Num_Rows   =   表中的行數
指定索引鍵中固定長(cháng)度和可變長(cháng)度列的數量,并計算存儲所需的空間:
索引鍵列可以包括固定長(cháng)度和可變長(cháng)度列。若要估計內部級別索引行的大小,請計算每組列在索引行中所占據的空間。列的大小取決于數據類(lèi)型和長(cháng)度規定。有關(guān)詳細信息,請參閱數據類(lèi)型(數據庫引擎)。
Num_Key_Cols   =   總鍵列數(固定長(cháng)度和可變長(cháng)度)
Fixed_Key_Size   =   所有固定長(cháng)度鍵列的總字節大小
Num_Variable_Key_Cols   =   可變長(cháng)度鍵列的數量
Max_Var_Key_Size   =   所有可變長(cháng)度鍵列的最大字節大小
如果索引不是唯一的,對所需的數據行定位符說(shuō)明如下:
如果非聚集索引不是唯一的,數據行定位符將與非聚集索引鍵組合使用,以便為每一行生成唯一的鍵值。
如果非聚集索引在堆上,則數據行定位符是堆   RID。其大小是   8   個(gè)字節。  
Num_Key_Cols   =   Num_Key_Cols   +   1
Num_Variable_Key_Cols   =   Num_Variable_Key_Cols   +   1
Max_Var_Key_Size   =   Max_Var_Key_Size   +   8
如果非聚集索引在聚集索引之上,則數據行定位符是聚集鍵。必須與非聚集索引鍵結合使用的列是聚集鍵中的以下列:不在非聚集索引鍵列集中的列。
Num_Key_Cols   =   Num_Key_Cols   +   不在非聚集索引鍵列集中的聚集鍵列數(如果聚集索引不唯一,則   +   1)
Fixed_Key_Size   =   Fixed_Key_Size   +   不在非聚集索引鍵列集中的固定長(cháng)度聚集鍵列的總字節大小
Num_Variable_Key_Cols   =   Num_Variable_Key_Cols   +   不在非聚集索引鍵列集中的可變長(cháng)度聚集鍵列數(如果聚集索引不唯一,則   +   1)
Max_Var_Key_Size   =   Max_Var_Key_Size   +   不在非聚集索引鍵列集中的可變長(cháng)度聚集鍵列的最大字節大?。ㄈ绻奂饕晃ㄒ?,則   +   4)
可以保留行的一部分(稱(chēng)為“空位圖”),以管理列的為空性。計算大?。?
如果索引鍵中有可為空的列(包括步驟   1.3   中所述的所有必要的聚集鍵列),則保留索引行的一部分,以用于空位圖。
Index_Null_Bitmap   =   2   +   ((可以為空的鍵列數   +   7)   /   8)  
僅使用上述表達式中的整數部分,而放棄所有余數。  
如果沒(méi)有可為空的鍵列,請將   Index_Null_Bitmap   設置為   0。
計算可變長(cháng)度數據大?。?
如果索引鍵中有可變長(cháng)度的列(包括所有必要的聚集索引鍵列),請確定存儲索引行中的這些列需使用的空間:  
Variable_Key_Size   =   2   +   (Num_Variable_Key_Cols   x   2)   +   Max_Var_Key_Size  
此公式假設所有可變長(cháng)度列均百分之百填充。如果預計可變長(cháng)度列占用的存儲空間比例較低,則可以按照該比例調整   Max_Var_Key_Size   值,從而對整個(gè)表大小得出一個(gè)更準確的估計。  
如果沒(méi)有可變長(cháng)度列,請將   Variable_Key_Size   設置為   0。  
計算索引行大?。? 
Index_Row_Size   =   Fixed_Key_Size   +   Variable_Key_Size   +   Index_Null_Bitmap   +   1(對應于索引行的行標題開(kāi)銷(xiāo))+   6(對應于子頁(yè)   ID   指針)
下一步,計算每頁(yè)的索引行數(每頁(yè)有   8096   個(gè)可用字節):  
Index_Rows_Per_Page   =   8096   /   (Index_Row_Size   +   2)  
因為索引行不能跨頁(yè),所以每頁(yè)的索引行數應向下舍入到最接近的整數。公式中的數值   2   是計算行數時(shí)引入的行大小余量。
計算索引中的級別數:
Levels   =   1   +   log   Index_Rows_Per_Page   (Num_Rows   /   Index_Rows_Per_Page)
請注意,此值不包括葉級非聚集索引。
計算索引中的頁(yè)數:  
Num_Index_Pages   =   Level   (Index_Rows_Per_Page)Level   –   1
其中,1   <=   Level   <=   Levels
作為一個(gè)簡(jiǎn)單示例,請考慮這樣的索引:其中葉級以上的級別所需總索引行數是   1000,且每頁(yè)可容納   10   個(gè)索引行。這意味著(zhù)存儲這   1000   行需要   100   頁(yè)。下一級索引必須存儲   100   行。這意味著(zhù)需要   10   頁(yè)。最后一級索引必須存儲   10   行。這意味著(zhù)需要   1   頁(yè)。使用這些以前的公式中的數字可得到下列結果:
Height   =   1   +   log10   (1000   /   10)   =   3
Num_Index_Pages   =   (10)3-1   +   (10)2-1   +   (10)1-1   =   111,這是示例中所述的頁(yè)數。
計算聚集索引的大?。宽?yè)總共有   8192   個(gè)字節):  
Index_Space_Used   =   8192   x   Num_Index_Pages  
步驟   2.   計算用于存儲葉級中的索引信息的空間
可使用下列步驟估計存儲葉級索引所需的空間大小。需要使用從步驟   1   中保留的值來(lái)完成此步驟。  
指定葉級的固定長(cháng)度列和可變長(cháng)度列的數量,并計算存儲這些列所需的空間:

注意:    
SQL   Server   2005   通過(guò)包括索引鍵列和非鍵列引入了擴展非聚集索引的功能。這些額外的列只存儲在葉級非聚集索引。有關(guān)詳細信息,請參閱創(chuàng )建帶有包含性列的索引。
注意:    
SQL   Server   2005   引入了組合   varchar、nvarchar、varbinary   或   sql_variant   列的功能,這些列使定義的表的總寬度超過(guò)   8,060   字節。對于   varchar、varbinary   或   sql_variant   中的每一列,其長(cháng)度不能超過(guò)   8,000   字節,對于   nvarchar   列,不能超過(guò)   4,000   字節。但是,表中這些列的組合寬度可超過(guò)   8,060   字節。這也適用于具有包含性列的非聚集索引葉行。有關(guān)詳細信息,請參閱行溢出數據超過(guò)   8   KB。
如果非聚集索引沒(méi)有任何包含性列,則使用步驟   1   中的值(包括在步驟   1.3   中進(jìn)行的任何修改):
Num_Leaf_Cols   =   Num_Key_Cols
Fixed_Leaf_Size   =   Fixed_Key_Size
Num_Variable_Leaf_Cols   =   Num_Variable_Key_Cols
Max_Var_Leaf_Size   =   Max_Var_Key_Size
如果非聚集索引確實(shí)具有包含性列,則對步驟   1   中的值加上適當的值(包括在步驟   1.3   中進(jìn)行的任何修改)。列的大小取決于數據類(lèi)型和長(cháng)度規定。有關(guān)詳細信息,請參閱數據類(lèi)型(數據庫引擎)。
Num_Leaf_Cols   =   Num_Key_Cols   +   包含性列數
Fixed_Leaf_Size   =   Fixed_Key_Size   +   固定長(cháng)度包含性列的總字節大小
Num_Variable_Leaf_Cols   =   Num_Variable_Key_Cols   +   可變長(cháng)度包含性列的數量
Max_Var_Leaf_Size   =   Max_Var_Key_Size   +   可變長(cháng)度包含性列的最大字節大小
數據行定位符說(shuō)明:
如果非聚集索引不是唯一的,則已在步驟   1.3   中考慮了數據行定位符的開(kāi)銷(xiāo)且不需要進(jìn)行其他的修改。轉到下一步。
如果非聚集索引是唯一的,則必須在葉級的所有行中說(shuō)明數據行定位符。
如果非聚集索引在堆上,則數據行定位符是堆   RID(大小為   8   字節)。
Num_Leaf_Cols   =   Num_Leaf_Cols   +   1
Num_Variable_Leaf_Cols   =   Num_Variable_Leaf_Cols   +   1
Max_Var_Leaf_Size   =   Max_Var_Leaf_Size   +   8
如果非聚集索引在聚集索引之上,則數據行定位符是聚集鍵。必須與非聚集索引鍵結合使用的列是聚集鍵中的以下列:不在非聚集索引鍵列集中的列。
Num_Leaf_Cols   =   Num_Leaf_Cols   +   不在非聚集索引鍵列集中的聚集鍵列數(如果聚集索引不唯一,則   +   1)
Fixed_Leaf_Size   =   Fixed_Leaf_Size   +   不在非聚集索引鍵列集中的固定長(cháng)度聚集鍵列數
Num_Variable_Leaf_Cols   =   Num_Variable_Leaf_Cols   +   不在非聚集索引鍵列集中的可變長(cháng)度聚集鍵列數(如果聚集索引不唯一,則   +   1)
Max_Var_Leaf_Size   =   Max_Var_Leaf_Size   +   不在非聚集索引鍵列集中的可變長(cháng)度聚集鍵列的字節大?。ㄈ绻奂饕晃ㄒ?,則   +   4)
計算空位圖大?。?
Leaf_Null_Bitmap   =   2   +   ((Num_Leaf_Cols   +   7)   /   8)  
僅使用上述表達式中的整數部分,而放棄所有余數。  
計算可變長(cháng)度數據大?。?
如果索引鍵中有可變長(cháng)度的列(包括在以前的步驟   2.2   中所述的所有必要的聚集索引鍵列),請確定存儲索引行中的這些列需使用的空間:  
Variable_Leaf_Size   =   2   +   (Num_Variable_Leaf_Cols   x   2)   +   Max_Var_Leaf_Size  
此公式假定所有可變長(cháng)度列均百分之百填充。如果預計可變長(cháng)度列占用的存儲空間比例較低,則可以按照該比例調整   Max_Var_Leaf_Size   值,從而對整個(gè)表大小得出一個(gè)更準確的估計。  
如果沒(méi)有可變長(cháng)度的列,則將   Variable_Key_Size   設置為   0。  
計算索引行大?。? 
Index_Row_Size   =   Fixed_Key_Size   +   Variable_Key_Size   +   Index_Null_Bitmap   +   1(對應于索引行的行標題開(kāi)銷(xiāo))+   6(對應于子頁(yè)   ID   指針)
下一步,計算每頁(yè)的索引行數(每頁(yè)有   8096   個(gè)可用字節):  
Leaf_Rows_Per_Page   =   8096   /   (Leaf_Row_Size   +   2)  
因為索引行不能跨頁(yè),所以每頁(yè)的索引行數應向下舍入到最接近的整數。公式中的數值   2   是計算行數時(shí)引入的行大小余量。
根據指定的填充因子計算每頁(yè)保留的空行數:
Free_Rows_Per_Page   =   8096   x   ((100   -   Fill_Factor)   /   100)   /   (Leaf_Row_Size   +   2)  
計算中使用的填充因子為整數值,而不是百分比。因為行不跨頁(yè),所以每頁(yè)的行數應向下舍入到最接近的整數。填充因子增大時(shí),每頁(yè)將存儲更多的數據,因此頁(yè)數將減少。公式中的數值   2   是計算行數時(shí)引入的行大小余量。
計算存儲所有行所需的頁(yè)數:  
Num_Leaf_Pages   =   Num_Rows   /   (Leaf_Rows_Per_Page   -   Free_Rows_Per_Page)  
估計的頁(yè)數應向上舍入到最接近的整數。  
計算索引的大?。宽?yè)總共有   8192   個(gè)字節):
Leaf_Space_Used   =   8192   x   Num_Leaf_Pages  
步驟   3.   對計算出的值求和
對從前面兩個(gè)步驟中得到的值求和:  
Nonclustered   index   size   (bytes)   =   Leaf_Space_Used   +   Index_Space_used
此計算不考慮以下因素:
分區  
分區的空間開(kāi)銷(xiāo)很小,但是計算復雜。是否包括它并不重要。
分配頁(yè)
至少有一個(gè)   IAM   頁(yè)用于跟蹤為堆分配的頁(yè),但是空間開(kāi)銷(xiāo)很小,并且沒(méi)有算法可以精確地計算出要使用的   IAM   頁(yè)數。
大型對象   (LOB)   值
精確確定存儲   LOB   數據類(lèi)型   varchar(max)、varbinary(max)、nvarchar(max)、text、ntext、xml   和   image   值所用的空間量的算法非常復雜。只需加上期望的   LOB   值的平均大小,再乘以   Num_Rows,然后將所得結果加到非聚集索引的總大小。

本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
sql 非聚集索引的交叉
(二)何時(shí)使用聚集索引或非聚集索引
Mysql事務(wù) + InnoDB存儲引擎
大數據量高并發(fā)的數據庫優(yōu)化
MYSQL面試??贾R點(diǎn)總結
Python數據分析之Pandas學(xué)習筆記(很全包含案例及數據截圖)
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久