Вопрос

Я должен запустить оператор Select на нескольких таблицах. Я уверен, что таблицы возвращают разные записи. Я все равно использую Union все.

Лучше использовать Union или Union все в условиях производительности, когда я уверен, что таблицы возвращают разные записи?

Это было полезно?

Решение

Союз все будет работать лучше, чем союз, когда вы не обеспокоены устранением повторяющихся записей, потому что вы избегаете дорогих отчетливый сортировка операция. Видеть: SQL Server - разница между Союзом против союза все оптимальное сравнение производительности

Другие советы

Союз все всегда быстрее, потому что профсоюз исключают дублированные записи

Союз осуществляет внутренние запросы. 1SELECT который вернет набор данных 2.DISTINCT. Отказ Любой, кто изучал внутренние базы данных, может легко понять, что DISTINCT пункт чрезвычайно дорого с точки зрения обработки.

Если вы уверены уверены, что полученный набор данных не должен иметь уникальные ряды, то мы можем пропустить UNION и использовать UNION ALL вместо.

UNION ALL будет такой же, как UNION за исключением того, что это не огонь DISTINCT внутренне расстраивая нас дорогостоящие операции

Лучше использовать Union все, когда вы знаете, что вы хотите, чтобы все результаты строки, независимо от того, знаете ли вы, они будут отличаться или нет. Союз без «всех» будет всегда Выполните «отдельную проверку», независимо от того, какие данные на самом деле есть.

Почему союз все быстрее? Потому что союз должен сделать своего рода, чтобы удалить дубликаты. Если вам не нужно удалять дубликаты, то объединение все - это лучший вариант, однако союз имеет целью и должен использоваться при необходимости.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top