rm src/test/performance
Last changed in 1997. Report by Andres Freund
This commit is contained in:
parent
1c7087af42
commit
8ac356cde3
|
@ -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
|
|
|
@ -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";
|
|
||||||
}
|
|
|
@ -1 +0,0 @@
|
||||||
`echo "" | time $FrontEnd`;
|
|
|
@ -1,4 +0,0 @@
|
||||||
if ( $TestDBMS =~ /^pgsql/ )
|
|
||||||
{
|
|
||||||
`echo "CREATE TABLE simple (justint int);" | time $FrontEnd`;
|
|
||||||
}
|
|
|
@ -1,4 +0,0 @@
|
||||||
if ( $TestDBMS =~ /^pgsql/ )
|
|
||||||
{
|
|
||||||
`echo "CREATE INDEX simpleidx ON simple (justint);" | time $FrontEnd`;
|
|
||||||
}
|
|
|
@ -1,4 +0,0 @@
|
||||||
if ( $TestDBMS =~ /^pgsql/ )
|
|
||||||
{
|
|
||||||
`echo "DROP TABLE simple;" | time $FrontEnd`;
|
|
||||||
}
|
|
|
@ -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
|
@ -1 +0,0 @@
|
||||||
`echo "SELECT * FROM simple ORDER BY justint;" | time $FrontEnd`;
|
|
|
@ -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
|
@ -1,4 +0,0 @@
|
||||||
if ( $TestDBMS =~ /^pgsql/ )
|
|
||||||
{
|
|
||||||
`time $FrontEnd -c 'vacuum'`;
|
|
||||||
}
|
|
|
@ -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
|
|
Loading…
Reference in New Issue