ITPub博客

首页 > Linux操作系统 > Linux操作系统 > SQL Server 2005之改进还是没改进?

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

原创 Linux操作系统 作者:NinGoo 时间:2019-06-12 15:54:08 0 删除 编辑

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/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2004-12-07

  • 博文量
    200
  • 访问量
    129205