SQL 2005 Огромная таблица данных подкачки с фильтром - PullRequest
1 голос
/ 01 апреля 2011

У меня есть таблица в sql 2005 с большим количеством данных - что-то вроде 1 500 000 строк прямо сейчас, а потом должно быть больше. Перед тем, как разбить на страницы, мне нужно определить, какие строки пользователь может прочитать (запрос sql для проверки является тяжелым, ссылающимся на несколько других таблиц), и результат должен быть разбит на страницы.

Как лучше всего работать с огромной таблицей, которую нужно фильтровать и разбивать на страницы?

Заранее спасибо!

1 Ответ

1 голос
/ 01 апреля 2011

Если вы хотите вернуть постраничные результаты в SQL Server, лучше всего использовать функцию ROW_NUMBER ().Вот пример, который даст вам 400-410-й результаты:

SELECT  ID, Name, Date
FROM     (SELECT TOP 410 ROW_NUMBER() OVER (ORDER BY id)
             AS Row, ID, Name, Date FROM MyTable)
            AS MyPagedTable
WHERE  Row >= 400 AND Row <= 410

Убедитесь, что у вас есть правильные индексы на месте.Если у вас возникают проблемы с производительностью, я бы порекомендовал взглянуть на план выполнения и посмотреть, где находятся проблемные области.

...