diff --git a/t/007_settings_pgsm_query_shared_buffer.pl b/t/007_settings_pgsm_query_shared_buffer.pl index 9bc94c0..79cbf46 100644 --- a/t/007_settings_pgsm_query_shared_buffer.pl +++ b/t/007_settings_pgsm_query_shared_buffer.pl @@ -20,7 +20,7 @@ my $pgdata = $node->data_dir; # UPDATE postgresql.conf to include/load pg_stat_monitor library open my $conf, '>>', "$pgdata/postgresql.conf"; print $conf "shared_preload_libraries = 'pg_stat_monitor'\n"; -print $conf "pg_stat_monitor.pgsm_bucket_time = 300\n"; +print $conf "pg_stat_monitor.pgsm_bucket_time = 360000\n"; print $conf "pg_stat_monitor.pgsm_query_shared_buffer = 1\n"; print $conf "pg_stat_monitor.pgsm_normalized_query = 'yes'\n"; close $conf; @@ -52,7 +52,7 @@ PGSM::append_to_file($stdout); my $port = $node->port; print "port $port \n"; -my $out = system ("pgbench -i -s 100 -p $port example"); +my $out = system ("pgbench -i -s 10 -p $port example"); print " out: $out \n"; ok($cmdret == 0, "Perform pgbench init"); @@ -60,12 +60,11 @@ $out = system ("pgbench -c 10 -j 2 -t 1000 -p $port example"); print " out: $out \n"; ok($cmdret == 0, "Run pgbench"); -($cmdret, $stdout, $stderr) = $node->psql('postgres', 'SELECT datname, substr(query,0,150) AS query, calls FROM pg_stat_monitor ORDER BY datname, query, calls DESC Limit 20;', extra_params => ['-a', '-Pformat=aligned','-Ptuples_only=off']); -print "cmdret $cmdret\n"; +($cmdret, $stdout, $stderr) = $node->psql('postgres', 'SELECT datname, substr(query,0,150) AS query, SUM(calls) AS calls FROM pg_stat_monitor GROUP BY datname, query ORDER BY datname, query, calls DESC Limit 20;', extra_params => ['-a', '-Pformat=aligned','-Ptuples_only=off']); ok($cmdret == 0, "SELECT XXX FROM pg_stat_monitor"); PGSM::append_to_file($stdout); -$node->append_conf('postgresql.conf', "pg_stat_monitor.pgsm_query_shared_buffer = 100\n"); +$node->append_conf('postgresql.conf', "pg_stat_monitor.pgsm_query_shared_buffer = 2\n"); $node->restart(); ($cmdret, $stdout, $stderr) = $node->psql('postgres', 'SELECT pg_stat_monitor_reset();', extra_params => ['-a', '-Pformat=aligned','-Ptuples_only=off']); @@ -76,7 +75,7 @@ PGSM::append_to_file($stdout); ok($cmdret == 0, "Print PGSM EXTENSION Settings"); PGSM::append_to_file($stdout); -$out = system ("pgbench -i -s 100 -p $port example"); +$out = system ("pgbench -i -s 10 -p $port example"); print " out: $out \n"; ok($cmdret == 0, "Perform pgbench init"); @@ -84,8 +83,7 @@ $out = system ("pgbench -c 10 -j 2 -t 1000 -p $port example"); print " out: $out \n"; ok($cmdret == 0, "Run pgbench"); -($cmdret, $stdout, $stderr) = $node->psql('postgres', 'SELECT datname, substr(query,0,150) AS query, calls FROM pg_stat_monitor ORDER BY datname, query, calls DESC Limit 20;', extra_params => ['-a', '-Pformat=aligned','-Ptuples_only=off']); -print "cmdret $cmdret\n"; +($cmdret, $stdout, $stderr) = $node->psql('postgres', 'SELECT datname, substr(query,0,150) AS query, SUM(calls) AS calls FROM pg_stat_monitor GROUP BY datname, query ORDER BY datname, query, calls DESC Limit 20;', extra_params => ['-a', '-Pformat=aligned','-Ptuples_only=off']); ok($cmdret == 0, "SELECT XXX FROM pg_stat_monitor"); PGSM::append_to_file($stdout); @@ -100,7 +98,7 @@ PGSM::append_to_file($stdout); ok($cmdret == 0, "Print PGSM EXTENSION Settings"); PGSM::append_to_file($stdout); -$out = system ("pgbench -i -s 100 -p $port example"); +$out = system ("pgbench -i -s 10 -p $port example"); print " out: $out \n"; ok($cmdret == 0, "Perform pgbench init"); @@ -108,8 +106,7 @@ $out = system ("pgbench -c 10 -j 2 -t 1000 -p $port example"); print " out: $out \n"; ok($cmdret == 0, "Run pgbench"); -($cmdret, $stdout, $stderr) = $node->psql('postgres', 'SELECT datname, substr(query,0,150) AS query, calls FROM pg_stat_monitor ORDER BY datname, query, calls DESC Limit 20;', extra_params => ['-a', '-Pformat=aligned','-Ptuples_only=off']); -print "cmdret $cmdret\n"; +($cmdret, $stdout, $stderr) = $node->psql('postgres', 'SELECT datname, substr(query,0,150) AS query, SUM(calls) AS calls FROM pg_stat_monitor GROUP BY datname, query ORDER BY datname, query, calls DESC Limit 20;', extra_params => ['-a', '-Pformat=aligned','-Ptuples_only=off']); ok($cmdret == 0, "SELECT XXX FROM pg_stat_monitor"); PGSM::append_to_file($stdout); diff --git a/t/expected/007_settings_pgsm_query_shared_buffer.out b/t/expected/007_settings_pgsm_query_shared_buffer.out index 0c4bf85..ff81311 100644 --- a/t/expected/007_settings_pgsm_query_shared_buffer.out +++ b/t/expected/007_settings_pgsm_query_shared_buffer.out @@ -12,7 +12,7 @@ SELECT name, setting, unit, context, vartype, source, min_val, max_val, enumvals (1 row) CREATE database example; -SELECT datname, substr(query,0,150) AS query, calls FROM pg_stat_monitor ORDER BY datname, query, calls DESC Limit 20; +SELECT datname, substr(query,0,150) AS query, SUM(calls) AS calls FROM pg_stat_monitor GROUP BY datname, query ORDER BY datname, query, calls DESC Limit 20; datname | query | calls ---------+---------------------------------------------------------------------------------------------------------------+------- example | BEGIN | 10000 @@ -33,8 +33,8 @@ SELECT datname, substr(query,0,150) AS query, calls FROM pg_stat_monitor ORDER B example | create table pgbench_history(tid int,bid int,aid int,delta int,mtime timestamp,filler char(22)) | 1 example | create table pgbench_tellers(tid int not null,bid int,tbalance int,filler char(84)) with (fillfactor=100) | 1 example | drop table if exists pgbench_accounts, pgbench_branches, pgbench_history, pgbench_tellers | 1 - example | insert into pgbench_branches(bid,bbalance) values($1,$2) | 100 - example | insert into pgbench_tellers(tid,bid,tbalance) values ($1,$2,$3) | 1000 + example | insert into pgbench_branches(bid,bbalance) values($1,$2) | 10 + example | insert into pgbench_tellers(tid,bid,tbalance) values ($1,$2,$3) | 100 (20 rows) SELECT pg_stat_monitor_reset(); @@ -46,10 +46,10 @@ SELECT pg_stat_monitor_reset(); SELECT name, setting, unit, context, vartype, source, min_val, max_val, enumvals, boot_val, reset_val, pending_restart FROM pg_settings WHERE name='pg_stat_monitor.pgsm_query_shared_buffer'; name | setting | unit | context | vartype | source | min_val | max_val | enumvals | boot_val | reset_val | pending_restart ------------------------------------------+---------+------+------------+---------+--------------------+---------+---------+----------+----------+-----------+----------------- - pg_stat_monitor.pgsm_query_shared_buffer | 100 | MB | postmaster | integer | configuration file | 1 | 10000 | | 20 | 100 | f + pg_stat_monitor.pgsm_query_shared_buffer | 2 | MB | postmaster | integer | configuration file | 1 | 10000 | | 20 | 2 | f (1 row) -SELECT datname, substr(query,0,150) AS query, calls FROM pg_stat_monitor ORDER BY datname, query, calls DESC Limit 20; +SELECT datname, substr(query,0,150) AS query, SUM(calls) AS calls FROM pg_stat_monitor GROUP BY datname, query ORDER BY datname, query, calls DESC Limit 20; datname | query | calls ---------+---------------------------------------------------------------------------------------------------------------+------- example | BEGIN | 10000 @@ -70,8 +70,8 @@ SELECT datname, substr(query,0,150) AS query, calls FROM pg_stat_monitor ORDER B example | create table pgbench_history(tid int,bid int,aid int,delta int,mtime timestamp,filler char(22)) | 1 example | create table pgbench_tellers(tid int not null,bid int,tbalance int,filler char(84)) with (fillfactor=100) | 1 example | drop table if exists pgbench_accounts, pgbench_branches, pgbench_history, pgbench_tellers | 1 - example | insert into pgbench_branches(bid,bbalance) values($1,$2) | 100 - example | insert into pgbench_tellers(tid,bid,tbalance) values ($1,$2,$3) | 1000 + example | insert into pgbench_branches(bid,bbalance) values($1,$2) | 10 + example | insert into pgbench_tellers(tid,bid,tbalance) values ($1,$2,$3) | 100 (20 rows) SELECT pg_stat_monitor_reset(); @@ -86,7 +86,7 @@ SELECT name, setting, unit, context, vartype, source, min_val, max_val, enumvals pg_stat_monitor.pgsm_query_shared_buffer | 20 | MB | postmaster | integer | configuration file | 1 | 10000 | | 20 | 20 | f (1 row) -SELECT datname, substr(query,0,150) AS query, calls FROM pg_stat_monitor ORDER BY datname, query, calls DESC Limit 20; +SELECT datname, substr(query,0,150) AS query, SUM(calls) AS calls FROM pg_stat_monitor GROUP BY datname, query ORDER BY datname, query, calls DESC Limit 20; datname | query | calls ---------+---------------------------------------------------------------------------------------------------------------+------- example | BEGIN | 10000 @@ -107,8 +107,8 @@ SELECT datname, substr(query,0,150) AS query, calls FROM pg_stat_monitor ORDER B example | create table pgbench_history(tid int,bid int,aid int,delta int,mtime timestamp,filler char(22)) | 1 example | create table pgbench_tellers(tid int not null,bid int,tbalance int,filler char(84)) with (fillfactor=100) | 1 example | drop table if exists pgbench_accounts, pgbench_branches, pgbench_history, pgbench_tellers | 1 - example | insert into pgbench_branches(bid,bbalance) values($1,$2) | 100 - example | insert into pgbench_tellers(tid,bid,tbalance) values ($1,$2,$3) | 1000 + example | insert into pgbench_branches(bid,bbalance) values($1,$2) | 10 + example | insert into pgbench_tellers(tid,bid,tbalance) values ($1,$2,$3) | 100 (20 rows) DROP EXTENSION pg_stat_monitor; diff --git a/t/expected/007_settings_pgsm_query_shared_buffer.out.15 b/t/expected/007_settings_pgsm_query_shared_buffer.out.15 index 4eccf3f..cf8e994 100755 --- a/t/expected/007_settings_pgsm_query_shared_buffer.out.15 +++ b/t/expected/007_settings_pgsm_query_shared_buffer.out.15 @@ -12,7 +12,7 @@ SELECT name, setting, unit, context, vartype, source, min_val, max_val, enumvals (1 row) CREATE database example; -SELECT datname, substr(query,0,150) AS query, calls FROM pg_stat_monitor ORDER BY datname, query, calls DESC Limit 20; +SELECT datname, substr(query,0,150) AS query, SUM(calls) AS calls FROM pg_stat_monitor GROUP BY datname, query ORDER BY datname, query, calls DESC Limit 20; datname | query | calls ---------+---------------------------------------------------------------------------------------------------------------+------- example | BEGIN | 10000 @@ -33,8 +33,8 @@ SELECT datname, substr(query,0,150) AS query, calls FROM pg_stat_monitor ORDER B example | create table pgbench_history(tid int,bid int,aid int,delta int,mtime timestamp,filler char(22)) | 1 example | create table pgbench_tellers(tid int not null,bid int,tbalance int,filler char(84)) with (fillfactor=100) | 1 example | drop table if exists pgbench_accounts, pgbench_branches, pgbench_history, pgbench_tellers | 1 - example | insert into pgbench_branches(bid,bbalance) values($1,$2) | 100 - example | insert into pgbench_tellers(tid,bid,tbalance) values ($1,$2,$3) | 1000 + example | insert into pgbench_branches(bid,bbalance) values($1,$2) | 10 + example | insert into pgbench_tellers(tid,bid,tbalance) values ($1,$2,$3) | 100 (20 rows) SELECT pg_stat_monitor_reset(); @@ -46,10 +46,10 @@ SELECT pg_stat_monitor_reset(); SELECT name, setting, unit, context, vartype, source, min_val, max_val, enumvals, boot_val, reset_val, pending_restart FROM pg_settings WHERE name='pg_stat_monitor.pgsm_query_shared_buffer'; name | setting | unit | context | vartype | source | min_val | max_val | enumvals | boot_val | reset_val | pending_restart ------------------------------------------+---------+------+------------+---------+--------------------+---------+---------+----------+----------+-----------+----------------- - pg_stat_monitor.pgsm_query_shared_buffer | 100 | MB | postmaster | integer | configuration file | 1 | 10000 | | 20 | 100 | f + pg_stat_monitor.pgsm_query_shared_buffer | 2 | MB | postmaster | integer | configuration file | 1 | 10000 | | 20 | 2 | f (1 row) -SELECT datname, substr(query,0,150) AS query, calls FROM pg_stat_monitor ORDER BY datname, query, calls DESC Limit 20; +SELECT datname, substr(query,0,150) AS query, SUM(calls) AS calls FROM pg_stat_monitor GROUP BY datname, query ORDER BY datname, query, calls DESC Limit 20; datname | query | calls ---------+---------------------------------------------------------------------------------------------------------------+------- example | BEGIN | 10000 @@ -70,8 +70,8 @@ SELECT datname, substr(query,0,150) AS query, calls FROM pg_stat_monitor ORDER B example | create table pgbench_history(tid int,bid int,aid int,delta int,mtime timestamp,filler char(22)) | 1 example | create table pgbench_tellers(tid int not null,bid int,tbalance int,filler char(84)) with (fillfactor=100) | 1 example | drop table if exists pgbench_accounts, pgbench_branches, pgbench_history, pgbench_tellers | 1 - example | insert into pgbench_branches(bid,bbalance) values($1,$2) | 100 - example | insert into pgbench_tellers(tid,bid,tbalance) values ($1,$2,$3) | 1000 + example | insert into pgbench_branches(bid,bbalance) values($1,$2) | 10 + example | insert into pgbench_tellers(tid,bid,tbalance) values ($1,$2,$3) | 100 (20 rows) SELECT pg_stat_monitor_reset(); @@ -86,7 +86,7 @@ SELECT name, setting, unit, context, vartype, source, min_val, max_val, enumvals pg_stat_monitor.pgsm_query_shared_buffer | 20 | MB | postmaster | integer | configuration file | 1 | 10000 | | 20 | 20 | f (1 row) -SELECT datname, substr(query,0,150) AS query, calls FROM pg_stat_monitor ORDER BY datname, query, calls DESC Limit 20; +SELECT datname, substr(query,0,150) AS query, SUM(calls) AS calls FROM pg_stat_monitor GROUP BY datname, query ORDER BY datname, query, calls DESC Limit 20; datname | query | calls ---------+---------------------------------------------------------------------------------------------------------------+------- example | BEGIN | 10000 @@ -107,8 +107,8 @@ SELECT datname, substr(query,0,150) AS query, calls FROM pg_stat_monitor ORDER B example | create table pgbench_history(tid int,bid int,aid int,delta int,mtime timestamp,filler char(22)) | 1 example | create table pgbench_tellers(tid int not null,bid int,tbalance int,filler char(84)) with (fillfactor=100) | 1 example | drop table if exists pgbench_accounts, pgbench_branches, pgbench_history, pgbench_tellers | 1 - example | insert into pgbench_branches(bid,bbalance) values($1,$2) | 100 - example | insert into pgbench_tellers(tid,bid,tbalance) values ($1,$2,$3) | 1000 + example | insert into pgbench_branches(bid,bbalance) values($1,$2) | 10 + example | insert into pgbench_tellers(tid,bid,tbalance) values ($1,$2,$3) | 100 (20 rows) DROP EXTENSION pg_stat_monitor;