Cuidado com o OR
Faz diferença na sua consulta
Sempre que possÃvel substituir condições com OR por UNION ALL
Vamos criar um ambiente para testar esta dica:
CREATE TABLE #Produto
(
ID Int Identity(1,1),
NomeProduto varchar(500),
)
GO
INSERT INTO #Produto VALUES(NEWID())
GO 1000
CREATE CLUSTERED INDEX IX_ProdutoId ON #Produto(ID)
GO
CREATE INDEX IX_ProdutoNome ON #Produto(NomeProduto)
GO
Agora vamos fazer duas consultas, uma utilizando o OR e outra utilizando o UNION ALL.
SELECT * FROM #Produto
WHERE ID=10 OR NomeProduto Like '38%'
SELECT * FROM #Produto
WHERE ID = 10
UNION ALL
SELECT * FROM #Produto
WHERE NomeProduto Like '38%'
Ao utilizar o OR, percebemos que ele utiliza um Scan(mais lento) .
Não esqueça de apagar a tabela temporária.
DROP TABLE #Produto
Related articles
SQL Update using Try Catch
Na prática com exemplo real
Comando SQL Update usando Try Catch
Na prática e no database
SELECT Format Date Time for many countries
It is a good tip to use day by day
Membership $5/mo
✓ Full articles Subscribe ✓ Write forums ✓ Access podcast ✓ Full jobs opportunities ✓ Access eBooks ✓ Access magazine ✓ Access videos |
Free
✓ Open articles ✓ Read forums ✓ Access podcast x Full jobs opportunities x Access eBooks x Access magazine x Access videos |