powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Function Postgresql
7 сообщений из 7, страница 1 из 1
Function Postgresql
    #39417899
Strippett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Друзья,подскажите как написать функцию.
У меня есть список из 135 индексов,я хочу сделать функцию в которую буду подавать этот список индексов
потом циклом проходиться по len(списка триггеров)
и возвращать в случае успешного реиндекса что такое то количество перестроенно
в случае не успешного есть ошибки и выводить имена индексов на которых происходят ошибки,и выполнять это раз в неделю ночью.
Буду благодарен если подскажете как такое оформить ну или хотя бы укажете где подробно разобрано с типами возможных переменных циклами,которые хавает postgres,я понимал бы как написать такое на каком нибудь питоне но вот тут не совсем ясно учитывая тонкости синтаксиса.(
Спасибо заранее.
...
Рейтинг: 0 / 0
Function Postgresql
    #39417909
Фотография vyegorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Strippett,

Смотрите на `FOR var IN query LOOP ... END LOOP;` конструкцию: https://www.postgresql.org/docs/current/static/plpgsql-control-structures.html#PLPGSQL-RECORDS-ITERATING
...
Рейтинг: 0 / 0
Function Postgresql
    #39417914
qwwq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. лучше делать цыкл в клиенте. (вариант -- дергать автономии через db_link). чтобы каждый отдельный реиндекс компактно коммитился.

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

2. как дергать структуры /описания индексов по именам -- см pg_catalog и information_schema
https://www.postgresql.org/docs/current/static/information-schema.html
и ф-ии а-ля pg_get_indexdef(index_oid) отсюда:
https://www.postgresql.org/docs/current/static/functions-info.html

3.всё остальное -- см тут:
https://www.postgresql.org/docs/current/static/server-programming.html
...
Рейтинг: 0 / 0
Function Postgresql
    #39418004
Strippett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо,пошёл изучать.
...
Рейтинг: 0 / 0
Function Postgresql
    #39418064
Фотография vyegorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qwwq,

Ну тогда совсем лучше взять что-то готовенькое, что умеет индексы пересоздавать:
https://github.com/dataegret/pgcompacttable
...
Рейтинг: 0 / 0
Function Postgresql
    #39418154
qwwq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vyegorovqwwq,

Ну тогда совсем лучше взять что-то готовенькое, что умеет индексы пересоздавать:
https://github.com/dataegret/pgcompacttable
в принципе -- да
но самому сделать это руками -- полезнее, чтобы почуять проблемности пж

напр
reindex не м.б. конкурентным
а конкурентное индексирование с разыменовыванием (как кажется делает максимов компактор) требует подробных плясок с бубнами, в т.ч. с невалидными индексами [при прерывании], и объектами типа пк и уникъю. всё это полезно единожды пощупать самому.
...
Рейтинг: 0 / 0
Function Postgresql
    #39418291
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qwwqvyegorovqwwq,

Ну тогда совсем лучше взять что-то готовенькое, что умеет индексы пересоздавать:
https://github.com/dataegret/pgcompacttable
в принципе -- да
но самому сделать это руками -- полезнее, чтобы почуять проблемности пж

напр
reindex не м.б. конкурентным
а конкурентное индексирование с разыменовыванием (как кажется делает максимов компактор) требует подробных плясок с бубнами, в т.ч. с невалидными индексами [при прерывании], и объектами типа пк и уникъю. всё это полезно единожды пощупать самому.

Да наверное так. Я вообще рекомендую руками проделать эту процедуру несколько раз прежде чем начинать компактор использовать чтобы понимать где там подводные камни и как оно себя ведет.
Заодно и SQL постгресовый освоится лучше.

--
Maxim Boguk
www.postgresql-consulting.ru
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Function Postgresql
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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