📄 perftest.pgc
字号:
#include <stdio.h>#include <sys/time.h>#include <unistd.h>exec sql include sqlca;exec sql whenever sqlerror sqlprint;exec sql whenever not found sqlprint;static voidprint_result(long sec, long usec, char *text){ if (usec < 0) { sec--; usec+=1000000; } printf("I needed %ld seconds and %ld microseconds for the %s test.\n", sec, usec, text); exec sql vacuum; sleep(1);}intmain (){exec sql begin declare section; long i;exec sql end declare section; struct timeval tvs, tve; exec sql connect to mm; exec sql create table perftest1(number int4, ascii char(16)); exec sql create unique index number1 on perftest1(number); exec sql create table perftest2(number int4, next_number int4); exec sql create unique index number2 on perftest2(number); exec sql commit; exec sql set autocommit to on; exec sql begin transaction; gettimeofday(&tvs, NULL); for (i = 0;i < 1407; i++) { exec sql begin declare section; char text[16]; exec sql end declare section; sprintf(text, "%ld", i); exec sql insert into perftest1(number, ascii) values (:i, :text); exec sql insert into perftest2(number, next_number) values (:i, :i+1); } exec sql commit; gettimeofday(&tve, NULL); print_result(tve.tv_sec - tvs.tv_sec, tve.tv_usec - tvs.tv_usec, "insert"); exec sql begin transaction; gettimeofday(&tvs, NULL); for (i = 0;i < 1407; i++) { exec sql begin declare section; char text[16]; exec sql end declare section; exec sql select ascii into :text from perftest1 where number = :i; } exec sql commit; gettimeofday(&tve, NULL); print_result(tve.tv_sec - tvs.tv_sec, tve.tv_usec - tvs.tv_usec, "selection&projection"); exec sql begin transaction; gettimeofday(&tvs, NULL); for (i = 0;i < 1407; i++) { exec sql begin declare section; char text[16]; exec sql end declare section; exec sql select perftest1.ascii into :text from perftest1, perftest2 where perftest1.number = perftest2.number and perftest2.number = :i; } exec sql commit; gettimeofday(&tve, NULL); print_result(tve.tv_sec - tvs.tv_sec, tve.tv_usec - tvs.tv_usec, "join"); exec sql begin transaction; gettimeofday(&tvs, NULL); exec sql update perftest2 set next_number = next_number + 1; exec sql commit; gettimeofday(&tve, NULL); print_result(tve.tv_sec - tvs.tv_sec, tve.tv_usec - tvs.tv_usec, "update"); exec sql begin transaction; gettimeofday(&tvs, NULL); exec sql delete from perftest2; exec sql commit; gettimeofday(&tve, NULL); print_result(tve.tv_sec - tvs.tv_sec, tve.tv_usec - tvs.tv_usec, "delete"); exec sql set autocommit = off; exec sql drop index number2; exec sql drop table perftest2; exec sql drop index number1; exec sql drop table perftest1; exec sql commit; exec sql disconnect; return (0);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -