国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數(shù)據(jù)庫 > SQL Server > 正文

SQL Server 存儲(4/8):理解Page Free Space (PFS) 頁

2024-08-31 00:54:31
字體:
供稿:網(wǎng)友
SQL Server 存儲(4/8):理解Page Free Space (PFS) 頁

我們已經(jīng)討論了GAM與SGAM頁,數(shù)據(jù)頁(Data Page) ,現(xiàn)在我們來看下頁面自由空間頁(Page Free Space (PFS))。

PFS在數(shù)據(jù)文件里是第2頁(頁號1,頁號從0開始),接在文件頭(file header,頁號0)后。GAM與SGAM是用來跟蹤區(qū)分配情況,而PFS頁是用來跟蹤頁分配級別(page level allocation)。當(dāng)分配頁時,數(shù)據(jù)庫引擎使用GAM與SGAM來確定有可用頁的區(qū)。一旦數(shù)據(jù)庫引擎找到有可用頁的區(qū),它使用PFS頁來確定在那個區(qū)里未分配的頁,頁里可用空間量是多少。可用空間只對頁存儲LOB值(例如text/image, varchar(max), nvarchar(max), varbinary(max), row overflow data)或堆數(shù)據(jù)頁時跟蹤。默認(rèn)情況下,LOB數(shù)據(jù)保存在獨(dú)立的頁,只通過在數(shù)據(jù)頁保留一個指向獨(dú)立頁的指針。在有可用空閑的頁里數(shù)據(jù)才可以被保存。對于索引頁來說,數(shù)據(jù)應(yīng)該和索引順序一樣保存,所以沒有插入記錄指針的說法。也就沒有必要在索引里跟蹤可用空間。

GAM和SGAM都有位圖,但是PFS頁只有字節(jié)圖。在PFS頁區(qū)間它為每頁保留1位。一個PFS頁可以保存8088頁的可用空間使用信息。

在每字節(jié)的每一位代表信息如下:

  • 第0-2位:在頁里有多少可用空間
    • 0x00:空的,未使用
    • 0x01:1%-50%被占用
    • 0x02:51%-80%被占用
    • 0x03:81%-95%被占用
    • 0x04:96%-100%被占用
  • 第3位(0x08):頁里是否有1條或多條鬼影記錄(Ghost records)
  • 第4位(0x10):當(dāng)前頁是IAM頁么?
  • 第5位(0x20):當(dāng)前頁是混合頁么?
  • 第6位(0x40):當(dāng)前頁是已分配么?
  • 第7位:未使用

我們來看一個具體的例子:新建一個數(shù)據(jù)庫,并使用DBCC PAGE命令查看PFS頁的信息:

1 CREATE DATABASE PFSdb2 GO3 USE PFSdb4 GO5 DBCC TRACEON(3604)6 GO7 DBCC PAGE(PFSdb,1,1,3)

........

可以看到,自180頁到287頁空間沒分配了。

我們往表里插入點(diǎn)數(shù)據(jù),再用DBCC PAGE查看下PFS頁的信息:

1 SELECT * INTO SalesOrderHeaderTest FROM AdventureWorks2008R2.Sales.SalesOrderHeader2 DBCC TRACEON(3604)3 GO4 DBCC PAGE(PFSdb,1,1,3)

......

可以看到從288頁到1311頁有新頁添加。

我們現(xiàn)在把表drop掉,再看看PFS頁的信息:

......

可以看到剛才被分配的頁現(xiàn)在變成未分配了,但是空間還是100%被占用。這是因?yàn)樵陧摏]有被重新分配前,PFS字節(jié)沒有被完全重設(shè)。在重新分配時,數(shù)據(jù)庫引擎只重設(shè)分配狀態(tài)位,這可以讓數(shù)據(jù)庫引擎在回滾重新分配時,通過重設(shè)分配狀態(tài)位即可。


發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 文山县| 无极县| 扬州市| 临邑县| 噶尔县| 宜章县| 乐至县| 甘德县| 灵宝市| 惠州市| 商水县| 华容县| 大港区| 睢宁县| 苍南县| 孙吴县| 无锡市| 麻阳| 巨野县| 盘锦市| 都安| 卓资县| 汶川县| 珠海市| 比如县| 敦化市| 潜江市| 蓬安县| 丽水市| 来安县| 金平| 调兵山市| 永仁县| 板桥市| 庆元县| 石家庄市| 区。| 淮北市| 阜康市| 大连市| 庐江县|