如何索引Oracle中的Y / N列

时间:2010-01-08 19:08:43

标签: oracle indexing

我有一张包含供应商许可数据的大表(6m记录)。该表包含具有Y / N值的NVARCHAR2(1)列。我创建了一个视图来过滤掉值为'N'的记录,并且将广泛查询该视图。索引NVARCHAR2(1)列的最佳方法是什么?

4 个答案:

答案 0 :(得分:8)

什么是Y / N比率? 记录是否更新,以便从Y / N和/或N / Y开始? 如果是这样,这是否定期发生(例如库存/缺货/库存/缺货)或一次性(未加工/加工)?

如果条目混合在一起,并且你有一个均匀的比率,那么索引不太可能有所帮助。

您可以使用分区(如果您有许可证)将Y从N中拆分。物化视图或使表成为两个表上的UNION ALL视图(可能使用INSTEAD OF触发器)也可以从Y中拆分Y.所有这些将导致更新处理的惩罚。

如果列没有获得太多更新活动,则位图索引可能是合适的。

你可以在CASE WHEN标志='Y'然后'Y'结束时有一个基于函数的索引。这将从索引中排除N值,使其变得更小。

答案 1 :(得分:1)

答案 2 :(得分:1)

答案 3 :(得分:0)

也许使用物化视图?然后你所有的查询都将在较小的'Y'表上运行。