讨论一下SQLServer存储结构
来源:优易学  2011-11-29 13:07:19   【优易学:中国教育考试门户网】   资料下载   IT书店
  关于SQL Server内部存储结构的,我觉得挺有意思,所以写下这篇博客讨论并归纳了一下。问题是这样的:
  首先我们创建两张表,一张表的列长度是4039字节,另一张表的长度是4040字节,他们就只有一个字节的差距,比如以下创建表的SQL:
  CREATE TABLE tb4039(c1 INT IDENTITY,c2 char(4035) not null)
  CREATE TABLE tb4040(c1 INT IDENTITY,c2 char(4036) not null)
  由于INT类型是4个字节,所以我们创建的tb4039表有4+4035=4039个字节的长度,tb4040中的c2字段比tb4039中的c2字段多了一个字节,总长度是4040字节,其他没有区别了。接下来是向这两个表中插入数据,比如插入100条数据,SQL语句是:
  DECLARE @i INT
  SET @i=1
  WHILE @i<=100
  BEGIN
  INSERT INTO tb4039 (c2) VALUES('test'+CONVERT(VARCHAR(5),@i));
  INSERT INTO tb4040 (c2) VALUES('test'+CONVERT(VARCHAR(5),@i));
  SET @i=@i+1
  END
  使用SSMS来查看一下这两个表的空间占用量,如果是SQL2005,那么可以使用SSMS自带的报表查看,如果是SQL2008,那么直接使用对象资源管理器详细信息界面进行查看(如果使用的是SQL2008而不知道怎么查看表空间使用量那么请查看我以前写的一篇博客:SQL Server 2008新特性之SSMS增强)。

责任编辑:小草

文章搜索:
 相关文章
热点资讯
热门课程培训