Как известно, фирма 1С выпустила программный продукт 1С:Предприятие 8.1 (текущая версия 8.1.8, имеет статус релиза). Самыми вкусными вкусностями этой версии для нас, бесспорно, стали поддержка сервером приложений платформы GNU/Linux и поддержка в качестве сервера БД свободной СУБД PostgreSQL.
Но с выходом продукта, с начавшейся чередой релизов, возникало ощущение, что с PostgreSQL система работает гораздо медленней, чем с MS SQL Server.
В результате исследований стала ясна причина такой работы:
===== Цитата =====
Три дня парился с поиском причины, удалось найти следующее.
1. В ЗУП 2.1.12.3 в запросе расчета НДФЛ нет полного внешнего соединения, там вообще во всей конфигурации таких конструкций не встречается. Поэтому комментарии техподдержки 1С в случае с типовой ЗУП 2.1 не совсем понятны.
2. При включении детальных логов в PostgreSQL выявлено, что 1С запрос НДФЛ - около 500 строк транслируется в запрос pgSQL - около 35000 строк (не слишком ли много ?!), в котором часто встречаются не совсем понятные с логической точки зрения конструкции типа:
CASE WHEN 0 THEN 0 ELSE NULL END
3. В случае с PostgreSQL версии 8.1.5 - зависание запроса и последующее переполнение ОЗУ происходит на стадии PARSE, т.е грамматического разбора запроса pgSQL и подготовки данных для его выполнения. В случае с PostgreSQL 8.2.4 - длительное подвисание без переполнения памяти происходит на стадии SELECT, т.е во время выполнения запроса.
4. Скачал исходники PostgreSQL 8.2.5 с официального сайта postgresql.org, собрал их с патчами 1C от версии 8.2.4-3.1С, уменьшилось время выполнения эталонного запроса на 10%, но это очень мало.
Я думаю что основная причина кроется в неоптимизированном трансляторе запросов 1C -> pgSQL.
===== Конец цитаты =====
http://www.forum.mista.ru/topic.php?id=297521&forum=it
Только стремление выпустить раскрученный продукт, который на деле является во многом пустышкой, сподвигает коммерческих разработчиков ПО так лажаться...
>>>