ВНУТРЕННЕЕ РЕШЕНИЕ Выполнение запросов очень медленно - PullRequest
0 голосов
/ 18 июня 2019

У меня есть SQL-запрос, который выглядит следующим образом:

SELECT * 
FROM tableB ta
INNER JOIN tableB tb ON tb.someColumn = ta.someOtherColumn

Оба, someColumn и someOtherColumn, являются , а не первичным ключом их таблиц.Оба имеют тип данных int.

TableA имеет ~ 500.000 записей, tableB имеет ~ 250.000 записей.Завершение запроса занимает около 2 минут, что, на мой взгляд, слишком долго.

План выполнения запроса выглядит следующим образом:

enter image description here

Я уже пытался (а) использовать OPTION (RECOMPILE) и (б) создать INDEX на соответствующих таблицах.Но безрезультатно.

Мой вопрос: как повысить производительность этого запроса?

1 Ответ

1 голос
/ 18 июня 2019

Создайте индекс для tb.SomeColumn и создайте другой индекс для ta.SomeOtherColumn.

Затем, когда вы выполните этот запрос, Hash Match должен быть заменен внутренним циклом, и он будет намного быстрее.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...