婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > ORACLE中段的HEADER_BLOCK示例詳析

ORACLE中段的HEADER_BLOCK示例詳析

熱門標簽:濟南地圖標注公司 圖像地圖標注 海南400電話哪里辦理 貴陽電話外呼系統(tǒng)哪家好 呼倫貝爾智能手機地圖標注 分布式呼叫中心 安陽外呼系統(tǒng)免費 400電話是不是免費申請 南寧人工智能電銷機器人費用

前言

段(segment)是一種在數(shù)據(jù)庫中消耗物理存儲空間的任何實體(一個段可能存在于多個數(shù)據(jù)文件中,因為物理的數(shù)據(jù)文件

是組成邏輯表空間的基本物理存儲單位)

最近在學(xué)習(xí)段(segment)、區(qū)間(extent)時,對段的HEADER_BLOCK有一些疑問,本文記錄一下探究的實驗過程以及相關(guān)總結(jié),,如有不對的地方,敬請指出。以SCOTT.EMP表為例(下面測試環(huán)境為Oracle Database 10g Release 10.2.0.5.0 - 64bit Production):

SELECT FILE_ID, 
  BLOCK_ID, 
  BLOCKS 
FROM DBA_EXTENTS 
WHERE OWNER ='OWNER'
  AND SEGMENT_NAME = 'TABLE_NAME'; 

 

SELECT HEADER_FILE
  , HEADER_BLOCK
  , BYTES
  , BLOCKS
  , EXTENTS 
FROM DBA_SEGMENTS 
WHERE OWNER='OWNER' AND SEGMENT_NAME='SEGMENT_NAME';

如上所示,DBA_SEGMENTS 中的HEADER_BLOCK 與DBA_EXTENTS的BLOCK_ID不同(HEADER_BLOCK:文件ID為4的第27個塊,區(qū)間的第一個塊的BLOCK_ID為第25個塊),這個的原因如下:

一個segment的第一個區(qū)的第一個塊是FIRST LEVEL BITMAP BLOCK,第二個塊是SECOND LEVEL BITMAP BLOCK,這兩個塊是用來管理free block的,第三個塊是PAGETABLE SEGMENT HEADER,這個塊才是segment里的HEADER_BLOCK,再后面的塊就是用來記錄數(shù)據(jù)的。所以25+2=27. 詳細可以參考《循序漸進ORCLE:數(shù)據(jù)庫管理、優(yōu)化與備份》這本書的第5章。

下面我們創(chuàng)建一個表,測試一下是否也是這個規(guī)律,如下所示:

SQL> CREATE TABLE TEST1.MMM 
 2 AS
 3 SELECT * FROM DBA_OBJECTS;
 
Table created.
 
SQL> COL SEGMENT_NAME FOR A32;
SQL> SELECT SEGMENT_NAME
 2   ,FILE_ID
 3   ,BLOCK_ID
 4   ,BLOCKS
 5 FROM DBA_EXTENTS 
 6 WHERE SEGMENT_NAME='MMM' AND OWNER='TEST1'
 7 ORDER BY BLOCK_ID ASC;
 
SEGMENT_NAME      FILE_ID BLOCK_ID  BLOCKS
-------------------------------- ---------- ---------- ----------
MMM          76   9   8
MMM          76   17   8
MMM          76   25   8
MMM          76   33   8
MMM          76   41   8
MMM          76   49   8
MMM          76   57   8
MMM          76   65   8
MMM          76   73   8
MMM          76   81   8
MMM          76   89   8
 
SEGMENT_NAME      FILE_ID BLOCK_ID  BLOCKS
-------------------------------- ---------- ---------- ----------
MMM          76   97   8
MMM          76  105   8
MMM          76  113   8
MMM          76  121   8
MMM          76  129   8
MMM          76  137  128
MMM          76  265  128
MMM          76  393  128
MMM          76  521  128
MMM          76  649  128
MMM          76  777  128
 
22 rows selected.
 
