More info: if mvcc=false the inserts are linear, if it's true they expand 
fast, so looks like it might be abug on the mvcc code.

*With MVCC
*
url = jdbc:h2:tcp://localhost/~/sometest;MVCC=true

drop table if exists fk1_table;
Update count: 0
(6 ms)

create table fk1_table ( id bigint primary key, ref_col bigint); 
Update count: 0
(1 ms)

insert into fk1_table values(1, 1); 
Update count: 1
(0 ms)


drop table if exists test; 
Update count: 0
(24 ms)

create table test (    ID BIGINT AUTO_INCREMENT PRIMARY KEY, 
    col1 CHAR(1) DEFAULT 'N', 
    col2fk1 BIGINT, 
    col3 BIGINT, 
    col4 BIGINT, 
    col5 CHAR(1), 
    col6 BIGINT, 
    col7 BIGINT, 
    col8 BIGINT, 
    col9 BIGINT, 
    col10 BIGINT, 
    col11 VARCHAR(1000) 
);
Update count: 0
(2 ms)

ALTER TABLE test ADD FOREIGN KEY(col2fk1) REFERENCES fk1_table(ID); 
Update count: 0
(1 ms)


set autocommit off; 
Update count: 0
(1 ms)


@LOOP 1500 INSERT INTO test(col1, col2fk1 , col3, col4, col5, col6, col7, 
col8, col9, col10, col11) values('N', 1, 1, 1, 'N', ?, ?, 1, 1, 1, 'a 
value' ); 
312 ms: 1500 * (Prepared) (i, i) INSERT INTO test(col1, col2fk1 , col3, 
col4, col5, col6, col7, col8, col9, col10, col11) values('N', 1, 1, 1, 'N', 
?, ?, 1, 1, 1, 'a value' )

@LOOP 1500 INSERT INTO test(col1, col2fk1 , col3, col4, col5, col6, col7, 
col8, col9, col10, col11) values('N', 1, 1, 2, 'N', ?, ?, 1, 1, 1, 'a 
value' ); 
534 ms: 1500 * (Prepared) (i, i) INSERT INTO test(col1, col2fk1 , col3, 
col4, col5, col6, col7, col8, col9, col10, col11) values('N', 1, 1, 2, 'N', 
?, ?, 1, 1, 1, 'a value' )

@LOOP 1500 INSERT INTO test(col1, col2fk1 , col3, col4, col5, col6, col7, 
col8, col9, col10, col11) values('N', 1, 1, 3, 'N', ?, ?, 1, 1, 1, 'a 
value' ); 
614 ms: 1500 * (Prepared) (i, i) INSERT INTO test(col1, col2fk1 , col3, 
col4, col5, col6, col7, col8, col9, col10, col11) values('N', 1, 1, 3, 'N', 
?, ?, 1, 1, 1, 'a value' )

@LOOP 1500 INSERT INTO test(col1, col2fk1 , col3, col4, col5, col6, col7, 
col8, col9, col10, col11) values('N', 1, 1, 4, 'N', ?, ?, 1, 1, 1, 'a 
value' ); 
1350 ms: 1500 * (Prepared) (i, i) INSERT INTO test(col1, col2fk1 , col3, 
col4, col5, col6, col7, col8, col9, col10, col11) values('N', 1, 1, 4, 'N', 
?, ?, 1, 1, 1, 'a value' )

@LOOP 1500 INSERT INTO test(col1, col2fk1 , col3, col4, col5, col6, col7, 
col8, col9, col10, col11) values('N', 1, 1, 5, 'N', ?, ?, 1, 1, 1, 'a 
value' ); 
1199 ms: 1500 * (Prepared) (i, i) INSERT INTO test(col1, col2fk1 , col3, 
col4, col5, col6, col7, col8, col9, col10, col11) values('N', 1, 1, 5, 'N', 
?, ?, 1, 1, 1, 'a value' )

@LOOP 1500 INSERT INTO test(col1, col2fk1 , col3, col4, col5, col6, col7, 
col8, col9, col10, col11) values('N', 1, 1, 1, 'N', ?, ?, 1, 1, 1, 'a 
value' ); 
2026 ms: 1500 * (Prepared) (i, i) INSERT INTO test(col1, col2fk1 , col3, 
col4, col5, col6, col7, col8, col9, col10, col11) values('N', 1, 1, 1, 'N', 
?, ?, 1, 1, 1, 'a value' )

@LOOP 1500 INSERT INTO test(col1, col2fk1 , col3, col4, col5, col6, col7, 
col8, col9, col10, col11) values('N', 1, 1, 2, 'N', ?, ?, 1, 1, 1, 'a 
value' ); 
2513 ms: 1500 * (Prepared) (i, i) INSERT INTO test(col1, col2fk1 , col3, 
col4, col5, col6, col7, col8, col9, col10, col11) values('N', 1, 1, 2, 'N', 
?, ?, 1, 1, 1, 'a value' )

@LOOP 1500 INSERT INTO test(col1, col2fk1 , col3, col4, col5, col6, col7, 
col8, col9, col10, col11) values('N', 1, 1, 3, 'N', ?, ?, 1, 1, 1, 'a 
value' ); 
3239 ms: 1500 * (Prepared) (i, i) INSERT INTO test(col1, col2fk1 , col3, 
col4, col5, col6, col7, col8, col9, col10, col11) values('N', 1, 1, 3, 'N', 
?, ?, 1, 1, 1, 'a value' )

@LOOP 1500 INSERT INTO test(col1, col2fk1 , col3, col4, col5, col6, col7, 
col8, col9, col10, col11) values('N', 1, 1, 4, 'N', ?, ?, 1, 1, 1, 'a 
value' ); 
3931 ms: 1500 * (Prepared) (i, i) INSERT INTO test(col1, col2fk1 , col3, 
col4, col5, col6, col7, col8, col9, col10, col11) values('N', 1, 1, 4, 'N', 
?, ?, 1, 1, 1, 'a value' )

@LOOP 1500 INSERT INTO test(col1, col2fk1 , col3, col4, col5, col6, col7, 
col8, col9, col10, col11) values('N', 1, 1, 5, 'N', ?, ?, 1, 1, 1, 'a 
value' ); 
4753 ms: 1500 * (Prepared) (i, i) INSERT INTO test(col1, col2fk1 , col3, 
col4, col5, col6, col7, col8, col9, col10, col11) values('N', 1, 1, 5, 'N', 
?, ?, 1, 1, 1, 'a value' )

@LOOP 1500 INSERT INTO test(col1, col2fk1 , col3, col4, col5, col6, col7, 
col8, col9, col10, col11) values('N', 1, 1, 1, 'N', ?, ?, 1, 1, 1, 'a 
value' ); 
5187 ms: 1500 * (Prepared) (i, i) INSERT INTO test(col1, col2fk1 , col3, 
col4, col5, col6, col7, col8, col9, col10, col11) values('N', 1, 1, 1, 'N', 
?, ?, 1, 1, 1, 'a value' )

@LOOP 1500 INSERT INTO test(col1, col2fk1 , col3, col4, col5, col6, col7, 
col8, col9, col10, col11) values('N', 1, 1, 2, 'N', ?, ?, 1, 1, 1, 'a 
value' ); 
5840 ms: 1500 * (Prepared) (i, i) INSERT INTO test(col1, col2fk1 , col3, 
col4, col5, col6, col7, col8, col9, col10, col11) values('N', 1, 1, 2, 'N', 
?, ?, 1, 1, 1, 'a value' )

@LOOP 1500 INSERT INTO test(col1, col2fk1 , col3, col4, col5, col6, col7, 
col8, col9, col10, col11) values('N', 1, 1, 3, 'N', ?, ?, 1, 1, 1, 'a 
value' ); 
6482 ms: 1500 * (Prepared) (i, i) INSERT INTO test(col1, col2fk1 , col3, 
col4, col5, col6, col7, col8, col9, col10, col11) values('N', 1, 1, 3, 'N', 
?, ?, 1, 1, 1, 'a value' )

@LOOP 1500 INSERT INTO test(col1, col2fk1 , col3, col4, col5, col6, col7, 
col8, col9, col10, col11) values('N', 1, 1, 4, 'N', ?, ?, 1, 1, 1, 'a 
value' ); 
7051 ms: 1500 * (Prepared) (i, i) INSERT INTO test(col1, col2fk1 , col3, 
col4, col5, col6, col7, col8, col9, col10, col11) values('N', 1, 1, 4, 'N', 
?, ?, 1, 1, 1, 'a value' )

@LOOP 1500 INSERT INTO test(col1, col2fk1 , col3, col4, col5, col6, col7, 
col8, col9, col10, col11) values('N', 1, 1, 5, 'N', ?, ?, 1, 1, 1, 'a 
value' ); 
7564 ms: 1500 * (Prepared) (i, i) INSERT INTO test(col1, col2fk1 , col3, 
col4, col5, col6, col7, col8, col9, col10, col11) values('N', 1, 1, 5, 'N', 
?, ?, 1, 1, 1, 'a value' )

*Without MVCC
*
url = jdbc:h2:tcp://localhost/~/sometest

drop table if exists fk1_table;
Update count: 0
(8 ms)

create table fk1_table ( id bigint primary key, ref_col bigint); 
Update count: 0
(1 ms)

insert into fk1_table values(1, 1); 
Update count: 1
(0 ms)


drop table if exists test; 
Update count: 0
(27 ms)

create table test (    ID BIGINT AUTO_INCREMENT PRIMARY KEY, 
    col1 CHAR(1) DEFAULT 'N', 
    col2fk1 BIGINT, 
    col3 BIGINT, 
    col4 BIGINT, 
    col5 CHAR(1), 
    col6 BIGINT, 
    col7 BIGINT, 
    col8 BIGINT, 
    col9 BIGINT, 
    col10 BIGINT, 
    col11 VARCHAR(1000) 
);
Update count: 0
(1 ms)

ALTER TABLE test ADD FOREIGN KEY(col2fk1) REFERENCES fk1_table(ID); 
Update count: 0
(1 ms)


set autocommit off; 
Update count: 0
(0 ms)


@LOOP 1500 INSERT INTO test(col1, col2fk1 , col3, col4, col5, col6, col7, 
col8, col9, col10, col11) values('N', 1, 1, 1, 'N', ?, ?, 1, 1, 1, 'a 
value' ); 
123 ms: 1500 * (Prepared) (i, i) INSERT INTO test(col1, col2fk1 , col3, 
col4, col5, col6, col7, col8, col9, col10, col11) values('N', 1, 1, 1, 'N', 
?, ?, 1, 1, 1, 'a value' )

@LOOP 1500 INSERT INTO test(col1, col2fk1 , col3, col4, col5, col6, col7, 
col8, col9, col10, col11) values('N', 1, 1, 2, 'N', ?, ?, 1, 1, 1, 'a 
value' ); 
107 ms: 1500 * (Prepared) (i, i) INSERT INTO test(col1, col2fk1 , col3, 
col4, col5, col6, col7, col8, col9, col10, col11) values('N', 1, 1, 2, 'N', 
?, ?, 1, 1, 1, 'a value' )

@LOOP 1500 INSERT INTO test(col1, col2fk1 , col3, col4, col5, col6, col7, 
col8, col9, col10, col11) values('N', 1, 1, 3, 'N', ?, ?, 1, 1, 1, 'a 
value' ); 
113 ms: 1500 * (Prepared) (i, i) INSERT INTO test(col1, col2fk1 , col3, 
col4, col5, col6, col7, col8, col9, col10, col11) values('N', 1, 1, 3, 'N', 
?, ?, 1, 1, 1, 'a value' )

@LOOP 1500 INSERT INTO test(col1, col2fk1 , col3, col4, col5, col6, col7, 
col8, col9, col10, col11) values('N', 1, 1, 4, 'N', ?, ?, 1, 1, 1, 'a 
value' ); 
137 ms: 1500 * (Prepared) (i, i) INSERT INTO test(col1, col2fk1 , col3, 
col4, col5, col6, col7, col8, col9, col10, col11) values('N', 1, 1, 4, 'N', 
?, ?, 1, 1, 1, 'a value' )

@LOOP 1500 INSERT INTO test(col1, col2fk1 , col3, col4, col5, col6, col7, 
col8, col9, col10, col11) values('N', 1, 1, 5, 'N', ?, ?, 1, 1, 1, 'a 
value' ); 
116 ms: 1500 * (Prepared) (i, i) INSERT INTO test(col1, col2fk1 , col3, 
col4, col5, col6, col7, col8, col9, col10, col11) values('N', 1, 1, 5, 'N', 
?, ?, 1, 1, 1, 'a value' )

@LOOP 1500 INSERT INTO test(col1, col2fk1 , col3, col4, col5, col6, col7, 
col8, col9, col10, col11) values('N', 1, 1, 1, 'N', ?, ?, 1, 1, 1, 'a 
value' ); 
111 ms: 1500 * (Prepared) (i, i) INSERT INTO test(col1, col2fk1 , col3, 
col4, col5, col6, col7, col8, col9, col10, col11) values('N', 1, 1, 1, 'N', 
?, ?, 1, 1, 1, 'a value' )

@LOOP 1500 INSERT INTO test(col1, col2fk1 , col3, col4, col5, col6, col7, 
col8, col9, col10, col11) values('N', 1, 1, 2, 'N', ?, ?, 1, 1, 1, 'a 
value' ); 
100 ms: 1500 * (Prepared) (i, i) INSERT INTO test(col1, col2fk1 , col3, 
col4, col5, col6, col7, col8, col9, col10, col11) values('N', 1, 1, 2, 'N', 
?, ?, 1, 1, 1, 'a value' )

@LOOP 1500 INSERT INTO test(col1, col2fk1 , col3, col4, col5, col6, col7, 
col8, col9, col10, col11) values('N', 1, 1, 3, 'N', ?, ?, 1, 1, 1, 'a 
value' ); 
116 ms: 1500 * (Prepared) (i, i) INSERT INTO test(col1, col2fk1 , col3, 
col4, col5, col6, col7, col8, col9, col10, col11) values('N', 1, 1, 3, 'N', 
?, ?, 1, 1, 1, 'a value' )

@LOOP 1500 INSERT INTO test(col1, col2fk1 , col3, col4, col5, col6, col7, 
col8, col9, col10, col11) values('N', 1, 1, 4, 'N', ?, ?, 1, 1, 1, 'a 
value' ); 
120 ms: 1500 * (Prepared) (i, i) INSERT INTO test(col1, col2fk1 , col3, 
col4, col5, col6, col7, col8, col9, col10, col11) values('N', 1, 1, 4, 'N', 
?, ?, 1, 1, 1, 'a value' )

@LOOP 1500 INSERT INTO test(col1, col2fk1 , col3, col4, col5, col6, col7, 
col8, col9, col10, col11) values('N', 1, 1, 5, 'N', ?, ?, 1, 1, 1, 'a 
value' ); 
131 ms: 1500 * (Prepared) (i, i) INSERT INTO test(col1, col2fk1 , col3, 
col4, col5, col6, col7, col8, col9, col10, col11) values('N', 1, 1, 5, 'N', 
?, ?, 1, 1, 1, 'a value' )

@LOOP 1500 INSERT INTO test(col1, col2fk1 , col3, col4, col5, col6, col7, 
col8, col9, col10, col11) values('N', 1, 1, 1, 'N', ?, ?, 1, 1, 1, 'a 
value' ); 
105 ms: 1500 * (Prepared) (i, i) INSERT INTO test(col1, col2fk1 , col3, 
col4, col5, col6, col7, col8, col9, col10, col11) values('N', 1, 1, 1, 'N', 
?, ?, 1, 1, 1, 'a value' )

@LOOP 1500 INSERT INTO test(col1, col2fk1 , col3, col4, col5, col6, col7, 
col8, col9, col10, col11) values('N', 1, 1, 2, 'N', ?, ?, 1, 1, 1, 'a 
value' ); 
144 ms: 1500 * (Prepared) (i, i) INSERT INTO test(col1, col2fk1 , col3, 
col4, col5, col6, col7, col8, col9, col10, col11) values('N', 1, 1, 2, 'N', 
?, ?, 1, 1, 1, 'a value' )

@LOOP 1500 INSERT INTO test(col1, col2fk1 , col3, col4, col5, col6, col7, 
col8, col9, col10, col11) values('N', 1, 1, 3, 'N', ?, ?, 1, 1, 1, 'a 
value' ); 
150 ms: 1500 * (Prepared) (i, i) INSERT INTO test(col1, col2fk1 , col3, 
col4, col5, col6, col7, col8, col9, col10, col11) values('N', 1, 1, 3, 'N', 
?, ?, 1, 1, 1, 'a value' )

@LOOP 1500 INSERT INTO test(col1, col2fk1 , col3, col4, col5, col6, col7, 
col8, col9, col10, col11) values('N', 1, 1, 4, 'N', ?, ?, 1, 1, 1, 'a 
value' ); 
92 ms: 1500 * (Prepared) (i, i) INSERT INTO test(col1, col2fk1 , col3, 
col4, col5, col6, col7, col8, col9, col10, col11) values('N', 1, 1, 4, 'N', 
?, ?, 1, 1, 1, 'a value' )

@LOOP 1500 INSERT INTO test(col1, col2fk1 , col3, col4, col5, col6, col7, 
col8, col9, col10, col11) values('N', 1, 1, 5, 'N', ?, ?, 1, 1, 1, 'a 
value' ); 
103 ms: 1500 * (Prepared) (i, i) INSERT INTO test(col1, col2fk1 , col3, 
col4, col5, col6, col7, col8, col9, col10, col11) values('N', 1, 1, 5, 'N', 
?, ?, 1, 1, 1, 'a value' )

COMMIT; 
Update count: 0
(0 ms)


-- 
You received this message because you are subscribed to the Google Groups "H2 
Database" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/h2-database/-/0N8XuAgQE_0J.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/h2-database?hl=en.

Reply via email to