日期:2014-05-18  浏览次数:20584 次

【交流贴】Alter修改表结构对数据存储的影响(三)
详情请访问我的blog:http://blog.csdn.net/HEROWANG/archive/2009/12/07/4959372.aspx

接上一篇:  

Alter修改表结构对数据存储的影响(一)http://blog.csdn.net/HEROWANG/archive/2009/11/27/4890343.aspx

Alter修改表结构对数据存储的影响(二)http://blog.csdn.net/HEROWANG/archive/2009/12/04/4940077.aspx

七、尚存的问题:

  1、分页的行,在原来数据页中保留的九个字节的作用?

  2、分页的数据,最后加的14个字节的作用

  3、在前面,我们已经看到,修改表的结构其实是在表的后面增加一个新的列,那么sql server如何知道从哪块开始读取该列的数据呢?
 为了方面本篇的阅读,把前面的dbcc ind的结果放到这里:
 

要来解答这三个问题,需要从上面的DBCC中取出如下的数据,然后进行分析,就可以知道第一个和第二个问题的答案了。

原来数据的九个字节 分页后数据的14个字节
 
04af0000 00010002 00 0100da87 00047200 00000100 0000
 
04af0000 00010003 00 0100da87 00047200 00000100 0200
 
042d0000 00010000 00 0100da87 00047200 00000100 0400
 
042d0000 00010001 00 0100da87 00047200 00000100 0600
 

1、分页的行,在原来数据页中保留的九个字节的作用?

  数据分页以后,在原来的位置会有一个长度为9个字节的数据,这个数据的作用是:给出了数据转移到什么位置。第一个字节 04为状态位;下面四个字节af0000 00为页面id,转换为十进制为175,恰好就是aaaa数据转移后所在的页面号;下面的两个字节0100为文件号;最后的两个字节为数据转移后的所在数据页面的slot号。

2、分页的数据,最后加的14个字节的作用

  分页后数据的14个字节:前面六个字节0100da870004 ,暂时只发现只要转移过,都是这个值,具体含义尚不清楚。后面的8个字节的左右是:给出了这个数据原来的位置。第七个到第十个字节7200 0000(转换为十进制为144)为数据原来的数据页。下面的两个字节0100为文件号;最后的两个字节为数据转移前的所在数据页面的slot号。

3、sql server如何知道从哪块开始读取该列的数据呢?

  这个在石头的blog中写的很清楚。详情见:剖析SQLSERVER2005的页面结构--表修改的内部处理篇







------解决方案--------------------
村SF
------解决方案--------------------
BD
------解决方案--------------------
db
------解决方案--------------------
学习
------解决方案--------------------
学习
------解决方案--------------------
study
------解决方案--------------------
dddd
------解决方案--------------------
很好很强大。。。
------解决方案--------------------
..
------解决方案--------------------
很强大
------解决方案--------------------
看的有点迷糊
------解决方案--------------------
学习
------解决方案--------------------
呵呵.不错
------解决方案--------------------
学习
------解决方案--------------------
呵呵.不错
------解决方案--------------------
学习了
------解决方案--------------------
up
------解决方案--------------------
study
------解决方案--------------------
.
------解决方案--------------------
学习
------解决方案--------------------
学习学习
------解决方案--------------------
!!!!!!!!!!!!!!!!1
------解决方案--------------------