SQL> SELECT HEADER_FILE
 2  , HEADER_BLOCK
 3  , BYTES
 4  , BLOCKS
 5  , EXTENTS 
 6 FROM DBA_SEGMENTS 
 7 WHERE OWNER='TEST1' AND SEGMENT_NAME='MMM';
 
HEADER_FILE HEADER_BLOCK  BYTES  BLOCKS EXTENTS
----------- ------------ ---------- ---------- ----------
   76   11 7340032  896   22

如上所示,段對象TEST1.MMM的header_block為11 ,而對應(yīng)的區(qū)間的第一個塊對象ID為9, 也是9+2=11,確實是如此,那么我們來DUMP數(shù)據(jù)塊看看,如下所示

SQL> alter system dump datafile 76 block 9;
 
System altered.
 
SQL> alter system dump datafile 76 block 10;
 
System altered.
 
SQL> alter system dump datafile 76 block 11;
 
System altered.
 
SQL> select user_dump.value 
 2   || '/' 
 3   || lower(instance.value) 
 4   || '_ora_' 
 5   || v$process.spid 
 6   || nvl2(v$process.traceid, '_' 
 7         || v$process.traceid, null) 
 8   || '.trc'"trace file" 
 9 from v$parameter user_dump 
 10   cross join v$parameter instance 
 11   cross join v$process 
 12   join v$session 
 13   on v$process.addr = v$session.paddr 
 14 where user_dump.name = 'user_dump_dest' 
 15   and instance.name = 'instance_name' 
 16   and v$session.audsid = sys_context('userenv', 'sessionid'); 
 
trace file
--------------------------------------------------------------------------------
/u01/app/oracle/admin/SCM2/udump/scm2_ora_22642.trc

第一個區(qū)的第一個塊(block_id=9)是FIRST LEVEL BITMAP BLOCK,第二個塊(block_id=10)是SECOND LEVEL BITMAP BLOCK,這兩個塊是用來管理free block的,第三個塊(block_id=11)是PAGETABLE SEGMENT HEADER,這個塊才是segment里的HEADER_BLOCK,再后面的塊就是用來記錄數(shù)據(jù)的

不過有一個奇怪的現(xiàn)象,對SCOTT.EMP其數(shù)據(jù)塊做dump,發(fā)現(xiàn)25、26、27數(shù)據(jù)塊的type都是trans data,0x06表示的Block Type為 Table/cluster/index segment data block 。 不知是否因為SCOTT.EMP對象位于USERS表空間下的緣故。不過USER表空間也是ASSM管理的。具體情況尚不清楚?

SQL> SELECT TABLESPACE_NAME
 2  , SEGMENT_SPACE_MANAGEMENT
 3  , ALLOCATION_TYPE
 4  , EXTENT_MANAGEMENT
 5 FROM DBA_TABLESPACES
 6 WHERE TABLESPACE_NAME='USERS';
 
TABLESPACE_NAME    SEGMEN ALLOCATIO EXTENT_MAN
------------------------------ ------ --------- ----------
USERS       AUTO SYSTEM LOCAL

那么是否所有的HEADER_BLOCK都是位于段的第三個block呢?是否還跟段空間管理的方式有關(guān)呢? 我們用如下實驗來探究一下:創(chuàng)建一個手工段空間管理(Manual Segment Space Management)的表空間。

SQL> CREATE TABLESPACE TBS_TEST_DATA
 2 DATAFILE '/u03/oradata/gsp/tbs_test_data_001.dbf'
 3 SIZE 20M 
 4 EXTENT MANAGEMENT LOCAL AUTOALLOCATE
 5 SEGMENT SPACE MANAGEMENT MANUAL ONLINE;
 
Tablespace created.
 
 
SQL> create user test identified by test123456
 2 default tablespace tbs_test_data;
 
User created.
 
SQL> grant connect, resource to test;
 
Grant succeeded.
 
SQL> CREATE TABLE TEST.KKK 
 2 AS
 3 SELECT * FROM DBA_OBJECTS;
 
Table created.
 
