- 浏览: 71781 次
文章分类
- 全部博客 (47)
- 合并两个表 (1)
- java (46)
- 获得一个节点对象的节点类型 (1)
- JSP 页面不能解析EL表达式。 (1)
- 数据库连接长时间空闲后 (1)
- 爆连接已经关闭的解决方法 (1)
- 设计工作流引擎就象设计一部汽车(工作流程引擎设计思路提示) (1)
- Hadoop的下一代mapreduce (1)
- 备忘css元素定位 (1)
- 第一次通宵 (1)
- 字符编码工具类 (1)
- Asset Pipeline in rails 3.1.0 (1)
- IT行业热点----我国IT飞速发展需关注6大问题 (1)
- Web Service实践之——开始XFire (1)
- 单片机C语言编程基础模板 (1)
- 中医养生顺口溜 (1)
- Property文件读取的Util类 (1)
- JEECMS (1)
- CheckStyle使用java.header文件的问题 (1)
- JUnit4测试代码示例 (1)
- JavaScript中三个弹出窗口 (1)
- About .Net Petshop (1)
- MapXtreme2004代码 在地图上新增加点图元 (1)
- 50个GMail的邀请权 想要的留下EMail (1)
- asp.net+Access简单企业站源码 (1)
- 局域网指定ip断网工具源码 (1)
- lucene索引和搜索过程中的核心类介绍 (1)
- poi 取消科学计数法 (1)
- centos相关 (1)
- java.lang.IllegalStateException: No WebApplicationContext found: no ContextLoaderListener registered (1)
- Project configuration is not up-to-date with pom.xml. 问题解决 (1)
- js截取最后一个.的字符串(IP地址判断) (1)
- Android开发之《Android应用开发揭秘》UI事件汇总 (1)
- SSH through proxy to visit ssh.github.com (ZZ) (1)
- eclipse3.7 添加任务标记 (1)
- SQLServer2005和2008的分页技术比较 (1)
- 传智播客java基础加强ppt (1)
- Struts 标签疑难问题收集-乔乐共享 (1)
- mysql使用rand随机查询记录效率测试 (1)
- 按钮实现spinner (1)
- 线程循环 (1)
- Android相关工具地址 (1)
最新评论
-
543089122:
N年前的老掉牙的手段了,原理也就是ARP
局域网指定ip断网工具源码 -
lvwenwen:
...
Web Service实践之——开始XFire -
hz_grape:
程序员的人生
第一次通宵 -
faylai:
传说中的广告贴啊!!
设计工作流引擎就象设计一部汽车(工作流程引擎设计思路提示)
<span style="font-size: small">我们以前在开发大数据量的分页存储过程时,往往都为了怎么样实现高效的性能,而大伤脑筋,似乎总是想写出最佳的存储过程分页方法,我们假如建立一个学生基本信息表StudentInfo,我们看在Sql Server 2000中我们实现的存储过程: <br /> <br />CREATE PROCEDURE p_GetStudentInfo <br />@strWhere varchar(1500) -- 查询条件 (注意: 不要加 where) <br />,@PageSize int = 50 -- 页尺寸 <br />,@PageIndex int = 1 -- 页码 <br />AS <br />BEGIN <br /> <br />declare @strSQL varchar(5000) -- 主语句 <br />declare @strTmp varchar(110) -- 临时变量 <br />declare @strOrder varchar(400) -- 排序类型 <br /> <br />set @strTmp = '<(select min' <br />set @strOrder = ' order by studentinfoid desc' <br /> <br />if @PageIndex = 1 <br />begin <br /> if @strWhere != '' <br /> set @strSQL = 'select top ' + str(@PageSize) +' * from studentinfo where ' + @strWhere + ' ' + @strOrder <br /> else <br /> set @strSQL = 'select top ' + str(@PageSize) +' * from studentinfo '+ @strOrder <br />--如果是第一页就执行以上代码,这样会加快执行速度 <br />end <br />else <br />begin <br />--以下代码赋予了@strSQL以真正执行的SQL代码 <br />set @strSQL = 'select top ' + str(@PageSize) +' * from studentinfo <br />where studentinfoid' + @strTmp + '(studentinfoid) from (select top ' + str((@PageIndex-1)*@PageSize) + ' studentinfoid from studentinfo' + @strOrder + ') as tblTmp)'+ @strOrder <br />if @strWhere != '' <br /> set @strSQL = 'select top ' + str(@PageSize) +' * from studentinfo <br /> where studentinfoid' + @strTmp + '(studentinfoid) from <br /> (select top ' + str((@PageIndex-1)*@PageSize) + ' studentinfoid from studentinfo where ' + @strWhere + ' ' <br /> + @strOrder + ') as tblTmp) and ' + @strWhere + ' ' + @strOrder <br />end <br />--print (@strSQL) <br />exec (@strSQL) <br />END <br />GO <br /> 我们在上面的存储过程中可以看到,如果执行的是第一页的记录时,我们可以看到只执行 <br /> <br />'select top ' + str(@PageSize) +' * from studentinfo where ' + @strWhere + ' ' + @strOrder <br /> 就可以了,而如果翻页的时候,就会在条件查询中又嵌套子查询,势必性能会有所下降,而这个已经在我们Sql Server2000中算是高效的分页存储过程实现方式了,而现在如果我们换作Sql Server 2005的时候,我们是不是还是用这种方式呢? <br /> <br /> 在Sql Server 2005中,我们可以利用新增函数row_number()来更高效的实现分页存储 <br /> <br />CREATE PROCEDURE p_GetStudentInfo <br /> @PageSize INT, <br /> @PageIndex INT, <br /> @strWhere varchar(1500) -- 查询条件(注意: 不要加where) <br /> As <br /> Begin <br /> select * from ( <br /> select row_number() over (order by StudentInfoId) row,* from StudentInfo ) StudentInfo <br /> where row between @PageSize*(@PageIndex-1) and @PageSize*@PageIndex <br /> End <br /> go <br /> 依照群组显示每条记录在该群组中出现的顺序位置,在显示每条记录编号时非常有用,并且搭配OVER子句,这样就可以实现查询记录的条数了。 <br /> <br /> 我们现在来比较一下它们执行的性能,StudentInfo表中现在有30多万条数据,我们分别来执行下面的存储过程: <br /> <br /> Exec p_GetStudentInfo <br /> @PageSize = 10000, <br /> @PageIndex = 10, <br /> @strWhere = '1=1' <br /> <br /> <br /> 在Sql Server 2000中,执行的时间是接近2秒; <br /> <br /> 在Sql Server 2005中,执行的时间显示的是接近0秒。 <br /> <br /> 如果数据涉及到千万级的数据时,比较上面两种方法,就可以看到一些显著的差别了</span>
发表评论
-
Android相关工具地址
2012-02-08 15:57 762SDK: http://developer.andr ... -
线程循环
2012-02-07 14:28 790@selector(xxxThread)方法以后,在方 ... -
按钮实现spinner
2012-02-03 12:43 855int cityID=0; //用于默认选择哪个 ... -
mysql使用rand随机查询记录效率测试
2012-02-03 09:24 730一直以为mysql随机查询几条数据,就用 SELECT ... -
Struts 标签疑难问题收集-乔乐共享
2012-02-02 15:14 848循环List:private List list; & ... -
传智播客java基础加强ppt
2012-01-31 16:13 1543<p>????? 如果想把java基础打牢 ... -
eclipse3.7 添加任务标记
2012-01-31 15:23 2364<p>在编写程序时有一些工作要等到以后才做 ... -
SSH through proxy to visit ssh.github.com (ZZ)
2012-01-31 14:58 1869<p>Scenario:</p> ... -
Android开发之《Android应用开发揭秘》UI事件汇总
2012-01-11 14:43 1181<h1>Android开发之《Androi ... -
js截取最后一个.的字符串(IP地址判断)
2012-01-11 14:18 2226[size=small;] 由于我们的项目中需 ... -
Project configuration is not up-to-date with pom.xml. 问题解决
2012-01-11 13:09 2039<span>Project configu ... -
java.lang.IllegalStateException: No WebApplicationContext found: no ContextLoaderListener registered
2011-12-28 12:28 5447<span style="font-f ... -
centos相关
2011-12-28 11:34 811比较新的源 rpm -Uvh http://dow ... -
poi 取消科学计数法
2011-12-21 13:33 2188[size=medium;]<br>[/s ... -
lucene索引和搜索过程中的核心类介绍
2011-12-21 12:54 1215lucene索引和搜索过 ... -
局域网指定ip断网工具源码
2011-12-20 13:53 2025只适用于小型局域网 <br> <s ... -
asp.net+Access简单企业站源码
2011-12-20 12:04 3149<span style="font-f ... -
50个GMail的邀请权 想要的留下EMail
2011-12-15 13:34 735今天看到自己已经有50个GMail的邀请权了 想要的请 ... -
MapXtreme2004代码 在地图上新增加点图元
2011-12-15 13:29 772sender, System.EventArgs e ... -
About .Net Petshop
2011-12-14 19:29 687<span style="" ...
相关推荐
sql server分页技术 详解 sql server分页技术 详解 sql server分页技术 详解
本书对SQL Server 2005存储引擎方面的知识进行了全面而详细的阐述,包括数据库文件、日志和恢复、表、索引及其管理、锁定和并发等内容。除了解释设计理念与运作原理外,书中还辅之以大量简短而有力的实例。您将跟随...
基于SQL Server的ASP.NET分页技术.pdf
数据层数据分页技术 用于数据分页的SQL语句方法,文件为SQL文件,可在SQL Server环境下打开,资料为Microsoft Webcaster上的讲座听课后的整理结果
自己研究,纯属兴趣,以前在网上找过这类技术,一直没有找到理想的,就自己写了一个,不知道思路合不合适别人。
在网上找到大量的关于ajax分页技术,看了大部分都是用mysql数据库,再者就是用解析xml文件来实现的,(太难了吧),现在这个分页的例子很简单的, 先说说我认为的优点吧: 1、实现简单(js算),业务简单(没有用到...
不错的分页代码 可以参考下 不错的分页代码 可以参考下 不错的分页代码 可以参考下
Sql Server 各种数据分页技术都包含在里面
sql server分页技术,非常牛的分页,效率特别高,在各种网络环境下分页速度飞快
阅读《Microsoft SQL Server 2008技术内幕:T-SQL查询》,可以充分地理解T-SQL语言和良好的编程实践,学会如何编写更加有效而强大的查询语句。 序言 I 致谢III 前言 V 第1章 逻辑查询处理 1.1 逻辑查询处理的...
利用SQL server数据库实现分页技术的详细讲解, 里面和实例, 入门级同学值得研究下!
【SQL SERVER 新增的几个小功能】 1. 分页查询数据 2、增加异常处理 try ... catch 3、通用表达式CTE,可以简化嵌套SQL
用jsp实现的分页技术 sqlserver+eclipse
《Microsoft SQL Server 2008技术内幕:T-SQL查询》全面深入地介绍了Microsoft SQL Server 2008中高级T-SQL查询、性能优化等方面的内容,以及SQL Server 2008新增加的一些特性。主要内容包括SQL的基础理论、查询优化...
mybatis spring sqlserver mysql 框架 实现分页技术
ASP.NET 2.0+SQL Server 2005全程指南 目录 基础篇 第1章 ASP.NET概述及环境配置 1.1 认识ASRNET 1.1.1 .NET Framework框架 1.1.2 ASP.NET功能与特性 1.1.3 ASP.NET与ASP的区别 1.2 搭建ASP.NET开发环境 1.2.1...
这是上一个jsp+sql server分页技术的升级,这里的arg[]数组变成了一个动态数组,不用担心数组的大小不够用。
很好的通过存储过程实现分页的技术,很好的通过存储过程实现分页的技术,很好的通过存储过程实现分页的技术
阅读《Microsoft SQL Server 2008技术内幕:T-SQL查询》,可以充分地理解T-SQL语言和良好的编程实践,学会如何编写更加有效而强大的查询语句。 目录 ------------------------------------------------------------...
主流数据库的分页技术,解析注解等等 为什么需要分页 1. 方便用户查看,提高客户端体验 2. 减轻数据库资源管理器的开销,提高程序运行速度 分页查询的本质 查看某一页就只返回这一页的数据