Gewoon om weer te giechelen, zou je deze vraag kunnen proberen:
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]
Soms is het juiste antwoord om meer hardware op het probleem te gooien; hoewel ik het ermee eens ben dat dit een laatste redmiddel moet zijn en niet een eerste. Of dit specifieke probleem meer CPU, meer geheugen of meer spindels vereist, is afhankelijk van veel factoren, waaronder uw huidige hardware.
Uw resultatenset van 1,6 miljoen rijen, elk 4 gehele getallen, zou snel moeten sorteren op een redelijke hoeveelheid huidige hardware. Aangezien er vertragingen optreden, lijkt het waarschijnlijk dat er te veel verwerking plaatsvindt op de basisset van 900 miljoen rijen, en de uitdaging is om te achterhalen waarom. Kunt u meer details over het zoekplan bijvoegen?