SQL> COL SEGMENT_NAME FOR A32;
SQL> SELECT SEGMENT_NAME
 2  ,FILE_ID
 3  ,BLOCK_ID
 4  ,BLOCKS
 5 FROM DBA_EXTENTS 
 6 WHERE SEGMENT_NAME='KKK' AND OWNER='TEST'
 7 ORDER BY BLOCK_ID ASC;
 
SEGMENT_NAME      FILE_ID BLOCK_ID  BLOCKS
-------------------------------- ---------- ---------- ----------
KKK          39  427785  128
KKK          43  435249   8
KKK          43  435257   8
KKK          43  435265   8
KKK          43  435273   8
KKK          43  435281   8
KKK          43  435289   8
KKK          43  435297   8
KKK          43  435305   8
KKK          43  435313   8
KKK          43  435321   8
 
SEGMENT_NAME      FILE_ID BLOCK_ID  BLOCKS
-------------------------------- ---------- ---------- ----------
KKK          43  435329   8
KKK          48  436745   8
KKK          48  436753   8
KKK          48  436761   8
KKK          48  436769   8
KKK          48  436777   8
KKK          48  436873  128
KKK          40  444297  128
KKK          43  447241  128
KKK          52  449545  128
KKK          2  458249  128
 
22 rows selected.
 
SQL> SELECT HEADER_FILE
 2  , HEADER_BLOCK
 3  , BYTES
 4  , BLOCKS
 5  , EXTENTS 
 6 FROM DBA_SEGMENTS 
 7 WHERE OWNER='TEST' AND SEGMENT_NAME='KKK';
 
HEADER_FILE HEADER_BLOCK  BYTES  BLOCKS EXTENTS
----------- ------------ ---------- ---------- ----------
   43  435249 7340032  896   22
 
SQL> 

 

SQL> alter system dump datafile 43 block 435249;
 
System altered.
 
SQL> select user_dump.value 
 2   || '/' 
 3   || lower(instance.value) 
 4   || '_ora_' 
 5   || v$process.spid 
 6   || nvl2(v$process.traceid, '_' 
 7         || v$process.traceid, null) 
 8   || '.trc'"trace file" 
 9 from v$parameter user_dump 
 10   cross join v$parameter instance 
 11   cross join v$process 
 12   join v$session 
 13   on v$process.addr = v$session.paddr 
 14 where user_dump.name = 'user_dump_dest' 
 15   and instance.name = 'instance_name' 
 16   and v$session.audsid = sys_context('userenv', 'sessionid'); 
 
trace file
--------------------------------------------------------------------
/u01/app/oracle/admin/SCM2/udump/scm2_ora_27792.trc

如下所示,塊類型為DATA SEGEMENT HEADER -UNLIMITED , rdba:( segment header的塊地址為)為 0x0ac6a431 .其實這是第一個塊(不是以block_id大小來看),因為手工段空間管理,這種技術(shù)的具體實現(xiàn)方式是通過在段頭(Segment Header)分配自由列表(freelist)來管理Block的使用。簡單一點,你可以把自由列表想象成一個數(shù)據(jù)結(jié)構(gòu)中的鏈表一樣的數(shù)據(jù)結(jié)構(gòu),ORACLE通過一系列算法向自由列表(freelist)中加入或移出Block來實現(xiàn)段管理。

Segment Header是一個Segment的第一個extent的頭塊(第一個塊)。在FLM管理的Segment中,header block始終是segment 的第一個塊。 如下所示,在Extent Map中,第一個區(qū)間的地址為0x0ac6a432, 恰恰跟segment header的塊地址 0x0ac6a431 相差為1,這意味著后面的分配是緊挨著segment header的塊地址。 所以在手工段空間管理(Manual Segment Space Management)的表空間,不能以block_id的大小順序來看區(qū)間分配順序。也就是說FILE_ID=39 BLOCK_ID=427785的塊并不是第一個區(qū)間的第一個塊。這也是我在實驗當中糾結(jié)了好久的地方。

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

