我正在开发一个大约6Gb的数据库.我需要将所有非unicode列转换为unicode,例如将所有varchar更改为nvarchar.
我使用ALTER语句编写了这个脚本,ALTER TABLE mytable ALTER COLUMN mycolumn nvarchar(...)但之后发现数据库大小大幅增加..mdf文件增长到超过70Gb,让我感到惊讶.我知道unicode占用varchar空间的x2倍,但即使数据库全部是varchar并且已经转换,我希望它的最大大小为12Gb.
我试图缩小数据库和文件以查看它是否是未分配的空间,但这没有什么影响,并sp_spaceused表明没有过多的未分配空间.
有谁知道为什么数据库会变得如此之大?我非常希望了解会导致这种情况的原因.
我已经设法通过创建一个从旧数据库编写脚本并导入所有数据的新数据库将列数据类型更改为unicode,结果只增加了1Gb的大小,所以我想了解为什么改变列数据类型导致的这种增长.