--- a/pgtoolkit/tools/bigtables.py Mon May 26 18:18:21 2014 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,55 +0,0 @@
-from pgtoolkit.toolbase import SimpleTool
-from pgtoolkit import pgbrowser
-from pycolib.prettysize import prettysize_short
-from pycolib.ansicolor import highlight
-
-
-class BigTablesTool(SimpleTool):
-
- """List largest tables.
-
- Reads size statistics of tables and indexes from pgcatalog.
-
- """
-
- def __init__(self):
- SimpleTool.__init__(self, name='bigtables')
-
- def specify_args(self):
- SimpleTool.specify_args(self)
- self.parser.add_argument('-n', '--limit', metavar='NUM', dest='limit', type=int, default=5, help='Show NUM biggest tables.')
- self.parser.add_argument('-v', '--details', dest='details', action='store_true', help='Show sizes of data and individual indexes.')
-
- def main(self):
- browser = pgbrowser.PgBrowser(self.pgm.get_conn('target'))
-
- # scan all tables from all shemas, remember names and sizes
- all_tables = []
- all_indexes = []
- schemas = browser.list_schemas()
- for schema in schemas:
- tables = browser.list_tables(schema['name'])
- for table in tables:
- table_name = '%s.%s' % (schema['name'], table['name'])
- indexes = browser.list_indexes(table['name'], schema['name'])
- for index in indexes:
- all_indexes.append({'name': index['name'], 'table': table_name, 'size': index['size']})
- size_with_indexes = table['size'] + sum(index['size'] for index in indexes)
- all_tables.append({'name': table_name, 'size': table['size'], 'indexes': indexes, 'size_with_indexes': size_with_indexes})
-
- # print names and sizes of 20 largest tables
- for table in sorted(all_tables, reverse=True, key=lambda x: x['size_with_indexes'])[:self.args.limit]:
- print(highlight(1) + prettysize_short(table['size_with_indexes'], trailing_zeros=True).rjust(8) + highlight(0),
- '(total)'.ljust(8),
- highlight(1) + table['name'] + highlight(0), sep=' ')
- if self.args.details:
- print(prettysize_short(table['size'], trailing_zeros=True).rjust(8),
- '(data)'.ljust(8), sep=' ')
- for index in sorted(table['indexes'], reverse=True, key=lambda x: x['size']):
- print(prettysize_short(index['size'], trailing_zeros=True).rjust(8),
- '(index)'.ljust(8), index['name'], sep=' ')
- print()
-
-
-cls = BigTablesTool
-