【发布时间】:2011-12-01 03:00:52
【问题描述】:
我有一个表,其中包含活动和非活动条目,活动 = 1 表示活动,活动 = 0 表示不活动。
我在这个表上有各种索引,但我只需要为活动条目维护索引,因为应用程序只查询活动数据。需要保留非活动数据,因为它可以再次变为活动状态,但这通常仅通过批量更新完成,无论如何都不会使用索引。
我注意到索引非活动条目(越来越多的活动条目)需要相当多的空间。
Oracle (10g) 中有没有办法做这样的事情:
create index an_idx on tab (active, col1, col2, ... , coln) where active = 1?
上一次尝试:
当active = 0 像这样时,我尝试使用基于函数的索引将第一列设置为空:
create index an_idx on tab (decode(active, 1, 1, null), col1, col2, ... , coln)
但在这种情况下,Oracle 似乎仍然为非活动列编制索引。
【问题讨论】:
标签: sql database oracle indexing