Hanya untuk cekikikan lagi, bisakah Anda mencoba kueri ini:
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]
Terkadang, melempar lebih banyak perangkat keras pada masalah adalah jawaban yang benar; meskipun saya setuju bahwa ini harus menjadi pilihan terakhir dan bukan yang pertama. Apakah masalah khusus ini membutuhkan lebih banyak CPU, lebih banyak memori, atau lebih banyak spindel bergantung pada banyak faktor, termasuk perangkat keras Anda saat ini.
Kumpulan hasil Anda yang terdiri dari 1,6 juta baris, masing-masing 4 bilangan bulat, harus diurutkan dengan cepat pada jumlah perangkat keras saat ini yang wajar. Karena penundaan terjadi, sepertinya terlalu banyak pemrosesan yang terjadi pada set dasar 900 juta baris, dan tantangannya adalah mengidentifikasi alasannya. Bisakah Anda melampirkan detail lebih lanjut tentang rencana kueri?