2. Различия между Postgres Pro и PostgreSQL

Postgres Pro наиболее актуальная версия PostgreSQL c добавленными дополнительными изменениями и добавленными расширениями. Многие из этих изменений уже приняты сообществом PostgreSQL и включены в состав следующей разрабатываемой версии PostgreSQL. Также в дистрибутив включены некоторые расширения и изменения, разработанные в Postgres Professional. Пользователи Postgres Pro таким образом получают ранний доступ к ряду важных нововведений и исправлений.

В настоящее время Postgres Pro имеет следующие отличия от PostgreSQL:

  • Улучшение производительности на многоядерных системах (оптимизация буфер-менеджера и блокировок).
  • Усовершенствования полнотекстового поиска: поиск фраз, морфология hunspell, некоторые морфологические словари включены в дистрибутив и могут быть подключены одним оператором SQL, модуль shared_ispell позволяет хранить словари в разделяемой памяти.
  • Покрывающие индексы.
  • Поддержка libicu на всех платформах, что обеспечивает независимые от платформы результаты сортировки.
  • Модуль pg_trgm поддерживает нечёткое сравнение строк и поиск подстрок.
  • Улучшенный модуль pageinspect обеспечивает доступ к внутренним структурам хранения данных.
  • Модуль sr_plan позволяет сохранять и восстанавливать планы запросов.
  • Модуль dump_stat позволяет сохранять статистику данных при резервном копировании и восстановлении.
  • Модуль jsquery реализует специальный язык запросов для эффективного, с использованием индексов, поиска в структурированных данных JSONB.
  • Модуль pg_variables содержит функции для работы с переменными различных типов.
  • Модуль pg_pathman предоставляет оптимизированный механизм секционирования, а также функции для создания и управления секциями.
  • Модуль pg_query_state даёт возможность узнавать текущее состояние выполнения запросов в работающем обслуживающем процессе.
  • pg_probackup — менеджер резервного копирования и восстановления.
  • Модуль mchar предоставляет дополнительный тип данных для совместимости с Microsoft SQL Server.
  • Модуль fulleq предоставляет дополнительный оператор равенства для совместимости с Microsoft SQL Server.
  • Модуль fasttrun предоставляет транзакционно-небезопасную функцию для усечения временных таблиц, предотвращающую разрастание каталога pg_class.
  • Модуль online_analyze предоставляет набор функций, которые немедленно обновляют статистику в целевых таблицах после операций INSERT, UPDATE, DELETE и SELECT INTO в них.
  • Модуль plantuner добавляет поддержку указаний для планировщика, позволяющих отключать или подключать определённые индексы при выполнении запроса.
  • Модуль sr_plan реализует альтернативный анализатор текстового поиска.

Выпуски Postgres Pro следуют за выпусками PostgreSQL, хотя иногда могут выпускаться чаще. Схема версионирования Postgres Pro основана на схеме версионирования PostgreSQL и включает дополнительную цифру.