暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle 删除并重新创建索引

askTom 2016-02-02
165

问题描述

作为我们批处理的一部分,每天的数据都使用Informica从Netezza复制到Oracle。加载数据时,将删除索引,并在数据加载完成后重新创建索引。当用户尝试访问应用程序,而索引处于已删除状态或重新生成状态时,这将导致性能问题。你能告诉我解决这个问题的最好方法是什么吗?

专家解答

指数下降/重新创建是一种成本效益分析

让它们处于运行状态-负载需要更长的时间,但它们始终存在

相对于

不可用/重建-加载速度快,但在加载期间使用会受到惩罚。

有时我们太担心加载时间,而对用户的担心不够。所以1号-我可以开着吗?如果装货时间更长,这真的很重要吗?

第二是合理化。索引有繁殖的习惯: - )也许在加载过程中需要降低索引是因为我们有太多的索引。也许有些已经过时了。

#3是混血儿。假设你有5个索引。对于大多数用户查询,可能2是“超级重要的”。因此,在加载过程中,将这2个放在适当的位置,并将其他3个设置为不可用,然后重建它们。那样你就等于妥协了。

#4是设计变更。也许可以对数据进行分区。如果用户只扫描分区而不是整个表,则可能不再需要索引。或者(取决于您的数据并发要求) ,也许您可以加载一个临时表,然后使用“交换分区”来获取数据,这样对用户来说“可见”的加载时间就可以忽略不计了。

希望这个能帮上忙。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论