Asp.net 改进gridview的分页性能?

Asp.net 改进gridview的分页性能?,asp.net,gridview,pagination,Asp.net,Gridview,Pagination,我在一个小项目上工作,该项目要求gridview分页最多10万条记录。我可以通过哪些方式提高绩效。我试着使用带有临时表的sql server进行分页,但仍然有点慢 有什么想法吗?您可以添加一个只返回一系列行的存储过程。让页面跟踪您当前所在的页面,并仅请求下一个x行或前一个x行 例如: @firstRow int, @lastRow int select ROW_NUMBER() over (order by [MyField]) as rowNum, * from [MyTable]

我在一个小项目上工作,该项目要求gridview分页最多10万条记录。我可以通过哪些方式提高绩效。我试着使用带有临时表的sql server进行分页,但仍然有点慢


有什么想法吗?

您可以添加一个只返回一系列行的存储过程。让页面跟踪您当前所在的页面,并仅请求下一个x行或前一个x行

例如:

@firstRow   int,
@lastRow    int
select ROW_NUMBER() over (order by [MyField]) as rowNum, * 
from [MyTable] 
where rowNum between @firstRow and @lastRow 

我不确定Tj Kellie的想法是否可行。这里有一个改进:

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]来进一步改进它 从中选择* 按[MyField]选择订单上的行号作为行号,* 从[MyTable] 如表所示
其中RowNum=10

一定很喜欢这个ROW_NUMBER函数。但是,由于按顺序排列,ROW_NUMBER在上层记录中的速度会很慢。例如,100000和100010之间的速度比90000和900000100之间的速度慢。你的想法是什么?