Я присоединился к двум таблицам, каждый из которых содержит более 5000 записей. Я использовал два метода для присоединения. В первом запросе я использовал ключевое слово JOIN и дал условие в состоянии ON. Во втором запросе я просто использовал оператор запятой между таблицами и дал условие соединения в предложении WHERE.Выполнение SQL SERVER?
Какой из них будет эффективен в отношении времени и стоимости ....?
Когда я смотрю в план выполнения Первый запрос взял 61% от стоимости для сканирования таблицы и 38% для HASH MATCH (INNER JOIN)
Второй запрос занял 69% от стоимости для сканирования таблицы и 31% для HASH MATCH (INNER JOIN).
Можете ли вы объяснить мне эту разницу?
Iam, предположив, что первый из них эффективен, потому что стоимость сканирования стола меньше. Это правильно...?
Этот вопрос не имеет смысла с указанием того, проиндексированы ли поля в одной или обеих таблицах и характер индекса – AnthonyWJones
. Первый запрос выполняет сканирование таблицы - если возможно, вы должны установить внешний ключ в таблице, -кластеризованный индекс. Затем запрос должен привести к сканированию индекса - значительно быстрее. – Paul