如果你用的是oracle 10g的话,这个有种很简单的方法就是查看awr报告。
很简单,你登陆到服务器的 *** 作系统,进入到$ORACLE_HOME/rdbms/admin目录下。然后sqlplus "/as sysdba"登陆到数据库,执行
@awrrptsql;
然后按照提示一步一步做,注意格式选html(这样方便你阅读)。最后会让你命名这个文件。
完了之后,你把那个文件拷贝到本地用IE打开就看到了。里面有很详细的,包括这段时间占CPU,IO,等等最严重的SQL排行。很好很强大。
-------------------------
至于你说查看当前的sql,你在v$session里查看长期blocking别人的session ID,然后根据这个session id从v$text里就能查到这个sql了。
-------------------------
很明确了吧
分区后是否每个分区在不同的表空间,且是否查询的是所有数据?如果是,那么可能是由于你在查询的时候,由于数据在不同表空间,导致查询的数据块反而更多了,此时查询速度变慢就可以理解了嘛。另外,创建分区表并不能说是一定可以增加查询速度的,这要看你查询需要的结果集是否集中在尽可能少的数据库中,如果采用了表空间,也就可能降低查询速率了的……
以上就是关于oracle如何查出历史记录中执行效率低的SQL语句全部的内容,包括:oracle如何查出历史记录中执行效率低的SQL语句、Oracle对表分区完以后,为什么查询效率变慢了、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)