При работе с базами данных 1С на Tantor Postgres важно понимать особенности использования табличных пространств (tablespaces). Платформа 1С имеет встроенную поддержку специальных табличных пространств, которая позволяет оптимизировать размещение данных и индексов.

Предопределенные табличные пространства

Платформа 1С понимает и автоматически использует два предопределенных табличных пространства с фиксированными именами:

  • v81c_data — для размещения таблиц с данными
  • v81c_index — для размещения индексов

Эти имена жестко заданы в платформе и не могут быть изменены. При наличии данных табличных пространств в базе Tantor Postgres платформа 1С будет автоматически их использовать.

Автоматическое создание объектов

При создании информационной базы средствами платформы 1С (через DT или утилиту ibcmd) происходит автоматическое распределение объектов базы данных:

  • Все таблицы автоматически размещаются в табличном пространстве v81c_data
  • Все индексы автоматически размещаются в табличном пространстве v81c_index

Это позволяет физически разделить данные и индексы, что может дать преимущества в производительности при размещении их на разных дисковых подсистемах.

Объекты в дефолтном табличном пространстве

Несмотря на использование специальных табличных пространств, некоторые объекты базы данных все равно создаются в дефолтном табличном пространствеTantor Postgres. К таким объектам относятся:

Системные таблицы 1С

  • Таблицы конфигурации и метаданных
  • Служебные таблицы платформы
  • Таблицы для хранения настроек и параметров системы

Временные объекты

  • Временные таблицы, создаваемые во время выполнения запросов
  • Промежуточные таблицы для сложных операций

Служебные структуры

  • Последовательности (sequences)
  • Некоторые системные индексы
  • Таблицы для хранения блокировок и транзакционной информации

Восстановление базы через pg_restore

При восстановлении базы данных 1С с помощью стандартной утилитыTantor Postgres pg_restore возникает особенность: утилита не понимает специальные табличные пространства 1С и размещает все объекты в дефолтном табличном пространстве.

Размещение таблиц в v81c_data

Для размещения таблиц в правильном табличном пространстве при восстановлении необходимо указать параметр --tablespace в команде pg_restore:

pg_restore -d database_name --tablespace=v81c_data backup_file.sql
CODE

Эта команда разместит все таблицы в табличном пространстве v81c_data.

Размещение индексов в v81c_index

pg_restore не предоставляет прямого способа указать отдельное табличное пространство для индексов. Индексы необходимо пересоздавать вручную с указанием нужного табличного пространства. Пример команды для пересоздания индекса:

-- Удаление существующего индекса
DROP INDEX IF EXISTS index_name;

-- Создание индекса в нужном табличном пространстве
CREATE INDEX index_name ON table_name (column_name) TABLESPACE v81c_index;
CODE

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

Управление пользовательскими табличными пространствами

Помимо предопределенных табличных пространств, платформа 1С поддерживает управление пользовательскими табличными пространствами. Это позволяет администраторам более гибко управлять размещением данных в зависимости от специфики конкретной информационной системы.

Подробная информация о возможностях управления пользовательскими табличными пространствами доступна в официальной документации 1С.