Сопоставление возможностей PostgreSQL и PostgresPro версии 9.5

РазличияPostgreSQLPostgresPro
Оптимизация производительности
Оптимизации выделения хэш-таблиц в shared memory, исключающая lock contention при большом количестве процессов.НетЕсть
Оптимизации Resource Owner. Улучшает производительность сложных запросов и запросов к таблицам с большим количеством секций.НетЕсть
Оптимизации buffer managerНетЕсть
Оптимизация LWLock для архитектуры Power8НетЕсть
Оптимизации двухфазного коммитаНетЕсть
Кеширование планов запросовНетДобавлен модуль sr_plan, который позволяет
  • сохранять планы выполнения запросов и использовать сохраненные планы вместо того, чтобы формировать план запроса заново, при каждом выполнении
Дополнительные возможности для разработчиков
Усовершенствования полнотекстового поиска 
  • поддержка поиска фраз
  • поддержка словарей hunspell для работы со словоформами
  • некоторые словари, в том числе русский и английский, включены в состав дистрибутива и их подключение требует одной команды SQL
  • модуль shared_ispell, оптимизирующий производительность полнотекстового поиска, путем загрузки словарей в память при старте сервера, а не при начале сессии
Нечеткий поискМодуль pg_trgm, который обеспечивает:
  • нечеткое сравнение строк
Модуль pg_trgm, который обеспечивает:
  • нечеткое сравнение строк
  • нечеткий поиск подстроки
Покрывающие индексыНетПоддерживается конструкция INCLUDING в CREATE INDEX
ИнтроспекцияМодуль pageinspect, поддерживает доступ к:
  • метаинформации
Модуль pageinspect, поддерживает доступ к:
  • метаинформации
  • внутреннему представлению данных таблиц
Язык запросов JSQuery Добавлен модуль jsquery, позволяющий
  • на специальном языке формулировать запросы к полям типа JSONB с поддержкой GIN-индексов
Сессионные переменныеНетДобавлен модуль pg_variables, позволяющий
  • создавать и использовать переменные различных типов в рамках пользовательских сессий (по аналогии с Oracle Package Variables)
Секционирование
  • Осуществляется вручную на базе встроенного мехнизима наследования
  • Запросы к унаследованным таблицам автоматически не оптимизируются
Добавлен модуль pg_pathman, позволяющий
  • осуществлять секционирование таблиц спецаильными встроенными функциями
    • создание
    • удаление
    • объединение
    • разделение
  • использовать секционирование
    • по интервалам
    • по ключу
  • оптимизировать запросы, включающие в себя JOIN и/или выборку с условием по секционированным таблицам для случаев
    • подготовленных запросов
    • nested loop
    • подзапросов
В релизе 9.5.4.1+1 ожидается pg_pathman (версии 1.0), в котором реализована:
  • Поддержка неблокирующего (конкурентного) секционирования
  • Ускорение операции INSERT, за счёт отказа от триггеров и осуществления прямой записи в секцию
  • Поддержка полностью ручного управления секциями
Дополнительные возможности для администраторов
Резервное копирование статистики и восстановлениеНетДобавлен модуль dump_stat, позволяющий
  • при дампе базы данных сохранять информацию о статистике и восстанавливать её. Это позволяет ускорить процедуру восстановления, избавляя от необходимости вычисления статистики командой VACUUM ANALYZE после восстановления
Улучшения переносимости
Платформонезависимая поддержка UnicodeИспользуется системная библиотекаЗадействована библиотека LIBICU, которая
  • обеспечивает однозначную обработку порядка сортировки и прочих операций с юникодными символами
  • на ряде платформ улучшает производительность сортировки
  • позволяет в Postgres Pro пользоваться abbreviated keys, которые были отключены в основной версии PostgreSQL