sql数据库走索引怎么始终有物理读?

来源:转载

  问题是这样的:
1 sql> r

2   1  select count(*)

3   2  from t_edu_member_info

4   3* where status='1' and xs_zy='1'

01 执行计划

02 -------------------------------------------------------------------------------------------

03    0      SELECT STATEMENT Optimizer=ALL_ROWS (Cost=1 Card=1 Bytes=10)

04    1    0   SORT (AGGREGATE)

05    2    1     FILTER

06    3    2       INDEX (RANGE SCAN) OF 'IND_T_PREBM4' (NON-UNIQUE) (Cost=1 Card=5 Bytes=50)

07

08 统计信息

09 ----------------------------------------------------------

10          25  recursive calls

11          14  db block gets

12           3  consistent gets

13           1  physical reads

14         972  redo size

15         375  bytes sent via SQL*Net to client

16         372  bytes received via SQL*Net from client

17           2  SQL*Net roundtrips to/from client

18           1  sorts (memory)

19           0  sorts (disk)

20           1  rows processed

这个结果已经跑了几次,但是 recursive calls 依然存在,后来从10046事件产生的trace文件中到了线索。用tkprof格式化trace文件后,可以看到:

1 select count(*)

2 from t_edu_member_info

3 where status='1'

4 and xs_zy='1'

01 call     count       cpu    elapsed       disk      query    current        rows

02 ------- ------  -------- ---------- ---------- ---------- ----------  ----------

03 Parse        1      0.01       0.00          0          0          0           0

04 Execute      1      0.78       0.90   

 

分享给朋友:
您可能感兴趣的文章:
随机阅读: