Пока вы можете обратиться за советом к вашему запросу, лучше узнать, как его оптимизировать самостоятельно.
Вам необходимо просмотреть план выполнения, выявить узкие места, а затем посмотреть, есть ли что-нибудь, что можно сделать для улучшения.
В SSMS вы можете нажать «Запрос» ---> «Включить фактический план выполнения» перед выполнением запроса. (Ctrl + M) это сочетание клавиш.
Затем выполните ваш запрос. SSMS создаст новую вкладку в области результатов. Который покажет вам, как механизм SQL выполняет ваш запрос, вы можете навести курсор на каждый узел для получения дополнительной информации. cost %
будет особенно интересным, что позволит вам увидеть самую дорогую часть вашего запроса.
Сложно дать вам совет без этого плана выполнения, поэтому многие люди прокомментировали ваш вопрос. Ваша схема и индексы изменяют способ выполнения запроса, поэтому кто-то не может точно воспроизвести его в своей среде без сценариев для таблиц / индексов и т. Д. Даже в этом случае статистика может быть устаревшей и могут возникнуть другие проблемы.
Вы также можете выполнить SET STATISTICS PROFILE ON
, чтобы получить текстовое представление плана (может быть полезно обратиться за помощью).
Существует ряд статей, которые могут помочь вам устранить узкие места или опубликовать еще один вопрос для получения дополнительных советов.
http://msdn.microsoft.com/en-us/library/ms178071.aspx
Анализ плана запросов SQL Server
Основы плана выполнения