<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      【轉】SQL Server 存儲:理解IAM 頁

      原文地址:http://www.rzrgm.cn/woodytu/p/4488930.html

      在以前的文章里,我們討論了數據頁GAM和SGAM,還有PFS頁。今天我們一起來討論下索引分配映射(Index Allocation Map:IAM)頁。

      在SQL Server 2005和以后的版本里,分配單元(allocation units)以下三個類型:

      • IN_ROW_DATA 

        用于存儲堆分區或索引分區,即heap和B-tree。

      • LOB_DATA

        用于存儲大型對象 (LOB) 數據類型,例如 xml、varbinary(max) 和 varchar(max)。

      • ROW_OVERFLOW_DATA

        用于存儲超過 8,060 字節行大小限制的 varchar、nvarchar、varbinary 或 sql_variant 列中存儲的可變長度數據。 

      在我們討論GAM和SGAM頁時,我們注意到,一個GAM頁可以跟蹤4GB的空間并每4GB空間增加一個GAM頁。一個IAM頁是用來跟蹤,表的指定分配單元,在分區的GAM區間里,頁或區的分配情況。讓我們通過實例來演示下。

      我們創建一個包含3列varchar(3000)數據類型和1列LOB數據類型,還有一列INT數據類型的表。這樣我們的表就包含里三類分配單元。

      復制代碼
      復制代碼
       1 USE InternalStorageFormat
       2 GO
       3 
       4 CREATE TABLE IAMTable(
       5 Id INT,
       6 col1 VARCHAR(3000),
       7 col2 VARCHAR(3000),
       8 col3 VARCHAR(3000),
       9 Lobdata NTEXT)
      10 GO
      復制代碼
      復制代碼

      我們往表里插入數據

      1 INSERT  INTO IAMTable
      2 VALUES  ( 1, 'A', 'B', 'C', N'Test' )

      這里我們插入的1條數據不會生成溢出行(row overflow)。我們使用DBCC IND命令列出分配給這個表的頁。

      1 DBCC IND('InternalStorageFormat','IAMTable',1)

      從上圖可以清楚看到,SQL Server為我們這個表分配了2個IAM頁(page type為10),用來跟蹤In-row data和LOB data的分配。因為當前的記錄大小不足以創建ROW_OVERFLOW_DATA,SQL Server沒有給我們分配一個IAM頁來跟蹤ROW_OVERFLOW_DATA的分配。

      我們來插入一條可以讓SQL Serve生成ROW_OVERFLOW_DATA,并用DBCC IND命令查看頁面分配情況。

      1 INSERT  INTO IAMTable
      2 VALUES  ( 1, REPLICATE('A',3000), REPLICATE('A',3000), REPLICATE('A',3000), N'Test' )
      3 
      4 DBCC IND('InternalStorageFormat','IAMTable',1)

      圖1

      現在表已經有了所有這3類分配單元。如果我們這表上有更多的分區,那就每個區都有獨立的一系列IAM頁。下圖可以給你一個清晰的展示。

      簡而言之,堆或B樹結構至少有一個IAM頁,最多有3倍分區個IAM頁。如果表繼續增長,頁分配在不同的GAM區間,會有更多的IAM頁增加。這些IAM頁會鏈接起來,這個列表叫IAM鏈。

      現在我們已經知道了IAM頁的用處,讓我們一起看看在IAM頁里是什么樣的。我們知道,表或索引的第一個8頁會分配在混合區的單個頁面里。從剛才的圖片我們知道175頁是用來跟蹤in-row data分配單元的IAM頁,我們用DBCC PAGE命令看看頁里面的信息是什么。

      1 DBCC TRACEON(3604)
      2 go
      3 DBCC PAGE('InternalStorageFormat',1,175,3)

      在 IAM:Header區域,我們看到下列字段:

      • sequenceNumber = 0          這是IAM頁在IAM鏈中的位置。在IAM鏈中每增加1個IAM頁,這里會加1。      
      • status = 0x0                       未使用。 
      • objectId = 0                        未使用。
      • indexId = 0                         未使用。
      • page_count = 0                   未使用。
      • start_pg = (1:0)                  這是頁面映射的GAM區間。保存著在映射的GAM區間的第一個頁ID。

      Single Page allocation 區域:這里顯示的是從混合區分配的第1個8頁。在第8頁后,SQL開始從統一區分配。因此這個部分只用在第一個IAM頁鏈。174和210頁是從混合區分配的,這個和剛才DBCC IND('InternalStorageFormat','IAMTable',1)輸出結果一致。

      Extent Alloc 區域:這里顯示的是分配單元區分配。

      我們執行下列語句,往表里插入7條記錄,這樣的話,我們表里就有9條記錄了,再用DBCC PAGE看下IAM頁的信息。

      復制代碼
      復制代碼
      1 INSERT  INTO IAMTable
      2 VALUES  ( 1, REPLICATE('A',3000), REPLICATE('A',3000), REPLICATE('A',3000), N'Test' )
      3 go 7
      4 
      5 DBCC TRACEON(3604)
      6 go
      7 DBCC PAGE('InternalStorageFormat',1,175,3)
      復制代碼
      復制代碼

      可以看到

      紅色區域:自174,210之后,增加了212,214,215,217, 218,220,共8個頁面,即混合區分配完成。

      藍色區域:從224開始分配統一區了。

      使用DBCC IND查看下頁面分配情況,完全一致:

      1 DBCC IND('InternalStorageFormat','IAMTable',1)

       

      參考文章: 

      http://www.sqlservercentral.com/blogs/practicalsqldba/2013/03/07/sql-server-understanding-the-iam-page/

       

      轉載自:FH1004322 的博客 http://www.rzrgm.cn/FH-cnblogs/p/7071000.html

      posted @ 2022-06-16 20:47  竹樓風雨聲  閱讀(180)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 亚洲青青草视频在线播放| 中文国产成人精品久久不卡| 乱中年女人伦av三区| 国产精品一码在线播放| 欧美18videosex性欧美tube1080| 无码精品人妻一区二区三李一桐| 午夜福利免费视频一区二区| 亚洲午夜精品国产电影在线观看| 熟女精品视频一区二区三区| 亚洲成a∨人片在线观看不卡| 天堂av最新版中文在线| 中文字幕少妇人妻精品| A男人的天堂久久A毛片| 国产一区二区三区禁18| 国产免费人成网站在线播放 | 国产三级黄色的在线观看| 正阳县| 蜜臀av在线一区二区三区| 亚洲精品一区二区制服| 国产精品高清中文字幕| 性动态图无遮挡试看30秒 | 国产在线国偷精品产拍| 极品vpswindows少妇| 国产激情一区二区三区在线| 亚洲精品国产自在久久| 亚洲爽爆av一区二区| 深夜av免费在线观看| 肉大捧一进一出免费视频| 内射视频福利在线观看| 日本国产一区二区三区在线观看| 亚洲中文字幕精品无人区| 国产麻花豆剧传媒精品mv在线 | 视频一区二区三区刚刚碰| 欧美亚洲一区二区三区在线| 18禁无遮挡啪啪无码网站| 淅川县| 精品亚洲精品日韩精品| 亚洲av无码片在线播放| 成人免费无遮挡在线播放| 久久精品国产大片免费观看| 亚洲精品成人一二三专区|