通过SQL
查询深入分析器,突显比较:小编的结论是:分页方案二:(利用ID大于多少和SELECT
TOP分页)效能最高,须要拼接SQL语句分页方案一:(利用Not In和SELECT
TOP分页卡塔尔国效能次之,要求拼接SQL语句分页方案三:(利用SQL的游标存款和储蓄进度分页)效能最差,可是最为通用

1.一旦有一个机动增加的id字段,则:

一经未有主键,能够用有的时候表,也足以用方案三做,可是功效会低。建议优化的时候,加上主键和目录,查询成效会提升。

  定义一个变量:Page,PageCount

经过SQL
查询分析器,呈现比较:作者的定论是:分页方案二:(利用ID大于多少和SELECT
TOP分页)效能最高,需求拼接SQL语句分页方案一:(利用Not In和SELECT
TOP分页卡塔尔(قطر‎成效次之,须求拼接SQL语句分页方案三:(利用SQL的游标存款和储蓄进程分页卡塔尔功效最差,可是最好通用

  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

1.只要有多个机动增进的id字段,则:

  原理,依照ID总结出(Page-1State of Qatar页的小不点儿值,然后用TOP关键字及可一蹴而就难点。

概念一个变量:Page,PageCount

2.SELECT TOP 10 id,username From [tb_code] where id not in
( SELECT TOP 20000 id FROM tb_code ORDER BY username)

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关键字及可化解难点。

3.SELECT TOP 10 id,username From
(SELECT TOP page*pagecount id, username FROM tb_code ORDER BY
username)
DERIVEDTBL ORDER BY username DESC

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 二〇〇五中运用rownum分页(rownum函数使用方法介绍)

亮点:此方法能够根据表中的任二个字段排序. 短处是效能最低

比如说要从表USE悍马H2中查阅第10到第20条之间的多少,那么SQL是这么达成的

admin

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注