Hi,
Our application is using H2 as the core database in embed mode. And we have 
a view with about 100,000 rows. To accelerate the querying, we create a 
table that has the same column with the view and create indexes on some 
columns.
We update the table with the data in the view periodically, in version 
1.3.176, the following SQL statements:
*truncate table regression_gut_info_all*;
*insert into *regression_gut_info_all *( select * from *
regression_gut_info_view *)*
Can be finished around 74606 ms.

While trying the latest 1.4.181, the same statement, takes more than 10 
minutes.

Here is our table and view definition:(we use olderStyleOuterJoin=true)

create or replace view regression_gut_info_view as
  select
    c.product_number,
    b.release_number,
    a.regression_id,
    a.test_name,
    b.platform,
    a.owner,
    g.manager,
    b.report_location,
    a.last_pass_date,
    a.last_pass_id,
    a.last_reg_id,
    a.test_id,
    a.fail_type,
    a.sub_time,
    b.tree_name,
    b.client_name,
    d.product_name,
    c.display_name,
    b.change_list,
    b.uuid2,
    a.nav_failure_id,
    b.op_purpose,
    decode( f.primary_platform is not null, 0, false,  1, decode( concat ( 
',', f.primary_platform, ',' ) like concat('%,', b.platform , ',%'), 0, 
false, 1, true ) ) as is_primary_platform,
    a.file_owner,
    a.last_ownership_change_time,
    b.p4_branch
  from reg_failed a, regression_data b, release_list c, product_list d, 
pe_branches f, employeea g
  where a.regression_id = b.regression_id and b.release_number = 
c.release_number
        and c.product_number = d.product_number and a.fail_type in ('fail', 
'fatal') and b.p4_branch = f.branch_depot_path(+) and a.owner = g.userid(+);


create table if not exists regression_gut_info_all (
  product_number int,
  release_number varchar(100),
  regression_id bigint,
  test_name varchar(512),
  platform varchar(32),
  owner varchar(256),
  manager varchar(256),
  report_location varchar(5000),
  last_pass_date timestamp,
  last_pass_id bigint,
  last_reg_id bigint,
  test_id int,
  fail_type varchar(32),
  sub_time timestamp,
  tree_name varchar(80),
  client_name varchar(64),
  product_name varchar(64),
  display_name varchar(32),
  change_list bigint,
  uuid2 bigint,
  nav_failure_id bigint,
  op_purpose varchar_ignorecase(64),
  is_primary_platform boolean,
  file_owner varchar(256),
  last_ownership_change_time timestamp,
  p4_branch varchar(512)
);

create index if not exists regression_gut_info_index1 on 
regression_gut_info_all ( release_number );
create index if not exists regression_gut_info_index4 on 
regression_gut_info_all ( regression_id );
create index if not exists regression_gut_info_index5 on 
regression_gut_info_all ( uuid2 );
create index if not exists regression_gut_info_index6 on 
regression_gut_info_all ( platform );
create index if not exists regression_gut_info_index7 on 
regression_gut_info_all ( product_number );
create index if not exists regression_gut_info_index8 on 
regression_gut_info_all ( op_purpose );
create index if not exists regression_gut_info_index9 on 
regression_gut_info_all ( change_list );
create index if not exists regression_gut_info_index10 on 
regression_gut_info_all ( owner );
create index if not exists regression_gut_info_index11 on 
regression_gut_info_all ( last_pass_id );
create index if not exists regression_gut_info_index12 on 
regression_gut_info_all ( last_reg_id );
create index if not exists regression_gut_info_index13 on 
regression_gut_info_all ( last_pass_date );
create index if not exists regression_gut_info_index14 on 
regression_gut_info_all ( fail_type );
create index if not exists regression_gut_info_index15 on 
regression_gut_info_all ( test_name );
create index if not exists regression_gut_info_index16 on 
regression_gut_info_all ( manager );
create index if not exists regression_gut_info_max_uuid on 
regression_gut_info_all ( uuid2, release_number, platform, op_purpose );

Regards,
Isaac

-- 
You received this message because you are subscribed to the Google Groups "H2 
Database" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/h2-database.
For more options, visit https://groups.google.com/d/optout.

Reply via email to