对于SQL Server的数据库由数据文件(主数据文件和次要数据文件)和日志文件组成的具体内容就不用多说了。
每个数据库所有数据都保存在数据文件中(日志文件除外),数据最小单位就是页,大小8K(8192B),其中每页还有132byte的标题信息,剩下的8060字节用于数据存储。
假设一行长度为80Byte,那么一页也就存100笔数据,第101笔就要存到下一页,以此类推。
如果这样的话,会产生两个问题:
加重系统负担;可能产生空间不连续的情况。
为了解决这些问题,SQL Server 每次配置8个连续的Page,称为连续的空间为Extent,优点是:
1、同一个数据表的数据有机会存放到连续的区域;
2、减少SQL Server空间的配置次数。
对于三者之间的关系大家可能清楚了,但还要注意:SQL Server只为数据表和索引分配extent和page,所以,你就听过data page和index page,但绝对没有听过view page和Procedure page,因为view、procedure、fuction对象定义都存到系统表。