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

Може ли UNION ALL да бъде по-бърз от JOIN или моите JOIN просто са гадни?

UNION ALL Версия вероятно ще бъде удовлетворена доста лесно от 2 търсения на индекс. OR може да доведе до сканиране. Как изглеждат плановете за изпълнение?

Също така опитвали ли сте това, за да избегнете достъп до Notes два пъти?

;WITH J AS
(
SELECT UniqueID FROM Leads WHERE LeadID = @LeadID
UNION ALL
SELECT UniqueID FROM Quotes WHERE LeadID = @LeadID
)

SELECT N.*  /*Don't use * though!*/
FROM Notes N  
JOIN J ON N.TargetUniqueID = J.UniqueID  


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Вече не може да се свърже с локалната база данни на SQL Server 2008

  2. TSQL Закръглете нагоре десетично число

  3. Преобразуване на varchar в десетичен в sql сървър 2008

  4. SQL Server Intellisense не работи на *някои* сървъри

  5. Експортирайте резултата от съхранената процедура в Excel в SSMS