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 , 字符串 , 临时表 等 ,看过邹老大的书里面有介绍过的