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
Subscribe ecode10.com
Receive our latest updates about programming languages, software, database, books, ebooks, classes, jobs and more.
You can cancel anytime.
Log In
Related articles
SELECT Format Date Time for many countries
It is a good tip to use day by day
Creating a SiteMap using SQL Database
Como indexar melhor meu site e links?
Transformando linhas em colunas usando SQL Server
veja como funciona