加入收藏 | 设为首页 | 会员中心 | 我要投稿 应用网_丽江站长网 (http://www.0888zz.com/)- 科技、建站、数据工具、云上网络、机器学习!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

sql-server-2005 – 使用SQL varchar(max)还是文本?

发布时间:2021-03-04 18:35:41 所属栏目:MsSql教程 来源:网络整理
导读:我正在使用SQL Server 2005,我有一个列,我需要存储大量文本(有时超过8000个字符,varchar限制).使用“文本”数据类型是否有缺点?我还读到了使用varchar(MAX) – 如果我存储的大部分数据少于8000个字符会更好,但我需要能够支持更多吗? 解决方法 只要你有超

我正在使用SQL Server 2005,我有一个列,我需要存储大量文本(有时超过8000个字符,varchar限制).使用“文本”数据类型是否有缺点?我还读到了使用varchar(MAX) – 如果我存储的大部分数据少于8000个字符会更好,但我需要能够支持更多吗?

解决方法

只要你有超过8000字节的数据潜力,你应该总是在2005年寻找新的LOB类型而不是遗留类型(text,ntext,image).

新类型适用于大多数内部字符串操作函数,而旧类型则不适用.它们以完全相同的方式存储在数据库中,但也有一些小的调整来读取新类型的算法.

但有一些事情需要注意:

>默认情况下,遗留类型存储在行外,这意味着无论数据大小如何,都有一个随机IO来获取数据.您当然可以使用“text in-row”选项更改此设置
>默认情况下,新类型存储在ON行中,最多可达8000字节限制,只要记录中有空格即可.这样可以降低使用随机IO获取值的机会,但会使您的数据记录更长,从而导致其他问题.您可以通过更改large-values-types-off-row选项来更改数据是存储在行内还是行外
>如果表定义中有新的或旧的LOB类型,则意味着表的聚簇索引无法在Enterprise Edition中使用联机索引操作.

我发布了一篇博文,在http://www.sqlskills.com/BLOGS/PAUL/post/Importance-of-choosing-the-right-LOB-storage-technique.aspx更详细地讨论了这个问题.

希望这可以帮助

(编辑:应用网_丽江站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读