Movatterモバイル変換


[0]ホーム

URL:



Facebook
Postgres Pro
Facebook
Downloads
F.17. dump_stat — functions to backup and recover thepg_statistic table
Prev UpAppendix F. Additional Supplied Modules and Extensions Shipped inpostgrespro-std-17-contribHome Next

F.17. dump_stat — functions to backup and recover thepg_statistic table#

Thedump_stat module provides functions that allow you to backup and recover the contents of thepg_statistic table. When performing a dump/restore, you can usedump_stat to migrate the original statistics to the new server instead of running theANALYZE command for the whole database cluster, which can significantly reduce downtime for large databases. Thedump_statistic function generatesINSERT statements which can later be applied to a compatible database. To successfully restore statistical data, you must install the extension on both the original and the recipient servers since these statements rely on the provideddump_stat functions.

Note that the definition of thepg_statistic table might change occasionally, which means that generated dump might be incompatible with future releases ofPostgres Pro.

F.17.1. Installation#

Thedump_stat extension is included into Postgres Pro. Once you have Postgres Pro installed, you must execute theCREATE EXTENSION command to enabledump_stat, as follows:

CREATE EXTENSION dump_stat;

F.17.2. Functions#

anyarray_to_text(array anyarray) returns text

Returns the given array astext.

dump_statistic() returns setof text

dump_statistic dumps the contents of thepg_statistic system catalog. It produces anINSERT statement per each tuple of thepg_statistic, excluding the ones that contain statistical data for tables in theinformation_schema andpg_catalog schemas.

TheINSERT statement takes form of

WITH upsert as (  UPDATE pg_catalog.pg_statistic SETcolumn_name =expression [, ...]  WHERE starelid =t_relname::regclass    AND to_attname(t_relname, staattnum) =t_attname    AND to_atttype(t_relname, staattnum) =t_atttype    AND stainherit =t_stainherit  RETURNING *)ins as (  SELECTexpression [, ...]  WHERE NOT EXISTS (SELECT * FROM upsert)    AND to_attnum(t_relname,t_attname) IS NOT NULL    AND to_atttype(t_relname,t_attname) =t_atttype)INSERT INTO pg_catalog.pg_statistic SELECT * FROM ins;whereexpression can be one of:array_in(array_text,type_name::regtype::oid, -1)value::type_name

To save the produced statements, redirect thepsql output into a file using standardpsql options. For details on the availablepsql options, seepsql. Meta-commands starting with a backslash are not supported.

For example, to save statistics for thedbname database into adump_stat.sql file, run:

$ psql -XAtq -c "SELECT dump_statistic()"dbname > dump_stat.sql

dump_statistic(schema_name text) returns setof text

dump_statistic dumps the contents of thepg_statistic system catalog. It produces anINSERT statement per each tuple of thepg_statistic that relates to some table in theschema_name schema.

dump_statistic(schema_name text, table_name text) returns setof text

dump_statistic dumps the contents of thepg_statistic system catalog. It produces anINSERT statement per each tuple of thepg_statistic that relates to the specifiedschema_name.table_name table.

dump_statistic(relation regclass) returns setof text

dump_statistic dumps the contents of thepg_statistic system catalog. It produces anINSERT statement per each tuple of thepg_statistic that contains statistical data for the specifiedrelation.

to_schema_qualified_operator(opid oid) returns text

Fetches the schema-qualified operator name by operator idopid. For example:

test=# SELECT to_schema_qualified_operator('+(int,int)'::regoperator);          to_schema_qualified_operator          ------------------------------------------------ pg_catalog.+(pg_catalog.int4, pg_catalog.int4)(1 row)
to_schema_qualified_type(typid oid) returns text

Fetches the schema-qualified type name by type idtypid.

to_schema_qualified_relation(relid oid) returns text

Fetches the schema-qualified relation name by relation idrelid.

anyarray_elemtype(arr anyarray) returns oid

Returns the element type of the given array asoid. For example:

test=# SELECT anyarray_elemtype(array_in('{1,2,3}', 'int'::regtype, -1)); anyarray_elemtype -------------------                23(1 row)
to_attname(relation regclass, colnum int2) returns text

Given a relation namerelation and a column numbercolnum, returns the column name astext.

to_attnum(relation regclass, col text) returns int2

Given a relation namerelation and a column namecol, returns the column number asint2.

to_atttype(relation regclass, col text) returns text

Given a relation namerelation and a column namecol, returns the schema-qualified column type astext.

to_atttype(relation regclass, colnum int2) returns text

Given a relation namerelation and a column numbercolnum, returns the schema-qualified column type astext.

to_namespace(nsp text) returns oid

to_namespace duplicates the behavior of the cast to theregnamespace type, which is not present in thePostgreSQL 9.4 release (and prior releases). This function returns theoid of the given schema.

get_namespace(relation oid) returns oid

get_namespace returns the schema of the given relation asoid.


Prev Up Next
F.16. dict_xsyn — example synonym full-text search dictionary Home F.18. earthdistance — calculate great-circle distances
pdfepub
Go to Postgres Pro Standard 17
By continuing to browse this website, you agree to the use of cookies. Go toPrivacy Policy.

[8]ページ先頭

©2009-2025 Movatter.jp