Criei um SQL para identificar a quantidade de sessions em paralelo durante um determinado período do dia no servidor PowerCenter. Este SQL foi testado na versão 8.6.1.
A quantidade de sessions é calculada no intervalo de 60 segundos, começando a meia noite e realizando 1000 interações (CONNECT BY LEVEL <=1000) .
SELECT RESULTADO_AUX.TEMPO, NVL(RESULTADO.QTD,0) AS QTD
FROM
(
SELECT TABELA_TEMPO_AUX.TEMPO, COUNT(1) AS QTD
FROM
(SELECT TO_DATE('15-04-2011','DD-MM-YYYY')+(LEVEL/86400)*60 TEMPO FROM DUAL CONNECT BY LEVEL <=1000) TABELA_TEMPO_AUX,
(SELECT S.INSTANCE_NAME AS NOME_SESSION, S.START_TIME AS INICIO, S.END_TIME AS FIM
FROM REP_TASK_INST_RUN S
WHERE to_char(start_time, 'DD/MM/YYYY') = '15/04/2011'
AND S.TASK_TYPE = 68 -- apenas session
AND S.RUN_ERR_CODE = 0 ) TABELA_SESSIONS
WHERE TABELA_TEMPO_AUX.TEMPO BETWEEN TABELA_SESSIONS.INICIO AND TABELA_SESSIONS.FIM
GROUP BY TABELA_TEMPO_AUX.TEMPO) RESULTADO,
(SELECT TO_DATE('15-04-2011','DD-MM-YYYY')+(LEVEL/86400)*60 TEMPO FROM DUAL CONNECT BY LEVEL <=1000) RESULTADO_AUX
WHERE RESULTADO_AUX.TEMPO = RESULTADO.TEMPO (+)
ORDER BY RESULTADO_AUX.TEMPO O resultado deste SQL pode ser exibido através de um gráfico no Excel de forma a facilitar o entendimento dos pontos de pico no Servidor.