# Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License, version 2.0,
# as published by the Free Software Foundation.
#
# This program is also distributed with certain software (including
# but not limited to OpenSSL) that is licensed under separate terms,
# as designated in a particular file or component or in included license
# documentation.  The authors of MySQL hereby grant you an additional
# permission to link the program and your derivative works with the
# separately licensed software that they have included with MySQL.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License, version 2.0, for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software Foundation,
# 51 Franklin Street, Suite 500, Boston, MA 02110-1335 USA

Performance schema test configurations.
(Used internally for performance testing)

Configuration PERFSCHEMA-COMPILED-OUT
=====================================

Description
-----------

Reference for timings, server built without the performance schema.

Compiling options
-----------------

./configure --without-perfschema

Server start options
--------------------

N/A

Configuration
-------------

N/A

Pre-test queries
----------------

select version();

This is just to make sure the build is not including the performance schema.

Post-test queries
-----------------

N/A

Configuration PERFSCHEMA-DISABLED
=================================

Description
-----------

Server built with the performance schema,
but the performance schema is disabled at startup.

Compiling options
-----------------

./configure --with-perfschema

Server start options
--------------------

./mysqld --disable-performance-schema

Configuration
-------------

N/A

Pre-test queries
----------------

select version();
show engine performance_schema status;
show variables like "performance%";
show status like "performance%";
select * from performance_schema.PERFORMANCE_TIMERS;
select * from performance_schema.SETUP_CONSUMERS;
select * from performance_schema.SETUP_INSTRUMENTS;
select * from performance_schema.SETUP_TIMERS;

Post-test queries
-----------------

N/A

Configuration PERFSCHEMA-ENABLED-STANDBY
========================================

Description
-----------

Server built with the performance schema.
The performance schema is enabled at startup,
but configured to not record anything.
This is a "stanby" configuration, in the sense that the DBA can add
dynamically more setup options later to get data.

Compiling options
-----------------

./configure --with-perfschema

Server start options
--------------------

./mysqld --enable-performance-schema

Configuration
-------------

UPDATE performance_schema.SETUP_INSTRUMENTS
  set enabled='NO', timed='NO';

UPDATE performance_schema.SETUP_CONSUMERS
  set enabled='NO';

Pre-test queries
----------------

select version();
show engine performance_schema status;
show variables like "performance%";
show status like "performance%";
select * from performance_schema.PERFORMANCE_TIMERS;
select * from performance_schema.SETUP_CONSUMERS;
select * from performance_schema.SETUP_INSTRUMENTS;
select * from performance_schema.SETUP_TIMERS;

Post-test queries
-----------------

show engine performance_schema status;
show variables like "performance%";
show status like "performance%";

Configuration PERFSCHEMA-ENABLED-CURRENT
========================================

Description
-----------

Server built with the performance schema.
The performance schema is enabled at startup.
All instruments are enabled but not timed,
and only one consumer (EVENTS_WAITS_CURRENT) is set.

Compiling options
-----------------

./configure --with-perfschema

Server start options
--------------------

./mysqld --enable-performance-schema

Configuration
-------------

UPDATE performance_schema.SETUP_INSTRUMENTS
  set enabled='YES', timed='NO';

UPDATE performance_schema.SETUP_CONSUMERS
  set enabled='NO';

UPDATE performance_schema.SETUP_CONSUMERS
  set enabled='YES' where name='EVENTS_WAITS_CURRENT';

Pre-test queries
----------------

select version();
show engine performance_schema status;
show variables like "performance%";
show status like "performance%";
select * from performance_schema.PERFORMANCE_TIMERS;
select * from performance_schema.SETUP_CONSUMERS;
select * from performance_schema.SETUP_INSTRUMENTS;
select * from performance_schema.SETUP_TIMERS;

Post-test queries
-----------------

show engine performance_schema status;
show variables like "performance%";
show status like "performance%";

Configuration PERFSCHEMA-ENABLED-CURRENT-CYCLE
==============================================

Description
-----------

Server built with the performance schema.
The performance schema is enabled at startup.
All instruments are enabled and timed,
and only one consumer (EVENTS_WAITS_CURRENT) is set.
The timer used is CYCLE.

Compiling options
-----------------

./configure --with-perfschema

Server start options
--------------------

./mysqld --enable-performance-schema

Configuration
-------------

UPDATE performance_schema.SETUP_INSTRUMENTS
  set enabled='YES', timed='YES';

UPDATE performance_schema.SETUP_TIMERS
  set timer_name='CYCLE';

UPDATE performance_schema.SETUP_CONSUMERS
  set enabled='NO';

UPDATE performance_schema.SETUP_CONSUMERS
  set enabled='YES' where name='EVENTS_WAITS_CURRENT';

