Вам нужно изменить внешний список выбора, чтобы включить секунды:
SELECT TO_CHAR(SAMPLE_TIME, 'HH24:MI:SS') AS SAMPLE_TIME,
Вам необходимо удалить усечение минутного уровня из внутреннего списка выбора запросов:
FROM (SELECT SAMPLE_TIME,
Вам необходимо изменить фильтр времени выборки (поскольку столбец является меткой времени, он также может использовать systimestamp
и интервал, чтобы он оставался единым):
WHERE SAMPLE_TIME > SYSTIMESTAMP - INTERVAL '10' SECOND
)
ASH PIVOT(COUNT(*)
И, как отмечено в комментариях, ваш COMMIT
должен быть 'Commit' as COMMIT
, в противном случае вы получите «ORA-56901: непостоянное выражение недопустимо для значений pivot | unpivot», по крайней мере, в 11gR2, 12cR1 и 12cR2; и вам нужно указать действительное имя wait_class
, как оно отображается в представлении ASH.
С этими изменениями, кажется, запрос делает то, что вы хотите. Это не обязательно покажет 10 строк, поскольку, возможно, не было образцов каждую секунду; например на очень тихой БД я обычно не получаю ни одной строки или только нескольких.
SELECT TO_CHAR(SAMPLE_TIME, 'HH24:MI:SS ') AS SAMPLE_TIME,
ROUND(OTHER / 60, 3) AS OTHER,
ROUND(CLUST / 60, 3) AS CLUST,
ROUND(QUEUEING / 60, 3) AS QUEUEING,
ROUND(NETWORK / 60, 3) AS NETWORK,
ROUND(ADMINISTRATIVE / 60, 3) AS ADMINISTRATIVE,
ROUND(CONFIGURATION / 60, 3) AS CONFIGURATION,
ROUND(COMMIT / 60, 3) AS COMMIT,
ROUND(APPLICATION / 60, 3) AS APPLICATION,
ROUND(CONCURRENCY / 60, 3) AS CONCURRENCY,
ROUND(SIO / 60, 3) AS SYSTEM_IO,
ROUND(UIO / 60, 3) AS USER_IO,
ROUND(SCHEDULER / 60, 3) AS SCHEDULER,
ROUND(CPU / 60, 3) AS CPU,
ROUND(BCPU / 60, 3) AS BACKGROUND_CPU
FROM (SELECT SAMPLE_TIME AS SAMPLE_TIME,
DECODE(SESSION_STATE,
'ON CPU',
DECODE(SESSION_TYPE, 'BACKGROUND', 'BCPU', 'ON CPU'),
WAIT_CLASS) AS WAIT_CLASS
FROM V$ACTIVE_SESSION_HISTORY
WHERE SAMPLE_TIME > SYSTIMESTAMP - INTERVAL '10' second
) ASH
PIVOT (
COUNT(*)
FOR WAIT_CLASS IN ('ON CPU' AS CPU,
'BCPU' AS BCPU,
'Scheduler' AS SCHEDULER,
'User I/O' AS UIO,
'System I/O' AS SIO,
'Concurrency' AS CONCURRENCY,
'Application' AS APPLICATION,
'Commit' as COMMIT,
'Configuration' AS CONFIGURATION,
'Administrative' AS ADMINISTRATIVE,
'Network' AS NETWORK,
'Queueing' AS QUEUEING,
'Cluster' AS CLUST,
'Other' AS OTHER)
)
ORDER BY 1
/
SAMPLE_TI OTHER CLUST QUEUEING NETWORK ADMINISTRATIVE CONFIGURATION COMMIT APPLICATION CONCURRENCY SYSTEM_IO USER_IO SCHEDULER CPU BACKGROUND_CPU
--------- ---------- ---------- ---------- ---------- -------------- ------------- ---------- ----------- ----------- ---------- ---------- ---------- ---------- --------------
17:57:26 0 0 0 0 0 0 0 0 0 0 0 0 .017 0