首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

分页效率的有关问题

2012-01-22 
分页效率的问题比如说我数据库的数据有个上千万条,因为我每次分1下页都要全部且重新查询一次,这样数据多了

分页效率的问题
比如说我数据库的数据有个上千万条,因为我每次分1下页都要全部且重新查询一次,这样数据多了效率差.
现在我问哈有没有好点提高效率的方法.

[解决办法]
用自定義分頁存儲過程
CREATE procedure pagination1
(@pagesize int, --页面大小,如每页存储20条记录
@pageindex int --当前页码
)
as

set nocount on

begin
declare @indextable table(id int identity(1,1),nid int) --定义表变量
declare @PageLowerBound int --定义此页的底码
declare @PageUpperBound int --定义此页的顶码
set @PageLowerBound=(@pageindex-1)*@pagesize
set @PageUpperBound=@PageLowerBound+@pagesize
set rowcount @PageUpperBound
insert into @indextable(nid) select gid from TGongwen
      where fariqi > dateadd(day,-365,getdate()) order by fariqi desc
select O.gid,O.mid,O.title,O.fadanwei,O.fariqi from TGongwen O,@indextable t
where O.gid=t.nid and t.id> @PageLowerBound
and t.id <=@PageUpperBound order by t.id
end

set nocount off
[解决办法]
我学得这个不是太好,临时表太大

我曾经尝试,select top ... max(id) ......
两次TOP之后

select .... id > ... and id <...
[解决办法]
如果想避免频繁读取数据库,你可以使用sqlDataSource数据源,并设置 sqlDependency。

参考:

http://www.google.cn/search?q=sqldatasource%20sqldependency&hl=zh-CN&newwindow=1&rls=com.microsoft%3Aen-US&lr=lang_zh-CN%7Clang_zh-TW&nxpt=20.01422355628455701513223

热点排行