Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
![]() |
![]() |
Home -> Community -> Usenet -> c.d.o.server -> Re: bitmap join index error
ageev_at_mail.cir.ru (Misha Ageev) wrote in message news:<877c3c6c.0307150247.71bfd6d6_at_posting.google.com>...
> I have tried to create all possible UNIQUE constraints,
> but the error remains the same:
>
> delete from ma14_doc_feats;
> insert into ma14_doc_feats(doc_id, feat_id) values(1, 1001);
> insert into ma14_doc_feats(doc_id, feat_id) values(2, 1002);
> insert into ma14_doc_feats(doc_id, feat_id) values(3, 1003);
> commit;
> create unique index ma14_dfi_doc_id_un on ma14_doc_feats(doc_id);
> create unique index ma14_dfi_feat_id_un on ma14_doc_feats(feat_id);
>
> SQL> create bitmap index ma14_doc_feats_bitmap1
> 2 on ma14_feats(d.doc_id)
> 3 from ma14_feats f, ma14_docs d, ma14_doc_feats dfi
> 4 where f.feat_id=dfi.feat_id
> 5 and d.doc_id=dfi.doc_id;
> from ma14_feats f, ma14_docs d, ma14_doc_feats dfi
> *
> ERROR at line 3:
> ORA-25954: missing primary key or unique constraint on dimension
>
> My version of Oracle is Oracle9i Enterprise Edition Release 9.2.0.1.0
>
> Misha.
Well, just because you have an unique index on a column does not mean you have a unique constaint on it. Add a unique constraint to it and it will work. For the 2nd type of "intersect" query you listed, I don't think BJI can help. BJI helps by avoiding runtime join between the fact table and dimension tables. The dimension tables will not be accessed at all at runtime. Try regular bitmap indexes instead.
![]() |
![]() |