当我改变一列的类型中,以实际较小的类型: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