Consulta comprometida

Tuning de Banco, Tuning de SQL, Ferramentas de tuning
Responder
thalessan
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 3
Registrado em: Qua, 30 Mai 2012 9:43 am

Bom dia a todos.

Estou com um pequeno problema aqui na empresa e acho que podem me ajudar a melhorar minha consulta.

Criei o seguinte SQL para fazer a seguinte consulta:

Preciso pegar o número de todas as autorizações que possuem participantes mas que não têm nenhum pedido criado com status "ORC" ou "FAL".

Vejam o comando:

Selecionar tudo

SELECT DISTINCT
  AD.AUTORIZACAO AS AUTORIZACAO
FROM
  AUTORIZACAO_CASSI_DATA AD
INNER JOIN PARTICIPANTES PA
ON
  AD.ID_PARTICIPANTE = PA.IDENTIFICADOR_PARTICIPANTE
WHERE
  AD.STATUS_INTERNO       = 'D'
AND AD.EVENTO_SITUACAO   IN ('A','L')
AND PA.TIPO_OPERACAO NOT IN 'E'
AND PA.STATUS NOT        IN 'S'
AND AD.AUTORIZACAO NOT   IN
  (
    SELECT DISTINCT
      CP.AUTORIZACAO_CASSI
    FROM
      FAT_CAPAPEDIDO_ERP CP
    WHERE
      CP.AUTORIZACAO_CASSI = AD.AUTORIZACAO
    AND CP.STATUS         IN ('ORC','FAL')
  )
ORDER BY
  AD.AUTORIZACAO ASC
Problema: Graças ao subselect que utilizo a consulta está demorando cerca de 1 minuto para retornar apenas 15 linhas...

alguém saberia uma maneira de otimizar essa consulta?

Valeu.
Avatar do usuário
fbifabio
Moderador
Moderador
Mensagens: 199
Registrado em: Ter, 22 Fev 2011 1:51 pm
Localização: São Paulo - SP
Contato:
Fábio Prado
www.fabioprado.net

@thalessan,

Gere um plano de execução e poste ele aqui!

[]s
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 6 visitantes