CompareQueryTimes

CompareQueryTimes compares query execution times.

Summary
CompareQueryTimesCompareQueryTimes compares query execution times.
Variables
@bucket_threshold
Functions
new
before_execute
executeExecute query if not already executed.
after_execute
compareCompare executed events.
buck_forCalculate bucket for value.
bucket_for
percentage_increaseCalculate percentage increase between two values.
reportReport differences found.
_report_diff_bigReport big differences in query times.
_report_diff_bigReport smaller, “in bucket” query time differences.
_report_diff_in_bucket
samplesReturn samples of queries with differences.
resetReset internal state for another run.
_d

Variables

@bucket_threshold

my @bucket_threshold

Functions

new

sub new

Parameters

%argsArguments

Required Arguments

get_idCallback used by report() to transform query to its ID

Returns

CompareQueryTimes object

before_execute

sub before_execute

execute

sub execute

Execute query if not already executed.

Parameters

%argsArguments

Required Arguments

eventHashref with event attributes and values
dbhdbh on which to execute the event

Returns

Hashref of event with Query_time attribute added

after_execute

sub after_execute

compare

sub compare

Compare executed events.

Parameters

%argsArguments

Required Arguments

eventsArrayref of event hashrefs

Returns

Hash of differences

buck_for

Calculate bucket for value.

Parameters

$valValue

Returns

Bucket number for value

bucket_for

sub bucket_for

percentage_increase

sub percentage_increase

Calculate percentage increase between two values.

Parameters

$xFirst value
$ySecond value

Returns

Percentage increase from first to second value

report

sub report

Report differences found.

Parameters

%argsArguments

Required Arguments

hostsArrayref of hosts

Returns

Report text of differences

_report_diff_big

sub _report_diff_big

Report big differences in query times.

Parameters

%argsArguments

Required Arguments

query_id_colHashref <ReportFormat> column descriptor
hostsArrayref of hosts

Returns

Big query time diff report

_report_diff_big

Report smaller, “in bucket” query time differences.

Parameters

%argsArguments

Required Arguments

query_id_colHashref <ReportFormat> column descriptor
hostsArrayref of hosts

Returns

In bucket query time diff report

_report_diff_in_bucket

sub _report_diff_in_bucket

samples

sub samples

Return samples of queries with differences.

Parameters

$itemQuery fingerprint

Returns

Array of queries

reset

sub reset

Reset internal state for another run.

_d

sub _d
my @bucket_threshold
sub new
sub before_execute
sub execute
Execute query if not already executed.
sub after_execute
sub compare
Compare executed events.
sub bucket_for
sub percentage_increase
Calculate percentage increase between two values.
sub report
Report differences found.
sub _report_diff_big
Report big differences in query times.
sub _report_diff_in_bucket
sub samples
Return samples of queries with differences.
sub reset
Reset internal state for another run.
sub _d
Close