如果没有where条件,那么你建立的索引并不起作用,同样是全表搜索,所以必要的where条件很重要。

解决方案 »

  1.   

    如果没有where条件,那么你建立的索引并不起作用,同样是全表搜索,所以必要的where条件很重要。
      

  2.   

    是加个where条件也行呀,我加了,select * from table1 where name<>"abc"
    结果还是一样,要花差不多6分钟!
      

  3.   

    你参考net_steven(吃素的狼)的意见试试.
      

  4.   

    我的意见是,你所花的6分钟并不是SQL Server 7查询所用,而是这些数据从服务器传送到你的工作站所花的时间!换句话说,这个事件是网络数据传输所用时间,而不是SQL Server7查询所用时间。
    如果你想缩短这6分钟时间,建议你把你们单位的局域网换成千兆网!:)
      

  5.   

    用執行計劃看一下,是否用了Table Scan,假如是,則可按狼兄的意見加一個Cluster index(一般是有了Primary Key之後就有了)。
    如果不是,則可用Profiler跟蹤一下,看看時間花得最多的地方是在哪里,再想辦法。
      

  6.   

    给你两点建议:
    1。在字段name上建立索引。
    2。尽量不要使用<>,这种查询条件会导致全表扫描,使用左连接来提高效率。
    select a.* from table1 a left outer join (select id from table1 where name = 'abc') as b on a.id = b.id where b.id is null
    注:id为table1的主关键字