⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 perftest.pgc

📁 PostgreSQL7.4.6 for Linux
💻 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 + -