109837 rows selected.
Statistics
----------------------
1786 recursive calls
5 db block gets
2771 consistent gets
5617 physical reads
0 redo size
6429630 bytes sent via SQL*Net to client
80927 bytes received via SQL*Net from client
7324 SQL*Net roundtrips to/from client
21 sorts (memory)
1 sorts (disk)
109837 rows processed
以上是我查询某张表时的执行计划(注:当执行这一查询前,首先是清空了flush_cache和shared_pool),我想请问一下各位大侠们:
1、‘db block gets’+‘consistent gets’的数值表示了逻辑读取,但是我之前清空了缓存,怎么会有逻辑读块数呢?
2、consistent gets 的意思是:数据请求总数在回滚段Buffer中的数据一致性读所需要的数据块,我想请大侠们解释一下这只是一个查询,怎么会产生到回滚段去了呢?并且还有这么多所需要的数据块?
3、sorts(memory) 和 sorts (disk) 在内存和磁盘排序量,这是什么意思啊?
先谢谢各位大侠的细心解释,小生在此鞠躬了!谢谢!
statistics buffer cache
------解决方案--------------------
清空了flush_cache和shared_pool、只是把library cache里面的执行计划和统计信息 清空掉 、数据块还在、、重启就没了
第二个问题、一致性读、到undo里面去取before image 、Oracle 强于 其他 RDBMS的地方
第三个问题、顾名思义啊、在内存中排序、如果不够、则要到磁盘、到了磁盘性能肯定下降