summaryrefslogtreecommitdiff
path: root/sql-bench/README
blob: 6b6a5fc95c0133efe83a3fb3a03f173670844540 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
The MySQL Benchmarks

These tests needs a MySQL version of at least 3.20.28 or 3.21.10.
NOTE: With MySQL 3.20.# you have to use '--skip-in',  because MySQL 3.20
doesn't support the IN operator.

Currently the following servers are supported:
MySQL 3.20 and 3.21, PostgreSQL 6.#, mSQL 2.# and Solid Server 2.2

In this directory are the queries and raw data files used to populate
the MySQL benchmarks. In order to run the benchmarks you should normally
execute a command like the following:

run-all-tests --server=mysql --cmp=mysql,pg,solid --user=test --password=test --log

The above means that one wants to run the benchmark with MySQL. The limits
should be taken from all of mysql,PostgreSQL and Solid.  Login name and
password is 'test'.  The result should be saved as a RUN file in the output
directory.

When the above script has run you will have the individual results and the
the total RUN- file in the output directory.

If you want to look at some old results, try:

compare-results --dir=Results --cmp=mysql,pg,solid
compare-results --dir=Results --cmp=mysql,pg,solid --relative

compare-results --dir=Results --cmp=msql,mysql,pg,solid
compare-results --dir=Results --cmp=msql,mysql,pg,solid --relative

compare-results --dir=results --server=mysql --same-server --cmp=mysql,pg,solid


File			Description

Data/ATIS		Contains data for 29 related tables used in the ATIS tests.
Data/Wisconsin		Contains data for the Wisconsin benchmark.
Results			Contains old benchmark results.
Makefile.am		Automake Makefile
Overview-paper		A paper nicked from the net about database bench-
			marking.
README			This file.
test-ATIS.sh		Cretation of 29 tables and a lot of selects on them.
test-connect.sh		Test how fast a connection to the server is.
test-create.sh		Test how fast a table is created.
test-insert.sh		Test create and fill of a table.
test-wisconsin.sh	This is a port of the PostgreSQL version of this
			benchmark.
run-all-test		Use this to run all tests. When all test are run,
			use the --log --use-old option to get a RUN-file.
compare-results		Makes a compare table from different RUN files.
server-cfg		Contains the limit and functions for all supported
			SQL servers.  If you want to add a new server, this
			should be the only file that neads to be changed.


Most of the test should use portable SQL to make it possible to
compare different databases. Sometimes SQL extensions can make things
a lot faster. In this case the test may use the extensions if the --fast
option is used.

Useful options to all test-scripts (and run-all-tests):

--host=#	Hostname for MySQL server (default: localhost)
--db=#		Database to use (default: test)
--fast		Allow use of any non-standard SQL extension to
		do the get things done faster.
--skip-in	Don't do test with the IN operation (if the SQL server
		hasn't implemented this, for example mSQL and MySQL 3.20).
--lock-tables	Use table locking to get more speed.

From a text at http://www.mgt.ncu.edu.tw/CSIM/Paper/sixth/11.html

The Wisconsin Benchmark

The Wisconsin Benchmark described in [Bitton, DeWitt, and Turbyfill
1983] [Boral and DeWitt 1984] [Bitton and Turbyfill 1985] [Bitton and
Turbyfill 1988], and [DeWitt 1993] is the first effort to
systematically measure and compare the performance of relational
database systems with database machines.  The benchmark is a
single-user and single-factor experiment using a synthetic database
and a controlled workload.  It measures the query optimization
performance of database systems with 32 query types to exe cise the
components of the proposed systems.  The query suites include
selection, join, projection, aggregate, and simple update queries.

The test database consists of four generic relations.  The tenk
relation is the key table and most used. Two data types of small
integer number and character string are utilized.  Data values are
uniformly distributed. The primary metric is the query elapsed
time. The main criticisms of the benchmark include the nature of
single-user workload, the simplistic database structure, and the
unrealistic query tests.  A number of efforts have been made to extend
the benchmark to incorporate the multi-user test.  However, they do
not receive the same acceptance as the original Wisconsin benchmark
except an extension work called the AS3AP benchmark.