+++ /dev/null
-#-------------------------------------------------------------------------
-#
-# Makefile--
-# Makefile for the Wisconsin Benchmark
-#
-# Portions Copyright (c) 1996-2009, PostgreSQL Global Development Group
-# Portions Copyright (c) 1994-5, Regents of the University of California
-#
-#
-# IDENTIFICATION
-# $PostgreSQL: pgsql/src/test/bench/Makefile,v 1.17 2009/01/01 17:24:04 momjian Exp $
-#
-#-------------------------------------------------------------------------
-
-subdir = src/test/bench
-top_builddir = ../../..
-include $(top_builddir)/src/Makefile.global
-
-CREATEFILES= create.sql bench.sql
-OUTFILES= bench.out bench.out.perquery
-
-
-all: $(CREATEFILES)
- rm -f $(OUTFILES)
-
-create.sql: create.source
- rm -f $@; \
- C=`pwd`; \
- sed -e "s:_CWD_:$$C:g" < $< > $@
-
-bench.sql:
- x=1; \
- for i in `ls query[0-9][0-9]`; do \
- echo "select $$x as x" >> bench.sql && \
- cat $$i >> bench.sql && \
- x=`expr $$x + 1` || exit; \
- done
-
-runtest: $(OUTFILES)
-
-bench.out: $(CREATEFILES)
- $(SHELL) ./create.sh $$PGDATA && \
- $(SHELL) ./runwisc.sh $$PGDATA > $@
- @echo "RESULTS OF BENCHMARK ARE SAVED IN FILE bench.out";
-
-bench.out.perquery: bench.out
- $(SHELL) ./perquery <bench.out > $@
- @echo "BREAKDOWN OF BENCHMARK IS SAVED IN FILE bench.out.perquery";
-
-clean:
- rm -f $(OUTFILES) $(CREATEFILES)
+++ /dev/null
-The Postgres Wisconsin Benchmark
-
-The short form of the directions below:
-
- ensure postmaster is stopped
- export PGDATA=/wherever
- make runtest
-
-The long form:
-
-In this directory are the queries and raw data files used to populate the
-Postgres version of the Wisconsin benchmark. In order to run the benchmark,
-you'll initially need to execute the script
-
-./create.sh
-
-which will populate the "bench" database, create the indices, and vacuum the
-database. This will take from 10 minutes or so on a Sparc II/DECstation 5000
-class machine to an hour on a Sun 3.
-
-Once create.sh completes, you can execute the benchmark by running the
-script
-
-./runwisc.sh
-
-into an output file. This output file may be quite large (300K or so)
-so make sure you have sufficient disk space. Once the benchmark run has
-completed, query execution times can be obtained by running the
-
-./perquery
-
-script on the output file. It will generate a nicely formatted, numbered
-set of output with times for each query indicated. (Note that each query
-is run twice.)
-
- !!! WARNING! DO NOT RUN THESE SCRIPTS IF THE POSTMASTER IS RUNNING !!!
+++ /dev/null
-#!/bin/sh
-# $PostgreSQL: pgsql/src/test/bench/create.sh,v 1.7 2009/08/14 18:49:34 tgl Exp $
-#
-if [ ! -d $1 ]; then
- echo " you must specify a valid data directory " >&2
- exit
-fi
-if [ -d ./obj ]; then
- cd ./obj
-fi
-
-echo =============== destroying old bench database... =================
-echo "drop database bench" | postgres --single -D"$1" postgres > /dev/null
-
-echo =============== creating new bench database... =================
-echo "create database bench" | postgres --single -D"$1" postgres > /dev/null
-if [ $? -ne 0 ]; then
- echo createdb failed
- exit 1
-fi
-
-postgres --single -D${1} bench < create.sql > /dev/null
-if [ $? -ne 0 ]; then
- echo initial database load failed
- exit 1
-fi
-
-exit 0
+++ /dev/null
-create table onek(unique1 int4,unique2 int4,two int4,four int4,ten int4,twenty int4, hundred int4,thousand int4,twothousand int4,fivethous int4,tenthous int4,odd int4, even int4,stringu1 name,stringu2 name,string4 name);
-create table tenk1 (unique1 int4,unique2 int4, two int4,four int4,ten int4,twenty int4,hundred int4,thousand int4,twothousand int4,fivethous int4,tenthous int4,odd int4,even int4,stringu1 name,stringu2 name,string4 name);
-create table tenk2 (unique1 int4, unique2 int4, two int4, four int4,ten int4, twenty int4, hundred int4, thousand int4, twothousand int4,fivethous int4, tenthous int4, odd int4, even int4,stringu1 name,stringu2 name, string4 name);
-copy onek from '_CWD_/../regress/data/onek.data';
-copy tenk1 from '_CWD_/../regress/data/tenk.data';
-copy tenk2 from '_CWD_/../regress/data/tenk.data';
-create index onek_unique1 on onek using btree(unique1 int4_ops);
-create index onek_unique2 on onek using btree(unique2 int4_ops);
-create index onek_hundred on onek using btree(hundred int4_ops);
-create index tenk1_unique1 on tenk1 using btree(unique1 int4_ops);
-create index tenk1_unique2 on tenk1 using btree(unique2 int4_ops);
-create index tenk1_hundred on tenk1 using btree(hundred int4_ops);
-create index tenk2_unique1 on tenk2 using btree(unique1 int4_ops);
-create index tenk2_unique2 on tenk2 using btree(unique2 int4_ops);
-create index tenk2_hundred on tenk2 using btree(hundred int4_ops);
-select * into table Bprime from tenk1 t where t.unique2 < 1000;
-vacuum;
+++ /dev/null
-#!/bin/sh
-
-# $PostgreSQL: pgsql/src/test/bench/perquery,v 1.3 2006/03/11 04:38:41 momjian Exp $
-
-egrep 'x = "|elapse' | \
-awk 'BEGIN { x = 0; y = 0; z = 0; a = 0; } \
- /.*elapse.*/ {x = $2 + x; y = $4 + y; z = $6 + z;} \
- /.*x = ".*/ { \
- printf "query %2d: %7.3f real %7.3f user %7.3f sys\n", a, x, y, z; \
- x = 0; y = 0; z = 0; a = a + 1; } \
- END {printf("query %2d: %7.3f real %7.3f user %7.3f sys\n", a, x, y, z);}'
+++ /dev/null
-select * into table temp_bench from tenk1 where (unique2 > 301) and (unique2 < 402);
-drop table temp_bench;
-select * into table temp_bench from tenk1 where (unique2 > 301) and (unique2 < 402);
-drop table temp_bench;
+++ /dev/null
-select * into table temp_bench from tenk1 where (unique1 > 647) and (unique1 < 1648);
-drop table temp_bench;
-select * into table temp_bench from tenk1 where (unique1 > 647) and (unique1 < 1648);
-drop table temp_bench;
+++ /dev/null
-select * into table temp_bench from tenk1 where (unique2 > 301) and (unique2 < 402);
-drop table temp_bench;
-select * into table temp_bench from tenk1 where (unique2 > 301) and (unique2 < 402);
-drop table temp_bench;
+++ /dev/null
-select * into table temp_bench from tenk1 where (unique1 > 647) and (unique1 < 1648);
-drop table temp_bench;
-select * into table temp_bench from tenk1 where (unique1 > 647) and (unique1 < 1648);
-drop table temp_bench;
+++ /dev/null
-select * into table temp_bench from tenk1 where (unique2 > 301) and (unique2 < 402);
-drop table temp_bench;
-select * into table temp_bench from tenk1 where (unique2 > 301) and (unique2 < 402);
-drop table temp_bench;
+++ /dev/null
-select * into table temp_bench from tenk1 where (unique2 > 647) and (unique2 < 1648);
-drop table temp_bench;
-select * into table temp_bench from tenk1 where (unique2 > 647) and (unique2 < 1648);
-drop table temp_bench;
+++ /dev/null
-select * from tenk1 where unique2 = 2001;
-select * from tenk1 where unique2 = 2001;
+++ /dev/null
-select * from tenk1 where (unique2 > 301) and (unique2 < 402);
-select * from tenk1 where (unique2 > 301) and (unique2 < 402);
+++ /dev/null
-select t1.*, t2.unique1 AS t2unique1, t2.unique2 AS t2unique2, t2.two AS t2two, t2.four AS t2four, t2.ten AS t2ten, t2.twenty AS t2twenty, t2.hundred AS t2hundred, t2.thousand AS t2thousand, t2.twothousand AS t2twothousand, t2.fivethous AS t2fivethous, t2.tenthous AS t2tenthous, t2.odd AS t2odd, t2.even AS t2even, t2.stringu1 AS t2stringu1, t2.stringu2 AS t2stringu2, t2.string4 AS t2string4 into table temp_bench from tenk1 t1, tenk1 t2 where (t1.unique2 = t2.unique2) and (t2.unique2 < 1000);
-drop table temp_bench;
-select t1.*, t2.unique1 AS t2unique1, t2.unique2 AS t2unique2, t2.two AS t2two, t2.four AS t2four, t2.ten AS t2ten, t2.twenty AS t2twenty, t2.hundred AS t2hundred, t2.thousand AS t2thousand, t2.twothousand AS t2twothousand, t2.fivethous AS t2fivethous, t2.tenthous AS t2tenthous, t2.odd AS t2odd, t2.even AS t2even, t2.stringu1 AS t2stringu1, t2.stringu2 AS t2stringu2, t2.string4 AS t2string4 into table temp_bench from tenk1 t1, tenk1 t2 where (t1.unique2 = t2.unique2) and (t2.unique2 < 1000);
-drop table temp_bench;
+++ /dev/null
-select t.*,B.unique1 AS Bunique1,B.unique2 AS Bunique2,B.two AS Btwo,B.four AS Bfour,B.ten AS Bten,B.twenty AS Btwenty,B.hundred AS Bhundred,B.thousand AS Bthousand,B.twothousand AS Btwothousand,B.fivethous AS Bfivethous,B.tenthous AS Btenthous,B.odd AS Bodd,B.even AS Beven,B.stringu1 AS Bstringu1,B.stringu2 AS Bstringu2,B.string4 AS Bstring4 into table temp_bench from tenk1 t, Bprime B where t.unique2 = B.unique2;
-drop table temp_bench;
-select t.*,B.unique1 AS Bunique1,B.unique2 AS Bunique2,B.two AS Btwo,B.four AS Bfour,B.ten AS Bten,B.twenty AS Btwenty,B.hundred AS Bhundred,B.thousand AS Bthousand,B.twothousand AS Btwothousand,B.fivethous AS Bfivethous,B.tenthous AS Btenthous,B.odd AS Bodd,B.even AS Beven,B.stringu1 AS Bstringu1,B.stringu2 AS Bstringu2,B.string4 AS Bstring4 into table temp_bench from tenk1 t, Bprime B where t.unique2 = B.unique2;
-drop table temp_bench;
+++ /dev/null
-select t1.*,o.unique1 AS ounique1,o.unique2 AS ounique2,o.two AS otwo,o.four AS ofour,o.ten AS oten,o.twenty AS otwenty,o.hundred AS ohundred,o.thousand AS othousand,o.twothousand AS otwothousand,o.fivethous AS ofivethous,o.tenthous AS otenthous,o.odd AS oodd, o.even AS oeven,o.stringu1 AS ostringu1,o.stringu2 AS ostringu2,o.string4 AS ostring4 into table temp_bench from onek o, tenk1 t1, tenk1 t2 where (o.unique2 = t1.unique2) and (t1.unique2 = t2.unique2) and (t1.unique2 < 1000) and (t2.unique2 < 1000);
-drop table temp_bench;
-select t1.*,o.unique1 AS ounique1,o.unique2 AS ounique2,o.two AS otwo,o.four AS ofour,o.ten AS oten,o.twenty AS otwenty,o.hundred AS ohundred,o.thousand AS othousand,o.twothousand AS otwothousand,o.fivethous AS ofivethous,o.tenthous AS otenthous,o.odd AS oodd, o.even AS oeven,o.stringu1 AS ostringu1,o.stringu2 AS ostringu2,o.string4 AS ostring4 into table temp_bench from onek o, tenk1 t1, tenk1 t2 where (o.unique2 = t1.unique2) and (t1.unique2 = t2.unique2) and (t1.unique2 < 1000) and (t2.unique2 < 1000);
-drop table temp_bench;
+++ /dev/null
-select t1.*,t2.unique1 AS t2unique1,t2.unique2 AS t2unique2,t2.two AS t2two, t2.four AS t2four,t2.ten AS t2ten,t2.twenty AS t2twenty,t2.hundred AS t2hundred,t2.thousand AS t2thousand,t2.twothousand AS t2twothousand, t2.fivethous AS t2fivethous,t2.tenthous AS t2tenthous,t2.odd AS t2odd, t2.even AS t2even,t2.stringu1 AS t2stringu1,t2.stringu2 AS t2stringu2, t2.string4 AS t2string4 into table temp_bench from tenk1 t1, tenk2 t2 where (t1.unique2 = t2.unique2) and (t2.unique2 < 1000);
-drop table temp_bench;
-select t1.*,t2.unique1 AS t2unique1,t2.unique2 AS t2unique2,t2.two AS t2two, t2.four AS t2four,t2.ten AS t2ten,t2.twenty AS t2twenty,t2.hundred AS t2hundred,t2.thousand AS t2thousand,t2.twothousand AS t2twothousand, t2.fivethous AS t2fivethous,t2.tenthous AS t2tenthous,t2.odd AS t2odd, t2.even AS t2even,t2.stringu1 AS t2stringu1,t2.stringu2 AS t2stringu2, t2.string4 AS t2string4 into table temp_bench from tenk1 t1, tenk2 t2 where (t1.unique2 = t2.unique2) and (t2.unique2 < 1000);
-drop table temp_bench;
+++ /dev/null
-select t.*,B.unique1 AS Bunique1,B.unique2 AS Bunique2,B.two AS Btwo,B.four AS Bfour,B.ten AS Bten,B.twenty AS Btwenty,B.hundred AS Bhundred,B.thousand AS Bthousand,B.twothousand AS Btwothousand,B.fivethous AS Bfivethous,B.tenthous AS Btenthous,B.odd AS Bodd,B.even AS Beven,B.stringu1 AS Bstringu1,B.stringu2 AS Bstringu2,B.string4 AS Bstring4 into table temp_bench from tenk1 t, Bprime B where t.unique2 = B.unique2;
-drop table temp_bench;
-select t.*,B.unique1 AS Bunique1,B.unique2 AS Bunique2,B.two AS Btwo,B.four AS Bfour,B.ten AS Bten,B.twenty AS Btwenty,B.hundred AS Bhundred,B.thousand AS Bthousand,B.twothousand AS Btwothousand,B.fivethous AS Bfivethous,B.tenthous AS Btenthous,B.odd AS Bodd,B.even AS Beven,B.stringu1 AS Bstringu1,B.stringu2 AS Bstringu2,B.string4 AS Bstring4 into table temp_bench from tenk1 t, Bprime B where t.unique2 = B.unique2;
-drop table temp_bench;
+++ /dev/null
-select t1.*,o.unique1 AS ounique1,o.unique2 AS ounique2,o.two AS otwo,o.four AS ofour,o.ten AS oten,o.twenty AS otwenty,o.hundred AS ohundred,o.thousand AS othousand,o.twothousand AS otwothousand,o.fivethous AS ofivethous,o.tenthous AS otenthous,o.odd AS oodd, o.even AS oeven,o.stringu1 AS ostringu1,o.stringu2 AS ostringu2,o.string4 AS ostring4 into table temp_bench from onek o, tenk1 t1, tenk1 t2 where (o.unique2 = t1.unique2) and (t1.unique2 = t2.unique2) and (t1.unique2 < 1000) and (t2.unique2 < 1000);
-drop table temp_bench;
-select t1.*,o.unique1 AS ounique1,o.unique2 AS ounique2,o.two AS otwo,o.four AS ofour,o.ten AS oten,o.twenty AS otwenty,o.hundred AS ohundred,o.thousand AS othousand,o.twothousand AS otwothousand,o.fivethous AS ofivethous,o.tenthous AS otenthous,o.odd AS oodd, o.even AS oeven,o.stringu1 AS ostringu1,o.stringu2 AS ostringu2,o.string4 AS ostring4 into table temp_bench from onek o, tenk1 t1, tenk1 t2 where (o.unique2 = t1.unique2) and (t1.unique2 = t2.unique2) and (t1.unique2 < 1000) and (t2.unique2 < 1000);
-drop table temp_bench;
+++ /dev/null
-select t1.*, t2.unique1 AS t2unique1, t2.unique2 AS t2unique2, t2.two AS t2two, t2.four AS t2four, t2.ten AS t2ten, t2.twenty AS t2twenty, t2.hundred AS t2hundred, t2.thousand AS t2thousand,t2.twothousand AS t2twothousand, t2.fivethous AS t2fivethous, t2.tenthous AS t2tenthous, t2.odd AS t2odd, t2.even AS t2even, t2.stringu1 AS t2stringu1, t2.stringu2 AS t2stringu2, t2.string4 AS t2string4 into table temp_bench from tenk1 t1, tenk2 t2 where (t1.unique1 = t2.unique1) and (t2.unique1 < 1000);
-drop table temp_bench;
-select t1.*, t2.unique1 AS t2unique1, t2.unique2 AS t2unique2, t2.two AS t2two, t2.four AS t2four, t2.ten AS t2ten, t2.twenty AS t2twenty, t2.hundred AS t2hundred, t2.thousand AS t2thousand,t2.twothousand AS t2twothousand, t2.fivethous AS t2fivethous, t2.tenthous AS t2tenthous, t2.odd AS t2odd, t2.even AS t2even, t2.stringu1 AS t2stringu1, t2.stringu2 AS t2stringu2, t2.string4 AS t2string4 into table temp_bench from tenk1 t1, tenk2 t2 where (t1.unique1 = t2.unique1) and (t2.unique1 < 1000);
-drop table temp_bench;
+++ /dev/null
-select t.*, B.unique1 AS Bunique1,B.unique2 AS Bunique2,B.two AS Btwo,B.four AS Bfour,B.ten AS Bten, B.twenty AS Btwenty, B.hundred AS Bhundred,B.thousand AS Bthousand,B.twothousand AS Btwothousand, B.fivethous AS Bfivethous,B.tenthous AS Btenthous,B.odd AS Bodd, B.even AS Beven,B.stringu1 AS Bstringu1,B.stringu2 AS Bstringu2,B.string4 AS Bstring4 into table temp_bench from tenk1 t, Bprime B where t.unique1 = B.unique1;
-drop table temp_bench;
-select t.*, B.unique1 AS Bunique1,B.unique2 AS Bunique2,B.two AS Btwo,B.four AS Bfour,B.ten AS Bten, B.twenty AS Btwenty, B.hundred AS Bhundred,B.thousand AS Bthousand,B.twothousand AS Btwothousand, B.fivethous AS Bfivethous,B.tenthous AS Btenthous,B.odd AS Bodd, B.even AS Beven,B.stringu1 AS Bstringu1,B.stringu2 AS Bstringu2,B.string4 AS Bstring4 into table temp_bench from tenk1 t, Bprime B where t.unique1 = B.unique1;
-drop table temp_bench;
+++ /dev/null
-select t1.*, o.unique1 AS ounique1,o.unique2 AS ounique2,o.two AS otwo,o.four AS ofour,o.ten AS oten,o.twenty AS otwenty,o.hundred AS ohundred,o.thousand AS othousand,o.twothousand AS otwothousand,o.fivethous AS ofivethous,o.tenthous AS otenthous,o.odd AS oodd, o.even AS oeven,o.stringu1 AS ostringu1,o.stringu2 AS ostringu2,o.string4 AS ostring4 into table temp_bench from onek o, tenk1 t1, tenk2 t2 where (o.unique1 = t1.unique1) and (t1.unique1 = t2.unique1) and (t1.unique1 < 1000) and (t2.unique1 < 1000);
-drop table temp_bench;
-select t1.*, o.unique1 AS ounique1,o.unique2 AS ounique2,o.two AS otwo,o.four AS ofour,o.ten AS oten,o.twenty AS otwenty,o.hundred AS ohundred,o.thousand AS othousand,o.twothousand AS otwothousand,o.fivethous AS ofivethous,o.tenthous AS otenthous,o.odd AS oodd, o.even AS oeven,o.stringu1 AS ostringu1,o.stringu2 AS ostringu2,o.string4 AS ostring4 into table temp_bench from onek o, tenk1 t1, tenk2 t2 where (o.unique1 = t1.unique1) and (t1.unique1 = t2.unique1) and (t1.unique1 < 1000) and (t2.unique1 < 1000);
-drop table temp_bench;
+++ /dev/null
-select two, four, ten, twenty, hundred, string4 into table temp_bench from tenk1;
-drop table temp_bench;
-select two, four, ten, twenty, hundred, string4 into table temp_bench from tenk1;
-drop table temp_bench;
+++ /dev/null
-select * into table temp_bench from onek;
-drop table temp_bench;
-select * into table temp_bench from onek;
-drop table temp_bench;
+++ /dev/null
-select min(unique2) as x into table temp_bench from tenk1;
-drop table temp_bench;
-select min(unique2) as x into table temp_bench from tenk1;
-drop table temp_bench;
+++ /dev/null
-select min(unique2) as x into table temp_bench from tenk1;
-drop table temp_bench;
-select min(unique2) as x into table temp_bench from tenk1;
-drop table temp_bench;
+++ /dev/null
-insert into tenk1 (unique1, unique2, two, four, ten, twenty, hundred, thousand, twothousand, fivethous, tenthous, odd, even,stringu1,stringu2, string4) values (1000, 74, 0, 2, 0, 10, 50, 688, 1950, 4950, 9950, 1, 100, 'ron may choi','jae kwang choi', 'u. c. berkeley');
-insert into tenk1 (unique1, unique2, two, four, ten, twenty, hundred, thousand, twothousand, fivethous, tenthous, odd, even, stringu1, stringu2, string4) values (1999, 60, 0, 2, 0, 10, 50, 688, 1950, 4950, 9950, 1, 100, 'ron may choi', 'jae kwang choi', 'u. c. berkeley');
+++ /dev/null
-delete from tenk1 where tenk1.unique2 = 877;
-delete from tenk1 where tenk1.unique2 = 876;
+++ /dev/null
-update tenk1 set unique2 = 10001 where tenk1.unique2 =1491;
-update tenk1 set unique2 = 10023 where tenk1.unique2 =1480;
+++ /dev/null
-insert into tenk1 (unique1, unique2, two, four, ten, twenty, hundred, thousand, twothousand, fivethous, tenthous, odd, even, stringu1, stringu2, string4) values (1000, 70, 0, 2, 0, 10, 50, 688, 1950, 4950, 9950, 1, 100, 'ron may choi', 'jae kwang choi', 'u. c. berkeley');
-insert into tenk1 (unique1, unique2, two, four, ten, twenty, hundred, thousand, twothousand, fivethous, tenthous, odd, even, stringu1, stringu2, string4) values (500, 40, 0, 2, 0, 10, 50, 688, 1950, 4950, 9950, 1, 100, 'ron may choi', 'jae kwang choi', 'u. c. berkeley');
+++ /dev/null
-delete from tenk1 where tenk1.unique2 = 10001;
-delete from tenk1 where tenk1.unique2 = 900;
+++ /dev/null
-update tenk1 set unique2 = 10088 where tenk1.unique2 =187;
-update tenk1 set unique2 = 10003 where tenk1.unique2 =2000;
+++ /dev/null
-update tenk1 set unique2 = 10020 where tenk1.unique2 =1974;
-update tenk1 set unique2 = 160 where tenk1.unique2 =1140;
+++ /dev/null
-#!/bin/sh
-# $PostgreSQL: pgsql/src/test/bench/runwisc.sh,v 1.11 2009/08/14 18:49:34 tgl Exp $
-
-if [ ! -d $1 ]; then
- echo " you must specify a valid data directory " >&2
- exit
-fi
-
-if [ -d ./obj ]; then
- cd ./obj
-fi
-
-echo =============== vacuuming benchmark database... ================= >&2
-echo "vacuum" | postgres --single -D"$1" bench > /dev/null
-
-echo =============== running benchmark... ================= >&2
-time postgres --single -D"$1" -texecutor -tplanner -c log_min_messages=log -c log_destination=stderr -c logging_collector=off bench < bench.sql 2>&1
+++ /dev/null
-#!/bin/sh
-
-sh create.sh
-echo Running the benchmark....
-sh runwisc.sh