При анализе файлов трассировки Oracle tkprof я заметил, что иногда существует большая разница между временем процессора и истекшим временем, и я не знаю, что его вызывает.
Например:
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 1 0.00 42.09 0 0 0 0
Execute 1 0.01 0.01 0 0 0 0
Fetch 45 14.44 62.71 48664 505513 0 1871
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 47 14.45 104.82 48664 505513 0 1871
Статистика ожидания выглядит следующим образом:
Event waited on Times Max. Wait Total Waited
---------------------------------------- Waited ---------- ------------
SQL*Net message to client 46 0.00 0.00
SQL*Net message from client 46 0.19 1.68
buffer busy waits 559 0.23 8.59
db file scattered read 5204 0.21 7.49
db file sequential read 4240 0.20 13.49
latch free 215 0.11 3.62
Я разработчик программного обеспечения (не администратор БД), поэтому я обычно просматриваю эти файлы трассировки, чтобы найти неэффективные запросы или посмотретьИндекс может быть использован для остановки полного сканирования таблицы и так далее.Для этого я склонен идти на время процессора.В большинстве случаев истекшее время очень похоже на время процессора.
У меня нет доступа к базе данных, сгенерировавшей файл трассировки (это с клиентского сайта), но я хотел бы понять, что происходитчтобы я мог делать предложения относительно того, как сократить истекшее время.