SQL Server db数据分区大幅增长时,人口有点多的列子

问题描述 投票:0回答:1

这是我第一次在这里发帖,所以希望我没有搞乱什么。

我使用了一个alter表,在现有的数据库中添加了一个bit类型的列,以便知道该商品是否缺货。当添加新列时,它得到的是空值,所以我想把它更新为0(库存中),在大多数数据库中,都没有问题。问题是在较大的数据库中,我发现数据分区的大小增长了很多(从700 GB到800 GB),导致一些驱动器空间的问题。

表的行数大约有20亿行,所以数据分区上的增加是在意料之中的,但没想到一 bit 类型列可能会导致这样的增加,因为它认为每个列应该消耗1个比特(或至少据我所知)。

我不是数据库专家,我需要确定为什么会发生这种情况,以便更好地理解,并能够继续对其余数据库进行修改,确保这不会失控。

sql-server database size
1个回答
0
投票

位类型是按表打包成字节的,所以在表中增加一个位类型列(如果之前没有任何位类型列),每行将花费1个字节。

添加第二到第八位列是免费的。

增加第九位,要多花1个字节的存储费用等。

© www.soinside.com 2019 - 2024. All rights reserved.