oracle 优化??(高手指教)

microbluecat 2006-04-23 02:50:18
假设现在有一张表test1有100 000 000条记录,而且现在每天对test1表进行insert 20万条记录和delete 10万条记录,过了一段时间对这张表test1表查询效率非常差。
如何解决查询效率的问题呢?
...全文
452 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
berbang 2006-05-18
  • 打赏
  • 举报
回复
我觉得"过了一段时间对这张表test1表查询效率非常差",应该先看看这个查询SQL。分析一下找个SQL的执行计划,才能比较根本的找到它慢的原因,先看SQL是否有改写优化的可能,再看索引设置是否合理,最后再尝试rebuild索引,减少IO
myiee 2006-05-17
  • 打赏
  • 举报
回复
可以用bcp out,然后删除表,bcp in,然后建索引
bbsad 2006-05-13
  • 打赏
  • 举报
回复
重建索引,可以暂时加快一下。。但我觉得总不是好办法,最好还是分表。
czbbbs 2006-05-10
  • 打赏
  • 举报
回复
重建索引
sunxiaohui 2006-04-28
  • 打赏
  • 举报
回复
建议检查数据表的存储随片,进行碎片整理,使表存储在相对连续的空间内.
fjmingyang 2006-04-28
  • 打赏
  • 举报
回复
两位戴*的说得是
zgh2003 2006-04-28
  • 打赏
  • 举报
回复
这么大的表,分区肯定要做,针对查询语句最优化创建索引,优化查询语句等,还有就像楼上说到的对表及索引定期进行维护。
beyondrobey 2006-04-27
  • 打赏
  • 举报
回复
前几位已经说的非常好了。
我觉得同业务有较大关系,如果是时时更新查询(及插入的数据马上能查询出)可能是用上面的方法。如果按照EDW做法又不同的。
boydgmx 2006-04-24
  • 打赏
  • 举报
回复
另外,"过了一段时间对这张表test1表查询效率非常差" 说明你频繁的增删操作,使得表段产生了较多的碎片,建议定期整理一下你的表,重建索引

alter table tt move;
alter index idx_tt rebuild;

boydgmx 2006-04-24
  • 打赏
  • 举报
回复
如果你的数据是趋于静态的,也就是说以前的数据就不动了,只是对最近的数据做增删操作,那么可以用分区表。
lengyue110 2006-04-24
  • 打赏
  • 举报
回复
在查询用到的字段上建立索引会提高查询效率,并且要定期rebuild这些索引才好。但是建立索引会降低update/insert时候的效率,自己权衡一下吧
ThomasBoxing 2006-04-24
  • 打赏
  • 举报
回复
viewing

3,491

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 高级技术相关讨论专区
社区管理员
  • 高级技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