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 b
where IDRank>=50023 and IDRank<50033
其中的IDRank的值可通过web网页,传递过来。把分页的sql语句写在存储过程中,可以充分展现分页的效果。
图一 单表分页耗时
图二 多表分页耗时
【文章出处:http://www.cnblogs.com/wlandwl/archive/2014/09/25/bigpage.html】
SqlSever大数据分页【转】的更多相关文章
- SqlSever大数据分页
在sql sever中大数据的分页一直是难以处理的一块,利用id自增列分页也存在不足之处.从一个相对全面的分页看,sql sever2005中新增的row_number()函数解决了这个问题.还是从一 ...
- ASP.NET + SqlSever 大数据解决方案 PK HADOOP
半个月前看到博客园有人说.NET不行那篇文章,我只想说你们有时间去抱怨不如多写些实在的东西. 1.SQLSERVER优点和缺点? 优点:支持索引.事务.安全性以及容错性高 缺点:数据量达到100万以 ...
- mysq大数据分页
mysql limit大数据量分页优化方法 Mysql的优化是非常重要的.其他最常用也最需要优化的就是limit.Mysql的limit给分页带来了极大的方便,但数据量一大的时候,limit的性能就急 ...
- MySQL大数据分页的优化思路和索引延迟关联
之前上次在部门的分享会上,听了关于MySQL大数据的分页,即怎样使用limit offset,N来进行大数据的分页,现在做一个记录: 首先我们知道,limit offset,N的时候,MySQL的查询 ...
- mysql 大数据分页优化
一.mysql大数据量使用limit分页,随着页码的增大,查询效率越低下. 1. 直接用limit start, count分页语句, 也是我程序中用的方法: select * from prod ...
- mysql 大数据分页查询优化
应用场景: 当有一张表的数据非常大,需要使用到分页查询,分页查询在100w条后查询效率非常低: 解决方案: 1.业务层解决:只允许用户翻页一百页以内,十条一页: 2.使用where id > 5 ...
- SQL SERVER大数据分页
select * from (select rownum r, a.* from (select * from table_name order by ndatetime desc ) a wher ...
- 大数据量下,分页的解决办法,bubuko.com分享,快乐人生
大数据量,比如10万以上的数据,数据库在5G以上,单表5G以上等.大数据分页时需要考虑的问题更多. 比如信息表,单表数据100W以上. 分页如果在1秒以上,在页面上的体验将是很糟糕的. 优化思路: 1 ...
- linq 大数据 sql 查询及分页优化
前提: 需要nuget PredicateLib 0.0.5: SqlServer 2008R2 (建议安装 64 位): .net 4.5 或以上: 当前电脑配置: I7 4核 3.6G ...
随机推荐
- vue路由vue-router的使用
对于单页应用,官方提供了vue-router进行路由跳转的处理. 安装 基于传统,我更喜欢采用npm包的形式进行安装. npm install vue-router --save 当然,官方采用了多种 ...
- canvas - 钟表
Demo : Demo Demo截图: 代码: <!DOCTYPE html> <html lang="en"> <head> <meta ...
- 制作缩略图java工具类
import java.awt.Image; import java.awt.image.BufferedImage; import java.io.File; import java.io.File ...
- POJ 3368
题意: 给你一组数列, 查询区间内有出现次数最多的数的频数 RMQ , 对于一个区间, 分为两部分, 从 L 开始连续到 T , T + 1 到 R 显然 答案为 MAX (T – L + ...
- POJ 1006 同余方程组
以前的做法 #include<iostream> #include<cstdio> #include<algorithm> #include<cstring& ...
- 玩转 lua in Redis
一.引言 Redis学了一段时间了,基本的东西都没问题了.从今天开始讲写一些redis和lua脚本的相关的东西,lua这个脚本是一个好东西,可以运行在任何平台上,也可以嵌入到大多数语言当中,来扩展其功 ...
- Ubuntu16.04安装Maven3.5.4
本篇教程在示例步骤中使用了以下版本的软件.操作时,请您以实际软件版本为准. 操作系统:Ubuntu 16.04.3 LTS Maven 版本:Apache Maven 3.5.4 JDK 版本:J ...
- java.lang.NumberFormatException 错误及解决办法
package com.geelou.test; public class ErrTest { public static void main(String[] args) { String numS ...
- Microsoft Graph 概述
这个系列文章 已经进行到了实质的阶段,继上一篇介绍了如何搭建Office 365开发环境之后,我会通过这篇文章给大家介绍一个非常重要的概念:Microsoft Graph.它之所以重要,首先是因为它是 ...
- LeetCode(109):有序链表转换二叉搜索树
Medium! 题目描述: 给定一个单链表,其中的元素按升序排序,将其转换为高度平衡的二叉搜索树. 本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1. 示例: ...