假设现在有一张表test1有100 000 000条记录,而且现在每天对test1表进行insert 20万条记录和delete 10万条记录,过了一段时间对这张表test1表查询效率非常差。
如何解决查询效率的问题呢?

解决方案 »

  1.   

    在查询用到的字段上建立索引会提高查询效率,并且要定期rebuild这些索引才好。但是建立索引会降低update/insert时候的效率,自己权衡一下吧
      

  2.   

    另外,"过了一段时间对这张表test1表查询效率非常差" 说明你频繁的增删操作,使得表段产生了较多的碎片,建议定期整理一下你的表,重建索引alter table tt move;
    alter index idx_tt rebuild;
      

  3.   

    前几位已经说的非常好了。
    我觉得同业务有较大关系,如果是时时更新查询(及插入的数据马上能查询出)可能是用上面的方法。如果按照EDW做法又不同的。
      

  4.   

    可以用bcp out,然后删除表,bcp in,然后建索引
      

  5.   

    我觉得"过了一段时间对这张表test1表查询效率非常差",应该先看看这个查询SQL。分析一下找个SQL的执行计划,才能比较根本的找到它慢的原因,先看SQL是否有改写优化的可能,再看索引设置是否合理,最后再尝试rebuild索引,减少IO