Улучшение производительности подкачки для gridview? - PullRequest
4 голосов
/ 06 января 2010

Я работаю над небольшим проектом, который требует подкачки gridview до 100 000 записей. Как я могу улучшить производительность. Я попытался выполнить пейджинг, используя сервер sql с таблицей Temp, но он все еще немного медленнее.

есть идеи?

Ответы [ 3 ]

9 голосов
/ 06 января 2010

Вы можете добавить сохраненный процесс, который будет возвращать только диапазон строк. Сделайте так, чтобы страница отслеживала текущую страницу, на которой вы находитесь, и запрашивайте только следующие x или предыдущие x строк.

например:

@firstRow   int,
@lastRow    int
select ROW_NUMBER() over (order by [MyField]) as rowNum, * 
from [MyTable] 
where rowNum between @firstRow and @lastRow 
1 голос
/ 06 января 2010

Не уверен, что идея Ти Келли сработает. Вот улучшение:

select * from
(
select ROW_NUMBER() over (order by [MyField]) as rowNum, * 
from [MyTable] 
) 
as TableWithRows
Where Row<=20 and Row>=10

Вернет строки с 10 по 20. Вы можете улучшить его, добавив select TOP [LastRow] перед функцией ROW_NUMBER ()

0 голосов
/ 19 января 2010

Исправление в запросе выбрать из ( выберите ROW_NUMBER () более (порядок [MyField]) в качестве rowNum, * из [MyTable] ) как TableWithRows Где RowNum <= 20 и RowNum> = 10

...