Insert temporary debugging output in regression tests.
We're seeing occasional instability in the plans generated for parallel queries on the "a_star" table hierarchy. This suggests that something is changing the planner's stats for those tables, but that should not be happening within a regression test run. To try to gather some information about what's happening, insert additional queries to check the basic page/tuple counts for these tables, as well as whether any vacuums or analyzes have happened on them. (We expect that only the database-wide VACUUM in sanity_check.sql will have touched them.) I added the probes not only in select_parallel.sql itself, but also in stats.sql, bearing in mind that the stats collector's lag may prevent the initial query from reporting current truth. If any extra vacuum/analyze has happened, the recheck in stats.sql definitely ought to see it. This commit can be reverted once we figure out what's going on. Per suggestion from David Rowley, though I changed the queries around. Discussion: https://postgr.es/m/CA+hUKG+0CxrKRWRMf5ymN3gm+BECHna2B-q1w8onKBep4HasUw@mail.gmail.com
This commit is contained in:
parent
1171d7d585
commit
f03a9ca436
@ -89,6 +89,33 @@ select round(avg(aa)), sum(aa) from a_star a3;
|
||||
14 | 355
|
||||
(1 row)
|
||||
|
||||
-- Temporary hack to investigate whether extra vacuum/analyze is happening
|
||||
select relname, relpages, reltuples
|
||||
from pg_class
|
||||
where relname like '__star' order by relname;
|
||||
relname | relpages | reltuples
|
||||
---------+----------+-----------
|
||||
a_star | 1 | 3
|
||||
b_star | 1 | 4
|
||||
c_star | 1 | 4
|
||||
d_star | 1 | 16
|
||||
e_star | 1 | 7
|
||||
f_star | 1 | 16
|
||||
(6 rows)
|
||||
|
||||
select relname, vacuum_count, analyze_count, autovacuum_count, autoanalyze_count
|
||||
from pg_stat_all_tables
|
||||
where relname like '__star' order by relname;
|
||||
relname | vacuum_count | analyze_count | autovacuum_count | autoanalyze_count
|
||||
---------+--------------+---------------+------------------+-------------------
|
||||
a_star | 1 | 0 | 0 | 0
|
||||
b_star | 1 | 0 | 0 | 0
|
||||
c_star | 1 | 0 | 0 | 0
|
||||
d_star | 1 | 0 | 0 | 0
|
||||
e_star | 1 | 0 | 0 | 0
|
||||
f_star | 1 | 0 | 0 | 0
|
||||
(6 rows)
|
||||
|
||||
-- Disable Parallel Append
|
||||
alter table a_star reset (parallel_workers);
|
||||
alter table b_star reset (parallel_workers);
|
||||
|
@ -199,6 +199,33 @@ FROM prevstats AS pr;
|
||||
t
|
||||
(1 row)
|
||||
|
||||
-- Temporary hack to investigate whether extra vacuum/analyze is happening
|
||||
select relname, relpages, reltuples
|
||||
from pg_class
|
||||
where relname like '__star' order by relname;
|
||||
relname | relpages | reltuples
|
||||
---------+----------+-----------
|
||||
a_star | 1 | 3
|
||||
b_star | 1 | 4
|
||||
c_star | 1 | 4
|
||||
d_star | 1 | 16
|
||||
e_star | 1 | 7
|
||||
f_star | 1 | 16
|
||||
(6 rows)
|
||||
|
||||
select relname, vacuum_count, analyze_count, autovacuum_count, autoanalyze_count
|
||||
from pg_stat_all_tables
|
||||
where relname like '__star' order by relname;
|
||||
relname | vacuum_count | analyze_count | autovacuum_count | autoanalyze_count
|
||||
---------+--------------+---------------+------------------+-------------------
|
||||
a_star | 1 | 0 | 0 | 0
|
||||
b_star | 1 | 0 | 0 | 0
|
||||
c_star | 1 | 0 | 0 | 0
|
||||
d_star | 1 | 0 | 0 | 0
|
||||
e_star | 1 | 0 | 0 | 0
|
||||
f_star | 1 | 0 | 0 | 0
|
||||
(6 rows)
|
||||
|
||||
DROP TABLE trunc_stats_test, trunc_stats_test1, trunc_stats_test2, trunc_stats_test3, trunc_stats_test4;
|
||||
DROP TABLE prevstats;
|
||||
-- End of Stats Test
|
||||
|
@ -36,6 +36,14 @@ explain (costs off)
|
||||
select round(avg(aa)), sum(aa) from a_star;
|
||||
select round(avg(aa)), sum(aa) from a_star a3;
|
||||
|
||||
-- Temporary hack to investigate whether extra vacuum/analyze is happening
|
||||
select relname, relpages, reltuples
|
||||
from pg_class
|
||||
where relname like '__star' order by relname;
|
||||
select relname, vacuum_count, analyze_count, autovacuum_count, autoanalyze_count
|
||||
from pg_stat_all_tables
|
||||
where relname like '__star' order by relname;
|
||||
|
||||
-- Disable Parallel Append
|
||||
alter table a_star reset (parallel_workers);
|
||||
alter table b_star reset (parallel_workers);
|
||||
|
@ -174,6 +174,14 @@ SELECT st.heap_blks_read + st.heap_blks_hit >= pr.heap_blks + cl.relpages,
|
||||
SELECT pr.snap_ts < pg_stat_get_snapshot_timestamp() as snapshot_newer
|
||||
FROM prevstats AS pr;
|
||||
|
||||
-- Temporary hack to investigate whether extra vacuum/analyze is happening
|
||||
select relname, relpages, reltuples
|
||||
from pg_class
|
||||
where relname like '__star' order by relname;
|
||||
select relname, vacuum_count, analyze_count, autovacuum_count, autoanalyze_count
|
||||
from pg_stat_all_tables
|
||||
where relname like '__star' order by relname;
|
||||
|
||||
DROP TABLE trunc_stats_test, trunc_stats_test1, trunc_stats_test2, trunc_stats_test3, trunc_stats_test4;
|
||||
DROP TABLE prevstats;
|
||||
-- End of Stats Test
|
||||
|
Loading…
x
Reference in New Issue
Block a user