5 exec sql include sqlca;
7 exec sql whenever sqlerror sqlprint;
8 exec sql whenever not found sqlprint;
11 print_result(long sec, long usec, char *text)
18 printf("I needed %ld seconds and %ld microseconds for the %s test.\n", sec, usec, text);
24 exec sql begin declare section;
26 exec sql end declare section;
27 struct timeval tvs, tve;
29 exec sql connect 'mm';
31 exec sql create table perftest1(number int4, ascii char16);
33 exec sql create unique index number1 on perftest1(number);
35 exec sql create table perftest2(number int4, next_number int4);
37 exec sql create unique index number2 on perftest2(number);
39 gettimeofday(&tvs, NULL);
41 for (i = 0;i < 1407; i++)
43 exec sql begin declare section;
45 exec sql end declare section;
47 sprintf(text, "%ld", i);
48 exec sql insert into perftest1(number, ascii) values (:i, :text);
49 exec sql insert into perftest2(number, next_number) values (:i, :i+1);
54 gettimeofday(&tve, NULL);
56 print_result(tve.tv_sec - tvs.tv_sec, tve.tv_usec - tvs.tv_usec, "insert");
58 gettimeofday(&tvs, NULL);
60 for (i = 0;i < 1407; i++)
62 exec sql begin declare section;
64 exec sql end declare section;
66 exec sql select ascii into :text from perftest1 where number = :i;
71 gettimeofday(&tve, NULL);
73 print_result(tve.tv_sec - tvs.tv_sec, tve.tv_usec - tvs.tv_usec, "selection&projection");
75 gettimeofday(&tvs, NULL);
77 for (i = 0;i < 1407; i++)
79 exec sql begin declare section;
81 exec sql end declare section;
83 exec sql select perftest1.ascii into :text from perftest1, perftest2 where perftest1.number = perftest2.number and perftest2.number = :i;
88 gettimeofday(&tve, NULL);
90 print_result(tve.tv_sec - tvs.tv_sec, tve.tv_usec - tvs.tv_usec, "join");
92 gettimeofday(&tvs, NULL);
94 exec sql update perftest2 set next_number = next_number + 1;
98 gettimeofday(&tve, NULL);
100 print_result(tve.tv_sec - tvs.tv_sec, tve.tv_usec - tvs.tv_usec, "update");
102 exec sql drop index number2;
104 exec sql drop table perftest2;
106 exec sql drop index number1;
108 exec sql drop table perftest1;