Boa noite!
Gostaria de saber se existe alguma diferença performática ou semântica entre o NOT e o <>, exemplo:
SELECT * FROM COMPRAS WHERE NOT VALOR = 108
E
SELECT * FROM COMPRAS WHERE VALOR <> 108
Boa noite!
Gostaria de saber se existe alguma diferença performática ou semântica entre o NOT e o <>, exemplo:
SELECT * FROM COMPRAS WHERE NOT VALOR = 108
E
SELECT * FROM COMPRAS WHERE VALOR <> 108
Leonardo, executei em uma base com mais de 5000 registros e não vi diferença de performance.
Mas, você pode executar os comandos, da forma abaixo, para avaliar e otimizar consultas.
EXPLAIN SELECT * FROM COMPRAS WHERE NOT VALOR = 108;
EXPLAIN SELECT * FROM COMPRAS WHERE VALOR <> 108;
Você também pode observar o tempo de execução de cada consulta no cliente SQL que você estiver usando.
Retirando a questão do SQL Server um pouco, vamos pensar na lógica.
NOT Valor = quero dizer que não seja um valor, por exemplo 108. Me traga todos os valores que não seja 108.
<> Diferente de 108 = quero dizer que seja diferente de um valor. Me traga todos os valores diferente de 108.
São comandos diferentes, mas pela lógica são resultados semelhantes.
Abraços.
Não vi problema na questão que você levantou de performance.
Mas, é possível pensar desta maneira.
1 A operação <> 108, é uma única instrução.
2 A operação NOT = 108 são duas instruções.
Talvez, no universo de milhões de dados faça diferença, mas tudo depende da velocidade do processador e como ele realiza as operações de comparação versus comparação e negação.