Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Kryteria SQL Filter w kryteriach join lub klauzula where, która jest bardziej wydajna

Nie używałbym wydajności jako decydującego czynnika tutaj – i szczerze mówiąc, nie sądzę, aby istniała jakakolwiek mierzalna różnica wydajności między tymi dwoma przypadkami, naprawdę.

Zawsze używałbym przypadku nr 2 - dlaczego? Ponieważ moim zdaniem, w klauzuli JOIN należy umieścić tylko rzeczywiste kryteria, które ustanawiają JOIN między dwiema tabelami - wszystko inne należy do klauzuli WHERE.

Wystarczy utrzymać rzeczy w czystości i umieścić je tam, gdzie ich miejsce, IMO.

Oczywiście są przypadki z LEFT OUTER JOIN, w których umieszczenie kryteriów ma wpływ na to, jakie wyniki zostaną zwrócone – takie przypadki byłyby oczywiście wykluczone z mojej rekomendacji.

Marek



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kiedy używać wspólnego wyrażenia tabelowego (CTE)

  2. Jakie są zalety i wady przechowywania SQL w Stored Procs w porównaniu z kodem?

  3. SQL Server - definiowanie kolumny typu XML z kodowaniem UTF-8

  4. Uzyskaj znak między pierwszymi 2 znakami specjalnymi w SQL

  5. Jak znaleźć wszystkie zależności tabeli na serwerze sql