[firebase-br] Interbase rápido x Firebird muito lento. Me ajudem com esse problema por favor.
Rodolpho da Silva
nascimento em gko.com.br
Qui Maio 14 09:57:36 -03 2009
Sinceridade Sandro?
Concordo com os engenheiros do FB em descartar o uso de índices para consultas do tipo CAMPO NOT IN (SELECT....). A cláusula IN é utilizada em expressões cujo a finalidade é passar um pequeno conjunto de valores. Tanto é que na maioria dos SGDB's (eu ainda não fiz este teste no FB, mas creio que seja assim tmb) o limite do conjunto de valores usado em IN é 1.000. Como as consultas NOT IN (SELECT....) tem finalidade apenas de verificar a existência de dados entre um consulta externa (CAMPO NOT IN) com a consulta interna ((SELECT...)) o uso de EXISTS é fundamental para correlacionar este tipo de informação. É por isso que a maioria dos SGBD's (inclusive o FB) priorizam este tipo de consulta, utilizando os índices no seu plano de execução, uma vez em que o uso de EXISTS não precisa exportar dados da consulta interna para a consulta externa, apenas retornar VERDADEIRO ou FALSO ....
É apenas a minha opnião....;-)
Abraços!
Rodolpho
----- Original Message -----
From: Sandro Souza
To: Carlos H. Cantu ; FireBase
Sent: Thursday, May 14, 2009 9:18 AM
Subject: Re: [firebase-br]Interbase rápido x Firebird muito lento. Me ajudem com esse problema por favor.
Bom dia/tarde Carlos.
Grande Carlos, muito obrigado por nos esclarecer sobre esse ponto
importante.
Tenho a esperança que um dia o Firebird possa utilizar um mecanismo mais
eficiente nesses tipo de pesquisa (NOT IN (<SELECT>)).
Mais uma vez muito obrigado pelos esclarecimentos.
2009/5/14 Carlos H. Cantu <listas em warmboot.com.br>
> EdB> Aproveitando a oportunidade, achei muito interessante o que
> EdB> disse nosso amigo Carlos H. Cantu sobre o operador NOT IN não
> EdB> mais utilizar índices nessas últimas versões do Firebird para não
> EdB> trazer resultados inconsistentes.
>
> Sendo mais preciso, o NOT IN não usará índices somente se a
> construção for do tipo ... NOT IN (<select>)
>
> EdB> Grande Carlos, você poderia dar um exemplo de como o NOT IN
> EdB> poderia gerar resultados inconsistentes se ainda utilizasse os
> EdB> índices? Fiquei muito curioso a respeito desse ponto.
>
> Retirado do release notes do FB 2.0:
>
> Existence Predicates NOT IN and ALL May Be Slow
> Firebird and, before that, InterBase, have produced incorrect results for
> the logical existence predicates ALL
> and NOT IN for many years. That problem has bee corrected in Firebird 2.0,
> but the change means that
> indexes on the inner tables cannot be used and performance may be slow
> compared to the same query's
> performance in V.1.5.
>
>
> []s
> Carlos H. Cantu
> www.FireBase.com.br - www.firebirdnews.org
> www.warmboot.com.br - blog.firebase.com.br
>
>
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>
______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
Para saber como gerenciar/excluir seu cadastro na lista, use: http://www.firebase.com.br/fb/artigo.php?id=1107
Para consultar mensagens antigas: http://firebase.com.br/pesquisa
------------------------------------------------------------------------------
No virus found in this incoming message.
Checked by AVG - www.avg.com
Version: 8.5.325 / Virus Database: 270.12.29/2114 - Release Date: 05/14/09 06:28:00
Mais detalhes sobre a lista de discussão lista