首页 > 代码库 > SQL逻辑读变成零

SQL逻辑读变成零

使用缓存HINT 让逻辑读变成0.

 

create table t as select * from dba_objects;insert into t select * from t;commit;set autotrace onset timing onset linesize 1000select /*+ result_cache */ count(*) from t;---接下来再次执行(居然发现逻辑读为0):set autotrace on select /*+ result_cache */ count(*) from t;

执行计划:

SQL> set autotrace onSQL> select /*+ result_cache */ count(*) from t;  COUNT(*)----------    145762已用时间:  00: 00: 00.01执行计划------------------------------------------------------------------------------------------| Id  | Operation           | Name                       | Rows  | Cost (%CPU)| Time     |------------------------------------------------------------------------------------------|   0 | SELECT STATEMENT    |                            |     1 |   589   (1)| 00:00:08 ||   1 |  RESULT CACHE       | d827qx1jmwjc86yqynrp1kvpny |       |            |          ||   2 |   SORT AGGREGATE    |                            |     1 |            |          ||   3 |    TABLE ACCESS FULL| T                          |   277K|   589   (1)| 00:00:08 |------------------------------------------------------------------------------------------统计信息----------------------------------------------------------          0  recursive calls          0  db block gets          0  consistent gets          0  physical reads          0  redo size        425  bytes sent via SQL*Net to client        416  bytes received via SQL*Net from client          2  SQL*Net roundtrips to/from client          0  sorts (memory)          0  sorts (disk)          1  rows processed