这个问题在SQL SERVER中即使是利用游标也效率低下(数据量大)SQL SERVER是数据批量处理的,并没有明确的具体ID指示现在选择到那一条记录了。好象在ORACLE中就有这样的功能,可以明确到具体那条记录,那处理应该会方便些。
在SQL SERVER中我想还是利用翻页来处理比较好吧!

解决方案 »

  1.   

    建立TOTAL表的小的VIEW(1万条 NEW RECORDS)建立INDEX,再通过ASP调用会比较快。
      

  2.   

    改变查询方式,如果照你的要求做出来也会因为速度等原因而后患无穷select top 10050 索引 from 
    table where  索引 not in (select top 10000 索引 from table)
    可以取出从10000条到10005条的记录每次都你的ASP中动态的计算10005和10000的值
      

  3.   

    请问: "最好的办法是把大表分类做索引,不会太慢"是如何分类???请问: "建立TOTAL表的小的VIEW(1万条 NEW RECORDS)建立INDEX,再通过ASP调用会比较快。"中的小的VIEW是何意?????
      

  4.   

    500万条记录不可能一页一页的翻看,你必须对数据进行分类,按分类放在不同的表中甚至不同sql server上。
    在用户使用网页进行数据查询时,强迫他选择分类和输入一定的查询条件,估计这样做用户也不会反对,他没有耐心全部查出来慢慢翻着看。
      

  5.   

    可不可以用AbsolutePage、AbsolutePosition来定位记录集的起始位置?不过要把RecordSet对象打开记录集时的游标设为客户端的
      

  6.   

    我现在就在用百来万条的数据库,我是这样实现的
    ================================
    select top [每页显示的条数] FROM [yourTABLE] WHERE TableID >= [指针位置]其中[指针位置]在页面中以参数传递(也可以以会话传递)
      

  7.   

    select top [每页显示的条数] FROM [yourTABLE] WHERE TableID >= [指针位置]请问:如果 [yourTABLE]在服务器端并不存在,而需要临时生成的话,且数据量很大,又怎么办??