SQL Server има три алгоритъма за избор, когато трябва да обедини две таблици. Вложените цикли-съединяване, хеш-съединяването и сортирането-обединяването. Това, което избира, се основава на оценка на разходите. В този случай той прецени, че въз основа на наличната информация сортиране-сливане-съединяване е правилният избор.
В плановете за изпълнение на SQL Server Sort-Merge се разделя на два оператора, Sort и Merge-Join, тъй като операцията за сортиране може да не е необходима, например ако данните вече са сортирани.
За повече информация относно присъединяванията вижте моята поредица за присъединяване тук:http://sqlity.net/en/1146/a-join-a-day-introduction/ Статията за Sort-Merg-Join е тук:http://sqlity.net/en/1480/a-join-a-day-the-sort-merge-join/
За да направя вашата заявка по-бърза, първо ще разгледам индексите. Имате куп сканирания на клъстерен индекс в заявката. Ако можете да замените няколко от тях с търсения, най-вероятно ще бъдете по-добри. Също така проверете дали оценките, които SQL Server произвежда, съответстват на действителния брой редове в действителен план за изпълнение. Ако са далеч, SQL Server често прави лош избор. Така че предоставянето на по-добра статистика може да ви помогне да проверите и ефективността.