·您现在的位置: 云翼网络 >> 文章中心 >> 网站建设 >> 网站建设开发 >> ASP.NET网站开发 >> SqlSever大数据分页

SqlSever大数据分页

作者:佚名      ASP.NET网站开发编辑:admin      更新时间:2022-07-23

SqlSever大数据分页

在sql sever中大数据的分页一直是难以处理的一块,利用id自增列分页也存在不足之处。从一个相对全面的分页看,sql sever2005中新增的row_number()函数解决了这个问题。还是从一个实际项目开始介绍吧。中国铁建股份公司的项目表中数据很大,开发之初用的是GridView控件自带的分页,在运行一年以后,点击下一页终于是难以等待了,系统需要优化。对于分页的改进是业务的需要。于是,我采用了Row_number()函数分页。也算一解了燃眉之急。

说明:该篇文章只是一个案例的说明,更详细的理论请查看随笔《大数据分页实现与性能优化》

提高分页效率主要有:(1)充分利用外键,以提高表连接速度(2)尽可能使用自然链接,尽量避免使用外连接(3)尽可能将记录少的表放在连接的左边,以减少先处理的记录数(4)尽可能先选择,后连接,以减少处理的数据量(5)有可能的时候建立视图,充分使用数据库自身的优化功能

以下为分页查询的sql语句:

select * from(select t_gcxm_test.sgdw,t_gcxm_test.id,xmmc,t_gcxm_test.gclb as gclb,gchte,gchte - kl2 as xmsyjzl,kl2 as klsl,dwmc,lry ,Row_number() over(order by t_gcxm_test.id desc) as IDRank from t_dw,t_gcxm_test where t_dw.dwid=t_gcxm_test.sgdw and (sgdw like'gf12%' and ((sgdw <>'gf12' and fgcid is null)or(sgdw ='gf12' )) or lry = 'gf12gao'))as bwhere IDRank>=50023 and IDRank<50033

其中的IDRank的值可通过web网页,传递过来。把分页的sql语句写在存储过程中,可以充分展现分页的效果。

图一 单表分页耗时

  • 上一篇文章:
  • 下一篇文章: