Oi! Seja bem-vindo!

Hoje vamos estudar a diferença entre Union & Union All, sob os pontos de vista de funcionalidade e performance.

Union vs. Union All

Para fazermos a comparação montei o script abaixo, onde na partida já podemos ver que a diferença de funcionalidade é simples: Union elimina valores duplicados, enquanto que union all não.

Até ai fácil, em uma frase resumimos a diferença de funcionalidade. Mas e quanto a performance? Será que o union é mais veloz porque mostra menos resultados? Acompanhe comigo o tira-teima no vídeo, faça o exercício usando o script abaixo e depois deixe um comentário me dizendo o que achou…

 


------------------------------------------------------------------
-- Union vs. Union All
------------------------------------------------------------------
-- Exemplo 1: Comparando funcionalidade
-- union: elimina dados duplicados
select 'dba-pro' as 'union'
union  
select 'dba-pro'

 -- union all: não altera o resultset
select 'dba-pro' as 'union all'
union all
select 'dba-pro'



-- Exemplo 2: Comparando performance
-- Requisitos:
create table #clientes (nome sysname)
create table #colaboradores (nome sysname)
insert into #clientes 
	select column_name from information_schema.columns
insert into #colaboradores
	select column_name from information_schema.columns

-- OBS: # significa que a tabela é temporária e será eliminada automaticamente quando você fechar o SQL


-- Ativar o plano de execução (CONTROL + M) e executar as duas querys para comparar o custo relativo
select * from #clientes
union 
select * from #colaboradores

select * from #clientes
union all
select * from #colaboradores


-- Excluir dados de teste
drop table #clientes
drop table #colaboradores

 

CONCLUSÃO

Qual foi sua conclusão? 🙂

Espero que tenha gostado do artigo, nos vemos no próximo!

Abraço do seu amigo Josué

 

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *