一般情况我们作为非DBA人士,只关注一些SQL的指标,主要指标见下图,
详细的解释见下面的描述。
SQL ordered byElapsed Time
记录了执行总和时间的TOP SQL(请注意是监控范围内该SQL的执行时间总和,而不是单次SQL执行时间 Elapsed Time = CPU Time + Wait Time)。
Elapsed Time(S): SQL语句执行用总时长,此排序就是按照这个字段进行的。注意该时间不是单个SQL跑的时间,而是监控范围内SQL执行次数的总和时间。单位时间为秒。ElapsedTime = CPU Time + Wait Time
CPU Time(s): 为SQL语句执行时CPU占用时间总时长,此时间会小于等于Elapsed Time时间。单位时间为秒。
Executions: SQL语句在监控范围内的执行次数总计。
Elap per Exec(s): 执行一次SQL的平均时间。单位时间为秒。
% Total DB Time: 为SQL的Elapsed Time时间占数据库总时间的百分比。
SQL ID: SQL语句的ID编号,点击之后就能导航到下边的SQL详细列表中,点击IE的返回可以回到当前SQL ID的地方。
SQL Module: 显示该SQL是用什么方式连接到数据库执行的,如果是用SQL*Plus或者PL/SQL链接上来的那基本上都是有人在调试程序。一般用前台应用链接过来执行的sql该位置为空。
SQL Text: 简单的sql提示,详细的需要点击SQL ID。
}
SQL ordered by CPUTime:
}
记录了执行占
CPU
时间总和时间最长的
TOP SQL(
请注意是监控范围内该
SQL
的执行占
CPU
时间总和,而不是单次
SQL
执行时间
)
。
}
SQL ordered by Gets:
}
记录了执行占总
buffer gets(
逻辑
IO)
的
TOP SQL(
请注意是监控范围内该
SQL
的执行占
Gets
总和,而不是单次
SQL
执行所占的
Gets)
◦
Buffer
Gets
获取
buffer
的总数。
◦
Gets per Exec
执行一次获取
buffer
数。
◦
%
Total
BufferGets/
Total Buffer Gets
}
SQL ordered byReads:
}
记录了执行占总磁盘物理读
(
物理
IO)
的
TOP SQL(
请注意是监控范围内该
SQL
的执行占磁盘物理读总和,而不是单次
SQL
执行所占的磁盘物理读
)
。
◦
Physical
Reads
读取磁盘总数。
◦
Reads per
Exec
平均一次执行读取的磁盘数。
%Total
Physical Reads
/
Total Disk Reads
}
SQL ordered byExecutions:
}
记录了按照
SQL
的执行次数排序的
TOP SQL
。该排序可以看出监控范围内的
SQL
执行次数。
◦
Rows
Processed
结果总行数
◦
Rows per
Exec
平均每次结果行数
}
SQL ordered by ParseCalls:
}
记录了
SQL
的软解析次数的
TOP SQL
。说到软解析
(soft
prase
)
和硬解析
(hard
prase
)
,就不能不说一下
Oracle
对
sql
的处理过程。
◦
Parse
Calls
该
sql
软解析总次数
◦
% Total
Parses
该
sql
占总的软解析次数的百分比
}
SQL ordered bySharable Memory:
}
记录了
SQL
占用
library cache
的大小的
TOP SQL
。
Sharable
Mem
(b)
:占用
library cache
的大小,单位是
byte
,列出超过
1048576byte
。
◦
Sharable
Mem
(b
)
该
sql
占用的
libCache
的大小
◦
%
Total
占
library cache
的百分比
}
SQL ordered byVersion Count:
}
记录了
SQL
的打开子游标的
TOP SQL
,列出打开子游标大于
20
。
◦
Version Count
打开的子游标数
}
SQL ordered byCluster Wait Time:
}
记录了集群的等待时间的
TOP SQL
◦
Cluster Wait Time (s
)
等待时间
CWT % of
Elapsd
Time
表示
等待时间
/
总的执行时间的百分比