我可以在SQL表的字段中存储8000个以上的字符吗?

时间:2018-10-15 11:13:05

标签: sql sql-server sql-server-2008

面对存储超过8000个字符的挑战,但是不想使用nvarChar(max),因为它会影响性能。

是否可以在不使用nvarChar(max)的情况下在字段中存储最多15000个字符? 是否有可能在不使用nvarChar的情况下根据数据大小动态增加字段的大小?

1 个答案:

答案 0 :(得分:7)

是的,但是很快就会变得混乱,实际上,解决方法的性能比varchar(max)选项差。问题是单行允许页面上限制8060字节。您可以超过该限制,但前提是您接受页面外和其他页面上存储的数据。

首选选项:使用Varchar(Max)并允许使用LOB存储。

替代方法:使用多个varchar(8000)字段,并拆分/连接字符串-数据将获得Short Large Object'ed(SLOB),并且varchar(8000)字段将存储在不同的页面中。这样会降低性能-更不用说拆分/连接性能问题了。

第二种选择-压缩数据,但是没有保证,您仍然可以将其存储在8k的限制内。

已弃用:文本-请勿将其用作解决方案

简而言之-不要尝试避免使用varchar(max)-这样会使您的生活变得更糟。