当前位置: 代码迷 >> Sql Server >> sql server 分页的概念和优点是什么? 查询语句中怎么用分页技术实现
  详细解决方案

sql server 分页的概念和优点是什么? 查询语句中怎么用分页技术实现

热度:251   发布时间:2016-04-27 14:03:33.0
sql server 分页的概念和优点是什么? 查询语句中如何用分页技术实现?
sql server2000 分页的基本概念和优点是什么? 查询语句中如何用分页技术实现?

能不能举个具体的例子对比说明一下!!

------解决方案--------------------
效率吧
一次取3000条数据放在内存中分页 和 一次取10条两个概念
------解决方案--------------------
分页大致就是说从数据库读取数据时,并不是一次读取并返回所有符合条件的数据,而是规定好大小,每次返回N条符合条件的数据。

好处主要是减轻服务器读取压力和减少网络流量,然后就是提高效率
让客户端展现的更快。
mysql、sqlite 一般用limit offset

sql server 可以用top

比如 select top 10 * from tableName where rowNum>10*(page-1) 10就是每页展示条数,page是页数



------解决方案--------------------
分页,一次只取出指定的记录数,不用全部取出放内存中
------解决方案--------------------
如LS所说,分页方法:http://wenku.baidu.com/view/f4cd9a1fa300a6c30c229fac.html
------解决方案--------------------
CREATE PROCEDURE GET_PAGE_LIST
@uid bigint, -- 用户ID
 @id bigint, -- 主键
 @forward int, -- 为0首页、1是下翻页,2上翻页、3末页
 @num int
AS
if @forward = 0 
select top (@num) id,trans_id,user_id,in_date,op_uid,detail
from user_money_detail with(nolock) 
where user_id = @uid 
order by in_date desc
-- 向下翻页
if @forward = 1
select top (@num) id,trans_id,user_id,in_date,op_uid,detail
from user_money_detail with(nolock)
where user_id = @uid and id < @id
order by in_date desc
-- 向上翻页
if @forward = 2
select * from (
select top (@num) id,trans_id,user_id,in_date,op_uid,detail
from user_money_detail with(nolock) 
where user_id = @uid and id > @id 
order by in_date
) x 
order by in_date desc
  
 --尾 页
if @forward = 3
select * from (
select top (@num) id,trans_id,user_id,in_date,op_uid,detail
from user_money_detail with(nolock)
where user_id = @uid 
order by in_date
) x
order by in_date desc


------解决方案--------------------
方法很多,TOP N , 字符串 , 临时表 等 ,看过邹老大的书里面有介绍过的
  相关解决方案