SqlSever大数据分页
来源:互联网 发布:淘宝神笔在那里 编辑:程序博客网 时间:2024/04/19 14:48
在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 b
where IDRank>=50023 and IDRank<50033
其中的IDRank的值可通过web网页,传递过来。把分页的sql语句写在存储过程中,可以充分展现分页的效果。
图一 单表分页耗时
图二 多表分页耗时
0 0
- SqlSever大数据分页
- SQLsever分页 高效率
- 基于ASP.NET + SqlSever 大数据解决方案 PK HADOOP
- oracle 大数据 分页
- 大数据分页解决方案
- 大数据分页
- 大数据分页优化
- 大容量数据从SQLSever表中导出到本地(bcp工具的使用)
- sqlsever
- SQLSever
- 关于sqlsever 通用分页脚本的探索
- sql2005 大数据分页查询
- AspNetPager Linq 大数据 分页
- mysql大数据的分页
- sqlsever 删除字段内容重复数据
- JSF Datatable 大数据集分页
- JSF 大数据分页和排序研究
- 大容量数据分页显示的探索
- C++对象的内存模型
- iOS 计算字符串高度
- 整理判断回文字符串
- 【Some】【Android】Android 如何进阶?
- sql sever2012学习3 数据库中的五种约束及其添加方法
- SqlSever大数据分页
- Access数据库引擎
- windows phone(成语典籍游戏开发)
- Axis2创建WebService实例
- .NET下Excel报表的打印
- IIS下打印报表到Excel
- 菜单详解(1)
- Dynamics CRM2016 Web API之Create related entities in one operation
- PLSQL Developer 不能连接 oracle 11g 64位 的解决办法