在调整SQL过程中,需要收集有问题的SQL,需要关注些什么呢?
如果你关注的是CPU那么在调整查找问题期间,应该关注那些BUFFER_GETS高的语句。否则就去定位那些DISK_READS高的语句
对于这些个问题语句需要关注它们的什么信息呢?
1.可以从v$sqltext中找到他们的完整脚本
2.这些脚本中用到那些表,表的结构是怎么样的
3.表的列,列的顺序,索引情况,是否是唯一索引
4.对于这些表,优化器对它们的统计信息是怎样的,什么时候做的统计信息收集
5.关注与SQL相关的种类视图
6.关注SQL的执行计划.例如可以从explan plan,v$sql_plan,tkprof输出文件中去了解.
SQL调整如此麻烦,有不有什么简单的办法定位优化这些不良SQL呢?
有,还很多!ORACLE自己是有工具自动查找这些问题语句,并给出优化方案的好东西
1.Automatic Database Diagnostic Monitor (ADDM) 它可以分析AWR收集的信息
2.SQL Tuning Advisor 。它可以对不良语句给出快速有效的调整方法.
3.SQL Tuning Set .这个东西不知道它是做什么的,你知道可以给我说哦
When multiple SQL statements are used as input to ADDM or SQL Tuning Advisor, a SQL Tuning Set (STS) is constructed and stored. The STS includes the set of SQL statements along with their associated execution context and basic execution statistics. 没看明白!
4.SQLAccess Advisor.它对于 materialized views,索引, materialized views logs提供建议
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/15720542/viewspace-629376/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/15720542/viewspace-629376/