【发布时间】:2011-06-24 21:28:47
【问题描述】:
我目前正在为一种仓库解决方案进行一些数据加载。我每晚都会从生产中导出数据,然后必须加载。仓库表上没有其他更新。为了只为某个表加载新项目,我目前正在执行以下步骤:
- 获取特定列的当前最大值 y(日志表的 id 和事件表的时间)
- 通过类似
where x > y的查询加载数据
为了避免性能问题(我每天加载大约 100 万行),我从表中删除了大多数索引(只有生产需要,仓库中不需要)。但是这样检索最大值需要一些时间......所以我的问题是:
在该列上没有索引的情况下,获取当前最大值的最佳方法是什么?我刚刚阅读了有关使用stats 的信息,但我不知道如何处理带有“timestamp with timezone”的列。在加载之前禁用索引,然后重新创建它需要很长时间......
【问题讨论】:
-
致密友:这是 SO 的主题。这是一个关于 DBMS 编程的问题。
标签: performance oracle statistics indexing