大家在statspack报告中经常会去查看top5的语句,但想得到top5语句,其实非常之简单,完全没有必要兴师动众地去用statspack,
而只要这条简单的SQL语句即可轻松搞定。
Statspack还是在需要分析event,latch,io 等时再去用吧。
SQL> select substr(sql_text,1, 50) sql_text,buffer_gets,buffer_gets/executions avg from v$sqlarea
2 where executions > 0
3 and buffer_gets > 100000
4 and rownum < 5
5 order by 3;
程序中使用隐式转换是一个很不好的编程习惯,不仅不能客观反应出数据库如何真正地处理数据,而且还会带来一些隐藏的性能问题,
下面就是一个示例,说明varchar2与number之间隐式转换导致索引失效,最终导致可以使用索引的地方使用全表扫描,带来严重的性能问题…
下面做个小试验:
SQL> set autotrace on explain <---打开执行计划监控
SQL> create table t ( id varchar2(20));
Table created.
Elapsed: 00:00:00.04
SQL> begin <---向表中填入2000000条数据
2 for i in 1 .. 2000000 loop
3 insert into t values(i);
4 end loop
5 ;
6 commit;
7 end;
8 /