rm src/test/performance

Last changed in 1997.

Report by Andres Freund
This commit is contained in:
Bruce Momjian 2015-03-21 22:21:20 -04:00
parent 1c7087af42
commit 8ac356cde3
13 changed files with 0 additions and 16613 deletions

View File

@ -1,16 +0,0 @@
DBMS: PostgreSQL 6.2b10
OS: FreeBSD 2.1.5-RELEASE
HardWare: i586/90, 24M RAM, IDE
StartUp: postmaster -B 256 '-o -S 2048' -S
Compiler: gcc 2.6.3
Compiled: -O, without CASSERT checking, with
-DTBL_FREE_CMD_MEMORY (to free memory
if BEGIN/END after each query execution)
DB connection startup: 0.20
8192 INSERTs INTO SIMPLE (1 xact): 39.58
8192 INSERTs INTO SIMPLE (8192 xacts): 1190.98
Create INDEX on SIMPLE: 3.69
8192 INSERTs INTO SIMPLE with INDEX (1 xact): 46.65
8192 random INDEX scans on SIMPLE (1 xact): 65.49
ORDER BY SIMPLE: 2.27

View File

@ -1,148 +0,0 @@
#!/usr/bin/perl
#
# Accepts one argument - DBMS name (pgsql, ...) and initializes
# global variable $TestDBMS with this name.
#
# Where to run tests
$DBNAME = 'perftest';
# This describtion for all DBMS supported by test
# DBMS_name => [FrontEnd, DestroyDB command, CreateDB command]
%DBMS =
('pgsql' =>
[ "psql -q -d $DBNAME", "destroydb $DBNAME", "createdb $DBNAME" ]);
# Tests to run: test' script, test' description, ...
# Test' script is in form
#
# script_name[.ntm][ T]
#
# script_name is name of file in ./sqls
# .ntm means that script will be used for some initialization
# and should not be timed: runtests.pl opens /dev/null as STDERR
# in this case and restore STDERR to result file after script done.
# Script shouldn't notice either he is running for test or for
# initialization purposes.
# T means that all queries in this test (initialization ?) are to be
# executed in SINGLE transaction. In this case global variable $XACTBLOCK
# is not empty string. Otherwise, each query in test is to be executed
# in own transaction ($XACTBLOCK is empty string). In accordance with
# $XACTBLOCK, script is to do DBMS specific preparation before execution
# of queries. (Look at example in sqls/inssimple for MySQL - it gives
# an idea of what can be done for features unsupported by an DBMS.)
#
@perftests = (
# It speed up things
'connection.ntm', 'DB connection startup (no timing)',
# Just connection startup time (echo "" | psql ... - for PgSQL)
'connection', 'DB connection startup',
'crtsimple.ntm', 'Create SIMPLE table (no timing)',
# 8192 inserts in single xaction
'inssimple T', '8192 INSERTs INTO SIMPLE (1 xact)',
'drpsimple.ntm', 'Drop SIMPLE table (no timing)',
'crtsimple.ntm', 'Create SIMPLE table (no timing)',
# 8192 inserts in 8192 xactions
'inssimple', '8192 INSERTs INTO SIMPLE (8192 xacts)',
'vacuum.ntm', 'Vacuum (no timing)',
# Fast (after table filled with data) index creation test
'crtsimpleidx', 'Create INDEX on SIMPLE',
'drpsimple.ntm', 'Drop SIMPLE table (no timing)',
'crtsimple.ntm', 'Create SIMPLE table (no timing)',
'crtsimpleidx.ntm', 'Create INDEX on SIMPLE (no timing)',
# 8192 inserts in single xaction into table with index
'inssimple T', '8192 INSERTs INTO SIMPLE with INDEX (1 xact)',
# 8192 SELECT * FROM simple WHERE justint = <random_key> in single xaction
'slcsimple T', '8192 random INDEX scans on SIMPLE (1 xact)',
# SELECT * FROM simple ORDER BY justint
'orbsimple', 'ORDER BY SIMPLE',);
#
# It seems that nothing below need to be changed
#
$TestDBMS = $ARGV[0];
die "Unsupported DBMS $TestDBMS\n" if !exists $DBMS{$TestDBMS};
$FrontEnd = $DBMS{$TestDBMS}[0];
$DestroyDB = $DBMS{$TestDBMS}[1];
$CreateDB = $DBMS{$TestDBMS}[2];
print "(Re)create DataBase $DBNAME\n";
`$DestroyDB`; # Destroy DB
`$CreateDB`; # Create DB
$ResFile = "Results.$TestDBMS";
$TmpFile = "Tmp.$TestDBMS";
open(SAVEOUT, ">&STDOUT");
open(STDOUT, ">/dev/null") or die;
open(SAVEERR, ">&STDERR");
open(STDERR, ">$TmpFile") or die;
select(STDERR);
$| = 1;
for ($i = 0; $i <= $#perftests; $i++)
{
$test = $perftests[$i];
($test, $XACTBLOCK) = split(/ /, $test);
$runtest = $test;
if ($test =~ /\.ntm/)
{
#
# No timing for this queries
#
close(STDERR); # close $TmpFile
open(STDERR, ">/dev/null") or die;
$runtest =~ s/\.ntm//;
}
else
{
close(STDOUT);
open(STDOUT, ">&SAVEOUT");
print STDOUT "\nRunning: $perftests[$i+1] ...";
close(STDOUT);
open(STDOUT, ">/dev/null") or die;
select(STDERR);
$| = 1;
printf "$perftests[$i+1]: ";
}
do "sqls/$runtest";
# Restore STDERR to $TmpFile
if ($test =~ /\.ntm/)
{
close(STDERR);
open(STDERR, ">>$TmpFile") or die;
}
select(STDERR);
$| = 1;
$i++;
}
close(STDERR);
open(STDERR, ">&SAVEERR");
open(TMPF, "<$TmpFile") or die;
open(RESF, ">$ResFile") or die;
while (<TMPF>)
{
$str = $_;
($test, $rtime) = split(/:/, $str);
($tmp, $rtime, $rest) = split(/[ ]+/, $rtime);
print RESF "$test: $rtime\n";
}

View File

@ -1 +0,0 @@
`echo "" | time $FrontEnd`;

View File

@ -1,4 +0,0 @@
if ( $TestDBMS =~ /^pgsql/ )
{
`echo "CREATE TABLE simple (justint int);" | time $FrontEnd`;
}

View File

@ -1,4 +0,0 @@
if ( $TestDBMS =~ /^pgsql/ )
{
`echo "CREATE INDEX simpleidx ON simple (justint);" | time $FrontEnd`;
}

View File

@ -1,4 +0,0 @@
if ( $TestDBMS =~ /^pgsql/ )
{
`echo "DROP TABLE simple;" | time $FrontEnd`;
}

View File

@ -1,28 +0,0 @@
# src/test/performance/sqls/inssimple
#
# Transactions are unsupported by MySQL - so for insertion of
# 8192 rows, 1 INSERT per Xaction, we returned "Transactions unsupported"
#
if ( $TestDBMS =~ /^mysql/ && $XACTBLOCK eq '' )
{
print STDERR " No_Xact\n";
return;
}
`> .sqlf`; # clean file
#
# PgSQL specific: if all queries from inssimple.data must be executed in
# single xaction ($XACTBLOCK ne '') then add BEGIN/END arround queries
#
`echo "BEGIN;" >> .sqlf` if ( $TestDBMS =~ /^pgsql/ && $XACTBLOCK ne '' );
`cat sqls/inssimple.data >> .sqlf`;
# PgSQL (see above)
`echo "END;" >> .sqlf` if ( $TestDBMS =~ /^pgsql/ && $XACTBLOCK ne '' );
# Ok - run queries
`time $FrontEnd < .sqlf`;

File diff suppressed because it is too large Load Diff

View File

@ -1 +0,0 @@
`echo "SELECT * FROM simple ORDER BY justint;" | time $FrontEnd`;

View File

@ -1,13 +0,0 @@
`> .sqlf`;
# PgSQL specific to execute all queries in single xaction
`echo "BEGIN;" >> .sqlf` if ( $TestDBMS =~ /^pgsql/ && $XACTBLOCK ne '' );
`cat sqls/slcsimple.data >> .sqlf`;
`echo "END;" >> .sqlf` if ( $TestDBMS =~ /^pgsql/ && $XACTBLOCK ne '' );
# Run queries
`time $FrontEnd < .sqlf`;

File diff suppressed because it is too large Load Diff

View File

@ -1,4 +0,0 @@
if ( $TestDBMS =~ /^pgsql/ )
{
`time $FrontEnd -c 'vacuum'`;
}

View File

@ -1,6 +0,0 @@
#!/bin/sh
# Please choose amount of sort memory (-S XXX) as appropriate
# for your system: more is better, but swapping breaks performance!
exec postmaster '-o -S 2048' -S