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

Pra*_*pta 1 sql sql-server sql-server-2008

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

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

And*_*rew 7

是的,但是这会很快变得混乱,事实上,与varchar(max)选项相比,性能会更差.问题是单行允许在页面上限制8060字节.您可以超过该限制,但只要您接受在页外存储的数据和其他地方的页面.

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

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

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

不推荐使用:文本 - 不要将其用作解决方案

简而言之 - 不要试图避免varchar(max) - 你会让你的生活变得更糟.