Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / PostgreSQL Новый топик    Ответить
 Примерное количество строк в таблице  [new]
Шамиль Фаридович
Member

Откуда: Саратов
Сообщений: 438
Доброго времени суток!
Есть ли в Постгресе какая-нить системная таблица/представление, которая хранит примерное количество строк во всех пользовательских таблицах (включая секционированные), какой-нить аналог
sys.partitions.rows из MS SQL?
Количество строк в секциях не нужно, только итог по всей секционированной таблице.
14 фев 20, 14:35    [22080057]     Ответить | Цитировать Сообщить модератору
 Re: Примерное количество строк в таблице  [new]
Шамиль Фаридович
Member

Откуда: Саратов
Сообщений: 438
Дополнение: речь идет только о декларативном секционировании
14 фев 20, 14:38    [22080062]     Ответить | Цитировать Сообщить модератору
 Re: Примерное количество строк в таблице  [new]
fte
Member

Откуда: Moscow
Сообщений: 353
Шамиль Фаридович,

Вот, почитайте
15 фев 20, 08:38    [22080447]     Ответить | Цитировать Сообщить модератору
 Re: Примерное количество строк в таблице  [new]
DSKalugin
Member

Откуда: Мать городов русских
Сообщений: 355
Шамиль Фаридович,

  select schemaname, relname, n_live_tup from pg_stat_user_tables; -- потаблично, включая секции
  select sum(n_live_tup) from pg_stat_user_tables; -- итого по всем
17 фев 20, 18:01    [22081590]     Ответить | Цитировать Сообщить модератору
 Re: Примерное количество строк в таблице  [new]
Шамиль Фаридович
Member

Откуда: Саратов
Сообщений: 438
DSKalugin,
спасибо.
А как получить инфу не по секциям таблицы, а по всей секционированной таблице?
Ее кстати нет ни в pg_stat_user_tables, ни в pg_class (там почему-то есть только те секционированные таблицы, которые сами являются секциями).
Нужно задействовать какой-нить pg_partition_root(regclass) ?
18 фев 20, 11:58    [22082040]     Ответить | Цитировать Сообщить модератору
 Re: Примерное количество строк в таблице  [new]
Шамиль Фаридович
Member

Откуда: Саратов
Сообщений: 438
Сорри, в pg_class есть все секционированные таблицы - не тот relkind указывал
18 фев 20, 12:02    [22082044]     Ответить | Цитировать Сообщить модератору
 Re: Примерное количество строк в таблице  [new]
Шамиль Фаридович
Member

Откуда: Саратов
Сообщений: 438
В итоге получилось вот так:
select t.schemaname, 
   COALESCE(cast(pg_partition_root((t.schemaname || '.' || t.relname)) as varchar(120)),
          cast(t.relname  as varchar(120))) as tablename,
    sum(n_live_tup) as rowcount
from pg_stat_user_tables t
group by
    t.schemaname,
    COALESCE(cast(pg_partition_root((t.schemaname || '.' || t.relname)) as varchar(120)),
          cast(t.relname  as varchar(120)));
18 фев 20, 14:07    [22082186]     Ответить | Цитировать Сообщить модератору
Все форумы / PostgreSQL Ответить