Row&Page&Extent的关系

本文深入探讨了SQLServer数据库的组成、数据存储原理及优化策略,解释了数据文件、日志文件的作用,并阐述了Extent和Page的概念及其对数据库性能的影响。

   对于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对象定义都存到系统表。

<?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" exclude-result-prefixes="fo"> <!-- 根元素 --> <xsl:template match="/"> <xsl:apply-templates select="Root"/> </xsl:template> <!--主模板//--> <xsl:template match="Root"> <!--在此可以定义一些全局的风格信息,如字体等--> <fo:root font-family="Microsoft YaHei" xmlns:fo="http://www.w3.org/1999/XSL/Format"> <!--版面定义//--> <fo:layout-master-set> <fo:simple-page-master master-name="A4" page-width="21cm" page-height="29.7cm"> <fo:region-body margin-top="1.5cm" margin-bottom="1cm" margin-left="5%" extent="1cm"/> <!--页眉//--> <fo:region-before extent="1cm"/> <!--页脚//--> <fo:region-after extent="1cm"/> </fo:simple-page-master> </fo:layout-master-set> <fo:page-sequence master-reference="A4"> <!--页眉显示内容--> <fo:static-content flow-name="xsl-region-before"> <!--页眉显示图片内容--> <fo:block text-align="center" margin-top="0.5cm" margin-bottom="0.5cm" font-weight="bold" font-size="5mm" wrap-option="no-wrap"> <xsl:value-of select="title"/> </fo:block> </fo:static-content> <!--页脚显示内容--> <fo:static-content flow-name="xsl-region-after"> <fo:block text-align="center" font-size="10pt"> <xsl:value-of select="concat('页码设置:')"/> <fo:page-number/>OF <fo:page-number-citation ref-id="end"/> </fo:block> </fo:static-content> <fo:flow flow-name="xsl-region-body"> <xsl:apply-templates select="headList" /> </fo:flow> </fo:page-sequence> </fo:root> </xsl:template> <xsl:template match="headList"> <fo:block font-size="4mm"> <fo:table text-align="center" border-collapse="collapse" letter-spacing="1px" width="100%" border-width="1pt"> <fo:table-column border-style="solid" border-width="1pt" column-width="20%"/> <fo:table-column border-style="solid" border-width="1pt" column-width="20%"/> <fo:table-column border-style="solid" border-width="1pt" column-width="10%"/> <fo:table-column border-style="solid" border-width="1pt" column-width="10%"/> <fo:table-column border-style="solid" border-width="1pt" column-width="8%"/> <fo:table-column border-style="solid" border-width="1pt" column-width="20%"/> <!--表头--> <fo:table-header> <fo:table-row display-align="center" border-style="solid" font-weight="bold" border-width="1pt" padding="10px"> <fo:table-cell> <fo:block>物料编码</fo:block> </fo:table-cell> <fo:table-cell> <fo:block>物料说明</fo:block> </fo:table-cell> <fo:table-cell> <fo:block>子库存</fo:block> </fo:table-cell> <fo:table-cell> <fo:block>货位</fo:block> </fo:table-cell> <fo:table-cell> <fo:block>数量</fo:block> </fo:table-cell> <fo:table-cell> <fo:block>说明</fo:block> </fo:table-cell> </fo:table-row> </fo:table-header> <!--表明细--> <fo:table-body> <xsl:apply-templates select="lineList"/> </fo:table-body> </fo:table> </fo:block> <fo:block id="end"/> </xsl:template> <xsl:template match="lineList"> <fo:table-row border-style="solid"> <fo:table-cell> <fo:block> <xsl:value-of select="itemCode"/> </fo:block> </fo:table-cell> <fo:table-cell> <fo:block> <xsl:value-of select="itemDesc"/> </fo:block> </fo:table-cell> <fo:table-cell> <fo:block> <xsl:value-of select="supplySubinv"/> </fo:block> </fo:table-cell> <fo:table-cell> <fo:block> <xsl:value-of select="supplyLocatorCode"/> </fo:block> </fo:table-cell> <fo:table-cell> <fo:block> <xsl:value-of select="needQty"/> </fo:block> </fo:table-cell> <fo:table-cell> <fo:block> <xsl:value-of select="specify"/> </fo:block> </fo:table-cell> </fo:table-row> </xsl:template> </xsl:stylesheet> 有什么问题
最新发布
10-11
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值