Re: Proposal: Progressive explain - Mailing list pgsql-hackers

From jian he
Subject Re: Proposal: Progressive explain
Date
Msg-id CACJufxGwaGq6ScSW9P0812c1BzNWJUcWx4qLbYibqXAW-O-e-A@mail.gmail.com
Whole thread Raw
In response to Re: Proposal: Progressive explain  (jian he <jian.universality@gmail.com>)
List pgsql-hackers
hi.


all the newly added GUC
progressive_explain;
progressive_explain_verbose;
progressive_explain_settings;
progressive_explain_interval;
progressive_explain_output_size;
progressive_explain_format;
progressive_explain_sample_rate;
also need to add to postgresql.conf.sample?


in doc/src/sgml/monitoring.sgml, we also need add
view pg_stat_progress_explain
to the section
<table id="monitoring-stats-dynamic-views-table">
<title>Dynamic Statistics Views</title>
(Table 27.1. Dynamic Statistics Views)

pg_stat_progress_explain.explain will be truncated after 4096 byte.
(default value of progressive_explain_output_size)
so if the progressive_explain_format is json,
and the plan is bigger (imagine two partitioned tables joined
together, each having many partitions)
the column "explain" text may not be a valid json.
Should we be concerned about this?


I don't really understand the actual usage of
pg_stat_progress_explain.explain_count.
Other column usage makes sense to me.
Can you share your idea why we need this column?


select name, category from pg_settings
where category =  'Query Tuning / Planner Method Configuration';
you will see that in config_group as QUERY_TUNING_METHOD
all the GUC names generally begin with "enable".
all the GUC names begin with "progressive" set the config_group as
QUERY_TUNING_METHOD
may not be appropriate? also it is not related to query tuning.


#include "utils/backend_status.h"
#include "storage/procarray.h"
#include "executor/spi.h"
#include "utils/guc.h"

src/backend/commands/explain.c
the header generally should be sorted in alphabetical ascending order.
apply the order to ipci.c, execMain.c, execProcnode.c

            else
                /* Node in progress */
            if (es->progressive && planstate ==
planstate->state->progressive_explain_current_node)
                appendStringInfo(es->str,
                                 " (actual rows=%.0f loops=%.0f) (current)",
                                 rows, nloops);
            else
                appendStringInfo(es->str,
                                 " (actual rows=%.0f loops=%.0f)",
                                 rows, nloops);

the above part in src/backend/commands/explain.c ExplainNode, the
indentation looks wrong to me.



pgsql-hackers by date:

Previous
From: Thomas Munro
Date:
Subject: Re: Strange issue with NFS mounted PGDATA on ugreen NAS
Next
From: vignesh C
Date:
Subject: Re: Conflict detection for update_deleted in logical replication