运行时:
select user_io_wait_time, cpu_time, elapsed_time, user_io_wait_time + cpu_time
from v$sqlarea where /* filter */
我得到如下输出。你能解释一下为什么cpu_time和user_io_wait_time的总和大于elapsed_time?我以为elapsed_time将是在查询上花费的总时间,包括user_io,cpu,system io,concurrency等。所有返回的行代表长时间运行的更新语句。 Oracle 10g。谢谢,托马斯。
USER_IO_WAIT CPU_TIME ELAPSED_TIME USER_IO_WAIT+CPU_TIME
721189651 32450000 742860743 753639651
719109237 32540000 740826171 751649237
720330754 32540000 741987150 752870754
725473348 32670000 747215507 758143348
720799316 32540000 742501530 753339316
725361991 33000000 747416902 758361991
725387023 32830000 747236752 758217023
720383321 32210000 741849457 752593321
答案 0 :(得分:2)
ELAPSED_TIME
只是elapsed time used by the cursor for parsing, executing, and fetching
。
CPU_TIME
是CPU time (in microseconds) used by this cursor for parsing, executing, and fetching
显然CPU_TIME
不包括用户时间,并发和应用程序等待时间等,并且USER_IO
时间不考虑cpu时间,并发和应用程序等待时间等。找出ELAPSED_TIME
的组成部分非常困难(但并非不可能)。
This应该让您对v$sqlarea
。