🔥 Articles, eBooks, Jobs, Columnist, Forum, Podcasts, Courses 🎓

Cuidado com o OR | ecode10.com


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




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
Top