我正在开发一个小项目,需要对最多100k的记录进行gridview分页。我有什么方法可以改善表现。我尝试使用带有Temp表的sql server进行页面调整,但它仍然有点慢。
任何想法?
答案 0 :(得分:9)
您可以添加一个只返回一系列行的存储过程。让页面跟踪您当前页面的内容,并仅请求下一个x或前一个x行。
例如:
@firstRow int,
@lastRow int
select ROW_NUMBER() over (order by [MyField]) as rowNum, *
from [MyTable]
where rowNum between @firstRow and @lastRow
答案 1 :(得分:1)
不确定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行。 您可以通过在ROW_NUMBER()函数
之前添加选择TOP [LastRow]来进一步改进它答案 2 :(得分:0)
查询中的更正 选择*来自 ( 选择ROW_NUMBER()结束(按[MyField]排序)为rowNum,* 来自[MyTable] ) 如TableWithRows 其中RowNum&lt; = 20且RowNum&gt; = 10