A
UNION
O operador requer que tuplas duplicadas (linhas) sejam removidas do conjunto de resultados antes que qualquer linha seja retornada. Isso é efetivamente uma operação SORT UNIQUE. Isso é relativamente barato para conjuntos de resultados pequenos, mas para conjuntos massivos, pode consumir muitos recursos no tempo do servidor (ou seja, levar muito tempo). Em teoria, combinando as consultas com um
UNION ALL
operador em vez de um UNION
operador seria mais rápido, pois eliminaria (n -1) ida e volta ao banco de dados, versus executar consultas separadamente. Mas para grandes valores de n , você encontrará limites práticos no tamanho do texto SQL (tamanho máximo do pacote). Dada a escolha entre
UNION
operador e consultas separadas, para um grande conjunto de resultados, as consultas separadas consumirão menos recursos no lado do servidor. Resumindo, é realmente uma troca entre o trabalho pesado de cada consulta versus o trabalho pesado de uma operação SORT UNIQUE.