[firebase-br] Otimizar Select

Cyber Guido cyberguido em gmail.com
Qua Mar 16 13:27:58 -03 2011


  Olá Marcelo,

Creio que

select USURIAO_ID
from TB_USUARIO U
where (NOT EXISTS(select USUARIO_ID from TB_TAREFAS T WHERE(T.USUARIO_ID = U.USUARIO)))

execute mais rapidamente.

Meio na correria agora para testar se funciona ou se a redação está 
correta, a ideia é apontar que o uso de EXISTS é uma alternativa, e pode 
ser mais eficiente.

Até,
Carlos


On 16/03/2011 12:45, Marcelo Moreira wrote:
> Pessoal,
>
> Trabalhando com o Firebird 2.1.3 em modo Classic imaginemos a seguinte
> situacao
>
> TB_TAREFAS (contendo mais ou menos umas 100 mil linhas)
> TB_USUARIO (contendo mais ou menos umas 40 linhas)
>
> O que eu preciso é pegar todos os USUARIO_ID cadastrados na tabela
> TB_USUARIO eliminando apenas os USUARIO_ID que estiverem na tabela
> TB_TAREFAS
>
> select USURIAO_ID
> from TB_USUARIO
> where USUARIO_ID not in (select USUARIO_ID from TB_TAREFAS)
>
> É isso mesmo ou tem algo que eu possa fazer para melhorar o SELECT?
>
> Obrigado!
>





Mais detalhes sobre a lista de discussão lista