SQL Server 2008儲存結構之PFS結構

2021-09-04 13:39:17 字數 3063 閱讀 6441

pfs(page free space),也叫頁面自由空間,該頁面用來跟蹤乙個檔案中每乙個特定的頁面的利用率情況。乙個檔案中第二個頁面(頁碼1)就是pfs頁面,該頁面的每個 位元組都記錄了相應頁面的分配情況、頁面型別、是否iam頁、是否包含刪除記錄、以及空間利用率資訊;pfs能夠管理和跟蹤8088個頁面的使用情況,即接 近64m的空間,以後每8088個頁面將再出現一次。

讓我們首先了解一下pfs的頁面管理位元組的構造,管理單位為位元組,每位元組管理乙個頁面。01

2345

67頁面是否分配

是否混合頁面

是否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%。

4f09c060:   00009c1f

44444444

00004444

60647060

†....dddd..dd`dp`        

4f09c070:  

74706070

60606060

60707060

40404040

†tp`p`````pp`@@@@        

4f09c080:  

40404040

61706070

60606070

60306060

†@@@@ap`p```p`

0``        

4f09c090:  

60217024

60706060

60606060

40203020

†`!p$`p``````@

04f09c0a0:  

20202820

60606060

60606070

60606060

†  ( ```````p````        

4f09c0b0:  

70203020

30706070

70607060

70203060

†p 0

0p`pp`p`p

0`        

4f09c0c0:  

70203068

70607060

70607060

70607060

†p 0hp`p`p`p`p`p`        

4f09c0d0:  

70203060

60602020

60702030

20306070

†p 0

```  `p 00

`p        

4f09c0e0:  

60702830

60707070

60606070

60706070

†`p(

0`ppp```p`p`p        

4f09c0f0:  

60706070

40404020

20202020

60706070

†`p`p@@@     `p`p        

4f09c100:  

60706060

64616070

60706070

60706070

†`p``da`p`p`p`p`p        

4f09c110:  

60700000

00000000

00000000

00000000

†`p..............        

4f09c120:  

00000000

00000000

00000000

00000000

†................          

4f09dff0:  

00000000

00000000

00000000

00006000

†..............`.        

最後讓我們用internals viewer外掛程式看一下pfs頁的全貌吧。

第七個頁面(頁碼6)被稱為差異變更(differential changed map,dcm)頁面。它跟蹤乙個檔案中的哪乙個區在最新一次完全資料庫備份以後被修改過。sql server用在增量備份時只對已發生資料變更的分割槽進行增量備份即可。

第八個頁面(頁碼7)被稱為批量更改對映(bulk changed map,bcm)頁面,該頁面當檔案中的乙個區在最小量或批量記日誌操作中被使用時用到。就像gam和sgam頁面,dcm和bcm頁面針對它們代表的文 件區間中每乙個區都有乙個位元位相對應。這些頁面的常規間距為511 230個頁面。

此外關於資料庫在進行dml操作如何尋找合適的分割槽和頁面對資料進行處理還是留待後續介紹吧。

儲存過程 SQL SERVER 2008

一 實驗題目 儲存過程 二 實驗目的 熟悉儲存過程的定義和使用,熟練運用 select update insert delete 命令完成對學生資訊資料庫的查詢 更新 新增 刪除操作。題目六 藥品 編號,名稱,廠商 處方 藥品編號,數量,醫生編號 醫生 編號,姓名,科室,職稱 根據上面基本表的資訊定...

SQL Server 2008儲存結構之PFS結構

pfs page free space 也叫頁面自由空間,該頁面用來跟蹤乙個檔案中每乙個特定的頁面的利用率情況。乙個檔案中第二個頁面 頁碼1 就是pfs頁面,該頁面的每個 位元組都記錄了相應頁面的分配情況 頁面型別 是否iam頁 是否包含刪除記錄 以及空間利用率資訊 pfs能夠管理和跟蹤8088個頁...

Sql Server 2008 常用系統儲存過程

sp add log file recover suspect lib 當資料庫的復原不能完成時,向檔案組增加乙個日誌檔案 sp add targetservergroup 增家指定的伺服器組 sp add targetsvrgrp member 在指定的目標伺服器組增加乙個目標伺服器 在資料庫裡增...