oracle – 如何使用空值索引日期列?

前端之家收集整理的这篇文章主要介绍了oracle – 如何使用空值索引日期列?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
当某些行具有空值时,应如何索引日期列?
我们必须在日期范围和行日期之间选择行.

我们使用Oracle 9.2及更高版本.

我找到的选项

>在日期列上使用位图索引
>使用date列上的索引和状态字段上的索引,当日期为null时,该值为1
>使用date列上的索引,另一个不为null列

我对选择的想法是:

到1:表必须有许多不同的值来使用位图索引
到2:我必须为此目的添加一个字段,并在我想要检索空日期行时更改查询
到3:锁难以将一个字段添加到不是真正需要的索引

这种情况最好的做法是什么?
提前致谢

我读过的一些信息:

Oracle Date Index
When does Oracle index null column values?

编辑

我们的桌子有30万条记录.每天插入和删除1,000到10,000条记录. 280,000条记录具有null的delivery_at日期.这是一种采摘缓冲区.

我们的结构(翻译成英文)是:

create table orders
(
  orderid              VARCHAR2(6) not null,customerid           VARCHAR2(6) not null,compartment          VARCHAR2(8),externalstorage      NUMBER(1) default 0 not null,created_at           DATE not null,last_update          DATE not null,latest_delivery      DATE not null,delivered_at         DATE,delivery_group       VARCHAR2(9),fast_order           NUMBER(1) default 0 not null,order_type           NUMBER(1) default 0 not null,produkt_group        VARCHAR2(30)
)

“Our table has 300,000 records….
280,000 records have a null
delivered_at date. “

换句话说,几乎整个表都满足一个查询,其中搜索DELIVERED_AT是null.索引完全不适合搜索.全表扫描是最好的方法.

如果您具有企业版许可证,并且拥有cpu,则使用并行查询将减少已用时间.

原文链接:/oracle/205513.html

猜你在找的Oracle相关文章