• SQL Server 数据库结构


    全局分配映射表 (GAM)
    GAM 页记录已分配的区。每个 GAM 包含 64,000 个 区,相当于近 4 GB 的数据(每个区占用一位,每八个区占用一个字 节,每个页大概可用字节为8000个字节,所以能管理4GB的数据)。GAM 用 一个位来表示所涵盖区间内的每个区的状态。如果位为 1,则区可用;如果 位为 0,则区已分配。

    共享全局分配映射表 (SGAM)
    SGAM 页记录当前用作混合区且至少有一个未使用的页的区。每个 SGAM 包含 64,000 个区,相当于近 4 GB 的数据。SGAM 用一个位来表示所涵盖区间内的每个区的状 态。如果位为 1,则区正用作混合区且有可用页。如果位为 0,则区未用作混合区,或者虽然用作混合区但其所有页均在使用中。

    区的当前使用情况 GAM 位设置 SGAM 位设置
    可用,未使用 1 0
    统一区或已满的混合区 0 0
    具有可用页的混合区 0 1

    这样,数据库在分配对象的时候,先去找混合区,那还有未使用的混合区就是到GAM页和SGAM页里 对应的0或者1.

    PFS:

    Free space page,他用来跟踪页面的使用者状态,到底是满的还是空 的,还是只是使用了百分之几十。每个页面都有一个对应的字节来描述,所以,每个pfs页面只能管理约8000个页面。数据库引擎将使用 PFS 页来记录区中的哪些页已分配或哪些页可用。数据库引擎必须分配新页时,将使用 此信息。保留的页中的可用空间量仅用于堆和 Text/Image 页。 数据库引擎必须找到一个具有可用空间的页来保存新插入的行时,使用此信息。索引不要求跟踪页的可用空间,因为插入新行的点是由索引键值设置的。

  • 相关阅读:
    辞职后的第二个星期
    最近似乎应该休眠了.
    文件.二进制转换
    AVL树
    ajax 的同步和异步
    在SQL Server实现最短路径的搜索
    网页嵌套com例子
    Vs2005 dll 设置def导出函数
    [转]ATL开发一个ActiveX
    Atl COM发布与优化
  • 原文地址:https://www.cnblogs.com/qianyz/p/1846563.html
Copyright © 2020-2023  润新知