Performance query
Estou iniciando no ramo de sql, montei uma query no sql developer porém quando vou realizar uma conta na query esta demorando em torno de 1 minuto e 39 segundos para apresentar o resultado,a conta seria (somatória da coluna MIN e após divido pela quantidade de atendimento, onde nesse exemplo são apenas 200 linhas), segue a query para exemplificar.
SELECT SUM (min)/ COUNT (CD_ATENDIMENTO),STATUS,MES, ANO
FROM (
select M.*,
(case
WHEN M.min <= 24.99
THEN 'menor que 25 minutos'
WHEN M.min >= 25
THEN 'maior que 25 minutos'
END)STATUS
from
(
select d.cd_atendimento,
d.cd_paciente SAME,
to_char (d.dt_atendimento, 'dd/mm/yyyy') data_atendimento,
to_char (d.hr_atendimento, 'hh24:mi') hora_atendimento,
1 qtd,
pref.nm_cor,
doc_fa.nm_usuario USUARIO_FICHA,
-- DOC_FICHAnm_usuario USUARIO_FICHA,
doc.nm_usuario medico_alta_int,
round ((((doc.dh_criacao - doc_fa.dh_criacao)*24) * 60),2) as min,
doc_fa.dh_criacao ficha_atendimento,
doc.dh_criacao alta_inter,
to_char (doc_fa.dh_criacao ,'hh24')*60 + to_char (doc_fa.dh_criacao, 'mi')MIN_CRIACAO_FICHA,
to_char (doc.dh_criacao ,'hh24')*60 + to_char (doc.dh_criacao, 'mi')As MIN_CRIA_ALTA_INTER,
to_char (dt_atendimento, 'mm')MES,
to_char (dt_atendimento, 'rrrr')ANO,
TO_CHAR (dt_atendimento, 'dd')DIA
from dbamv.atendime d,
dbamv.triagem_atendimento corate,
dbamv.sacr_cor_referencia pref,
( select c3.cd_atendimento,c3.cd_documento_clinico , usu.nm_usuario,c3.dh_criacao
from (select max(c2.cd_documento_clinico) cd_documento_clinico,
c2.cd_atendimento
from dbamv.pw_documento_clinico c2,
dbamv.pw_editor_clinico b2
where c2.cd_documento_clinico = b2.cd_documento_clinico
and (b2.cd_documento = 5 or b2.cd_documento = 36) -- inter_alta
and c2.tp_status = 'FECHADO'
group by c2.cd_atendimento) inter_alta,
dbamv.pw_documento_clinico c3
,dbasgu.usuarios usu
where inter_alta.cd_documento_clinico = c3.cd_documento_clinico
and c3.cd_usuario = usu.cd_usuario) doc,
( select c3.cd_atendimento,c3.cd_documento_clinico , usu.nm_usuario,c3.dh_criacao
from (select max(c2.cd_documento_clinico) cd_documento_clinico,
c2.cd_atendimento
from dbamv.pw_documento_clinico c2,
dbamv.pw_editor_clinico b2
where c2.cd_documento_clinico = b2.cd_documento_clinico
and b2.cd_documento = 4-- ficha de atendimento
and c2.tp_status = 'FECHADO'
group by c2.cd_atendimento) inter_alta,
dbamv.pw_documento_clinico c3
,dbasgu.usuarios usu
where inter_alta.cd_documento_clinico = c3.cd_documento_clinico
and c3.cd_usuario = usu.cd_usuario) doc_fa
where d.cd_atendimento = doc.cd_atendimento
and d.cd_atendimento = doc_fa.cd_atendimento
and d.cd_atendimento = corate.cd_atendimento
and corate.cd_cor_referencia = pref.cd_cor_referencia
and d.tp_atendimento = 'U'
-- and c.cd_atendimento = 993169
AND to_date(to_char(dt_atendimento, 'dd/mm/rrrr')) BETWEEN '07/05/2018' AND '07/05/2018'
)M
)ATENDIMENT_MEDICO
GROUP BY
STATUS,
MES,
ANO

Discussão (1)
Carregando comentários...