SQL Server 2005之改进还是没改进?

SQL Server 2005是微软五年磨一剑的产品,推出之后赞誉声一片。确实,相比sql server 2000,2005有了长足的进步,算是从娃娃长大成人了,可是,一些儿时的坏习惯,依然如故啊。


在SQL Server 2000中,数据行不能跨越页边界(参考:http://ningoo.itpub.net/post/2149/205525),所以限制了一行数据最大只能8060字节,到了2005,微软对于字符类型做了改进,号称原来8k的varchar,通过新的varchar(max)可以支持到2G大小,从此可以使用varchar(max)来替代text了,好消息。

可是,数据行的限制呢?依然存在,不知道这个历史遗留问题,是修改的难度太大,还是微软故意忽视了?

create table big(a char(4000),b char(4000),c char(4000))

Msg 1701, Level 16, State 1, Line 3
Creating or altering table 'big' failed because the minimum row size would be 12007, including 7 bytes of internal overhead. This exceeds the maximum allowable table row size of 8060 bytes.

显然,微软对于varchar(max)类型做了另外的处理,应该是象Oracle的行外LOB一样,在数据行中存了一个指针指向varchar(max)实际存储位置。既然已经能实现行数据链接,为什么还要将行限制在一个页内?

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/193161/viewspace-50334/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/193161/viewspace-50334/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值