powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Секционирование. Из скольки секций состоит индекс/таблица?
3 сообщений из 3, страница 1 из 1
Секционирование. Из скольки секций состоит индекс/таблица?
    #39925697
Шамиль Фаридович
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Собственно, как узнать?
...
Рейтинг: 0 / 0
Секционирование. Из скольки секций состоит индекс/таблица?
    #39925826
entrypoint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Шамиль Фаридович,

если мы говорим о декларативном секционировании, а не о секционировании через наследование

автор Таблица 9.92. Функции получения информации о секционировании

pg_partition_tree(regclass)
Выводит информацию о таблицах и индексах в дереве секционирования для заданной секционированной таблицы или секционированного индекса, отражая каждую секцию в отдельной строке. В этой информации представляется имя секции, имя её непосредственного родителя, логический признак того, что секция является конечной, и целое число, показывающее её уровень в иерархии. На уровне номер 0 находятся таблицы или индексы, играющие роль корневых в дереве секционирования, на уровне 1 — их секции, на уровне 2 — секции последних и т. д.

pg_partition_ancestors(regclass)
Выводит список вышестоящих отношений для заданной секции, включая её саму.

pg_partition_root(regclass)
Выдаёт корневое отношение в иерархии секционирования, к которой относится данное отношение.

https://postgrespro.ru/docs/postgresql/12/functions-admin
https://paquier.xyz/postgresql-2/postgres-12-partition-funcs/
...
Рейтинг: 0 / 0
Секционирование. Из скольки секций состоит индекс/таблица?
    #39928083
Шамиль Фаридович
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может кому в будущем пригодиться:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
SELECT
            t.schemaname,
            t.tablename,
            count(pt.parentrelid) AS sectionsCount
        FROM
            pg_tables t
        left join pg_partition_tree(t.schemaname || '.' || t.tablename) as pt on true
        where
                  t.schemaname != 'pg_catalog'
            and t.schemaname != 'information_schema'
            and t.schemaname NOT LIKE 'pg_temp%'
            and coalesce(pt.level, 1)  = 1
        GROUP BY
            t.schemaname,
            t.tablename;
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Секционирование. Из скольки секций состоит индекс/таблица?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]