2016-12-05 5 views
1

Если вы используете Google для «размера таблицы postgresql», вы получите этот хороший запрос. https://wiki.postgresql.org/wiki/Disk_UsageПочему не могу видеть размер моей схемы

SELECT *, pg_size_pretty(total_bytes) AS total 
    , pg_size_pretty(index_bytes) AS INDEX 
    , pg_size_pretty(toast_bytes) AS toast 
    , pg_size_pretty(table_bytes) AS TABLE 
    FROM (
    SELECT *, total_bytes-index_bytes-COALESCE(toast_bytes,0) AS table_bytes FROM (
     SELECT c.oid,nspname AS table_schema, relname AS TABLE_NAME 
       , c.reltuples AS row_estimate 
       , pg_total_relation_size(c.oid) AS total_bytes 
       , pg_indexes_size(c.oid) AS index_bytes 
       , pg_total_relation_size(reltoastrelid) AS toast_bytes 
      FROM pg_class c 
      LEFT JOIN pg_namespace n ON n.oid = c.relnamespace 
      WHERE relkind = 'r' 
) a 
) a; 

У меня есть схема app:

enter image description here

Но не показывает в результате:

enter image description here

Почему app схемы не показывает в результате?

Я пробую второй query, а также returm пустой результат.

select table_name, pg_relation_size(table_name) 
from information_schema.tables 
where table_schema = 'app' 
order by 2 
+1

'app' не содержит таблиц. Если бы это было так, вы бы увидели их в результате. –

+0

@NickBarnes Вы правы, приложение просто имеет функции и типы. –

ответ

0

К сожалению, даже инструмент командной строки psql не показывает общий размер всех объектов в схеме. Все команды, такие как «\ l +» для баз данных или «\ dt +» для таблиц, отображаются в форме «+» и общего размера. Только «\ dn +» для схем не показывает размер.

Выбрать из pg_class, вероятно, лучше, но не фильтровать только для «r» - схемы содержат также индексы и другие объекты.

+0

проблемы не объекты в схеме, схема полностью отсутствует –

+0

Поскольку вы выбираете из pg_class и в ней содержится только «r = обычная таблица, i = индекс, S = последовательность, v = вид, m = материализованный вид, c = композитный type, t = таблица TOAST, f = внешняя таблица "- см. здесь https://www.postgresql.org/docs/current/static/catalog-pg-class.html. Процедуры перечислены в pg_proc и типы в pg_type – JosMac

+0

Извините, я уже нашел ошибку благодаря Nick comment –