用ADO,可以限定一次查找到的记录数。

解决方案 »

  1.   

    ADO是前端的开发工具呀,在SQL里怎么用呢?请老兄多指教
      

  2.   

    SQLSERVER是一种中型的数据库,用ORACLE没有超过1千万记录可以不考虑性能问题。当然你建表时候分配空间等其他因素的影响这里不谈。
      

  3.   

    呵呵, AOI看的清楚, Tigerfish, 你到底问的是什么?
      

  4.   

    1、优化表设计,字段不要太多,减少数据冗余
    2、优化索引,如果是SQL2000,是有工具协助你分析应该设置哪些索引可以得到最好的查询效果的。
      

  5.   

      多谢大家的回复,告诉大家吧。有这么多条记录这是真的。索引我已经建了,但是从那上百万条记录中统计并返回结果(只需要三十条)需要大概二十分钟。我想是不需要这么多时间的。请问怎么优化索引?石老人,怎么优化SQL语句呢?我的问题是从百万条记录中查询并返回结果再将结果插入一张作好的表里面。希望大家在发表意见!
      

  6.   

    "从那上百万条记录中统计并返回结果(只需要三十条)需要大概二十分钟。"肯定是没有适当的优化!把你的select语句贴出来.
      

  7.   

        怎么优化呀,还不是先设置变量,再给变量赋予符合查询条件的值。在查询时就检索出符合条件的值,每当检索到这样一个值时就将变量的值改变。select 语句如下:
    create proc abc
    @a char(5),@b char (6),@c char(3)
    as
    declare @d char,@e  char ,@f  char ............(共三十多个变量)
    select @d=
           case when (条件1)  then @d+1
            else  @d
            end,
            @b=
            case  when(条件2)  then @b+1
            else  @b
            end,
             .
             .
             .
             .
             end,
             from  数据源表
             where   (条件)
       请问怎么优化呢?我觉得没有什么可以优化的。我用其他的方法仍然是一样的结果,费的时间都是差不多的!请大家继续发表意见!多谢大家!
           
      

  8.   

    如果你要提高性能,首先应该考虑提高硬件性能,数据文件应该分组存放,采用RAID,多CPU。如果没有条件,应该在数据库设计时,考虑将实时要处理的数据预先提取出来,减少查询时间,这是一个数据库规划设计的问题,一味的在查询优化上想办法,恐怕你不会得到满意的答案。
      

  9.   

    你是说先从view中统计出这些结果吗?
      

  10.   

    view还有什么复杂的呢?复杂的view怎么建呢
      

  11.   

    我认为longhh(longhh所说的“如果你要提高性能,首先应该考虑提高硬件性能”不合适。要提高性能,首先要先检查程序语句是否优化,数据库设计是否合理,最后才是提高硬件性能。呵呵
      

  12.   

    存储过程,与视图的速度不会有什么差别的,除非你在存储过程中用了动态执行语句,Tigerfish(老虎鱼) 这个存储过程之所以慢,是因为用了太多的Case,如果这样的语句写成视图,一样会很慢。
    所以Tigerfish(老虎鱼) 你把你的条件写出来,让大家看看有没有办法帮你在语句上优化SQL7的查询机制做了很大的改善,其实是很快的.
      

  13.   

       因为要统计出来的结果要符合报表里的字段,我是将报表里的每一个字段作为一个变量来考虑的。而基本上每个变量都要用到case语句。因为这个变量的值是要从一张源表统计出来的,所以要用SELECT语句才行。所以我就将SELECT 结合CASE来为变量查找符合条件的值了,其它我认为没有什么好的方法了啊
      

  14.   

    如果是返回一个至几十个记录,你的语句优化重点不应该在case上,因为只有符合条件的记录才计算case表达式. 我认为, 优化重点首先考虑在where子句和它与索引的配合上,然后再考虑其它以至硬件.可我不明白, 你怎么就不能把你的条件(where子句)给贴出来? 舍不得?