在巨大的桌子上使用索引的最佳方式

时间:2013-12-16 09:06:25

标签: oracle oracle11g oracle10g

我得到了一张约有400-450万条记录的表格。每天大约有400万个插页。该表包含6个外键(事实表数据仓库)。

现在我正考虑使用Bitmap Join Indexes。但是从我读到的内容来看,插件将非常缓慢。

该表将经常被查询。你有一个好主意,索引策略会是什么样子?

2 个答案:

答案 0 :(得分:3)

如果您没有索引特定列,那么每次在其上放​​置谓词时,您都无法进行完整的表(或分区)扫描。随着时间的推移,这可能比维护索引的开销要大得多。

在存在位图连接索引的情况下插入需要针对维度表进行查找,但这对于大型维度表来说可能效率低下。作为第一步,您可以考虑仅对连接到较小表的列使用位图连接索引。

索引的替代方法是对表进行分区,这也有助于提高针对非常大的维度表的连接效率http://docs.oracle.com/cd/E11882_01/server.112/e25523/part_warehouse.htm#CHDHEBBA

我的默认方法是:

  • 通过分区修剪提高查询性能的分区。
  • 针对大尺寸表的连接效率的子分区
  • 应用位图索引以提高分区修剪无效的查询性能。

答案 1 :(得分:0)

你可能已经到了外键过于昂贵的地步,可能是放弃它们的时候了......也就是ebay。然后你需要一些可以检查违规行为的工作。