[20111229]理解consistent gets*相关信息[补充]

简介: 1.补充一点资料:SQL> select * from v$version;BANNER----------------------------------------------------------------Oracle Database 10g Enterprise Edition Release 10.

1.补充一点资料:
SQL> select * from v$version;

BANNER
----------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bi
PL/SQL Release 10.2.0.3.0 - Production
CORE    10.2.0.3.0      Production
TNS for Linux: Version 10.2.0.3.0 - Production
NLSRTL Version 10.2.0.3.0 - Production

SQL> create table t1 as select rownum id ,'test' name  from dual connect by levelSQL> alter table t1 add constraint pk_t1 PRIMARY KEY(id) USING INDEX(CREATE INDEX i_t1_id ON t1(id,name)) ENABLE ;
SQL> exec dbms_stats.gather_table_stats(ownname=>null, tabname=>'T1', estimate_percent=> null, method_opt=> 'FOR ALL COLUMNS SIZE 1');

SQL> select index_name from user_indexes where table_name='T1';

INDEX_NAME
------------------------------
I_T1_ID

2.
SQL> select b.name,a.value from v$mystat a, v$statname b where a.STATISTIC#=b.STATISTIC# and b.NAME like 'consistent gets%';

NAME                                                                           VALUE
---------------------------------------------------------------- ----------
consistent gets                                                          51
consistent gets from cache                                     51
consistent gets - examination                                   5
consistent gets direct                                                  0

SQL> select id,name from t1 where id=60 ;

        ID NAME
---------- ----
        60 test

SQL> select b.name,a.value from v$mystat a, v$statname b where a.STATISTIC#=b.STATISTIC# and b.NAME like 'consistent gets%';

NAME                                                                            VALUE
---------------------------------------------------------------- ----------
consistent gets                                                          53(+2)
consistent gets from cache                                     53(+2)
consistent gets - examination                                  5(+0)
consistent gets direct                                                      0

--失望!oracle 看来还是不够聪明,执行计划依旧是索引范围扫描。看来要想实现一个逻辑读,只能使用IOT表。

SQL> select * from table(dbms_xplan.display_cursor(NULL,NULL,'ALLSTATS LAST'));
PLAN_TABLE_OUTPUT
-------------------------------------
SQL_ID  9r3x00whhy46y, child number 0
-------------------------------------
select id,name from t1 where id=60

Plan hash value: 4406210

---------------------------------------------
| Id  | Operation        | Name    | E-Rows |
---------------------------------------------
|*  1 |  INDEX RANGE SCAN| I_T1_ID |      1 |
---------------------------------------------

Predicate Information (identified by operation id):
---------------------------------------------------

   1 - access("ID"=60)

Note
-----
   - Warning: basic plan statistics not available. These are only collected when:
       * hint 'gather_plan_statistics' is used for the statement or
       * parameter 'statistics_level' is set to 'ALL', at session or system level


23 rows selected.

3.在11Gr2下重复测试:

SQL> select * from v$version;

BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
PL/SQL Release 11.2.0.1.0 - Production
CORE    11.2.0.1.0      Production
TNS for Linux: Version 11.2.0.1.0 - Production
NLSRTL Version 11.2.0.1.0 - Production


SQL> select b.name,a.value from v$mystat a, v$statname b where a.STATISTIC#=b.STATISTIC# and b.NAME like 'consistent gets%';

NAME                                                                  VALUE
---------------------------------------------------------------- ----------
consistent gets                                                          37
consistent gets from cache                                     37
consistent gets from cache (fastpath)                   33
consistent gets - examinatio                                    4
consistent gets direct                                                 0

SQL> select id,name from t1 where id=60 ;

        ID NAME
---------- ----
        60 test

SQL> select b.name,a.value from v$mystat a, v$statname b where a.STATISTIC#=b.STATISTIC# and b.NAME like 'consistent gets%';

NAME                                                                  VALUE
---------------------------------------------------------------- ----------
consistent gets                                                          39(+2)
consistent gets from cache                                     39(+2)
consistent gets from cache (fastpath)                   34(+1)
consistent gets - examination                                   4(+0)
consistent gets direct                                                  0

--与10g一样,不过11G增加一个统计信息consistent gets from cache (fastpath).并且有1个读,以后研究看看。

补充: 如果执行这样呢?select id,name from t1 where id=60 and rownum

 SQL> select b.name,a.value from v$mystat a, v$statname b where a.STATISTIC#=b.STATISTIC# and b.NAME like 'consistent gets%';

NAME                                                                           VALUE
---------------------------------------------------------------- ----------
consistent gets                                                          37
consistent gets from cache                                     37
consistent gets from cache (fastpath)                  33
consistent gets - examination                                   4
consistent gets direct                                                  0

15:09:28 SQL> select id,name from t1 where id=60 and rownum
        ID NAME
---------- ----
        60 test

15:09:54 SQL> select b.name,a.value from v$mystat a, v$statname b where a.STATISTIC#=b.STATISTIC# and b.NAME like 'consistent gets%';
NAME                                                                           VALUE
---------------------------------------------------------------- ----------
consistent gets                                                           38
consistent gets from cache                                      38
consistent gets from cache (fastpath)                    33
consistent gets - examination                                     4
consistent gets direct                                                    0

逻辑读仅仅为1,不过一般情况下不会这样写。


目录
相关文章
|
存储 Unix Java
区块链Block创建时间
区块链Block创建时间
164 0
|
NoSQL
随笔:sending data状态包含了使用内部临时表
这是一个我的随笔记录,这些过程非常有用,也非常明显。 欢迎关注我的《深入理解MySQL主从原理 32讲 》,如下: 语句如下: mysql> desc select id,count(*) from t110 group by id; +----+-------------+-------+...
867 0
SAP修改标准程序MB52增加一个字段modification
在MB52的执行结果的alv的最末尾,增加一个列:供应商描述。这个修改不完全是增强,会用到点增强,但是这次修改更加深入:modification。也就是修改了SAP的标准程序的代码。为什么不完全是增强呢?因为增强的概念是:尽可能的without modify标准代码。
3316 0
|
SQL Oracle 关系型数据库
【体系结构】有关Oracle SCN知识点的整理--补充内容
【体系结构】有关Oracle SCN知识点的整理--补充内容   小麦苗自己整理的内容参考:【体系结构】有关Oracle SCN知识点的整理  http://blog.itpub.net/26736162/viewspace-2126407/ DBA入门之认识Oracle SCN(System Change Number) 1. SCN的定义 SCN(System Change Number),也就是通常所说的系统改变号,是数据库中非常重要的一个数据结构。
2300 0
|
C++ 索引
FBRetainCycleDetector不能扫描__block变量的问题分析和解决方案
#问题描述 这还得从使用Aspects这个库说起,如下图: ![aspects.png](http://ata2-img.cn-hangzhou.img-pub.aliyun-inc.com/a104dda7f1e515f16ab1bb4c05351c44.png) 上图中的id token 的类型如下图: ![aspectsIdentifier.png](http://ata2-im
2710 0
|
网络安全 数据库 关系型数据库
关于switchover的流程和补充
对于Oracle Data Guard中的Switchover一般是计划内的操作,自己其实也处理了不少的故障,也算是轻门熟路。复杂的事情简单做,简单的事情重复做,重复的事情用心做,想必很多事情都是这个理吧。
1008 0