· 10 years ago · Sep 09, 2016, 11:34 AM
1\timing
2SET client_min_messages = 'DEBUG5';
3SET log_min_messages = 'DEBUG5';
4SET wal_level = 'minimal';
5
6create extension if not exists cube;
7
8begin transaction;
9SELECT setseed(.43);
10
11create table dataTable as select cube(array[random()*1E20,random()*1E20,random()*1E20]) c from generate_series(1,1e6,1);
12create index idx on dataTable using gist(c);
13
14create table queries(id int,l1 float,l2 float,l3 float, u1 float,u2 float, u3 float, q cube);
15insert into queries(id,l1,l2,l3) select s,random(),random(),random() from generate_series(1,1e4,1) s;
16update queries set q = cube(array[l1,l2,l3],array[(l1+0.1)*1E20,(l2+0.1)*1E20,(l3+0.1)*1E20]);
17
18select id,(select count(*) from dataTable dt where dt.c<@q) from queries ;
19
20select pg_size_pretty(pg_relation_size('idx'));
21
22rollback;