【发布时间】:2010-01-19 22:15:56
【问题描述】:
我正在从事一个小型项目,该项目需要 gridview 分页最多 100k 条记录。有什么方法可以提高性能。我尝试使用带有 Temp 表的 sql server 进行分页,但它仍然有点慢。
有什么想法吗?
【问题讨论】:
标签: asp.net gridview pagination
我正在从事一个小型项目,该项目需要 gridview 分页最多 100k 条记录。有什么方法可以提高性能。我尝试使用带有 Temp 表的 sql server 进行分页,但它仍然有点慢。
有什么想法吗?
【问题讨论】:
标签: asp.net gridview pagination
您可以添加一个只返回一系列行的存储过程。让页面跟踪您当前所在的页面,并仅请求下 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 行。 您可以通过在 ROW_NUMBER() 函数之前添加 select TOP [LastRow] 来进一步改进它
【讨论】:
查询中的更正 选择 * 从 ( 选择 ROW_NUMBER() over (order by [MyField]) as rowNum, * 来自 [我的表] ) 作为 TableWithRows 其中 RowNum=10
【讨论】: