.. Postgres Toolkit documentation master file, created by
   sphinx-quickstart on Sat Feb 07 14:44:31 2015.
   You can adapt this file completely to your liking, but it should at least
   contain the root `toctree` directive.

Postgres Toolkit
================

Postgres Toolkit is a collection of script and command that can easily perform on the complex DBA works when performing PostgreSQL server operation management, performance tuning and Troubleshooting. 

If you have any questions, requests or report bugs about Postgres Toolkit, please email me or use Github issues. 
email:``postgres-toolkit at uptime dot jp`` 
Github: http://www.github.com/uptimejp/postgres-toolkit/ 

Contents:

.. toctree::
   :maxdepth: 2

   install
   pt-config
   pt-index-usage
   pt-kill
   pt-proc-stat
   pt-replication-stat
   pt-session-profiler
   pt-set-tablespace
   pt-snap-statements
   pt-stat-snapshot
   pt-table-usage
   pt-tablespace-usage
   pt-verify-checksum
   pt-xact-stat
   releasenote


Indices and tables
==================

* :ref:`genindex`
* :ref:`modindex`
* :ref:`search`

