mirror of
https://github.com/postgres/postgres.git
synced 2025-08-31 17:02:12 +03:00
Add an EXPLAIN (BUFFERS) option to show buffer-usage statistics.
This patch also removes buffer-usage statistics from the track_counts output, since this (or the global server statistics) is deemed to be a better interface to this information. Itagaki Takahiro, reviewed by Euler Taveira de Oliveira.
This commit is contained in:
@@ -8,7 +8,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $PostgreSQL: pgsql/src/backend/tcop/postgres.c,v 1.575 2009/11/04 22:26:06 tgl Exp $
|
||||
* $PostgreSQL: pgsql/src/backend/tcop/postgres.c,v 1.576 2009/12/15 04:57:47 rhaas Exp $
|
||||
*
|
||||
* NOTES
|
||||
* this is the "main" module of the postgres backend and
|
||||
@@ -3901,7 +3901,6 @@ ResetUsage(void)
|
||||
{
|
||||
getrusage(RUSAGE_SELF, &Save_r);
|
||||
gettimeofday(&Save_t, NULL);
|
||||
ResetBufferUsage();
|
||||
}
|
||||
|
||||
void
|
||||
@@ -3912,7 +3911,6 @@ ShowUsage(const char *title)
|
||||
sys;
|
||||
struct timeval elapse_t;
|
||||
struct rusage r;
|
||||
char *bufusage;
|
||||
|
||||
getrusage(RUSAGE_SELF, &r);
|
||||
gettimeofday(&elapse_t, NULL);
|
||||
@@ -3986,10 +3984,6 @@ ShowUsage(const char *title)
|
||||
r.ru_nvcsw, r.ru_nivcsw);
|
||||
#endif /* HAVE_GETRUSAGE */
|
||||
|
||||
bufusage = ShowBufferUsage();
|
||||
appendStringInfo(&str, "! buffer usage stats:\n%s", bufusage);
|
||||
pfree(bufusage);
|
||||
|
||||
/* remove trailing newline */
|
||||
if (str.data[str.len - 1] == '\n')
|
||||
str.data[--str.len] = '\0';
|
||||
|
@@ -8,7 +8,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $PostgreSQL: pgsql/src/backend/tcop/pquery.c,v 1.132 2009/10/10 01:43:49 tgl Exp $
|
||||
* $PostgreSQL: pgsql/src/backend/tcop/pquery.c,v 1.133 2009/12/15 04:57:47 rhaas Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@@ -67,7 +67,7 @@ CreateQueryDesc(PlannedStmt *plannedstmt,
|
||||
Snapshot crosscheck_snapshot,
|
||||
DestReceiver *dest,
|
||||
ParamListInfo params,
|
||||
bool doInstrument)
|
||||
int instrument_options)
|
||||
{
|
||||
QueryDesc *qd = (QueryDesc *) palloc(sizeof(QueryDesc));
|
||||
|
||||
@@ -80,7 +80,7 @@ CreateQueryDesc(PlannedStmt *plannedstmt,
|
||||
qd->crosscheck_snapshot = RegisterSnapshot(crosscheck_snapshot);
|
||||
qd->dest = dest; /* output dest */
|
||||
qd->params = params; /* parameter values passed into query */
|
||||
qd->doInstrument = doInstrument; /* instrumentation wanted? */
|
||||
qd->instrument_options = instrument_options; /* instrumentation wanted? */
|
||||
|
||||
/* null these fields until set by ExecutorStart */
|
||||
qd->tupDesc = NULL;
|
||||
@@ -111,7 +111,7 @@ CreateUtilityQueryDesc(Node *utilitystmt,
|
||||
qd->crosscheck_snapshot = InvalidSnapshot; /* RI check snapshot */
|
||||
qd->dest = dest; /* output dest */
|
||||
qd->params = params; /* parameter values passed into query */
|
||||
qd->doInstrument = false; /* uninteresting for utilities */
|
||||
qd->instrument_options = false; /* uninteresting for utilities */
|
||||
|
||||
/* null these fields until set by ExecutorStart */
|
||||
qd->tupDesc = NULL;
|
||||
@@ -178,7 +178,7 @@ ProcessQuery(PlannedStmt *plan,
|
||||
*/
|
||||
queryDesc = CreateQueryDesc(plan, sourceText,
|
||||
GetActiveSnapshot(), InvalidSnapshot,
|
||||
dest, params, false);
|
||||
dest, params, 0);
|
||||
|
||||
/*
|
||||
* Set up to collect AFTER triggers
|
||||
@@ -515,7 +515,7 @@ PortalStart(Portal portal, ParamListInfo params, Snapshot snapshot)
|
||||
InvalidSnapshot,
|
||||
None_Receiver,
|
||||
params,
|
||||
false);
|
||||
0);
|
||||
|
||||
/*
|
||||
* We do *not* call AfterTriggerBeginQuery() here. We assume
|
||||
|
Reference in New Issue
Block a user