PostgreSQL CloudSQL имеет высокую нагрузку на хранилище, но прямой запрос БД дает меньше - PullRequest
0 голосов
/ 08 ноября 2018

На нашем основном экземпляре Cloud SQL мы показываем использование 1,4 ТБ. Когда я запускаю запросы, такие как

WITH sizes AS (SELECT
             nspname,
             relname,
             pg_relation_size(c.oid) AS "size"
           FROM pg_class c LEFT JOIN pg_namespace n ON (n.oid = c.relnamespace)
           WHERE nspname NOT IN ('pg_catalog', 'information_schema')
           ORDER BY pg_relation_size(c.oid) DESC)

SELECT pg_size_pretty(sum(size))
FROM sizes

Я получаю около 700 ГБ обратно.

Это соответствует тому, что мы использовали ранее.

Недавно мы попытались добавить некоторые индексы, и это, похоже, коррелирует с раздуванием данных. С тех пор мы удалили эту таблицу и все связанные с ней индексы (я почти уверен). Но экземпляр все еще показывает широкое использование.

Этот запрос, кажется, подтверждает, что таблицы + индексы также ниже показанных 1,4 ТБ.

SELECT
   table_name,
   pg_size_pretty(table_size) AS table_size,
   pg_size_pretty(indexes_size) AS indexes_size,
   pg_size_pretty(total_size) AS total_size
FROM (
SELECT
    table_name,
    pg_table_size(table_name) AS table_size,
    pg_indexes_size(table_name) AS indexes_size,
    pg_total_relation_size(table_name) AS total_size
 FROM (
    SELECT ('"' || table_schema || '"."' || table_name || '"') AS table_name
        FROM information_schema.tables
    ) AS all_tables
    ORDER BY total_size DESC
) AS pretty_sizes;

Любые идеи о том, где эти дополнительные данные могут храниться и как я могу удалить их?

...