select t.sql_id,t.executions_total,t.disk_reads_total,t.parse_calls_total,a.sql_text
from sys.wrh$_sqlstat t,sys.wrh$_sqltext a
where t.parsing_schema_name='WW_XRAPUSER' and t.sql_id=a.sql_id;
执行这个语句得到sql语句的缓存情况
如上面这张表中,他会反映某个特定Sql语句的执行信息。其中第一个参数Excutions_Total参数纪录了某条SQL语句总共执行的次数。而第二个参数Disk-Reads-Totali参数则统计了从磁盘中读取数据的次数。当SQL语句的执行次数特别多而且又是多次从磁盘中读取数据的话,那么数据库管理员就要注意了。因为从磁盘中读取数据要比从内存中读取数据慢的多。此时,若数据库管理员能够想方设法,让这些执行频率高的SQL语句不直接从磁盘中读取数据,而是从内存中读取数据,那么就可以非常有效的提高SQL语句的执行效率。
另附:
先用下面的公式计算高速缓存区的命中率:1-(physical reads/(db block gets+consisten gets))上面的数据由下面得到
select name,value from v$sysstat where name in('physical reads','db block gets','consistent gets');
如果命中率是0.90或更高,遇明是好的。如果过低就要增加db_block_buffers的值。