Jen pro zasmání, můžete zkusit tento dotaz:
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]
Někdy je správnou odpovědí hodit na problém více hardwaru; i když souhlasím s tím, že by to měla být poslední možnost a ne první možnost. Zda tento konkrétní problém vyžaduje více CPU, více paměti nebo více vřeten, závisí na mnoha faktorech, včetně vašeho současného hardwaru.
Vaše sada výsledků 1,6 milionu řádků, každé 4 celá čísla, by se měla rychle seřadit na jakémkoli rozumném množství aktuálního hardwaru. Vzhledem k tomu, že dochází ke zpožděním, zdá se pravděpodobné, že na základní sadě 900 milionů řádků dochází k příliš velkému zpracování, a problémem je zjistit proč. Můžete připojit další podrobnosti o plánu dotazů?