用的SQL SERVER2000
有张表,比如计划表
他有一个主键 ID这个计划表每天都会增加400条左右的数据。
那么一个月是400*31=12400
一年是12400*12=148800
大约15W 条数据。我想问,在这张表里,以后我 SELECT * FORM 计划表 where ID='某'
会慢嘛?
会多慢?假如加上个范围是不是会好点
如:SELECT * FORM 计划表 where ID='某' and 日期 between ***** and ******
这样会快很多嘛?有什么好的建议。

解决方案 »

  1.   

    查询的选择字段里最好不要有text image字段
      

  2.   

    shu ju liang bu da. bu hui man. suo yin jian hao mei wen ti de.
      

  3.   

    如果ID是唯一的,那么SELECT * FORM 计划表 where ID='某' 效率是最高的。
     加上条件 时间条件,就没什么必要的。不过效率影响也不大。
     如果ID不是唯一,例如是联合主键,那么就好应该加上条件限制,来提供效率。例如楼主的时间限制。
     另外,查询千万别用 * 号,直接把所需的字段select 出来,如果需要全部字段,那么就不要懒,一个一个写出来, 效率提高是很大的!!!
      

  4.   

    把你需要经常用到的查询字段加上索引..你查询是必须要查出这个表的所有字段么?要是不是的话select aa,bb,cc from...最好具体一点.你加上时间范围当然会快一点..但是就怕你是仅仅只使用到这1个表 还是需要很多表关联...2000的话很难优化了.要是实在不行 还成存储过程.在后台执行看下 但是是一样的速度.只是他在服务器执行.
      

  5.   

    差用的需要创建索引,比如这个id,where后的属性名称如果常用的话需要索引来帮忙,就相当于字典的目录,
    查找起来有针对性,不管是集群还是非集群都有效率提高。
    引用一个:另外,查询千万别用 * 号,直接把所需的字段select 出来,如果需要全部字段,那么就不要懒,一个一个写出来, 效率提高是很大的!!!另外楼主可以搜索一下“数据库优化 mssql”
    相信帮助会很大!