欢迎光临
我们一直在努力

SQL查询的分页思路-数据库专栏,SQL Server

建站超值云服务器,限时71元/月

 如果用一般的select *  查询sql数据库,然后用recordset进行分页的话,在返回结果很多的情况下将会是一个漫长的过程,而且很消耗内存.你可能会有感觉,用access也比sql快.
   其实我们可以只取出我们每页需要显示的记录数,这样的速度是惊人的,非常快.这里我们会用到聚集索引来快速确定我们需要取出的记录数的位置.如下面:
  if p>1 then p为page页数
    if n=”next” then下一页
  sql=”select top 26 * from song1 where  id  > “&pk&”  and contains(songtitle,”&songname&”)”  pk为当前页的最大id数
    elseif n=”prev” then上一页
  sql=”select top 26 * from song1 where  id  < “&previd&”  and contains(songtitle,”&songname&”) order by id desc”previd最小id
    end if
else
  sql=”select top 26 * from song1 where contains(songtitle,”&songname&”)”没有指定page值,默认第一页
end if
 这里用到了全文检索,速度也是很快的,我在52万记录下测试,最快可以46ms(机器c1.7.  ddr 256m),感觉比较可以,我用like代码模糊查询页测试过,在结果集很多的情况下比全文更快,但是如果结果很少(整个表只有那么几条)将是漫长的过程,因为要对全表进行扫描!

  按上面的方法不能得出所查询结果得总记录数,这里我们可以用select count(*) 来获取记录总数,速度页还过得去,不过感觉要慢一截,特别是记录集很多得情况,不过这样占用得内存很小得.
   以上是我最近搞sql查询得心得.

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » SQL查询的分页思路-数据库专栏,SQL Server
分享到: 更多 (0)