它是否占用固定的N*2
或者如果要存储的实际值小于N*2
字节,它可能使用较少的存储空间?nvarchar(n)如何存储在SQL Server中?
我有一个固定的nvarchar
类型的许多领域的巨大表。有些是nvarchar(100)
有的nvarchar(400)
等
数据列是从来没有一个确切的尺寸,它变化从0
到N
。大部分数据小于N/2
。
例如,名为RecipientName
的字段的类型为nvarchar(400)
,并且有9026424行。
只有大小RecipientName
将是800*9026424 = 6.72 GB
。
但整个表的实际存储大小只有2.02 GB
。是否有任何压缩应用或有些小于2的功率选择?
https://docs.microsoft.com/en-us/sql/t-sql/data-types/nchar-and-nvarchar-transact-sql – Siyual
* Unicode *,UTF16具体。它每个字符至少使用两个字节。它的长度*可变,所以这些字段不需要200或800字节,只需要什么。对于ANSI –
,固定长度类型是'nchar'和'char'它使用时占用空间,如果第一行有10个字符,则需要10 X 2 = 20个字节。因此你可能会减少。另请检查您是否在该表上设置了列存储索引 –