日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

全表扫描下的逻辑读

發布時間:2024/4/14 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 全表扫描下的逻辑读 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

T1表全表掃描產生邏輯讀的分析

做個實驗給你演示一下:以表t1為例,對段t1做dump

1、t1表就一條數據
gyj@OCM> select * from t1;
? ?? ???ID NAME
---------- ----------
? ?? ?? ?1 AAAAA

2、找t1段的段頭塊
gyj@OCM> select??header_file,header_block from dba_segments where segment_name='T1' and owner='GYJ';
HEADER_FILE HEADER_BLOCK
----------- ------------
? ?? ?? ? 7? ?? ?? ? 130

3、另開一個會話:dump段頭塊( 7文件130號塊)
[root@guoyj ~]# su - oracle
[oracle@guoyj ~]$ sqlplus / as sysdba
sys@OCM> alter system dump datafile 7 block 130;

4、dump的trace內容
Extent Control Header
??-----------------------------------------------------------------
??Extent Header:: spare1: 0? ?? ?spare2: 0? ?? ?#extents: 1? ?? ?#blocks: 8? ???
? ?? ?? ?? ?? ?? ?last map??0x00000000??#maps: 0? ?? ?offset: 2716??
? ????Highwater::??0x01c00088?ext#: 0? ?? ?blk#: 8? ?? ?ext size: 8? ?? ???--紅色的就為高水位地址
??#blocks in seg. hdr's freelists: 0? ???
??#blocks below: 5? ???
??mapblk??0x00000000??offset: 0? ???
? ?? ?? ?? ?? ?? ? Unlocked
??--------------------------------------------------------
??Low HighWater Mark :?
? ?? ?Highwater::??0x01c00088??ext#: 0? ?? ?blk#: 8? ?? ?ext size: 8? ???
??#blocks in seg. hdr's freelists: 0? ???
??#blocks below: 5? ???
??mapblk??0x00000000??offset: 0? ???
??Level 1 BMB for High HWM block: 0x01c00080
??Level 1 BMB for Low HWM block: 0x01c00080
??--------------------------------------------------------
??Segment Type: 1 nl2: 1? ?? ?blksz: 8192? ?fbsz: 0? ?? ?
??L2 Array start offset:??0x00001434
??First Level 3 BMB:??0x00000000
??L2 Hint for inserts:??0x01c00081
??Last Level 1 BMB:??0x01c00080
??Last Level II BMB:??0x01c00081
??Last Level III BMB:??0x00000000
? ???Map Header:: next??0x00000000??#extents: 1? ? obj#: 78183??flag: 0x10000000
??Inc # 0?
??Extent Map
??-----------------------------------------------------------------
? ?0x01c00080??length: 8? ???
??
??Auxillary Map
??--------------------------------------------------------
? ?Extent 0? ???:??L1 dba:??0x01c00080 Data dba:??0x01c00083
??--------------------------------------------------------
??
? ?Second Level Bitmap block DBAs?
? ?--------------------------------------------------------
? ?DBA 1:? ?0x01c00081
??
End dump data blocks tsn: 7 file#: 7 minblk 130 maxblk 130

5、對表t1做一個全表掃描
gyj@OCM> set autot traceonly;
gyj@OCM> select * from t1;

Execution Plan
----------------------------------------------------------
Plan hash value: 3617692013
--------------------------------------------------------------------------
| Id??| Operation? ?? ?? ?| Name | Rows??| Bytes | Cost (%CPU)| Time? ???|
--------------------------------------------------------------------------
|? ?0 | SELECT STATEMENT??|? ?? ?|? ?999K|? ? 14M|? ?759? ?(2)| 00:00:10 |
|? ?1 |??TABLE ACCESS FULL| T1? ?|? ?999K|? ? 14M|? ?759? ?(2)| 00:00:10 |
--------------------------------------------------------------------------

Statistics
----------------------------------------------------------
? ?? ?? ? 0??recursive calls
? ?? ?? ? 0??db block gets
? ?? ??? ?6??consistent gets? ?? ?? ?? ?? ???--全表掃描讀了6個塊
? ?? ?? ? 5??physical reads
? ?? ?? ? 0??redo size
? ?? ???596??bytes sent via SQL*Net to client
? ?? ???523??bytes received via SQL*Net from client
? ?? ?? ? 2??SQL*Net roundtrips to/from client
? ?? ?? ? 0??sorts (memory)
? ?? ?? ? 0??sorts (disk)
? ?? ?? ? 1??rows processed

6、怎么算出來的呢這個6
gyj@OCM> select file_id,block_id,blocks from dba_extents where segment_name='T1';
? ?FILE_ID? ?BLOCK_ID? ???BLOCKS
---------- ---------- ----------
? ?? ?? ?7? ?? ???128? ?? ?? ? 8
這個t1段一共用了8個塊分別是128 129 130 131 132 133 134 135?
高水位:?0x01c00088???即7號文件的136號塊
讀了一次段頭塊:7文件130號塊
讀了高水位之下的131號塊 132號塊 133號塊 134號塊 135號塊五個塊
這樣一共就讀了6個塊

注:全表掃描不坊128,129號塊,對應的如下關系
Last Level 1 BMB:??0x01c00080? ?-->128號塊

Last Level II BMB:??0x01c00081 -->129號塊




**********本博客所有內容均為原創,如有轉載請注明作者和出處!!!**********
Name: ? ?guoyJoe

QQ: ? ? ? ?252803295

Email: ? ?oracledba_cn@hotmail.com

Blog: ? ? ?http://blog.csdn.net/guoyJoe

ITPUB: ??http://www.itpub.net/space-uid-28460966.html

OCM: ? ??http://education.oracle.com/education/otn/YGuo.HTM
?_____________________________________________________________
加群驗證問題:哪些SGA結構是必需的,哪些是可選的?否則拒絕申請!!!

答案在:http://blog.csdn.net/guoyjoe/article/details/8624392

Oracle@Paradise  總群:127149411

Oracle@Paradise No.1群:177089463(已滿)

Oracle@Paradise No.2群:121341761

Oracle@Paradise No.3群:140856036


轉載于:https://blog.51cto.com/guoyjoe/1429052

總結

以上是生活随笔為你收集整理的全表扫描下的逻辑读的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。