Нет реального способа оптимизировать часть paging
такого запроса, часть, которая является
t.n between 950000 and 950009
Что на самом деле
{ ROW_NUMBER } between 950000 and 950009
Без полной материализации ВНУТРЕННИХ СОЕДИНЕНИЙ невозможно точно определить номер строки в результате. Это не похоже на одну таблицу с Row_Number - оптимизатор запросов иногда может просто посчитать индексные ключи и перейти к прямому диапазону.
Единственное, что вы можете сделать, это убедиться, что все условия JOIN полностью проиндексированы и имеют индексы, включающие столбцы, которые будут выбраны (чтобы они стали ИНДЕКСАМИ ПОКРЫТИЯ). Нет смысла показывать особенности, так как это не ваши настоящие столбцы.
Нужно ли включать многопоточность из конфигурации или что-то в этом роде?
По умолчанию параллелизм [уже] включен, поэтому такой запрос, скорее всего, соберет данные в несколько потоков.