Czy JOIN jest szybszy niż GDZIE?

Załóżmy, że mam dwie połączone tabele (jedna ma klucz obcy do drugiego):

CREATE TABLE Document (
  Id INT PRIMARY KEY,
  Name VARCHAR 255
)

CREATE TABLE DocumentStats (
  Id INT PRIMARY KEY,
  DocumentId INT, -- this is a foreign key to table Document
  NbViews INT
)

Wiem, że to nie jest najmądrzejszy sposób na robienie rzeczy, ale jest to najlepszy przykład, jaki mogłem wymyślić.

Teraz chcę uzyskać wszystkie dokumenty, które mają ponad 500 widoków. Dwa rozwiązania, które przychodzą mi do głowy to:

SELECT *
FROM Document, DocumentStats
WHERE DocumentStats.Id = Document.Id
  AND DocumentStats.NbViews > 500

lub:

SELECT *
FROM Document
INNER JOIN DocumentStats
ON Document.Id = DocumentStats.Id
WHERE DocumentStats.NbViews > 500

Czy oba kwerendy są równoważne, czy też istnieje jeden sposób, który jest o wiele lepszy od drugiego? Jeśli tak, to dlaczego?

Wiem, że mój przykład nie jest doskonały i że zapytania mogą wymagać poprawek, ale mam nadzieję, że masz rację;)!

EDYCJA: zgodnie z wymaganiami w odpowiedziach, to pytanie było skierowane do MSSQL, ale chciałbym wiedzieć, czy jest inny dla innych silników DB (MySQL, itp ...)

questionAnswers(10)

yourAnswerToTheQuestion