九色成人免费视频_久久一区视频_视频一区国产精品_精品视频在线观看

始創于2000年 股票代碼:831685
咨詢熱線:0371-60135900 注冊有禮 登錄
  • 掛牌上市企業
  • 60秒人工響應
  • 99.99%連通率
  • 7*24h人工
  • 故障100倍補償
您的位置: 網站首頁 > 幫助中心>文章內容

Oracle的rowid和rdba庖丁解牛

發布時間:  2012/8/15 17:47:32

Oracle 8以下ROWID組成(也叫受限Rowid)為:FFFF.BBBBBBBB.RRRR,占用6個字節(10bit file#+22bit+16bit),但是,為了擴充的需要,如數據文件的擴充,現在的Rowid改為:OOOOOOFFFBBBBBBRRR,占用10個字節(32bit+10bit rfile#+22bit+16bit)。其中,O是對象ID,F是文件ID,B是塊ID,R是行ID。由于rowid的組成從file#變成了rfile#,所以數據文件數的限制也從整個庫不能超過1023個變成了每個表空間不能超過1023個數據文件。
-
 

注意:這里的O,代表的是data_object_id,是與段物理存儲位置相關的一個信息,因為一個段對象只可能在一個表空間上,data_object_id能唯一確認ts#,而data_object_id + rfile#就能最終定位到該rowid在那個確定的物理數據文件。

如果我們查詢一個表的ROWID,就可以獲得object的信息,文件信息,塊信息與行信息等等,如根據其中塊的信息,可以知道該表確切占用了多少個塊,每行在哪個塊上,哪個數據文件上。

我們在select數據時候,在不指定排序字段時, Oracle是按rowid升序取數據的。如

SQL> select t.id,rowid from skate.tab2 t;

        ID ROWID

---------- ------------------

   1067511 AAAO1lAAEAAAHKkAAA

   1067513 AAAO1lAAEAAAHKkAAB

   1067515 AAAO1lAAEAAAHKkAAC

   1067517 AAAO1lAAEAAAHKkAAD

   1067519 AAAO1lAAEAAAHKkAAE

   1067523 AAAO1lAAEAAAHKkAAG

   1067525 AAAO1lAAEAAAHKkAAH

   1067527 AAAO1lAAEAAAHKkAAI

8 rows selected

SQL>

可以從上面的顯示數據看到,是按rowid降序排列。我們拿rowid “AAAO1lAAEAAAHKkAAA”來說明

Data Object number =AAAO1l

File id                  =AAE    

Block id              =AAAHKk

Row        =AAA

Rowid是64進制的,可以通過進制轉化工具來查看(http://www.2u3.cn/Conversion/jinzhi/

 

 A-Z <==> 0 - 25 (26)
a-z <==> 26 - 51 (26)
0-9 <==> 52 - 61 (10)
+/ <==> 62 - 63 (2)

 

 拿其中的Data Object number= AAAO1l為例子,

 

l是64進制中的37,位置為0

37 * (64 ^ 0) = 37

1是64進制中的53,位置為1

53 * (64 ^ 1) = 3392

O是64進制中的 14,位置為2

14*(64^2)=57344

A是64進制中的 0

所以

A * (64 ^ 3) = 0

A * (64 ^ 4) = 0

A * (64 ^ 5) = 0

則有AAAO1l= 0 + 0 + 0 + 57344+ 3392 + 37 = 60773,表示該行存在的對象,對應的對象號為60773。

 

手工算還是比較麻煩的,Oracle為此提供相應的函數dbms_rowid來實現

SQL> select dbms_rowid.rowid_object('AAAO1lAAEAAAHKkAAA') data_object_id#,

  2         dbms_rowid.rowid_relative_fno('AAAO1lAAEAAAHKkAAA') rfile#,

  3         dbms_rowid.rowid_block_number('AAAO1lAAEAAAHKkAAA') block#,

  4         dbms_rowid.rowid_row_number('AAAO1lAAEAAAHKkAAA') row# from dual;

DATA_OBJECT_ID#     RFILE#     BLOCK#       ROW#

--------------- ---------- ---------- ----------

          60773          4      29348          0

 

可以通過包的說明或者Oracle官方手冊了解更多,例如:

SQL> desc dbms_rowid

Element                Type     

---------------------- ---------

ROWID_TYPE_RESTRICTED  CONSTANT 

ROWID_TYPE_EXTENDED    CONSTANT 

ROWID_IS_VALID         CONSTANT 

ROWID_IS_INVALID       CONSTANT 

ROWID_OBJECT_UNDEFINED CONSTANT 

ROWID_CONVERT_INTERNAL CONSTANT 

ROWID_CONVERT_EXTERNAL CONSTANT 

ROWID_INVALID          EXCEPTION

ROWID_BAD_BLOCK        EXCEPTION

ROWID_CREATE           FUNCTION 

ROWID_INFO             PROCEDURE

ROWID_TYPE             FUNCTION 

ROWID_OBJECT           FUNCTION 

ROWID_RELATIVE_FNO     FUNCTION 

ROWID_BLOCK_NUMBER     FUNCTION 

ROWID_ROW_NUMBER       FUNCTION 

ROWID_TO_ABSOLUTE_FNO  FUNCTION 

ROWID_TO_EXTENDED      FUNCTION 

ROWID_TO_RESTRICTED    FUNCTION 

ROWID_VERIFY           FUNCTION 

 

SQL> desc dbms_rowid.rowid_info

Parameter     Type     Mode Default?

------------- -------- ---- --------

ROWID_IN      ROWID    IN           

ROWID_TYPE    NUMBER   OUT          

OBJECT_NUMBER NUMBER   OUT          

RELATIVE_FNO  NUMBER   OUT          

BLOCK_NUMBER  NUMBER   OUT          

ROW_NUMBER    NUMBER   OUT          

TS_TYPE_IN    VARCHAR2 IN   Y  

如果明白了以上ROWID的含義,那么就很容易理解塊的地址rdba了,也就是ROWID中的FFFBBBBBB部分,10bit rfile#+22bit,如我們分析一個塊地址:

 rdba: 0x010072a4

把0x010072a4轉化為10進制16806564

SQL>   select dbms_utility.data_block_address_file(16806564) "file",

  2           dbms_utility.data_block_address_block(16806564) "block"

  3    from dual;

 

      file      block

---------- ----------

         4      29348

 

SQL>

現在通過塊的dba知道了file和block,那怎樣確認我們推到的正確呢? 這個塊地址是dump文件的內容,我們可以去dump文件核對下

Start dump data blocks tsn: 4 file#: 4 minblk 29348 maxblk 29348

buffer tsn: 4 rdba: 0x010072a4 (4/29348)

scn: 0x0000.00e66a1e seq: 0x02 flg: 0x06 tail: 0x6a1e0602

frmt: 0x02 chkval: 0x4590 type: 0x06=trans data

Hex dump of block: st=0, typ_found=1

結果我們推導的和dump的內容是一樣的,不過這里得到的4是rfile#,相對文件號,而相對文件號是不能超過1023,所以,如果你想根據這個地址來dump數據文件塊的話,最好還是核對一下v$datafile:

select file# from v$datafile where rfile# = 4 and ts# = <:dbfile_in_ts>

表空間的ts#可以通過如下sql得到:

  select ta.tablespace_name, da.TS#
    from dba_tablespaces ta, dba_data_files df, v$datafile da
   where ta.tablespace_name = df.tablespace_name
     and da.NAME = df.file_name

 例如:

SQL> select file# from v$datafile where rfile# = 4 and ts# = 4;

    FILE#

----------

         4

SQL>

 

如果數據文件數大于1023個,這里file# 就不是4了,應該是個絕對文件號了,這就是file#和rfile#的區別。如果dump數據塊,要用絕對文件號的,例如:

Alter system dump  datafile 4 block 29348;

也可以通過dba_segments,如

SQL>  select header_file,header_block from dba_segments where owner='SKATE' and segment_name='TAB2';

HEADER_FILE HEADER_BLOCK

----------- ------------

          4        29347

這里段頭占有一個block,后面存儲的就是數據,所以存儲數據的塊,應該是29348

-----end-----


本文出自:億恩科技【www.23lll.com】

服務器租用/服務器托管中國五強!虛擬主機域名注冊頂級提供商!15年品質保障!--億恩科技[ENKJ.COM]

  • 您可能在找
  • 億恩北京公司:
  • 經營性ICP/ISP證:京B2-20150015
  • 億恩鄭州公司:
  • 經營性ICP/ISP/IDC證:豫B1.B2-20060070
  • 億恩南昌公司:
  • 經營性ICP/ISP證:贛B2-20080012
  • 服務器/云主機 24小時售后服務電話:0371-60135900
  • 虛擬主機/智能建站 24小時售后服務電話:0371-60135900
  • 專注服務器托管17年
    掃掃關注-微信公眾號
    0371-60135900
    Copyright© 1999-2019 ENKJ All Rights Reserved 億恩科技 版權所有  地址:鄭州市高新區翠竹街1號總部企業基地億恩大廈  法律顧問:河南亞太人律師事務所郝建鋒、杜慧月律師   京公網安備41019702002023號
      0
     
     
     
     

    0371-60135900
    7*24小時客服服務熱線

     
     
    九色成人免费视频_久久一区视频_视频一区国产精品_精品视频在线观看
    一区二区三欧美| 欧美少妇一区二区| 亚洲一区中文| 欧美日韩视频一区二区| 99国内精品久久| 韩国av一区| 浪潮色综合久久天堂| 亚洲国产成人tv| 国产一本一道久久香蕉| 久久精品国产精品亚洲综合| 欧美专区18| 国产精品初高中精品久久| 国产精品你懂的| 一本久道久久综合狠狠爱| 午夜精品久久| 国产精品午夜久久| 欧美亚洲综合网| 西西人体一区二区| 国产一区二区三区久久久| 久久综合久久久久88| 亚洲免费高清视频| 一本色道久久| 国产精品国内视频| 欧美中文字幕不卡| 亚洲自拍偷拍视频| 国内成+人亚洲+欧美+综合在线| 玖玖精品视频| 亚洲美女网站| 一区二区三区日韩| 国产亚洲精品久久久| 美女91精品| 一区二区日韩欧美| 亚洲精品欧洲| 国产精品国产三级国产aⅴ9色| 欧美制服丝袜| 亚洲日本免费电影| 亚洲一区二区三区在线观看视频 | 裸体一区二区三区| 99视频热这里只有精品免费| 精品成人乱色一区二区| 欧美日本精品| 欧美亚洲三区| 久久精品人人爽| 亚洲精品久久| 国产精品你懂的在线| 久久综合久久久久88| 亚洲一区二区伦理| 久久精品亚洲| 日韩一级不卡| 国产一区二区高清| 欧美日韩在线一二三| 久久久久久久久久看片| 亚洲精品网站在线播放gif| 亚洲永久字幕| 亚洲黄一区二区| 国产日韩精品视频一区| 欧美人成在线| 久久国产一区| 一区二区久久久久| 久久精品国产在热久久| 一区二区三区四区在线| 在线观看一区视频| 国产精品中文在线| 欧美日韩精品在线观看| 老司机精品久久| 亚洲欧美一区在线| av72成人在线| 久久精品一区蜜桃臀影院| 亚洲一区精品电影| 亚洲另类视频| 黄色一区二区三区| 国产精品视频一二三| 欧美日韩三级| 欧美成人免费一级人片100| 久久狠狠亚洲综合| 亚洲欧美日韩人成在线播放| 亚洲国产aⅴ天堂久久| 亚洲女人小视频在线观看| 日韩一级成人av| 亚洲精品日韩综合观看成人91| 91久久在线观看| 亚洲国产黄色| 亚洲国产日韩在线一区模特| 亚洲精品1区| 亚洲精品日产精品乱码不卡| 亚洲免费成人| 一区二区三区成人精品| 亚洲一区三区视频在线观看| 亚洲愉拍自拍另类高清精品| 亚洲欧美视频在线| 久久av免费一区| 久久精品一区二区三区四区 | 亚洲伊人久久综合| 亚洲欧美综合v| 亚洲欧美精品在线| 性色av一区二区三区| 欧美在线欧美在线| 久久精品夜夜夜夜久久| 另类图片综合电影| 欧美日本精品一区二区三区| 欧美日韩国产三区| 国产精品亚洲а∨天堂免在线| 国产视频一区三区| 在线播放一区| 亚洲人www| 一区二区三区回区在观看免费视频| 亚洲字幕一区二区| 久久精品亚洲热| 亚洲乱码国产乱码精品精98午夜| 亚洲视频电影图片偷拍一区| 香蕉成人久久| 久久久噜噜噜久噜久久| 欧美大片在线观看| 国产精品高清免费在线观看| 国产午夜精品久久| 亚洲区第一页| 亚洲一区二区3| 欧美一区二区三区免费大片| 亚洲人成网在线播放| 中文有码久久| 欧美在线一二三区| 欧美黄色成人网| 国产精品国产三级国产aⅴ无密码| 国产亚洲欧美一区二区三区| 亚洲国产精品v| 一区二区三区视频在线| 久久成人免费网| av成人激情| 欧美在线视频不卡| 欧美激情一区二区三区全黄| 国产精品一区毛片| 亚洲国产一区二区a毛片| 亚洲一区综合| 亚洲人精品午夜在线观看| 亚洲欧美中文字幕| 欧美黑人在线观看| 国产午夜久久| 亚洲精品在线视频观看| 欧美亚洲综合久久| 一区二区三区精密机械公司 | 欧美色视频日本高清在线观看| 国产一区二区三区日韩| 亚洲九九九在线观看| 欧美在线一级va免费观看| 亚洲特级片在线| 久久综合五月天婷婷伊人| 国产精品草莓在线免费观看| 尤物yw午夜国产精品视频| 亚洲女性裸体视频| 亚洲最新视频在线播放| 久久久噜噜噜久噜久久| 国产精品日韩久久久久| 亚洲精选一区二区| 亚洲国产成人精品久久久国产成人一区| 中文国产成人精品| 美女啪啪无遮挡免费久久网站| 国产精品日韩欧美一区二区三区| 亚洲国产视频一区| 亚洲第一中文字幕| 欧美一级午夜免费电影| 欧美日本在线| 精品96久久久久久中文字幕无| 亚洲制服av| 一本色道久久综合一区| 久久一日本道色综合久久| 国产精品亚洲综合| 99热在线精品观看| 亚洲免费黄色| 老牛国产精品一区的观看方式| 国产精品一区二区三区久久| 一区二区三区四区五区精品视频| 日韩写真视频在线观看| 美女国产精品| 狠狠色丁香久久婷婷综合_中| 亚洲综合三区| 亚洲综合欧美日韩| 欧美日韩一区在线观看| 亚洲乱码国产乱码精品精98午夜| 亚洲啪啪91| 久久综合九色综合网站| 国产综合香蕉五月婷在线| 羞羞视频在线观看欧美| 欧美伊人久久大香线蕉综合69| 国产精品久久久久秋霞鲁丝| 在线视频精品| 中国日韩欧美久久久久久久久| 欧美日本韩国在线| 日韩视频免费| 日韩亚洲欧美综合| 欧美精品一区三区在线观看| 亚洲国产91| 亚洲国产裸拍裸体视频在线观看乱了中文 | 欧美日韩免费观看中文| 亚洲人成久久| 亚洲九九九在线观看| 欧美激情按摩在线| 亚洲精品之草原avav久久| 一区二区三区视频免费在线观看| 欧美日韩不卡在线| 日韩午夜av|