【发布时间】:2020-04-25 17:19:12
【问题描述】:
在 SQL Server 中,如果您创建一个类型为 NVARCHAR(MAX) 的列,并且在其中仅填充 128 个字符 - 与创建为 NVARCHAR(128) 相比,它会消耗更多的存储空间 - 还是它的大小相同?
【问题讨论】:
-
行内存储时,空间不变。如果由于行/页中的其他列而需要在行外存储,则 MAX 类型将更多。除了存储之外,请考虑 SQL Server 可能需要为查询计划中的 MAX 类型考虑内存,因此除非您需要超过 4000 个字符,否则不要使用 varchar(MAX)。
-
为了补充@DanGuzman 的评论,我将列数据类型宽度视为一种约束。如果您正在编写的应用程序预计不超过(在您的示例中)128 个字符,请将其设为
nvarchar(128),无论nvarchar(max)是否会将这些相同的字符存储在等量的存储空间中。
标签: sql-server database tsql size nvarchar