[firebase-br] Regressão no Firebird???

Gladiston Santana gladiston em vidy.com.br
Qua Maio 11 11:55:01 -03 2016


Olhando no bugtrack onde postou o codigo, realmente a query é cabeluda e a
colocação do Vlad com [NOT] IN e do uso do [NOT] EXISTS, na minha opinião,
foi perfeita.
Inclusive, essa foi uma consideração antiga e acalorada aqui na lista, onde
alguns disseram ser a mesma coisa em termos de performance, mas
aparentemente não é.
De versão para versão, o plano de execução realmente pode mudar, não é
apenas o FB, mas qualquer RDBMS que lide com o custo da operação e o
fb2.5.1 e fb2.5.5 aparentemente demonstraram isso com  sua query, o que
significa uma possível regressão.

O FB tem um recursos bacanas para escrever queries cabeludas, especialmente
as que usam queries derivativas, chama-se CTEs, se bem utilizados,
simplificam o entendimento de uma querie e podem até melhorar a performance:
http://www.firebirdsql.org/file/documentation/reference_manuals/fblangref25-en/html/fblangref25-dml-select.html#fblangref25-dml-select-cte

inte+

Em 11 de maio de 2016 08:10, Denis Pereira Raymundo <denisuba em gmail.com>
escreveu:

> Por incrível que pareça, a SQL não resulta registro algum.
>
> Mais interessante, se eu rodar uma sql envolvendo as mesmas tabelas, mas
> sem aplicar os filtros, o resultado é mais rápido.
>
> Este comando SQL (cabeludo) não é obra prima minha.



Mais detalhes sobre a lista de discussão lista