postgresql/contrib/pgbench
Bruce Momjian 7751c06852 Have libpgport link before libpq so that PG client applications are more
immunte to changes in libpq's usage of pgport between major versions.

Backpatch to 8.0.X.
2005-03-25 18:18:41 +00:00
..
Makefile Have libpgport link before libpq so that PG client applications are more 2005-03-25 18:18:41 +00:00
pgbench.c This patch makes some cleanups to contrib/ to silence some sparse 2004-11-09 06:09:40 +00:00
README.pgbench
README.pgbench_jis

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

pgbench README		2003/11/26 Tatsuo Ishii (t-ishii@sra.co.jp)

$B"#(Bpgbench $B$H$O!)(B

pgbench $B$O(B TPC-B$B$K;w$?%Y%s%A%^!<%/%F%9%H$r9T$J$&%W%m%0%i%`$G$9!%:#$N$H(B
$B$3$m(B PostgreSQL $B@lMQ$G$9!%(B

pgbench $B$O(B select/update/insert $B$r4^$`%H%i%s%6%/%7%g%s$r<B9T$7!$A4BN$N(B
$B<B9T;~4V$H<B:]$K40N;$7$?%H%i%s%6%/%7%g%s$N?t$+$i(B 1 $BIC4V$K<B9T$G$-$?%H(B
$B%i%s%6%/%7%g%s?t(B (tps) $B$rI=<($7$^$9!%=hM}$NBP>]$H$J$k%F!<%V%k$O%G%U%)(B
$B%k%H$G$O(B 10$BK|%?%W%k$N%G!<%?$r4^$_$^$9!%(B

$B<B:]$NI=<($O0J2<$N$h$&$J46$8$G$9!%(B

number of clients: 4
number of transactions per client: 100
number of processed transactions: 400/400
tps = 19.875015(including connections establishing)
tps = 20.098827(excluding connections establishing)

pgbench $B$O(B JDBCBench $B$H$$$&!$$b$H$b$H$O(B MySQL $BMQ$K=q$+$l$?(B JDBC $BMQ$N%Y(B
$B%s%A%^!<%/%W%m%0%i%`$r;29M$K:n@.$5$l$^$7$?!%(B

$B"#(Bpgbench $B$NFCD'(B

o C $B8@8l$H(B libpq $B$@$1$G=q$+$l$F$$$k$N$G0\?"@-$,9b$/!$4JC1$K%$%s%9%H!<(B
$B%k$G$-$^$9!%(B

o pgbench $B$O(B libpq $B$NHsF14|=hM}5!G=$r;H$C$F%^%k%A%f!<%64D6-$r%7%_%e%l!<(B
$B%H$7$^$9!%MF0W$KF1;~@\B34D6-$r%F%9%H$G$-$^$9!%(B

$B"#(Bpgbench $B$N%$%s%9%H!<%k(B

(1) PostgreSQL$B$r(Bconfigure$B!$%3%s%Q%$%k$7$^$9!%(Bpgbench$B$N%$%s%9%H!<%k$@$1(B
    $B$,L\E*$G$"$l$P!$(BPostgreSQL$B$N$9$Y$F$r%3%s%Q%$%k$9$kI,MW$O$"$j$^$;$s!%(B
	PostgreSQL$B%=!<%9$N%H%C%W%G%#%l%/%H%j$G(Bconfigure$B$r$7$?8e!$(B
    src/interface/libpq $B$G(B "make all" $B$r<B9T$9$l$P=`Hw40N;$G$9!%(B

(2) $B$3$N%G%#%l%/%H%j$G(B make $B$r<B9T$7$^$9!%$=$&$9$k$H!$(B"pgbench" $B$H$$$&(B
    $B<B9T%W%m%0%i%`$,$G$-$^$9!%$=$N$^$^<B9T$7$F$b9=$$$^$;$s$7!$(B"make
    install" $B$r<B9T$7$F(B PostgreSQL $B$NI8=`<B9T%W%m%0%i%`%G%#%l%/%H%j(B
    ($B%G%U%)%k%H$G$O(B /usr/local/pgsql/bin) $B$K%$%s%9%H!<%k$9$k$3$H$b$G$-(B
    $B$^$9!%(B

$B"#(Bpgbench $B$N;H$$J}(B

$ pgbench [$B%G!<%?%Y!<%9L>(B]

$B$G$9!%%G!<%?%Y!<%9L>$r>JN,$9$k$H!$%f!<%6L>$HF1$8%G!<%?%Y!<%9$r;XDj$7$?(B
$B$b$N$H$_$J$7$^$9!%%G!<%?%Y!<%9$O8e=R$N(B -i $B%*%W%7%g%s$r;H$C$F$"$i$+$8$a(B
$B=i4|2=$7$F$*$/I,MW$,$"$j$^$9!%(B

pgbench $B$K$O$$$m$$$m$J%*%W%7%g%s$,$"$j$^$9!%(B

-h $B%[%9%HL>(B	PostgreSQL$B$N%G!<%?%Y!<%9%G!<%b%s(B postmaster $B$NF0(B
		$B$$$F$$$k%[%9%HL>$r;XDj$7$^$9!%>JN,$9$k$H<+%[%9%H$K(B Unix domain
		socket $B$G@\B3$7$^$9!%(B

-p $B%]!<%HHV9f(B	postmaster $B$N;HMQ$9$k%]!<%HHV9f$r;XDj$7$^$9!%>JN,$9$k$H(B 5432
		$B$,;XDj$5$l$?$b$N$H$_$J$7$^$9!%(B

-c $B%/%i%$%"%s%H?t(B	$BF1;~<B9T%/%i%$%"%s%H?t$r;XDj$7$^$9!%>JN,;~$O(B
			1 $B$H$J$j$^$9!%(Bpgbench $B$OF1;~<B9T%/%i%$%"%s%HKh$K(B
			$B%U%!%$%k%G%#%9%/%j%W%?$r;HMQ$9$k$N$G!$;HMQ2DG=(B
			$B%U%!%$%k%G%#%9%/%j%W%??t$r1[$($k%/%i%$%"%s%H?t$O(B
			$B;XDj$G$-$^$;$s!%;HMQ2DG=%U%!%$%k%G%#%9%/%j%W%??t(B
			$B$O(B limit $B$d(B ulimit $B%3%^%s%I$GCN$k$3$H$,$G$-$^$9!%(B

-t $B%H%i%s%6%/%7%g%s?t(B	$B3F%/%i%$%"%s%H$,<B9T$9$k%H%i%s%6%/%7%g%s?t$r(B
			$B;XDj$7$^$9!%>JN,;~$O(B 10 $B$H$J$j$^$9!%(B

-s $B%9%1!<%j%s%0%U%!%/%?!<(B

		-i $B%*%W%7%g%s$H0l=o$K;HMQ$7$^$9!%(B
		$B%9%1!<%j%s%0%U%!%/%?!<$O(B1$B0J>e$N@0?t!%%9%1!<%j%s%0%U%!(B
		$B%/%?!<$rJQ$($k$3$H$K$h$j!$%F%9%H$NBP>]$H$J$k%F!<%V%k$N(B
		$BBg$-$5$,(B 10$BK|(B x [$B%9%1!<%j%s%0%U%!%/%?!<(B]$B$K$J$j$^$9!%(B
		$B%G%U%)%k%H$N%9%1!<%j%s%0%U%!%/%?!<$O(B 1 $B$G$9!%(B

-U login	DB$B%f!<%6$N%m%0%$%sL>$r;XDj$7$^$9!%(B

-P password	$B%Q%9%o!<%I$r;XDj$7$^$9!%$J$*!$$3$N%*%W%7%g%s$r;H$&$H!$(B
		$B%Q%9%o!<%I$r(Bps$B%3%^%s%I$G8+$i$l$k$J$I!$%;%-%e%j%F%#%[!<(B
		$B%k$K$J$k2DG=@-$,$"$k$N$G!$%F%9%HMQ$K$N$_$*;H$$2<$5$$!%(B

-n		$B$3$N%*%W%7%g%s$r;XDj$9$k$H!$%Y%s%A%^!<%/3+;OA0$K(B vacuum $B$H(B
		history $B$N%/%j%"$r9T$J$$$^$;$s!%(B

-v		$B$3$N%*%W%7%g%s$r;XDj$9$k$H!$%Y%s%A%^!<%/3+;OA0$K(B vacuum $B$H(B
		history $B$N%/%j%"$r9T$J$$$^$9!%(B-v $B$H(B -n $B$r>JN,$9$k$H!$(B
		$B:G>.8B$N(B vacuum $B$J$I$r9T$$$^$9!%$9$J$o$A!$(Bhistory $B$N:o=|!$(B
		$B$H(B history, branches, history $B$N(B vacuum $B$r9T$$$^$9!%(B
		$B$3$l$O!$(Bvacuum $B$N;~4V$r:G>.8B$K$7$J$,$i!$%Q%U%)!<%^%s%9$K(B
		$B1F6A$9$k%4%_A]=|$r8z2LE*$K9T$$$^$9!%DL>o$O(B -v $B$H(B -n $B$r(B
		$B>JN,$9$k$3$H$r$*$9$9$a$7$^$9!%(B

-S		TPC-B$B$N%H%i%s%6%/%7%g%s$G$O$J$/!$8!:w$N$_$N%H%i%s%6%/%7%g%s$r(B
		$B<B9T$7$^$9!%8!:w%9%T!<%I$rB,Dj$7$?$$$H$-$K;H$$$^$9!%(B

-N
		"branches"$B$H(B"tellers"$B%F!<%V%k$N99?7$r9T$$$^$;$s!%$3$l(B
		$B$K$h$C$F(B"branches"$B$H(B"tellers"$B$X$NBgNL$N99?7$N6%9g$N$J(B
		$B$$>uBV$G$NB,Dj$r9T$$$^$9!%$7$?$,$C$F(BTPC-B$B$N%9%Z%C%/$K(B
		$B$OE,9g$7$J$/$J$j$^$9$,!$$h$j8=<BE*$JIi2Y$r%F%9%H$9$k$3(B
		$B$H$,$G$-$^$9!%(B

-C		$B$3$N%*%W%7%g%s$r;XDj$9$k$H!$:G=i$K3NN)$7$?%3%M%/%7%g%s(B
		$B$r;H$$2s$9$N$G$O$J$/!$3F%H%i%s%6%/%7%g%s$4$H$K(BDB$B$X$N@\(B
		$BB3$r9T$$$^$9!%%3%M%/%7%g%s$N%*!<%P!<$X%C%I$rB,Dj$9$k$N(B
		$B$KM-8z$G$9!%(B

-l		$B8D!9$N%H%i%s%6%/%7%g%s$N<B9T;~4V$r5-O?$7$^$9!%5-O?@h$O(B
		$B%+%l%s%H%G%#%l%/%H%j0J2<$N(Bpgbench_log.xxx$B$H$$$&%U%!%$(B
		$B%k$G$9!%%U%!%$%k$N%U%)!<%^%C%H$O!$(B
		
			$B%/%i%$%"%s%H(BID	$B%H%i%s%6%/%7%g%sHV9f(B  $B;~4V(B

		$B$H$J$C$F$$$^$9!%;~4V$O%^%$%/%mICC10L$G$9!%(B

-d		$B%G%P%C%0%*%W%7%g%s!%MM!9$J>pJs$,I=<($5$l$^$9!%(B

$B"#%G!<%?%Y!<%9$N=i4|2=(B

pgbench $B$G%Y%s%A%^!<%/%F%9%H$r<B;\$9$k$?$a$K$O!$$"$i$+$8$a%G!<%?%Y!<%9(B
$B$r=i4|2=$7!$%F%9%H%G!<%?$r:n$kI,MW$,$"$j$^$9!%(B

$ pgbench -i [$B%G!<%?%Y!<%9L>(B]

$B$3$l$K$h$j0J2<$N%F!<%V%k$,:n$i$l$^$9(B($B%9%1!<%j%s%0%U%!%/%?!<(B == 1 $B$N>l9g(B)$B!%(B

$B!vCm0U!v(B
$BF1$8L>A0$N%F!<%V%k$,$"$k$H:o=|$5$l$F$7$^$&$N$G$4Cm0U2<$5$$!*!*(B

$B%F!<%V%kL>(B	$B%?%W%k?t(B
-------------------------
branches	1
tellers		10
accounts	100000
history		0

$B%9%1!<%j%s%0%U%!%/%?!<$r(B 10,100,1000 $B$J$I$KJQ99$9$k$H!$>e5-%?%W%k?t$O(B
$B$=$l$K1~$8$F(B10$BG\!$(B100$BG\!$(B1000$BG\$K$J$j$^$9!%$?$H$($P!$%9%1!<%j%s%0%U%!(B
$B%/%?!<$r(B 10 $B$H$9$k$H!$(B

$B%F!<%V%kL>(B	$B%?%W%k?t(B
-------------------------
branches	10
tellers		100
accounts	1000000
history		0

$B$K$J$j$^$9!%(B

$B"#!V%H%i%s%6%/%7%g%s!W$NDj5A(B

pgbench $B$G$O!$0J2<$N%7!<%1%s%9$rA4It40N;$7$F(B1$B%H%i%s%6%/%7%g%s$H?t$($F(B
$B$$$^$9!%(B

(1) begin;

(2) update accounts set abalance = abalance + :delta where aid = :aid;
    $B$3$3$G!$(B:delta$B$O(B1$B$+$i(B1000$B$^$G$NCM$r<h$kMp?t!$(B:aid $B$O(B 1$B$+$i(B100000$B$^$G(B
    $B$NCM$r<h$kMp?t$G$9!%0J2<!$Mp?t$NCM$O$=$l$>$l$3$N%H%i%s%6%/%7%g%s$N(B
    $BCf$G$OF1$8CM$r;H$$$^$9!%(B

(3) select abalance from accounts where aid = :aid;
    $B$3$3$G$O(B1$B7o$@$18!:w$5$l$^$9!%(B

(4) update tellers set tbalance = tbalance + :delta where tid = :tid;
    $B$3$3$G(B :tid $B$O(B 1$B$+$i(B10$B$N4V$NCM$r$H$kMp?t$G$9!%(B

(5) update branches set bbalance = bbalance + :delta where bid = :bid;
    $B$3$3$G(B :bid $B$O(B 1 $B$+$i(B[$B%9%1%j%s%0%U%!%/%?!<(B]$B$N4V$NCM$r<h$kMp?t$G$9!%(B

(6) insert into history(tid,bid,aid,delta) values(:tid,:bid,:aid,:delta);

(7) end;

$B"#:n<T$H%i%$%;%s%9>r7o(B

pgbench $B$O@P0f(B $BC#IW$K$h$C$F=q$+$l$^$7$?!%%i%$%;%s%9>r7o$O(B pgbench.c $B$N(B
$BKAF,$K=q$$$F$"$j$^$9!%$3$N>r7o$r<i$k8B$jL5=~$GMxMQ$7!$$^$?<+M3$K:FG[IU(B
$B$G$-$^$9!%(B

$B"#2~DjMzNr(B

2003/11/26
	* $BC+ED$5$s$N%Q%C%A$rE,MQ!%(Bpgbench -i$B$N:]$K!$8e$+$i<g%-!<$r:n@.(B
	  $B$9$k$h$&$K$7$?!%$3$l$K$h$C$F=i4|2=$N<B9T;~4V$,BgI}$KC;=L$G$-(B
	  $B$k(B($B$O$:(B)$B!%(B

2003/06/10
	* $B%a%b%j$,=i4|2=$5$l$F$$$J$$%P%0$r=$@5(B
	* $B4D6-JQ?t(BPGHOST, PGPORT, PGUSER$B$rG'<1$9$k$h$&$K$7$?!%(B

2002/07/20
	* Nei Conway$B$5$s$N%Q%C%A$rE,MQ!%(B
	* -l $B%*%W%7%g%s$NDI2C!%(B

2002/02/24
	* $B$3$3$+$i$O(B7.3$BMQ$NJQ99$G$9!%(B
	* CHECKPOINT$B$NH/9T$r$d$a$^$7$?!%(B
	* -N $B%*%W%7%g%s$rDI2C$7$^$7$?!%(B

2001/10/24
	* PostgreSQL 7.2$B$G!$(B"time"$B$,M=Ls8l$K$J$C$?$N$G!$(B"mtime"$B$KJQ99(B
	$B$7$?!%(B

2001/09/09
	* PostgreSQL 7.2$BMQ$K!$(B-U, -P, -C $B%*%W%7%g%s$rDI2C$7$^$7$?!%(B

2000/1/15 pgbench-1.2 $B$O(B PostgreSQL $B$K(B contribute $B$5$l$^$7$?!%(B
	* -v $B%*%W%7%g%sDI2C(B

1999/09/29 pgbench-1.1 $B%j%j!<%9(B
	* $BC+ED$5$s$K$h$k(Bcygwin$BBP1~%Q%C%A<h$j9~$_(B
	* $B%P%C%/%(%s%I%/%i%C%7%e;~$NBP1~(B
	* -S $B%*%W%7%g%sDI2C(B

1999/09/04 pgbench-1.0 $B%j%j!<%9(B