Пейджинг на Microsoft SQL Server

Существует ряд вопросов о разбиении на страницы sql-сервера по stackoverflow, и многие из них говорят об использовании ROW_NUMBER () OVER (ORDER BY ...) AND CTE . Как только вы перейдете к сотням тысяч строк и начнете добавлять сортировку по значениям, отличным от первичного ключа, и добавлять собственные предложения WHERE, эти методы становятся очень бесполезными. У меня есть набор данных из нескольких миллионов строк, которые я пытаюсь просмотреть с помощью настраиваемой сортировки и фильтрации, но у меня низкая производительность даже с индексами по всем полям, по которым я сортирую и фильтрую. Я даже зашел так далеко, что включил свои столбцы SELECT в каждый из индексов, но это почти не помогло и сильно раздуло мою базу данных.

Я заметил, что разбиение на страницы stackoverflow занимает всего около 500 миллисекунд, независимо от того, какие критерии сортировки или номер страницы вы нажимаете на. Кто-нибудь знает, как заставить работать подкачку эффективно в SQL Server 2008 с миллионами строк? Это будет включать получение общего количества строк с максимальной эффективностью. Лучшее решение для разбиения на страницы с использованием SQL Server 2005?

5
задан Community 23 May 2017 в 12:04
поделиться