diff --git a/doc/src/sgml/admin.sgml b/doc/src/sgml/admin.sgml index da8edaf0110c6f55b144ac11a162f19631115640..24a770d3685482aa4d8228c0133e0a6ff033854e 100644 --- a/doc/src/sgml/admin.sgml +++ b/doc/src/sgml/admin.sgml @@ -1,5 +1,5 @@ <!-- -$Header: /cvsroot/pgsql/doc/src/sgml/Attic/admin.sgml,v 1.36 2001/10/16 23:57:06 tgl Exp $ +$Header: /cvsroot/pgsql/doc/src/sgml/Attic/admin.sgml,v 1.37 2002/06/13 05:15:22 momjian Exp $ --> <book id="admin"> @@ -32,8 +32,8 @@ $Header: /cvsroot/pgsql/doc/src/sgml/Attic/admin.sgml,v 1.36 2001/10/16 23:57:06 &maintenance; &backup; &monitoring; + &diskusage; &wal; - &storage; &recovery; ®ress; &release; diff --git a/doc/src/sgml/diskusage.sgml b/doc/src/sgml/diskusage.sgml new file mode 100644 index 0000000000000000000000000000000000000000..6bec4e20b4a3c18a174bbc2ac87f13c8a394f205 --- /dev/null +++ b/doc/src/sgml/diskusage.sgml @@ -0,0 +1,109 @@ +<!-- +$Header: /cvsroot/pgsql/doc/src/sgml/diskusage.sgml,v 1.1 2002/06/13 05:15:22 momjian Exp $ +--> + +<chapter id="diskusage"> + <title>Monitoring Disk Usage</title> + + <sect1 id="disk-usage"> + <title>Monitoring Disk Usage</Title> + + <indexterm zone="disk-usage"> + <primary>disk usage</primary> + </indexterm> + + <para> + Each table has a primary heap disk file where most of the data is + stored. To store long column values, there is also a + <acronym>TOAST</> file associated with the table, named based on the + table's oid (actually pg_class.relfilenode), and an index on the + <acronym>TOAST</> table. There also may be indexes associated with + the base table. + </para> + + <para> + You can monitor disk space from two places; from inside + <application>psql</> and from the command line using + <application>contrib/oid2name</>. Using <application>psql</> you can + issue queries to see the disk usage for any table: +<programlisting> +play=# SELECT relfilenode, relpages +play-# FROM pg_class +play-# WHERE relname = 'customer'; + relfilenode | relpages +-------------+---------- + 16806 | 60 +(1 row) +</programlisting> + </para> + + <para> + Each page is typically 8 kilobytes. <literal>relpages</> is only + updated by <command>VACUUM</> and <command>ANALYZE</>. To show the + space used by <acronym>TOAST</> tables, use a query based on the heap + relfilenode: +<programlisting> +play=# SELECT relname, relpages +play-# FROM pg_class +play-# WHERE relname = 'pg_toast_16806' or +play-# relname = 'pg_toast_16806_index' +play-# ORDER BY relname; + relname | relpages +----------------------+---------- + pg_toast_16806 | 0 + pg_toast_16806_index | 1 +</programlisting> + </para> + + <para> + You can easily display index usage too: +<programlisting> +play=# SELECT c2.relname, c2.relpages +play-# FROM pg_class c, pg_class c2, pg_index i +play-# WHERE c.relname = 'customer' AND +play-# c.oid = i.indrelid AND +play-# c2.oid = i.indexrelid +play-# ORDER BY c2.relname; + relname | relpages +----------------------+---------- + customer_id_indexdex | 26 +</programlisting> + </para> + + <para> + It is easy to find your largest files using <application>psql</>: +<programlisting> +play=# SELECT relname, relpages +play-# FROM pg_class +play-# ORDER BY relpages DESC; + relname | relpages +----------------------+---------- + bigtable | 3290 + customer | 3144 +</programlisting> + </para> + + <para> + You can also use <application>oid2name</> to show disk usage. See + <filename>README.oid2name</> for examples. It includes a script + shows disk usage for each database. + </para> + </sect1> +</chapter> + +<!-- Keep this comment at the end of the file +Local variables: +mode:sgml +sgml-omittag:nil +sgml-shorttag:t +sgml-minimize-attributes:nil +sgml-always-quote-attributes:t +sgml-indent-step:1 +sgml-indent-data:t +sgml-parent-document:nil +sgml-default-dtd-file:"./reference.ced" +sgml-exposed-tags:nil +sgml-local-catalogs:("/usr/lib/sgml/catalog") +sgml-local-ecat-files:nil +End: +--> diff --git a/doc/src/sgml/maintenance.sgml b/doc/src/sgml/maintenance.sgml index 1d7033c12a678ba68a659f4230968179be2f3144..b2fa6febc49fd49273ac0d420c16ec63f6134aff 100644 --- a/doc/src/sgml/maintenance.sgml +++ b/doc/src/sgml/maintenance.sgml @@ -1,5 +1,5 @@ <!-- -$Header: /cvsroot/pgsql/doc/src/sgml/maintenance.sgml,v 1.13 2002/06/13 04:36:50 momjian Exp $ +$Header: /cvsroot/pgsql/doc/src/sgml/maintenance.sgml,v 1.14 2002/06/13 05:15:22 momjian Exp $ --> <chapter id="maintenance"> @@ -366,91 +366,6 @@ VACUUM </sect2> </sect1> - <sect1 id="diskspace-maintenance"> - <title>Disk Space Maintenance</title> - - <indexterm zone="diskspace-maintenance"> - <primary>disk space</primary> - </indexterm> - - <para> - Each table has a primary heap disk file where most of the data is - stored. To store long column values, there is also a - <acronym>TOAST</> file associated with the table, named based on the - table's oid (actually pg_class.relfilenode), and an index on the - <acronym>TOAST</> table. There also may be indexes associated with - the base table. - </para> - - <para> - You can monitor disk space from two places; from inside - <application>psql</> and from the command line using - <application>contrib/oid2name</>. Using <application>psql</> you can - issue queries to see the disk usage for any table: -<programlisting> -play=# SELECT relfilenode, relpages -play-# FROM pg_class -play-# WHERE relname = 'customer'; - relfilenode | relpages --------------+---------- - 16806 | 60 -(1 row) -</programlisting> - </para> - - <para> - Each page is typically 8 kilobytes. <literal>relpages</> is only - updated by <command>VACUUM</> and <command>ANALYZE</>. To show the - space used by <acronym>TOAST</> tables, use a query based on the heap - relfilenode: -<programlisting> -play=# SELECT relname, relpages -play-# FROM pg_class -play-# WHERE relname = 'pg_toast_16806' or -play-# relname = 'pg_toast_16806_index' -play-# ORDER BY relname; - relname | relpages -----------------------+---------- - pg_toast_16806 | 0 - pg_toast_16806_index | 1 -</programlisting> - </para> - - <para> - You can easily display index usage too: -<programlisting> -play=# SELECT c2.relname, c2.relpages -play-# FROM pg_class c, pg_class c2, pg_index i -play-# WHERE c.relname = 'customer' AND -play-# c.oid = i.indrelid AND -play-# c2.oid = i.indexrelid -play-# ORDER BY c2.relname; - relname | relpages -----------------------+---------- - customer_id_indexdex | 26 -</programlisting> - </para> - - <para> - It is easy to find your largest files using <application>psql</>: -<programlisting> -play=# SELECT relname, relpages -play-# FROM pg_class -play-# ORDER BY relpages DESC; - relname | relpages -----------------------+---------- - bigtable | 3290 - customer | 3144 -</programlisting> - </para> - - <para> - You can also use <application>oid2name</> to show disk usage. See - <filename>README.oid2name</> for examples. It includes a script - shows disk usage for each database. - </para> - </sect1> - <sect1 id="logfile-maintenance"> <title>Log File Maintenance</title> diff --git a/doc/src/sgml/storage.sgml b/doc/src/sgml/storage.sgml deleted file mode 100644 index 10ece92393e969bd357c8345f24ed9089ac7164a..0000000000000000000000000000000000000000 --- a/doc/src/sgml/storage.sgml +++ /dev/null @@ -1,9 +0,0 @@ -<Chapter Id="storage"> -<Title>Disk Storage</Title> - -<Para> -This section needs to be written. Some information is in the FAQ. Volunteers? -- thomas 1998-01-11 -</Para> - -</Chapter>