<address id="thnfp"></address>

    <address id="thnfp"><th id="thnfp"><progress id="thnfp"></progress></th></address>
    <listing id="thnfp"><nobr id="thnfp"><meter id="thnfp"></meter></nobr></listing>
    以文本方式查看主題

    -  安易免費財務軟件交流論壇  (http://m.gangyx.cn/bbs/index.asp)
    --  電腦知識交流  (http://m.gangyx.cn/bbs/list.asp?boardid=11)
    ----  SQL Server 2008存儲結構之PFS結構  (http://m.gangyx.cn/bbs/dispbbs.asp?boardid=11&id=32406)

    --  作者:炙天
    --  發布時間:2011/1/13 8:51:12
    --  SQL Server 2008存儲結構之PFS結構

    PFS(Page Free Space),也叫頁面自由空間,該頁面用來跟蹤一個文件中每一個特定的頁面的利用率情況。一個文件中第二個頁面(頁碼1)就是PFS頁面,該頁面的每個 字節都記錄了相應頁面的分配情況、頁面類型、是否IAM頁、是否包含刪除記錄、以及空間利用率信息;PFS能夠管理和跟蹤8088個頁面的使用情況,即接 近64M的空間,以后每8088個頁面將再出現一次。

      讓我們首先了解一下PFS的頁面管理字節的構造,管理單位為字節,每字節管理一個頁面。

    01234567
     頁面是否分配是否混合頁面是否IAM頁面是否幻影頁面空間利用率

      第0個bit為保留字節,始終為0

      第1個bit表示該頁面是否已分配,我們知道GAM頁用來管理區是否已分配,但一個區包含8個頁面,所以用該bit用來準確定位該區的某個頁面是否已分配出去了。

      第2個bit表示該頁面是否混合分區的一個頁面。

      第3個bit表示該頁面是否是一個IAM頁面。

      第4個bit表示該頁面中是否包含幻影或已刪除記錄,這有助于SQL Server定期清理幻影或已刪除記錄。

      第5~7個頁面表示該頁面的空間使用率情況。

       • 0:表示該頁面為空
    • 1:表示該頁面已使用1~50%
    • 2:表示該頁面已使用51~80%
    • 3:表示該頁面已使用81~95%
    • 4:表示該頁面已使用96~100%

      我們可以用dbcc page(testdb,1,1,2)來看一下PFS的頁面結構,BUFFER和PAGE HEADER再次就不做詳述了,PFS關于頁面分配的信息是從第100個字節開始的,最后四個字節為系統保留字節,總計管理8088頁。

      其中頭四頁均為44,換算成2進制即0100 0100,即為未分配(大概為保留頁的緣故),且為已分配完成的混合區或統一類型區,非IAM頁,且無幻影記錄,空間利用率96~100%。

    <style type="text/css"></style>

    Channel