学习SQL中发现这样一个问题:
    SQL数据库文件的空间分配:数据文件划分为不同的页面。
    每页可以包含至少表中的一行,单一行不超过页的长度。
    每个页的大小为8K。照这样理解的话,单一行不能超过8K的。
可是:比如image数据类型,可变长度介于0~2(31次方)
2(31次方)这个肯定超过8K了啊,它是怎么存储的呢?

解决方案 »

  1.   

    剖析SQLSERVER2005的页面结构--表修改的内部处理篇http://topic.csdn.net/u/20091202/13/c1465d24-61f7-4be5-841d-f212377c19db.html?21728
      

  2.   

    SQL SERVER 2005页面存储之--特殊数据类型在页面中的存储
    http://topic.csdn.net/u/20100405/21/16d69679-2414-4bc9-be48-698a3d8bd8c0.html?60789SQL SERVER2005页面存储3之--聚集索引的存储
    feixianxxx
    http://topic.csdn.net/u/20100414/20/7df74234-b286-4343-9614-aaa74800705d.html?99335SQL SERVER 2005页面存储之--表的数据行在页中的存储
    http://topic.csdn.net/u/20100317/19/58c3ce76-b4be-4774-8042-c3fc455e5329.html?57666
      

  3.   

    image,text,varchar(max)等大型数据类型是特殊存储的,参见1楼,2楼
      

  4.   

    可以阅读sql server技术内幕系列中的存储引擎一书
      

  5.   

    varchar(max)-------text;nvarchar(max)-----ntext;varbinary(max)----image.例如text, image, SQL 会存在别的地方,所以从SQL 2005 后推荐使用varchar(max)代替text,因为varchar(max)是可变长度,当长度没有超过限度,则存在数据库中,如果超过限度则存在别的地方
      

  6.   

    哪位能给一个SQL技术内幕的下载啊?多谢了。