Pre-test queries
----------------

select version();
show engine performance_schema status;
show variables like "performance%";
show status like "performance%";
select * from performance_schema.PERFORMANCE_TIMERS;
select * from performance_schema.SETUP_CONSUMERS;
select * from performance_schema.SETUP_INSTRUMENTS;
select * from performance_schema.SETUP_TIMERS;

Post-test queries
-----------------

show engine performance_schema status;
show variables like "performance%";
show status like "performance%";

Configuration PERFSCHEMA-ENABLED-HISTORY-CYCLE
==============================================

Description
-----------

Server built with the performance schema.
The performance schema is enabled at startup.
All instruments are enabled and timed, in CYCLE.
Two consumers (EVENTS_WAITS_CURRENT, EVENTS_WAITS_HISTORY) are set.

Compiling options
-----------------

./configure --with-perfschema

Server start options
--------------------

./mysqld --enable-performance-schema

Configuration
-------------

UPDATE performance_schema.SETUP_INSTRUMENTS
  set enabled='YES', timed='YES';

UPDATE performance_schema.SETUP_TIMERS
  set timer_name='CYCLE';

UPDATE performance_schema.SETUP_CONSUMERS
  set enabled='NO';

UPDATE performance_schema.SETUP_CONSUMERS
  set enabled='YES' where name='EVENTS_WAITS_CURRENT';

UPDATE performance_schema.SETUP_CONSUMERS
  set enabled='YES' where name='EVENTS_WAITS_HISTORY';

Pre-test queries
----------------

select version();
show engine performance_schema status;
show variables like "performance%";
show status like "performance%";
select * from performance_schema.PERFORMANCE_TIMERS;
select * from performance_schema.SETUP_CONSUMERS;
select * from performance_schema.SETUP_INSTRUMENTS;
select * from performance_schema.SETUP_TIMERS;

Post-test queries
-----------------

show engine performance_schema status;
show variables like "performance%";
show status like "performance%";

Configuration PERFSCHEMA-ENABLED-HISTORY_LONG-CYCLE
===================================================

Description
-----------

Server built with the performance schema.
The performance schema is enabled at startup.
All instruments are enabled and timed, in CYCLE.
Two consumers (EVENTS_WAITS_CURRENT, EVENTS_WAITS_HISTORY_LONG) are set.

Compiling options
-----------------

./configure --with-perfschema

Server start options
--------------------

./mysqld --enable-performance-schema

Configuration
-------------

UPDATE performance_schema.SETUP_INSTRUMENTS
  set enabled='YES', timed='YES';

UPDATE performance_schema.SETUP_TIMERS
  set timer_name='CYCLE';

UPDATE performance_schema.SETUP_CONSUMERS
  set enabled='NO';

UPDATE performance_schema.SETUP_CONSUMERS
  set enabled='YES' where name='EVENTS_WAITS_CURRENT';

UPDATE performance_schema.SETUP_CONSUMERS
  set enabled='YES' where name='EVENTS_WAITS_HISTORY_LONG';

Pre-test queries
----------------

select version();
show engine performance_schema status;
show variables like "performance%";
show status like "performance%";
select * from performance_schema.PERFORMANCE_TIMERS;
select * from performance_schema.SETUP_CONSUMERS;
select * from performance_schema.SETUP_INSTRUMENTS;
select * from performance_schema.SETUP_TIMERS;

Post-test queries
-----------------

show engine performance_schema status;
show variables like "performance%";
show status like "performance%";

Configuration PERFSCHEMA-ENABLED-BIGBANG-CYCLE
==============================================

Description
-----------

Server built with the performance schema.
The performance schema is enabled at startup.
All instruments are enabled and timed, in CYCLE.
All possible consumers are enabled.

Compiling options
-----------------

./configure --with-perfschema

Server start options
--------------------

./mysqld --enable-performance-schema

Configuration
-------------

UPDATE performance_schema.SETUP_INSTRUMENTS
  set enabled='YES', timed='YES';

UPDATE performance_schema.SETUP_TIMERS
  set timer_name='CYCLE';

UPDATE performance_schema.SETUP_CONSUMERS
  set enabled='YES';

Pre-test queries
----------------

select version();
show engine performance_schema status;
show variables like "performance%";
show status like "performance%";
select * from performance_schema.PERFORMANCE_TIMERS;
select * from performance_schema.SETUP_CONSUMERS;
select * from performance_schema.SETUP_INSTRUMENTS;
select * from performance_schema.SETUP_TIMERS;

Post-test queries
-----------------

show engine performance_schema status;
show variables like "performance%";
show status like "performance%";

