[firebase-br] WHERE X <> 0 ou WHERE NOT (X = 0)

Paulo Geloramo paulogeloramo em terra.com.br
Qui Ago 23 12:14:02 -03 2007


Firebird 2.0.1

Qual o melhor desempenho?

WHERE X <> 0
ou
WHERE NOT (X = 0)

Existe alguma situação para preferir uma
forma a outra?

Nos testes que fiz em um banco pequeno,
gerou o mesmo plan e a performance  foi
praticamente igual, veja os resultados abaixo.

Este código pode ter sido traduzido antes
de ser passado para o banco, ou seja, o
banco esta sempre recebendo o mesmo
código?


Resultado:
------------------
WHERE X <> 0

Plan
PLAN JOIN (JOIN (L NATURAL, P INDEX (FK_PRODUTO_PERFIL), E INDEX
(FK_EDICAO_PRODUTO)), N INDEX (PK_NOTA_PONTO))

Adapted Plan
PLAN JOIN (JOIN (L NATURAL, P INDEX (FK_PRODUTO_PERFIL), E INDEX
(FK_EDICAO_PRODUTO)), N INDEX (PK_NOTA_PONTO))

------ Performance info ------
Prepare time = 0ms
Execute time = 31ms
Avg fetch time = 15,50 ms
Current memory = 668.780
Max memory = 687.108
Memory buffers = 2.048
Reads from disk to cache = 0
Writes from cache to disk = 0
Fetches from cache = 41.149


-----------
WHERE NOT (X = 0)

Plan
PLAN JOIN (JOIN (L NATURAL, P INDEX (FK_PRODUTO_PERFIL), E INDEX
(FK_EDICAO_PRODUTO)), N INDEX (PK_NOTA_PONTO))

Adapted Plan
PLAN JOIN (JOIN (L NATURAL, P INDEX (FK_PRODUTO_PERFIL), E INDEX
(FK_EDICAO_PRODUTO)), N INDEX (PK_NOTA_PONTO))

------ Performance info ------
Prepare time = 0ms
Execute time = 32ms
Avg fetch time = 16,00 ms
Current memory = 668.912
Max memory = 687.108
Memory buffers = 2.048
Reads from disk to cache = 0
Writes from cache to disk = 0
Fetches from cache = 41.149

[]s
Paulo Geloramo





Mais detalhes sobre a lista de discussão lista