oracle第二次实验,oracle是如何进行全表扫描实验

从下列实验可以看出全表扫描是根据extent/block顺序去取数据, 第一次实验有'db file scattered read'等待事件,第二次实验已经把数据加载到databuffer中,所以没有等待实验。

SQL> create table test as select * from dba_objects;

SQL> select extent_id, file_id, block_id, blocks

2    from dba_extents

3   where segment_name = 'TEST'

4   order by 1;

EXTENT_ID    FILE_ID   BLOCK_ID     BLOCKS

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

0          6      83849          8

1          6      83857          8

2          6      83865          8

3          6      83873          8

4          6      83881          8

5          6      83889          8

6          6      83897          8

7          6      83905          8

8          6      83913          8

9          6      83921          8

10          6      83929          8

11          6      83937          8

12          6      83945          8

13          6     100409          8

14          6     100417          8

15          6     117121          8

16          6      83977        128

17          6      84105        128

18          6      84233        128

19          6      84361        128

20          6      84489        128

SQL> show parameter db_file_multiblock_read_count

NAME                                 TYPE        VALUE

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

db_file_multiblock_read_count        integer     16

SQL> alter session set events 'immediate trace name flush_cache level 1';

SQL> alter session set events '10046 trace name context forever,level 12';

第一次实验:

SQL> select count(1) from test;

COUNT(1)

----------

51255

第一次实验查看10046文件:

ARSING IN CURSOR #5 len=27 dep=0 uid=61 oct=3 lid=61 tim=3414138868 hv=1143379599 ad='302eb520'

select count(1) from test

END OF STMT

PARSE #5:c=46875,e=236549,p=330,cr=59,cu=0,mis=1,r=0,dep=0,og=1,tim=3414138867

BINDS #5:

EXEC #5:c=0,e=45,p=0,cr=0,cu=0,mis=0,r=0,dep=0,og=1,tim=3414139031

WAIT #5: nam='SQL*Net message to client' ela= 2 driver id=1413697536 #bytes=1 p3=0 obj#=95737 tim=3414139067

WAIT #5: nam='SQL*Net message from client' ela= 211 driver id=1413697536 #bytes=1 p3=0 obj#=95737 tim=3414139327

WAIT #5: nam='db file scattered read' ela= 4594 file#=6 block#=83852blocks=5 obj#=95737 tim=3414143992

WAIT #5: nam='db file scattered read' ela= 424 file#=6block#=83857blocks=4 obj#=95737 tim=3414144545

WAIT #5: nam='db file scattered read' ela= 161 file#=6 block#=83862 blocks=3 obj#=95737 tim=3414144820

WAIT #5: nam='db file scattered read' ela= 288 file#=6 block#=83866 blocks=7 obj#=95737 tim=3414145211

WAIT #5: nam='db file scattered read' ela= 314 file#=6 block#=83873 blocks=8 obj#=95737 tim=3414145670

WAIT #5: nam='db file scattered read' ela= 404 file#=6 block#=83882 blocks=7 obj#=95737 tim=3414146232

WAIT #5: nam='db file scattered read' ela= 156 file#=6 block#=83889 blocks=3 obj#=95737 tim=3414146536

WAIT #5: nam='db file scattered read' ela= 195 file#=6 block#=83893 blocks=4 obj#=95737 tim=3414146840

WAIT #5: nam='db file scattered read' ela= 280 file#=6 block#=83898 blocks=7 obj#=95737 tim=3414147226

WAIT #5: nam='db file scattered read' ela= 1438 file#=6 block#=83905 blocks=8 obj#=95737 tim=3414148811

WAIT #5: nam='db file scattered read' ela= 340 file#=6 block#=83914 blocks=7 obj#=95737 tim=3414149308

WAIT #5: nam='db file scattered read' ela= 365 file#=6 block#=83921 blocks=8 obj#=95737 tim=3414149813

WAIT #5: nam='db file scattered read' ela= 285 file#=6 block#=83930 blocks=6 obj#=95737 tim=3414150250

WAIT #5: nam='db file scattered read' ela= 128 file#=6 block#=83937 blocks=2 obj#=95737 tim=3414150515

WAIT #5: nam='db file scattered read' ela= 219 file#=6 block#=83940 blocks=5 obj#=95737 tim=3414150826

WAIT #5: nam='db file scattered read' ela= 343 file#=6 block#=83946 blocks=7 obj#=95737 tim=3414151317

WAIT #5: nam='db file scattered read' ela= 382 file#=6 block#=100409 blocks=5 obj#=95737 tim=3414151838

WAIT #5: nam='db file scattered read' ela= 187 file#=6 block#=100415 blocks=2 obj#=95737 tim=3414152147

WAIT #5: nam='db file scattered read' ela= 190 file#=6 block#=100418 blocks=2 obj#=95737 tim=3414152418

WAIT #5: nam='db file scattered read' ela= 249 file#=6 block#=100421 blocks=4 obj#=95737 tim=3414152745

。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

WAIT #5: nam='db file scattered read' ela= 2597 file#=6 block#=84562 blocks=10 obj#=95737 tim=3414213296

WAIT #5: nam='SQL*Net message to client' ela= 2 driver id=1413697536 #bytes=1 p3=0 obj#=95737 tim=3414213458

第二次实验:

SQL> select count(1) from test;

COUNT(1)

----------

51255

第二次实验查看10046文件: EXEC #1:c=0,e=39,p=0,cr=0,cu=0,mis=0,r=0,dep=0,og=1,tim=3795357981 WAIT #1: nam='SQL*Net message to client' ela= 0 driver id=1413697536 #bytes=1 p3=0 obj#=95737 tim=3795358011 WAIT #1: nam='SQL*Net message from client' ela= 87 driver id=1413697536 #bytes=1 p3=0 obj#=95737 tim=3795358132 WAIT #1: nam='SQL*Net message to client' ela= 2 driver id=1413697536 #bytes=1 p3=0 obj#=95737 tim=3795363085 FETCH #1:c=0,e=4976,p=0,cr=709,cu=0,mis=0,r=1,dep=0,og=1,tim=3795363141 WAIT #1: nam='SQL*Net message from client' ela= 41357 driver id=1413697536 #bytes=1 p3=0 obj#=95737 tim=3795404560 STAT #1 id=1 cnt=1 pid=0 pos=1 obj=0 op='SORT AGGREGATE (cr=709 pr=0 pw=0 time=4918 us)' STAT #1 id=2 cnt=51255 pid=1 pos=1 obj=95737 op='TABLE ACCESS FULL TEST (cr=709 pr=0 pw=0 time=35 us)'

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值