Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

UNION срещу DISTINCT по производителност

Зависи от заявката -- без да знаете сложността на заявки A, B или C, не е такава, на която може да се отговори, така че най-добре е да направите профил и след това да прецените въз основа на това.

Въпреки това... Вероятно бих избрал обединение независимо от това:временната маса може да бъде доста скъпа, особено когато стане голяма. Не забравяйте, че с временна таблица вие изрично създавате допълнителни операции и по този начин повече I/O, за да натоварите дисковата подсистема. Ако можете да направите избор, без да прибягвате до временна таблица, това винаги (вероятно) ще бъде по-бързо.

Със сигурност ще има изключение (или седем) от това правило, затова е по-добре да профилирате спрямо реалистично голям набор от данни, за да сте сигурни, че получавате някои солидни цифри, за да вземете подходящо решение.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Неуспешно преобразуване при преобразуване на стойността на varchar „няма“ към тип данни int

  2. SQL Server 2016:Дизайнер на заявки

  3. Използвайте SET TEXTSIZE, за да ограничите връщаните данни за всеки ред в SQL Server

  4. Първи работен ден от текущия месец - SQL Server

  5. Как да преименувате ограничение на първичния ключ за множество таблици в база данни на SQL Server - SQL Server / TSQL урок, част 64