代码改变世界

pg_stat_statements

2016-05-05 13:41  DataBases  阅读(355)  评论(0编辑  收藏  举报

Functions

pg_stat_statements_reset() returns void

pg_stat_statements_reset discards all statistics gathered so far by pg_stat_statements. By default, this function can only be executed by superusers.

pg_stat_statements(showtext boolean) returns setof record

The pg_stat_statements view is defined in terms of a function also named pg_stat_statements. It is possible for clients to call the pg_stat_statements function directly, and by specifying showtext := false have query text be omitted (that is, the OUT argument that corresponds to the view's query column will return nulls). This feature is intended to support external tools that might wish to avoid the overhead of repeatedly retrieving query texts of indeterminate length. Such tools can instead cache the first query text observed for each entry themselves, since that is all pg_stat_statements itself does, and then retrieve query texts only as needed. Since the server stores query texts in a file, this approach may reduce physical I/O for repeated examination of the pg_stat_statements data.

Configuration Parameters

pg_stat_statements.max (integer)

pg_stat_statements.max is the maximum number of statements tracked by the module (i.e., the maximum number of rows in the pg_stat_statements view). If more distinct statements than that are observed, information about the least-executed statements is discarded. The default value is 5000. This parameter can only be set at server start.

pg_stat_statements.track (enum)

pg_stat_statements.track controls which statements are counted by the module. Specify top to track top-level statements (those issued directly by clients), all to also track nested statements (such as statements invoked within functions), or none to disable statement statistics collection. The default value is top. Only superusers can change this setting.

pg_stat_statements.track_utility (boolean)

pg_stat_statements.track_utility controls whether utility commands are tracked by the module. Utility commands are all those other than SELECTINSERTUPDATE and DELETE. The default value is on. Only superusers can change this setting.

pg_stat_statements.save (boolean)

pg_stat_statements.save specifies whether to save statement statistics across server shutdowns. If it is off then statistics are not saved at shutdown nor reloaded at server start. The default value is on. This parameter can only be set in the postgresql.conf file or on the server command line.

The module requires additional shared memory proportional to pg_stat_statements.max. Note that this memory is consumed whenever the module is loaded, even ifpg_stat_statements.track is set to none.



# postgresql.conf shared_preload_libraries = 'pg_stat_statements' pg_stat_statements.max = 10000 pg_stat_statements.track = all
NameTypeReferencesDescription
userid oid pg_authid.oid OID of user who executed the statement
dbid oid pg_database.oid OID of database in which the statement was executed
queryid bigint   Internal hash code, computed from the statement's parse tree
query text   Text of a representative statement
calls bigint   Number of times executed
total_time double precision   Total time spent in the statement, in milliseconds
rows bigint   Total number of rows retrieved or affected by the statement
shared_blks_hit bigint   Total number of shared block cache hits by the statement
shared_blks_read bigint   Total number of shared blocks read by the statement
shared_blks_dirtied bigint   Total number of shared blocks dirtied by the statement
shared_blks_written bigint   Total number of shared blocks written by the statement
local_blks_hit bigint   Total number of local block cache hits by the statement
local_blks_read bigint   Total number of local blocks read by the statement
local_blks_dirtied bigint   Total number of local blocks dirtied by the statement
local_blks_written bigint   Total number of local blocks written by the statement
temp_blks_read bigint   Total number of temp blocks read by the statement
temp_blks_written bigint   Total number of temp blocks written by the statement
blk_read_time double precision   Total time the statement spent reading blocks, in milliseconds (if track_io_timing is enabled, otherwise zero)
blk_write_time double precision   Total time the statement spent writing blocks, in milliseconds (if track_io_timing is enabled, otherwise zero)

ref:http://www.postgresql.org/docs/9.4/static/pgstatstatements.html