mirror of
https://git.postgresql.org/git/postgresql.git
synced 2025-03-01 19:45:33 +08:00
Expose BufferUsageAccumDiff().
Previously pg_stat_statements calculated the difference of buffer counters by its own code even while BufferUsageAccumDiff() had the same code. This commit expose BufferUsageAccumDiff() and makes pg_stat_statements use it for the calculation, in order to simply the code. This change also would be useful for the upcoming patch for the planning counters in pg_stat_statements because the patch will add one more code for the calculation of difference of buffer counters and that can easily be done by using BufferUsageAccumDiff(). Author: Julien Rouhaud Reviewed-by: Fujii Masao Discussion: https://postgr.es/m/bdfee4e0-a304-2498-8da5-3cb52c0a193e@oss.nttdata.com
This commit is contained in:
parent
b61d161c14
commit
4a539a25eb
@ -1016,30 +1016,8 @@ pgss_ProcessUtility(PlannedStmt *pstmt, const char *queryString,
|
||||
rows = (qc && qc->commandTag == CMDTAG_COPY) ? qc->nprocessed : 0;
|
||||
|
||||
/* calc differences of buffer counters. */
|
||||
bufusage.shared_blks_hit =
|
||||
pgBufferUsage.shared_blks_hit - bufusage_start.shared_blks_hit;
|
||||
bufusage.shared_blks_read =
|
||||
pgBufferUsage.shared_blks_read - bufusage_start.shared_blks_read;
|
||||
bufusage.shared_blks_dirtied =
|
||||
pgBufferUsage.shared_blks_dirtied - bufusage_start.shared_blks_dirtied;
|
||||
bufusage.shared_blks_written =
|
||||
pgBufferUsage.shared_blks_written - bufusage_start.shared_blks_written;
|
||||
bufusage.local_blks_hit =
|
||||
pgBufferUsage.local_blks_hit - bufusage_start.local_blks_hit;
|
||||
bufusage.local_blks_read =
|
||||
pgBufferUsage.local_blks_read - bufusage_start.local_blks_read;
|
||||
bufusage.local_blks_dirtied =
|
||||
pgBufferUsage.local_blks_dirtied - bufusage_start.local_blks_dirtied;
|
||||
bufusage.local_blks_written =
|
||||
pgBufferUsage.local_blks_written - bufusage_start.local_blks_written;
|
||||
bufusage.temp_blks_read =
|
||||
pgBufferUsage.temp_blks_read - bufusage_start.temp_blks_read;
|
||||
bufusage.temp_blks_written =
|
||||
pgBufferUsage.temp_blks_written - bufusage_start.temp_blks_written;
|
||||
bufusage.blk_read_time = pgBufferUsage.blk_read_time;
|
||||
INSTR_TIME_SUBTRACT(bufusage.blk_read_time, bufusage_start.blk_read_time);
|
||||
bufusage.blk_write_time = pgBufferUsage.blk_write_time;
|
||||
INSTR_TIME_SUBTRACT(bufusage.blk_write_time, bufusage_start.blk_write_time);
|
||||
memset(&bufusage, 0, sizeof(BufferUsage));
|
||||
BufferUsageAccumDiff(&bufusage, &pgBufferUsage, &bufusage_start);
|
||||
|
||||
pgss_store(queryString,
|
||||
0, /* signal that it's a utility stmt */
|
||||
|
@ -21,8 +21,6 @@ BufferUsage pgBufferUsage;
|
||||
static BufferUsage save_pgBufferUsage;
|
||||
|
||||
static void BufferUsageAdd(BufferUsage *dst, const BufferUsage *add);
|
||||
static void BufferUsageAccumDiff(BufferUsage *dst,
|
||||
const BufferUsage *add, const BufferUsage *sub);
|
||||
|
||||
|
||||
/* Allocate new instrumentation structure(s) */
|
||||
@ -203,7 +201,7 @@ BufferUsageAdd(BufferUsage *dst, const BufferUsage *add)
|
||||
}
|
||||
|
||||
/* dst += add - sub */
|
||||
static void
|
||||
void
|
||||
BufferUsageAccumDiff(BufferUsage *dst,
|
||||
const BufferUsage *add,
|
||||
const BufferUsage *sub)
|
||||
|
@ -81,5 +81,7 @@ extern void InstrAggNode(Instrumentation *dst, Instrumentation *add);
|
||||
extern void InstrStartParallelQuery(void);
|
||||
extern void InstrEndParallelQuery(BufferUsage *result);
|
||||
extern void InstrAccumParallelQuery(BufferUsage *result);
|
||||
extern void BufferUsageAccumDiff(BufferUsage *dst,
|
||||
const BufferUsage *add, const BufferUsage *sub);
|
||||
|
||||
#endif /* INSTRUMENT_H */
|
||||
|
Loading…
Reference in New Issue
Block a user