У меня есть запрос T-SQL, который вызывает проблемы с производительностью. Это коренастый, но часть, которая, кажется, вызывает проблему, является простым левым соединением.
Эту проблему можно решить, удалив левое соединение и используя подзапрос в select, однако мне это кажется неудовлетворительным, поскольку я не понимаю, почему один работает быстро, а другой нет.
Там не так много данных, и есть ключи / индексы во всех столбцах соединения. Единственное, что меня интересовало, - это статистика по базе данных и ее влияние на производительность.
Например ( N.b. Это просто упрощение гораздо более сложного запроса
SLOW
SELECT A.1,A.2,B.3 FROM A LEFT JOIN B ON A.ID = B.ID ...
БЫСТРО
SELECT A.1, A.2, (SELECT B.3 FROM B WHERE B.ID = A.ID) FROM A