Получение таблиц без строк без подсчета - PullRequest
0 голосов
/ 16 февраля 2011

Я получил огромную базу данных PostgreSQL с множеством таблиц. Я хочу изучить все пустые таблицы без подсчета каждой таблицы по соображениям производительности (в некоторых таблицах несколько миллионов строк).

Ответы [ 3 ]

2 голосов
/ 16 февраля 2011

Этот запрос даст вам приблизительный результат, но не включает подсчет строк таблицы.

SELECT relname FROM pg_class JOIN pg_namespace ON (pg_class.relnamespace = pg_namespace.oid) WHERE relpages = 0 AND pg_namespace.nspname = 'public';

Это будет работать лучше после VACUUM ANALYZE.

1 голос
/ 16 февраля 2011

согласно http://wiki.postgresql.org/wiki/Slow_Counting, одно решение состоит в том, чтобы сначала найти таблицы с небольшими «пересчетами» через

select relname from pg_class where reltuples < X

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

0 голосов
/ 16 февраля 2011

так ты хочешь увидеть структуру таблицы, верно?try pg admin

вы можете открыть таблицу и увидеть всю структуру, например, тип данных, индекс, функцию и т. д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...