Как вы находите количество строк для всех ваших таблиц в Postgres - PullRequest
339 голосов
/ 08 апреля 2010

Я ищу способ найти количество строк для всех моих таблиц в Postgres.Я знаю, что могу сделать эту таблицу по одному с:

SELECT count(*) FROM table_name;

, но я хотел бы увидеть количество строк для всех таблиц, а затем упорядочить их, чтобы понять, насколько велики все моиТаблицы.

Ответы [ 12 ]

1 голос
/ 29 сентября 2015

Мне нравится ответ Даниэля Верите . Но когда вы не можете использовать оператор CREATE, вы можете использовать bash решение или, если вы пользователь Windows, PowerShell:

# You don't need this if you have pgpass.conf
$env:PGPASSWORD = "userpass"

# Get table list
$tables = & 'C:\Program Files\PostgreSQL\9.4\bin\psql.exe' -U user -w -d dbname -At -c "select table_name from information_schema.tables where table_type='BASE TABLE' AND table_schema='schema1'"

foreach ($table in $tables) {
    & 'C:\path_to_postresql\bin\psql.exe' -U root -w -d dbname -At -c "select '$table', count(*) from $table"
}
0 голосов
/ 06 мая 2019

Это сработало для меня

SELECT имя схемы, relname, n_live_tup FROM pg_stat_user_tables ORDER BY n_live_tup DESC;

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