Отново за смях, можете ли да опитате тази заявка:
select
[sID],
ROW_NUMBER() over (partition by [sID] order by [wordPos]) [rn],
[wordPos], [FTSindex].[wordID]
from [FTSindex]
join (
values (428), (2112)
) w (wordID) on w.wordID = [FTSindex].wordID
order by [sID], [rn]
Понякога хвърлянето на повече хардуер върху проблема е правилният отговор; въпреки че съм съгласен, че това трябва да е последна мярка, а не първа. Дали този конкретен проблем изисква повече CPU, повече памет или повече шпиндели зависи от много фактори, включително вашия настоящ хардуер.
Вашият набор от резултати от 1,6 милиона реда, всеки 4 цели числа, трябва да сортира бързо на всяко разумно количество текущ хардуер. Тъй като има закъснения, изглежда вероятно да се извършва твърде много обработка на основния набор от 900 милиона реда и предизвикателството е да се установи защо. Можете ли да прикачите повече подробности за плана на заявката?