當我改變一列的類型中,以實際較小的類型:SQL服務器:一臺雙數據大小改變列類型
-- change type from nvarchar(100) to varchar(50)
Alter Table [MyTable] Alter column [MyColumn] varchar(50)
表包含4 Mio.記錄。在使用大約1.1 GB的空間之前,在更改列之後,它使用了2.2 GB的空間。這有什麼解釋嗎?
我找到了SMO使用的空間,或者通過查看sql server management studio中的表格屬性:「我的表 - >屬性 - >存儲 - >數據空間」。現在我懷疑這是數據使用的實際空間。
就是這樣。重建索引後,它回到1.1 GB。桌子碎裂時使用的空間變得更高,這仍然很有趣。我相信這是衡量表中數據量的一種方式,但它更多地說明它在磁盤上佔用了多少空間。 – 2011-06-09 11:40:34
@Stefan Steinegger:正確,它分配了空間。數據類型的改變可能無法確定每8k頁面(頁面密度)的行數可能如何,因此您在磁盤上具有相同的結構。你所擁有的只是每頁中的數據略少。 – gbn 2011-06-09 11:48:13