小人物的专栏 *^_^*

哪里有阳光,哪里就有我

用户操作
[即时聊天] [发私信] [加为好友]
小人物ID:laojievip
43972次访问,排名2782(1),好友0人,关注者1人。
laojievip的文章
原创 75 篇
翻译 0 篇
转载 2 篇
评论 28 篇
小人物的公告
欢迎来到小人物专栏!
哪里有阳光,哪里就有我
最近评论
mohroq:wow gold,
支持者:开源的怎么还要钱呀 老大 给我传一份吧
邮箱fangkm113@126.com
请问有没有2000下的运行命令?:请问有没有2000下的运行命令?
ling:我想问一下缩略图的运行命令是什么?
旁听者:命令少了点吧
这写我都知道 有没有新鲜点的啊
文章分类
收藏
    相册
    我的女朋友
    我的相片
    DONNET学习网站
    MSDN
    oracle数据库在线
    中国DotNet俱乐部
    孟子e章
    微软中国社区
    微软高级培训论坛
    存档
    软件项目交易
    订阅我的博客
    XML聚合  FeedSky
    订阅到鲜果
    订阅到Google
    订阅到抓虾
    订阅到BlogLines
    订阅到Yahoo
    订阅到GouGou
    订阅到飞鸽
    订阅到Rojo
    订阅到newsgator
    订阅到netvibes

    原创 SQL查询的分页思路 收藏

    新一篇: 基于ASP.NET的自定义分页显示 | 旧一篇: ASP生成静态htm页面基本代码!

    如果用一般的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查询得心得.

    发表于 @ 2004年11月20日 21:38:00|评论(loading...)|编辑

    新一篇: 基于ASP.NET的自定义分页显示 | 旧一篇: ASP生成静态htm页面基本代码!

    评论:没有评论。

    发表评论  


    当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
    Csdn Blog version 3.1a
    Copyright © 小人物