UNION x UNION ALL
Qual a diferença entre UNION e...?
Este post será sobre uma pergunta que sempre me fazem. Qual a diferença entre UNION e UNION ALL?
Para começarmos vamos só relembrar 2 regas básicas para o uso do UNION/UNION ALL -Todas consultas devem ter o mesmo número de campos -O tipo de dado do Campo1 da Consulta1 deve ser igual ao tipo de dado do Campo1 da Consulta2 e assim por diante.
De forma breve, a diferença é que o UNION ALL apenas une os resultados de cada select. Enquanto o UNION não exibe valores repetidos, ou seja, ele faz um distinct antes, tornando a consulta mais onerosa. Vamos à prática:
DECLARE @Clientes2010 table (Nome varchar(50)) DECLARE @Clientes2011 table (Nome varchar(50))
INSERT INTO @Clientes2010 values ('Empresa X'),('Empresa Y'),('Empresa Z'), ('Empresa Alfa') INSERT INTO @Clientes2011 values ('Empresa A'),('Empresa B'),('Empresa Z'), ('Empresa Alfa')
SELECT Nome FROM @Clientes2010 UNION SELECT Nome FROM @Clientes2011 SELECT Nome FROM @Clientes2010 UNION all SELECT Nome FROM @Clientes2011


Plano de execução:Â

Análise:

Veja que o comando UNION foi quase 3 x mais oneroso comparado ao UNION ALL
DICA:
Se você está fazendo uma união de selects e você tem certeza que são valores diferentes(Pessoa FÃsica/Pessoa JurÃdica) , use sempre o UNION ALL, pois não fará diferença o Distinct e a performance será melhor.
Se você está fazendo uma união de selects e você tem certeza que são valores diferentes(Pessoa FÃsica/Pessoa JurÃdica) , use sempre o UNION ALL, pois não fará diferença o Distinct e a performance será melhor.
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