我試圖計算sql_variant用來存儲固定長度數據類型的存儲空間。計算SQL Server sql_variant數據類型用於存儲固定長度數據類型的存儲空間
對於我的測試我創建的表有兩列:
Key int identitiy(1,1) primary key Value sql_variant
我添加一行與值1 int類型的,並且我用DBCC PAGE來檢查該行的大小,即原來是21字節。
使用Estimate the Size of a Clustered Index我:
Null_bitmap = 3 Fixed_Data_Size = 4 (Key column int) Variable_Data_Size = 2 + 2 + 4 (Value column with an int)
Row_Size = 4 + 8 + 3 + 4 = 19 bytes
爲什麼該行採取21個字節?我在計算中缺少什麼?
我使用int列,而不是由DBCC頁報告的SQL_VARIANT和使用的字節數試圖用一臺同樣的分析爲15,符合我的計算,其中:
Null_bitmap = 3 Fixed_Data_Size = 8 (Key column int, Value column int) Variable_Data_Size = 0
Row_Size = 4 + 8 + 3 = 15 bytes
謝謝@Jonathan,我認爲您要引用的正確鏈接是http://msdn.microsoft.com/en-us/library/ms181071(v=sql.105).aspx(我用google搜索引用:)) – marcob
這是否意味着對於每個sql_variant列,我應該考慮爲元數據增加2個字節? – marcob