Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

neotheone

23 segundo para executar query

Recommended Posts

Oi pessoal beleza?

 

Essa minha query está levando em média 23 segundo para executar, alguem consegue enxergar algum error ou alguma forma de melhorar o desempenho?

 

SELECT tblORD.ordem_judicial,
	   if(tblIDE.id_solicitacao is NULL, tblINT.id_solicitacao, tblIDE.id_solicitacao) as solicitacao,
	   tipo,
	   tblSER.servico,
	   usuario_encontrado,
	   ip,
	   data_tratamento as DataEntrada ,
	   if(tbIDEDataInicio.dataInicio is NULL, tbINTDataInicio.dataInicio, tbIDEDataInicio.dataInicio) as DataInicio,
	   if(tbIDEDataFim.dataFim is NULL, tbINTDataFim.dataFim, tbIDEDataFim.dataFim) as DataFim,
	   if(tblIDE.analista is NULL, tblINT.analista, tblIDE.analista) as analista,
	   if(tbIDEDataInicio.dataInicio is NULL, TIMEDIFF(tbINTDataFim.dataFim, tbINTDataInicio.dataInicio), TIMEDIFF(tbIDEDataFim.dataFim, tbIDEDataInicio.dataInicio)) as tempo,
	   if(TIME_TO_SEC(if(tbIDEDataInicio.dataInicio is NULL, TIMEDIFF(tbINTDataFim.dataFim, tbINTDataInicio.dataInicio), TIMEDIFF(tbIDEDataFim.dataFim, tbIDEDataInicio.dataInicio))) > 259200, 'Fora do Prazo', 'No Prazo') as indicador
FROM tbl_Servicos as tblSER
INNER JOIN tbl_ordem_judicial AS tblORD
LEFT JOIN tbl_Identificacao_Usu as tblIDE on tblIDE.fk_ordem_judicial = tblORD.id_ordem
LEFT JOIN tbl_Interceptacao_Usu as tblINT on tblINT.fk_ordem_judicial = tblORD.id_ordem
LEFT JOIN tbl_TOJ_Identificacao as tblTIDE on tblTIDE.fk_id_solicitacao = tblIDE.id_solicitacao
LEFT JOIN tbl_TOJ_Interceptacao as tblTINT on tblTINT.fk_id_solicitacao = tblINT.id_solicitacao
left join (
		select fk_id_solicitacao, min(concat(data_modificacao,' ',hora_modificacao)) as dataInicio
		from tbl_Historico
		where fk_status = 2
		group by fk_id_solicitacao) as tbIDEDataInicio on tbIDEDataInicio.fk_id_solicitacao = tblIDE.id_solicitacao
left join (
		select fk_id_solicitacao, max(concat(data_modificacao,' ',hora_modificacao)) as dataFim
		from tbl_Historico
		where fk_status = 7
		group by fk_id_solicitacao) as tbIDEDataFim on tbIDEDataFim.fk_id_solicitacao = tblIDE.id_solicitacao
left join (
		select fk_id_solicitacao, min(concat(data_modificacao,' ',hora_modificacao)) as dataInicio
		from tbl_Historico
		where fk_status = 2
		group by fk_id_solicitacao) as tbINTDataInicio on tbINTDataInicio.fk_id_solicitacao = tblINT.id_solicitacao
left join (
		select fk_id_solicitacao, max(concat(data_modificacao,' ',hora_modificacao)) as dataFim
		from tbl_Historico
		where fk_status = 7
		group by fk_id_solicitacao) as tbINTDataFim on tbINTDataFim.fk_id_solicitacao = tblINT.id_solicitacao
WHERE (tblTIDE.tipo_servico = tblSER.id_servico or tblTINT.tipo_servico = tblSER.id_servico)

Compartilhar este post


Link para o post
Compartilhar em outros sites

1. qual o volume de dados dentro das tabelas relacionadas ?

quantos registros ? 100 mil ? 800 mil ? 5 milhoes ? 20 milhoes ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

verfiique também se está ativado

 

"slow_query_log"

se estiver ativado, verifique qual o arquivo de logs está sendo usado

para saber qual o arquivo, veja o valor apontado por

"slow_query_log_file"

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.