日期:2014-05-16  浏览次数:20558 次

【每日一摩斯】-Troubleshooting: High CPU Utilization (164768.1) - 系列6

如果问题是一个正运行的缓慢的查询SQL,那么就应该对该查询进行调优,避免它耗费过高的CPU资源。如果它做了许多的hash连接和全表扫描,那么就应该添加索引以提高效率。

下面的文章可以帮助判断查询的问题:

Note:215187.1 SQLT (SQLTXPLAIN) - Tool that helps to diagnose SQL

Note:199083.1 Master Note: SQL Query Performance Overview

实时SQL监控是11g的一个新特性,它能监控正运行的SQL性能。
Note.1229904.1 Real-Time SQL Monitoring in 11g

其它的跟踪技术也可能是有用的,用于判断一个进程是否需要继续使用高CPU资源,分析原因。

Note:376442.1 How To Collect 10046 Trace (SQL_TRACE) Diagnostics for Performance Issues


总结
SQL调优其实是一个很复杂的事情,有时表象仅仅是慢,但其真正的原因可能是多样性的,可能是SQL语句的问题,可能是数据库具体参数配置的问题,也可能是操作系统资源争用的问题,这样的问题必须具体问题具体分析,没有一个统一的规则,但至少对于每一类问题有一些可参考的判断方法,可能直接看这些印象不会太深,真实处理这样的问题往往更有意义,当然不是每次都有这样的机会,那就创造机会或寻找机会,总之如果想学,就一定有方法可以学到的。