【发布时间】:2021-05-21 12:36:17
【问题描述】:
我们有一个表,上面有大约 100 个索引。因此,当我尝试向该表中插入大量行时,执行插入需要花费太多时间。我尝试了 PARALLEL 和 APPEND 提示,但没有太大帮助。
在这种情况下,还有其他方法可以提高插入性能吗? (我不想禁用然后启用触发器)
【问题讨论】:
-
你试过 sql loader (sqlldr) 命令行工具吗?
-
您最初提到索引,然后以关于禁用和启用触发器的评论结束。你知道究竟是什么导致了缓慢吗?是索引维护吗?还是运行触发器?或者别的什么(未索引的外键是一个相对常见的外键)?例如,如果性能问题是您有昂贵的行级触发器(可能部分是因为它们强制每行进行上下文转换),那与索引维护问题大不相同。
-
100 个索引 - 非常令人印象深刻!它们都是必需的吗?您可以监控索引的使用情况。请注意,Oracle 能够在您运行查询时组合多个索引。您不需要为每个可能的查询使用专用的复合索引。
标签: oracle query-optimization oracle12c database-performance database-administration