Вы не можете форсировать обработку строк и пакетов непосредственно в SQL Server. Это решение на основе затрат в оптимизаторе. Вы можете (как вы заметили) форсировать сгенерированный план, который использует пакетный режим. Тем не менее, не существует конкретной модели «только использовать пакетный режим», поскольку она не всегда самая быстрая. Выполнение в пакетном режиме похоже на турбо на автомобильном двигателе - оно работает лучше всего, когда вы работаете с большими наборами рядов. Это может быть медленнее при небольших количествах OLTP-запросов.
Если у вас есть случай, когда у вас есть 1 строка против 92 М строк, то у вас есть большая проблема с проблемой, которая имеет высокую дисперсию в количестве строк, обработанных в запросе. Это может сделать очень трудным сделать запрос оптимальным для всех сценариев, если у вас есть чувствительность к параметрам или форма плана запроса внутри может создать случаи, когда иногда у вас есть только одна строка против 92M. В конечном счете, решения для такого рода проблем заключаются либо в использовании опции (перекомпиляции), если стоимость компиляции намного меньше, чем отклонение от наличия плохого плана, либо (как вы сделали) поиска конкретного плана в хранилище запросов, которое Вы можете заставить это работать достаточно хорошо для всех случаев.
Надеюсь, это поможет объяснить, что происходит под капотом.