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