Query very slow
Boa tarde,
tenho uma query que está demorando muito a rodar. Obs: se eu colocar qualquer outro prestador ela executa rápido.
Outro detalhe é que se eu colocar um limit ele me retorna os registros, no caso eu coloquei LIMIT 1000 mas ele me retorna 243 linhas.
Rodei um explain ele está pegando indice para todos os INNERS.
select fpp.chave, fpp.cd_parcela, fpp.efetivado as efetivado, fpp.dt_vencimento as data, fpp.tipo_comissao as tcomissao, fpp.historico, fpp.valor_parcela, '' as chave_op, '' as num_parcela, fpp.valor_credito,
'' as valor_credito_pg, c.boleto, '' as situacao_op, 'Intervenção' as tipo_comissao, '' as num_parcelas, fpp.observacoes, fpp.cd_prestador, fpp.cd_intervencao, i.nm_intervencao, p.nm_paciente, p.sobrenome,
ot.dtinicio as tratamento, fpp.valor_debito, oi.receber_paciente, oi.regiao,
fpp.comissao, fpp.vlintervencao, fpp.abatimentos, oi.dtfinalizacao,
ot.chave as chave_tratamento, ot.tipo_tratamento, fin.cd_carne, fpp.dt_baixa as dt_baixa,
'' as cd_parcela_destino, tt.nm_tipo_tratamento, fpp.taxa_forma_pagamento,
fpp.taxa_forma_pagamento_valor, c.tipo as tipo_convenio, '' as chave_financeiro_convenio,
'' as cd_financeiro_clinica, fpp.dt_baixa as dtPagamento, c.conv_dentalvidas_100_perc,
fin.chave as chaveFinanceiro, oi.chave as chaveIntervencao, fpp.id_split,
0 as comissao_parcelada_tef, fpp.intervencao_paga_com_split,
date_format(fpp.dh_estorno_comissao_split, '%d/%m/%Y %H:%i:%s') as dh_estorno_comissao_split,
ot.manutencao
from tbl_financeiro_prestador_parcelas fpp
inner join tbl_odonto_intervencoes oi on (fpp.cd_intervencao = oi.chave)
inner join tbl_odonto_tratamento ot on (oi.cd_tratamento = ot.chave)
inner join tbl_convenio c on (ot.cd_convenio = c.chave)
inner join tbl_financeiro_paciente as fin on ot.chave = fin.cd_tratamento
inner join tbl_paciente p on (ot.cd_paciente = p.chave)
INNER join tbl_intervencao i on (oi.cd_intervencao = i.chave)
INNER join tbl_tipo_tratamento tt on (ot.tipo_tratamento = tt.chave)
LEFT JOIN tbl_odonto_parcelas as op on (ot.chave = op.cd_tratamento and fpp.cd_prestador = op.cd_prestador and op.situacao = 'P'
and op.carne = 'N' and op.valor_comissao > 0 and op.cd_prestador = 'L00500020130206100501'
and oi.chave = op.cd_intervencao)
where 1=1 and (fpp.tipo_comissao = 'C') and fpp.cd_prestador = 'L00500020130206100501'
and fpp.cd_filial = '005' AND (c.tipo = 'P' OR c.tipo = 'C') and oi.dtfinalizacao >= '2021-03-29'
AND oi.dtfinalizacao <= '2021-04-28 23:59:59' AND op.chave is null
and tt.grupo_tratamento in ('L00400020151222173435') AND c.boleto <> 'S'
AND (fpp.intervencao_paga_com_split = 0
OR
(ot.manutencao = 'S' AND fpp.intervencao_paga_com_split = 1
AND fpp.dh_estorno_comissao_split IS NULL
)
)
group by fpp.cd_intervencao LIMIT 1000;