Мне кажется, я наконец понял, к чему вы пытаетесь, но, похоже, вы очень озадачены тем, как базы данных выполняют операции упорядочения.
Если я вас правильно понимаю, вас беспокоит влияние на производительность сортировки большого количества строк (в вашем примере 1000, хотя это НЕ большое количество строк). Таким образом, вы пытаетесь перехитрить его, заставляя сортировать только те 100 строк, которые вас интересуют.
Если вы примените предложение where, чтобы ограничить его до 100 строк, в большинстве случаев современная система БД будет автоматически задерживать выполнение сортировки до тех пор, пока не сузит результаты, чтобы избежать дополнительной работы. Это не соответствует действительности в 100% случаев, но когда оптимизатор БД решает выполнить первую сортировку, он обычно имеет ОЧЕНЬ вескую причину в зависимости от производительности или потому, что запрос выявил условие, при котором сортировка должна выполняться в первую очередь для
точные результаты.
Хитрость в том, что вы должны понимать, что tSQL - это декларативный язык, а не процедурный. То есть вы используете язык для описания того, что вы хотите, а оптимизатор вычисляет точный алгоритм, чтобы это произошло. Похоже, что вы пытаетесь оптимизировать свой код так, как если бы вы писали процедурный язык, такой как C # или Java. SQL переводит ваш запрос в код, он не запускается при вводе.
Короче говоря, движки DB чрезвычайно хороши в этом типе простой оптимизации (и некоторых очень сложных). Вы не собираетесь оптимизировать оптимизатор с помощью подобных уловок, так что даже не беспокойтесь. Вы не получите большей производительности, и в зависимости от того, как вы напишете запрос, вы можете фактически снизить его.