Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

UNIÃO vs DISTINTO no desempenho


Depende da consulta - sem conhecer a complexidade das consultas A, B ou C, não é uma que possa ser respondida, então sua melhor aposta é fazer um perfil e depois julgar com base nisso.

No entanto... Eu provavelmente iria com um sindicato de qualquer maneira:uma mesa temporária pode ser bastante cara, especialmente porque fica grande. Lembre-se de que com uma tabela temporária, você está criando explicitamente operações extras e, portanto, mais i/o para sobrecarregar o subsistema de disco. Se você puder fazer um select sem recorrer a uma tabela temporária, isso sempre (provavelmente) será mais rápido.

É provável que haja uma exceção (ou sete) a essa regra, portanto, é melhor criar perfis em um conjunto de dados realisticamente grande para garantir que você obtenha alguns números sólidos para tomar uma decisão adequada.