您可能感興趣的文章:
  • oracle刪除表字段和oracle表增加字段
  • oracle使用sql語句增加字段示例(sql刪除字段語句)
  • Oracle 插入超4000字節(jié)的CLOB字段的處理方法
  • oracle關(guān)鍵字作為字段名使用方法
  • 深入淺析mybatis oracle BLOB類型字段保存與讀取
  • Oracle中判斷字段是否為數(shù)字
  • 簡單三步輕松實現(xiàn)ORACLE字段自增
  • oracle數(shù)據(jù)庫中如何處理clob字段方法介紹
  • Oracle 查詢表信息獲取表字段及字段注釋
  • java讀寫oracle的blob字段示例

標簽:焦作 許昌 遼源 合肥 郴州 滁州 涼山 南充

巨人網(wǎng)絡(luò)通訊聲明:本文標題《ORACLE中段的HEADER_BLOCK示例詳析》,本文關(guān)鍵詞  ORACLE,中段,的,HEADER,BLOCK,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《ORACLE中段的HEADER_BLOCK示例詳析》相關(guān)的同類信息!
  • 本頁收集關(guān)于ORACLE中段的HEADER_BLOCK示例詳析的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    一区二区三区加勒比av| 久久女同互慰一区二区三区| 亚洲成a人片在线观看中文| 久久综合国产精品| 中文字幕av资源一区| 久久www免费人成看片高清| 99久久99精品久久久久久| 欧美日韩免费电影| 精品国精品自拍自在线| 亚洲乱码精品一二三四区日韩在线 | 国产精品资源在线| 日韩你懂的电影在线观看| 国产精品国产三级国产aⅴ入口| 免费在线观看一区二区三区| 91丨九色丨蝌蚪丨老版| 欧美日韩在线免费视频| 精品国产麻豆免费人成网站| 亚洲欧美区自拍先锋| 免费精品视频在线| 欧美日韩二区三区| 综合激情成人伊人| 99久久精品国产一区二区三区| 2欧美一区二区三区在线观看视频 337p粉嫩大胆噜噜噜噜噜91av | 国产精品美女久久久久aⅴ| 轻轻草成人在线| 欧美日韩在线直播| 蜜臀久久久久久久| 欧美日韩一区视频| 久久精品国产亚洲高清剧情介绍| 9191精品国产综合久久久久久| 亚洲自拍与偷拍| 欧美最猛性xxxxx直播| 夜夜精品视频一区二区| 欧美精品在线观看播放| 日韩福利电影在线| 欧美日韩精品免费| 国产在线精品一区二区夜色| 精品乱人伦一区二区三区| 久久精品国产**网站演员| 欧美电视剧免费全集观看| 国产剧情一区在线| 国产三区在线成人av| 99国产精品一区| 日韩欧美国产一区在线观看| 国产精品一区在线观看你懂的| 久久久99久久精品欧美| 欧美中文字幕一二三区视频| 国产成人亚洲精品青草天美| 性感美女极品91精品| 国产在线精品一区二区不卡了 | 亚洲成人自拍网| 中文字幕高清一区| www精品美女久久久tv| 欧美色视频在线观看| 成人av网址在线| 成人动漫精品一区二区| 国产一区二区美女| 五月婷婷久久丁香| 亚洲国产另类av| 国产欧美一区二区精品久导航| 91精品国产综合久久精品app| 99re热视频这里只精品| av电影在线观看不卡| 日本va欧美va瓶| 亚洲第一福利一区| 亚洲一区二区三区国产| 中文字幕中文字幕一区| 一区二区三区产品免费精品久久75| 亚洲蜜桃精久久久久久久| 综合婷婷亚洲小说| 亚洲国产成人精品视频| 亚洲午夜久久久久久久久电影网| 亚洲视频狠狠干| 亚洲精品一区二区三区精华液 | av电影一区二区| 94-欧美-setu| 欧美日韩三级视频| 精品久久久久久久久久久院品网| 2019国产精品| 亚洲一区二区三区四区在线免费观看| 亚洲精品国产视频| 狠狠色狠狠色综合系列| 韩国av一区二区三区在线观看| 久久久久国产成人精品亚洲午夜 | 中文天堂在线一区| 粉嫩av一区二区三区| 粉嫩久久99精品久久久久久夜| 精品欧美乱码久久久久久1区2区| 精品一区二区三区av| 国产精品久久久久精k8| 欧美最猛黑人xxxxx猛交| 日韩精品一二三四| 国产性天天综合网| 欧美色视频一区| 亚洲一区电影777| 日本一区二区不卡视频| 欧美顶级少妇做爰| 99亚偷拍自图区亚洲| 五月婷婷久久丁香| 国产日韩欧美麻豆| 99久久精品99国产精品| 亚洲欧美日韩综合aⅴ视频| 韩国女主播一区二区三区| 欧美mv日韩mv亚洲| 成人在线视频一区| 亚洲桃色在线一区| 欧美三级在线视频| 国产精品一二三在| 一区二区三区不卡在线观看| 欧美日韩亚洲国产综合| 石原莉奈在线亚洲二区| 欧美一区二区视频网站| 国产精品一区二区x88av| 亚洲最新视频在线观看| 久久精品视频一区| 欧美视频一区二区| 色综合亚洲欧洲| 色综合激情久久| 国产一区二区三区黄视频 | 日本不卡的三区四区五区| 久久综合999| 欧美老肥妇做.爰bbww视频| 日韩电影在线观看电影| 国产婷婷色一区二区三区| 91丨九色丨黑人外教| 午夜av一区二区| 亚洲丝袜另类动漫二区| 国产视频一区二区在线| 欧美性大战久久久| 国产一区二区久久| 美女视频黄a大片欧美| 日本美女一区二区| 亚洲乱码一区二区三区在线观看| 欧美性极品少妇| 欧美少妇bbb| 欧美色综合网站| 91免费版在线| 一本久久a久久免费精品不卡| 国产精品综合在线视频| 男人的天堂亚洲一区| 五月天亚洲精品| 亚洲国产另类精品专区| 日韩影院精彩在线| 久久这里只有精品6| 久久久久久久久久久电影| 国产+成+人+亚洲欧洲自线| 日韩成人免费看| 日韩 欧美一区二区三区| 免费在线观看成人| 国内精品伊人久久久久av一坑| 蜜桃免费网站一区二区三区| 极品少妇xxxx精品少妇偷拍| 免费观看一级欧美片| 亚洲一区二区三区在线| 日本成人在线一区| 91免费看`日韩一区二区| 日韩视频一区二区在线观看| www久久久久| 亚洲第一综合色| 激情综合一区二区三区| 在线一区二区三区四区| 欧美一区二区三区公司| 国产调教视频一区| 免费高清在线视频一区·| 久久99精品国产麻豆不卡| 色欧美片视频在线观看| 欧美日韩免费观看一区三区| 欧美欧美欧美欧美首页| 色婷婷精品久久二区二区蜜臂av| 一本在线高清不卡dvd| 国产精品一线二线三线精华| 美国av一区二区| 日本亚洲电影天堂| av午夜一区麻豆| 欧美国产禁国产网站cc| 日韩专区在线视频| 在线不卡一区二区| 视频一区二区不卡| 久久影视一区二区| 成人av高清在线| 一区二区三区丝袜| 欧美二区三区的天堂| 久久精品噜噜噜成人88aⅴ| 国产一区二区精品在线观看| 久久久99免费| 色综合天天性综合| 天天做天天摸天天爽国产一区| 欧美日韩另类一区| 国产伦精品一区二区三区视频青涩 | 亚洲日本在线a| 欧美一级国产精品| 欧美午夜影院一区| 欧美一区二区三区婷婷月色| 久久久久综合网| 亚洲精品久久久蜜桃| 精品国产乱子伦一区| 亚洲乱码国产乱码精品精可以看| 日本不卡视频一二三区| 国产一区二区剧情av在线| 一区二区三区91|