电脑安全

您当前的位置:主页 > 电脑安全 >

sql 2000/2005几种分页方法-网络编程

来源:[db:来源]标题:   分页    编辑:电脑技术全能网 时间:2019-09-21 18:24

原标题:sql 2000/2005几种分页方法-网络编程
   经过SQL 查问剖析器,表现比拟:我的论断是:分页计划二:(应用ID大于几多和SELECT TOP分页)效力最高,须要拼接SQL语句分页计划一:(应用Not In和SELECT TOP分页) 效力次之,须要拼接SQL语句分页计划三:(应用SQL的游标存储进程分页) 效力最差,然而最为通用 假如没有主键,能够用常设表,也能够用计划三做,然而效力会低。倡议优化的时间,加上主键和索引,查问效力会进步。经过SQL 查问剖析器,表现比拟:我的论断是:分页计划二:(应用ID大于几多和SELECT TOP分页)效力最高,须要拼接SQL语句分页计划一:(应用Not In和SELECT TOP分页) 效力次之,须要拼接SQL语句分页计划三:(应用SQL的游标存储进程分页) 效力最差,然而最为通用1.假如有一个主动增加的id字段,则:界说二个变量:Page,PageCount

Select top PageCount * From [tb_code] Where id>=(select min(id) from (select top (Page-1)*PageCount+1 id from [tb_code] order by id desc) as t) order by id desc
道理,依据ID盘算出(Page-1)页的最小值,而后用TOP要害字及可处理成绩。
2.SELECT TOP 10 id,username From [tb_code] where id not in ( SELECT TOP 20000 id FROM tb_code ORDER BY username)
长处:此方式能够依据表中的任一个字段排序,在一个表中有几百万笔记录时,仍有很高的效力,毛病是在大数据量的情形下效力略逊于第一种
3.SELECT TOP 10 id,username From (SELECT TOP page*pagecount id, username FROM tb_code ORDER BY username) DERIVEDTBL ORDER BY username DESC
长处:此方式能够依据表中的任一个字段排序. 毛病是效力最低在SQL Server 2005中应用rownum分页(rownum函数应用方式先容)比喻说要从表USER中检查第10到第20条之间的数据,那末SQL是如许完成的
SELECT * FROM (SELECT rownum rowcount,USER.* FROM USER) WHERE ROWCOUNT >=10 AND ROWCOUNT <20
无关分页 SQL 的材料许多,有的应用存储进程,有的应用游标。自己不喜爱应用游标,我感到它耗资、效力低;应用存储进程是个不错的抉择,由于存储进程是经由预编译的,履行效力高,也更机动。先看看单条 SQL 语句的分页 SQL 吧。方式1:实用于 SQL Server 2000/2005
SELECT TOP 页巨细 *FROM table1WHERE id NOT IN ( SELECT TOP 页巨细*(页数-1) id FROM table1 ORDER BY id )ORDER BY id
方式2:实用于 SQL Server 2000/2005SELECT TOP 页巨细 *
FROM table1WHERE id > ( SELECT ISNULL(MAX(id),0) FROM ( SELECT TOP 页巨细*(页数-1) id FROM table1 ORDER BY id ) A )ORDER BY id
方式3:实用于 SQL Server 2005
SELECT TOP 页巨细 * FROM ( SELECT ROW_NUMBER() OVER (ORDER BY id) AS RowNumber,* FROM table1 ) AWHERE RowNumber > 页巨细*(页数-1)
阐明,页巨细:每页的行数;页数:第几页。应用时,请把“页巨细”和“页巨细*(页数-1)”调换成数字

上一篇:PHP 面向对象技术-网络编程

下一篇:没有了