Oracle 通过AWR的SQL ordered by Gets和SQL ordered by Reads诊断问题
之前看过很多数据库报告,直到最近出现过两次严重的性能问题,非常有代表性,所以记录下来。
一次是报Oracle进程把数据库服务器的CPU弄到100%
SQL ordered by Gets 是在内存中取数据,单位是次,是消耗CPU的主要源头,在调试SQL的时候,大部分时候都是通过它来衡量性能。下面是实际的AWR报告,相当骇人啊:
SQL ordered by Gets
Resources reported for PL/SQL code includes the resources used by all SQL statements called by the code.
Total Buffer Gets: ###############
Captured SQL account for 5.0% of Total
Buffer Gets
Executions
Gets per Exec
%Total
CPU Time (s)
Elapsed Time (s)
SQL Id
SQL Module
SQL Text
1,606,380,390
84
19,123,576.07
-0.84
37923.62
207407.54
78tpfukr4m00p
JDBC Thin Client
select sum(temp.MidUser) total...
1,479,957,445