它是否佔用固定的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個字節。因此你可能會減少。另請檢查您是否在該表上設置了列存儲索引 –