Firebird 2.1 – Performance
Mudanças que podem ser a origem de perda de performance:
"NOT IN" e "ALL" podem ser lentos
Antes da versão 2.0, desde os tempos do Interbase, querys com os operadores lógicos "NOT IN" e "ALL" produziam resultados incorretos. Este problema foi corrigido no Firebird 2.0, mas as mudanças fazem com que os índices das tabelas contidas na subquery não sejam usados, podendo haver perda de performance comparando com o Firebird 1.5.
Atenção: "NOT EXISTS" é aproximadamente equivalente a "NOT IN" e fará o uso dos índices.
Fica claro que operadores "NOT IN" devem ser substituídos por "NOT EXISTS" quando possível para que não haja perda de performance.
Referência:

Leave a Reply