全表扫描下的逻辑读
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
總結
- 上一篇: 通过FTP4J 实现 FTPS 连接
- 下一篇: 无线路由配置详情