用sql—2000,在查询分析中执行语句select * from ab1 
需要很长时间才能执行完,显示结果。
表中有1000万条记录,慢怎么解决。  谢谢

解决方案 »

  1.   

    硬件:增加内存,换高性能CPU
    软件: 加索引.
      

  2.   

    下面我们就来看一下在1000万条数据量的情况下各种查询的速度表现(3个月内的数据为25万条): (1)仅在主键上建立聚集索引,并且不划分时间段: Select gid,fariqi,neibuyonghu,title from tgongwen
    用时:128470毫秒(即:128秒) (2)在主键上建立聚集索引,在fariq上建立非聚集索引: select gid,fariqi,neibuyonghu,title from Tgongwen
    where fariqi> dateadd(day,-90,getdate())
    用时:53763毫秒(54秒) (3)将聚合索引建立在日期列(fariqi)上: select gid,fariqi,neibuyonghu,title from Tgongwen
    where fariqi> dateadd(day,-90,getdate())
    用时:2423毫秒(2秒) 
    详见:http://www.cnblogs.com/tintown/archive/2005/04/24/144272.html
      

  3.   

    你select 出1000W,谁看啊?有意义吗
      

  4.   

    Select Top N 只取符合条件的前N条,太多也看不过来
      

  5.   

    1、提高硬件的配置了cup、内存、硬盘的读取速度。
    2、软件最好把这样的大表建立复合索引或者分区表之类的,已提高性能。
      

  6.   

    如果你是想看一哈各个字段的话,建议直接select top 10 * from ab1;没必要全部显示出来撒。
      

  7.   

    其实显示结果浪费了很多的时间,我的测试结果
    表记录1016万记录select count(*) from tb      //Time 2046毫秒select * into #tmp from tb   //Time 19516毫秒select * from tb             //2分15秒,显示了230万条记录
      

  8.   


    如果是100w行数据都要的话,就BCP导出给他们吧。提升硬盘的I/O也是不错的选择。