Oracle bitmap_construct_agg matview 具有快速刷新功能

问题描述 投票:0回答:1

问题是:

这可能吗?

或者,因为

bitmap_construct_agg
返回 BLOB 或 RAW,所以根本不可能?

这是我的测试用例:

create table testmvb(id number, subid number);
 create  materialized view log on testmvb with sequence, rowid(id, subid) including new values;
  
   create materialized view testmvb_mv 
   refresh fast on commit 
   as 
   select id, 
    bitmap_construct_agg(subid) subids,
    bitmap_bucket_number(subid) buk,
    count(*) cnt_all
   from testmvb 
   group by id, bitmap_bucket_number(subid);

刷新完整刷新列subids...

蒂亚, 安德鲁.

oracle performance refresh distinct materialized
1个回答
0
投票

19.22起

SQL> create table testmvb(id number, subid number);

Table created.

SQL>  create  materialized view log on testmvb with sequence, rowid(id, subid) including new values;

Materialized view log created.

SQL>
SQL>    create materialized view testmvb_mv
  2     refresh fast on commit
  3     as
  4     select id,
  5      bitmap_construct_agg(subid) subids,
  6      bitmap_bucket_number(subid) buk,
  7      count(*) cnt_all
  8     from testmvb
  9     group by id, bitmap_bucket_number(subid);

Materialized view created.

SQL>
SQL> insert into    testmvb values (1,10);

1 row created.

SQL> insert into    testmvb values (2,20);

1 row created.

SQL> insert into    testmvb values (3,30);

1 row created.

SQL> commit;

Commit complete.

SQL>
SQL> select * from testmvb_mv;

        ID SUBIDS                                BUK    CNT_ALL
---------- ------------------------------ ---------- ----------
         1 000004                                  1          1
         2 00000010                                1          1
         3 0000000040                              1          1

所以我看到了我所期望的。您能详细说明一下您所看到的情况吗?

© www.soinside.com 2019 - 2024. All rights reserved.