面对存储超过8000个字符的挑战,但是不想使用nvarChar(max),因为它会影响性能。
是否可以在不使用nvarChar(max)的情况下在字段中存储最多15000个字符? 是否有可能在不使用nvarChar的情况下根据数据大小动态增加字段的大小?
答案 0 :(得分:7)
是的,但是很快就会变得混乱,实际上,解决方法的性能比varchar(max)选项差。问题是单行允许页面上限制8060字节。您可以超过该限制,但前提是您接受页面外和其他页面上存储的数据。
首选选项:使用Varchar(Max)并允许使用LOB存储。
替代方法:使用多个varchar(8000)字段,并拆分/连接字符串-数据将获得Short Large Object'ed(SLOB),并且varchar(8000)字段将存储在不同的页面中。这样会降低性能-更不用说拆分/连接性能问题了。
第二种选择-压缩数据,但是没有保证,您仍然可以将其存储在8k的限制内。
已弃用:文本-请勿将其用作解决方案
简而言之-不要尝试避免使用varchar(max)-这样会使您的生活变得更糟。