Еще один тест 1C: Postgres SQL 11 Pro Enterpise против MSSQL 14 под Windows 2012 Server R2

Публикация № 1117806

Администрирование - Производительность и оптимизация (HighLoad)

PostgreSQL VS MSSQL Сервер HighLoad 1C

11
Проработав 15 лет с MSSQL в Системах, в 2017 начал активно СУБД Postgres SQL. За два года успел поработать в 9 версии Postgres и в 10-ой. И пришел к выводу, что существуют реальное замедление работы баз после перехода на Postgres. Недавно вышла 11 версия Postgres Pro Enterpise, которая обещает почти 2-х кратное ускорение над 11 Pro Standart и 10-ой версией. Закупив лицензию Postgres 11 Pro Enterpise Это я и решил проверить на 1С.

В качестве теста решил использовать:

  1. Тест 1 - знаменитый всем тест Гилева
  2. Тест 2 - загрузка базы данных из dt файла. база - 1C Бухгалтерия предприятия 3.0 (3.0.72.70).  Критерий оценки время на удаление
  3. Тест 3  - Обработка по поиску и удалению данных по одной организации в 1C Бухгалтерия предприятия 3.0 (3.0.72.70) (база данных плюс минус на 15 гигабайт). Критерий оценки время на удаление
  4. тест 4. Перепроведение всех Документов базы с начала. 1C Бухгалтерия предприятия 3.0 (3.0.72.70). Критерий оценки Время на проведение
  5. тест 5 - тест fragster.ru 

По моим наблюдениям, несомненным плюсом Postgres является тот факт, что Postgres более оптимально использует ресурсы (Память, CPU, накопитель)

Поэтому я умышленно установил лишь 8Gb памяти для того чтобы дать фору Postgres

В Качестве подопытного ПК Будем использовать машину, о которой я писал в статье //clerk.excel2.ru/public/992238

Характеристики подопытного ПК: 

  1.  Intel Xeon E3 1270 3,4 ГГц LGA1155 8 MB 4 ядра Процессор процессор E3-1270 SR00N (полный серверный аналог i7 2600K без встройки gpu) В разгоне 3,8Ghz 
  2.  8G RAM 1333Mhz,
  3.  SSD samsung 860 pro 250gb, 
  4.  Видеокарта -  6970 2 gb GPU с выходом mini DP
  5. Добротный блок питания 850Ватт Corsair HX850i
  6. 1C Сервер предприятия x64 v8.3.12.1790
  7. 1C клиент x64 v8.3.12.1790
  8. ОСь Windows 2012 Server R2

Итак, начнем тесты:

 

1. Первый тест - тест Гилева:

Результаты по Postgres 11

 

Результаты по MSSQL 14

Результаты теста Гилева:

  1. в пользу MSSQL 14 в одно-поточном режиме 29 попугаев MSSQL  против 23 Postgres. 
  2. 188Mb/сек в пользу Postgres против 140Mb/сек MSSQL в много-поточном режиме без опции SNAPSHOT_ISOLATION ON

Важное замечание. Если MSSQL перевести в режим SNAPSHOT_ISOLATION ON (Изоляция снимков, версионирование) - то MSSQL начинает хранить снимки баз до транзакции в памяти и дико выедает всю доступную оперативную память, отказываясь использовать файл подкачки.

Для этого снимаем конфигурацию Гилева с поддержки и снимаем режим совместимости, так как изоляция снимков работает только начиная с 11-12 платформы. После чего выполняем скрипт на базе.

 

 

В результате тест Гилева в много-поточном режиме вываливается с ошибкой из за нехватки памяти ОЗУ(RAM) 

   

 

  

Если увеличить память машины до 16-32GB в режиме SNAPSHOT_ISOLATION ON Postgres  так же обходит MSSQL .

Так что первый тест за Postgres

 

Тест 2: загрузка базы данных из dt файла.

Время на загрузку базы из *.dt файла

  • MSSQL  1 минута 49 секунд  
  • Postgres - 2 минуты 20 секунд

Второй тест в копилку MSSQL  Server 

 

Тест 3: Обработка по поиску и удалению данных по одной организации в 1С Бухгалтерия 3.0 (база данных плюс минус на 15 гигабайт).

Обработка находится тут //clerk.excel2.ru/public/1013709

Результаты отладки по MSSQL:

Результат MSSQL - 6422 секунды или почти 2 часа.

Результат Postgres - 61756 секунды или 17 с лишним часов 

                            

Итого MSSQL отрабатывает результат почти в 10 раз быстрее. Почему? Возможно в том, что Функция НайтиСсылкиНаСервере отправляет кучу мелких запросов, а MSSQL работает в режим Shared Memory, а Postgres в протоколе TCP/IP, из за чего возникает задержка между сервером предприятия 1С и СУБД. В связи с чем получаем дикую просадку по скорости. 

Для Posgres Shared Memory так же настраивал, но увы скорости не прибавилось, так как этот параметр отвечает за совсем другую функциональность и не влияет на протокол обмена. Возможно руки кривые или лыжи не едут, так что критика тут уместна.

# PostgreSQL configuration file

shared_buffers = 3GB 

Вывод - если вы используете Сервер предприятия на одной машине с MSSQL сервер - используйте протокол  Shared Memory и еще один попугай в пользу Майкрософт.

 

 

Тест 4. Перепроведение всех Документов базы. Ссылка на обработку //clerk.excel2.ru/public/1117962/

Результаты MSSQL - 58 минут 47 секунд

 

Результаты Postgres- 8 часов 39 минут 47 секунд

Почему так долго не знаю. Параметры двигал туда сюда, не помогает, все равно долго.

Любопытные могут скачать настройки Postgres за 1 инфо-шейкель в описании.

Еще один жирный попугай в пользу Майкрософт

Update  Важное дополнение: В режиме TCP MSSQL проводил документы 1 час 17 минут. Почему так тормозит Postgres SQL 11 PRO - не знаю.

Тест 5 - тест fragster.ru 

Результаты тестов:

Временные таблицы Справочники Регистры сведений Регистры накопления Регистры бухгалтерии
Тест Postgres MSSQL Разница Postgres MSSQL Разница Postgres MSSQL Разница Postgres MSSQL Разница Postgres MSSQL Разница
  13 935,27 72 885,73 58 950,46 12 561,00 12 271,91 -289,09 9 123,00 9 489,09 366,09 8 941,00 9 363,00 422,00 8 567,82 9 112,45 544,63
1 5 096,00 12 938,00 7 842,00 3 035,00 2 879,00 -156,00 2 055,00 2 221,00 166,00 2 004,00 2 247,00 243,00 1 929,00 2 137,00 208,00
2 8 282,00 28 725,00 20 443,00 6 177,00 5 920,00 -257,00 4 453,00 4 533,00 80,00 4 304,00 4 423,00 119,00 4 082,00 4 302,00 220,00
4 11 927,00 54 045,00 42 118,00 10 968,00 10 112,00 -856,00 7 923,00 7 764,00 -159,00 7 716,00 7 727,00 11,00 7 320,00 7 321,00 1,00
8 13 680,00 78 023,00 64 343,00 15 356,00 14 564,00 -792,00 11 179,00 11 356,00 177,00 10 839,00 11 135,00 296,00 10 196,00 10 804,00 608,00
16 16 691,00 78 931,00 62 240,00 14 634,00 14 418,00 -216,00 10 941,00 11 249,00 308,00 10 767,00 11 340,00 573,00 10 439,00 11 077,00 638,00
32 16 676,00 79 000,00 62 324,00 14 843,00 14 681,00 -162,00 10 842,00 11 151,00 309,00 10 637,00 11 176,00 539,00 10 186,00 10 861,00 675,00
48 16 056,00 78 930,00 62 874,00 14 782,00 14 612,00 -170,00 10 757,00 11 273,00 516,00 10 342,00 10 895,00 553,00 9 808,00 10 816,00 1 008,00
64 15 866,00 78 677,00 62 811,00 14 361,00 14 522,00 161,00 10 451,00 11 250,00 799,00 10 513,00 11 073,00 560,00 9 896,00 10 760,00 864,00
80 16 084,00 78 670,00 62 586,00 14 561,00 14 426,00 -135,00 10 103,00 11 229,00 1 126,00 10 206,00 11 034,00 828,00 10 150,00 10 727,00 577,00
96 16 520,00 78 493,00 61 973,00 14 814,00 14 426,00 -388,00 10 808,00 11 215,00 407,00 10 456,00 10 956,00 500,00 10 111,00 10 712,00 601,00
112 16 410,00 155 311,00 138 901,00 14 640,00 14 431,00 -209,00 10 841,00 11 139,00 298,00 10 567,00 10 987,00 420,00 10 129,00 10 720,00 591,00

 

По таблице видно что Postgres незначительно выигрывает в работе со справочниками, но примерно в 10 раз медленнее работает с временными таблицами. Так как в MSSQL поздних версий временные таблицы кешуруются в ОЗУ(RAM). Результаты по регистрам примерно одинаковы в обеих СУБД, с небольшим преимуществом MSSQL. Этот тест так же в копилку Мйкрософт

 

Счет 1-5 в пользу Майкрософт.

Так что 11-ый слон по прежнему медленный, но в случае возникновения блокировок - слон как всегда более проходимый чем Лошадь от Microsoft.

        

От себя: Исходя из личного опыта сделал вывод:

  1. Если железо мощное нет узких мест в ресурсах = то Лучше MSSQL
  2. Так же с переходом на  Postgres, gjxnb забыл о злощасных  мертвых блокировках от которых в MSSQL невозможно Избавиться(SNAPSHOT_ISOLATION ON отчасти решают проблему но не всегда, особенно в типовых релизах). 
  3. Так же при переходе на Postgres необходимо переписывать запросы суммирования ISNULL(значение1)+ISNULL(значение2), не то получим отчет с NULL. Соответствующей настройки "объединение со значением  NULL дает NULL off" -  в Postgres не нашел.
  4. Если ваш сервер трещит по швам, не хватает памяти или прочих ресурсов, денег на новый сервер нет - держитесь за Postgres SQL на Linux 

Update 08.09.2019 

Установил версию Postgres SQL 10.8-18.1C с сайта 1c.ru. Настройки postgres выставил те что во вложении.

Итого получил результат по тесту перепроведения документов: 

  • Время начала: 08.09.2019 20:24:04
  • Время окончания: 08.09.2019 21:49:28
  • Итого время 1 час 25 минут, что всего на пол часа больше чем MSSQL и на 7 часаов быстрее чем Postgres 11 версии (со стандартными настройками с сайта www.postgresql.org)

Чуть позже применил эти же на стройки на Postgres Pro 11 и получил результат  по тесту перепроведения документов: 

  • Время начала:      08.09.2019 22:16:55
  • Время окончания: 08.09.2019 23:38:29

1 час 22 минуты при настройках во вложении. 

#ВсемДобр@иБабл@

11

Скачать файлы

Наименование Файл Версия Размер
Файл настроек 11 при котором все тормозит (Стандартные по умолчанию) postgresql.conf
.conf 24,29Kb
08.09.19
0
.conf 24,29Kb Скачать
Файл настроек Postgres SQL 10-11 при котором все работает быстро (под сервер 16-32 RAM)postgresql.conf
.conf 23,18Kb
08.09.19
4
.conf 23,18Kb 4 Скачать

См. также

Специальные предложения

Лучшие комментарии
7. Reaper_1C 102 05.09.19 16:09 Сейчас в теме
(2)
я не виноват - выжимал из настроек по максимуму


Ну не правда. Посмотрите на формат строки подключения к PostgeSQL:
https://postgrespro.ru/docs/postgresql/11/libpq-connect#LIBPQ-CONNSTRING

Там ясно указано:
Имя компьютера для подключения. Если это имя начинается с косой черты, оно выбирает подключение через Unix-сокет, а не через TCP/IP, и задаёт имя каталога, содержащего файл сокета.


Таким образом, если сервер приложений системы "1С: Предприятие 8" и PostgresSQL будут размещены на одном компьютере под управлением Linux, то в настройках подключения к БД можно будет указать путь к файлу сокета и системы будут передавать данные друг другу без использования сетевого стека.
VVi3ard; nvv1970; neyasytyf; A_Max; letarch; 2tvad; ogidni; vv2; +8 Ответить
Остальные комментарии
Избранное Подписка Сортировка: Древо
1. user-z99999 18 05.09.19 15:12 Сейчас в теме
Похоже настройки, например: MSSQL работает в режим Shared Memory, а Postgres в протоколе TCP/IP
делаются специально.
Чтобы удобно было сравнивать мягкое с квадратным.

Желательно акцент делать на характеристиках и настройках баз данных + ОС.
Потому что сейчас вы продемонстрировали результат, который непонятно откуда произошел.
ogidni; nomad_irk; vv2; +3 Ответить
2. ogidni 143 05.09.19 15:16 Сейчас в теме
(1) 1C Бухгалтерия предприятия 3.0 (3.0.72.70)
Добавил в описание.
Похоже настройки, например: MSSQL работает в режим Shared Memory, а Postgres в протоколе TCP/IP
делаются специально.

То что Postgres не умеет работать на Shared Memory я не виноват - выжимал из настроек по максимуму и там и там.
Лично сам болел за слона - но увы эксперимент есть эксперимент.
3. vv2 05.09.19 15:27 Сейчас в теме
(2) А Shared Memory возможен когда 1с и СУБД на разных серверах ?
4. ogidni 143 05.09.19 15:28 Сейчас в теме
5. vv2 05.09.19 15:34 Сейчас в теме
(4) А разве тогда не нужно отдельно тестировать вариант с раздельным расположением сервера 1С и СУБД ?
Fox-trot; ogidni; +2 Ответить
6. ogidni 143 05.09.19 15:44 Сейчас в теме
(5)
А разве тогда не нужно отдельно тестировать вариант с раздельным расположением сервера 1С и СУБД ?

Позже сделаю тест без Shared Memory, чтобы не дискредитировать слонов, но все равно не думаю что будет 17 часов проводиться. Мой прогноз не более 3 часов.
Так же скоро будет подобный тест, но уже на новом 32-ух ядерном сервере. Но это уже будет другой тест
7. Reaper_1C 102 05.09.19 16:09 Сейчас в теме
(2)
я не виноват - выжимал из настроек по максимуму


Ну не правда. Посмотрите на формат строки подключения к PostgeSQL:
https://postgrespro.ru/docs/postgresql/11/libpq-connect#LIBPQ-CONNSTRING

Там ясно указано:
Имя компьютера для подключения. Если это имя начинается с косой черты, оно выбирает подключение через Unix-сокет, а не через TCP/IP, и задаёт имя каталога, содержащего файл сокета.


Таким образом, если сервер приложений системы "1С: Предприятие 8" и PostgresSQL будут размещены на одном компьютере под управлением Linux, то в настройках подключения к БД можно будет указать путь к файлу сокета и системы будут передавать данные друг другу без использования сетевого стека.
VVi3ard; nvv1970; neyasytyf; A_Max; letarch; 2tvad; ogidni; vv2; +8 Ответить
8. ogidni 143 05.09.19 16:17 Сейчас в теме
(7)
Таким образом, если сервер приложений системы "1С: Предприятие 8" и PostgresSQL будут размещены на одном компьютере под управлением Linux, то в настройках подключения к БД можно будет указать путь к файлу сокета и системы будут передавать данные друг другу без использования сетевого стека.

Тут согласен - если Слона поместить в Linux, особенно в последнюю версию Ubuntu и настроить подключение под Unix-сокет Слоник начинает быстрее бегать.
Тем не менее более 90% всех серверов 1С работают на виндовозе. Не понимаю почему в Posgres нет норм настроек по Мастдайные сервера?
77. nvv1970 15.09.19 22:44 Сейчас в теме
(7) так что ли /locachost ?? в linux что-то нужно настраивать для этого?
"для приёма подключений открыт Unix-сокет "/tmp/.s.PGSQL.5432""
local all all trust

Как-то не горит желания 1с запускаться ((
is the server running locally and accepting connections on unix domain socket /localhost/.s.PGSQL.5432 ?
Не понимаю как поженить tmp и localhost и нужно ли. На /tmp 1с подключаться не хочет (

UPD: допер! на /tmp была ошибка уже по авторизации. Не закоментил local all all peer

UUPD: любопытно, что тест гилева на локальной видовой машине показал в КС 19 попугаев, а в тормознутом VirtualBox на linux (1c+pg) 23 что на сокете, что на IP (localhost). И все на дефолтных настройках.
84. ogidni 143 16.09.19 08:53 Сейчас в теме
(77)
UUPD: любопытно, что тест гилева на локальной видовой машине показал в КС 19 попугаев, а в тормознутом VirtualBox на linux (1c+pg) 23 что на сокете, что на IP (localhost). И все на дефолтных настройках.

Тест Гилева он только попугаев и считает.
82. nvv1970 16.09.19 08:48 Сейчас в теме
(7) на сколько это будет более производительным?
Вероятно разница возможна только при нагрузке на сеть?
83. ogidni 143 16.09.19 08:52 Сейчас в теме
9. ogidni 143 05.09.19 23:34 Сейчас в теме
Важное дополнение: В режиме TCP MSSQL проводил документы 1 час 17 минут против 8 с половиной часов Postgres SQL. Так что причины тормозов слонов под Виндой открыты
10. nomad_irk 8 06.09.19 06:06 Сейчас в теме
(9)Причины тормозов слонов под виндой - специфика работы Винды с большим количеством файлов одновременно.
Поэтому слонов нужно заводить под *NIX.
Reaper_1C; ogidni; vv2; +3 Ответить
11. ogidni 143 06.09.19 10:38 Сейчас в теме
(10)Надо накатить Ubuntu и попробовать протестить на этой же машине с такими же настройками.
13. ansh15 06.09.19 15:29 Сейчас в теме
При интенсивной работе с данными PostgreSQL в Windows могут возникать ошибки(много) "не удалось переименовать временный файл статистики из "pg_stat_tmp/global.tmp" в "pg_stat_tmp/global.stat": Permission denied ", так как Windows не может переименовывать или удалять открытые файлы и приходится ждать пока файл закроется. Из-за этого и наблюдается существенный спад производительности. В Linux такой проблемы нет.
Доступное и понятное изложение проблемы
15. ogidni 143 06.09.19 16:44 Сейчас в теме
(13)
интенсивной работе с данными PostgreSQL в Windows могут возникать ошибки(много) "не удалось переименовать временный файл статистики из "pg_stat_tmp/global.tmp" в "pg_stat_tmp/global.stat": Permission denied ", так как Windows не может переименовывать или удалять открытые файлы и приходится ждать пока файл закроется. Из-за этого и наблюдается существенный спад производительности. В Linux такой проблемы нет.
Доступное и понятное изложение проблемы

Это в лог файлах смотреть? Есть ли опыт по устранению?
17. ogidni 143 06.09.19 17:28 Сейчас в теме
(15) В логах "C:\PostgresSQL\data\pg_log" ничего критичного не нашел. А за ролик спасибо ;-)
только типа этого
LOG:  Can't find mchar/mvarvarchar types: mchar=0 mvarchar=0
20. ansh15 07.09.19 17:54 Сейчас в теме
(15)Здесь обсуждалось, сообщения 45 и 48.
Так что, можно приобрести Postgres Prо, одну из редакций, или использовать Linux.
Собственный "опыт по устранению"(вернее, его отсутствие) - применение среды Linux и для PostgreSQL и для 1С. Если бы не жалобы на форумах и это видео, я бы и не знал о такой проблеме.
78. nvv1970 15.09.19 22:56 Сейчас в теме
(13) конечно... линукс же не умеет блокировать файлы )
переименование/удаление спокойно выполняет запущенные или изменяемые в текущий момент файлы
например удаление техжурнала сервера в момент работы ведет к очень интересному поведению)
79. ogidni 143 15.09.19 23:06 Сейчас в теме
(78)
конечно... линукс же не умеет блокировать файлы

Пингвины по умолчанию не блокируют файлы, но они умеют это делать если очень хотят.
fcntl(F_SETLK)
80. ansh15 16.09.19 01:24 Сейчас в теме
(78)
удаление техжурнала сервера в момент работы ведет к очень интересному поведению

Не знаю, не пробовал. Не было такой необходимости.
В "поведенческой модели" Linux(Unix) предполагается, что специалист, использующий ее(операционную систему), обычно ответственен за свои действия и обладает достаточным пониманием того, что делает, а не "тычет мышкой куда попало".
81. nvv1970 16.09.19 08:41 Сейчас в теме
(80) понятно, что никто специально не удаляет, тем более "мышкой не сервере" (расскажите как, если права на тж у usr1cv8). Божественный одмин божественным скриптом все всосасыл куда-то и все удалял регулярно. Обнаружили глюк с тж.
12. ogidni 143 06.09.19 11:27 Сейчас в теме
Update
Сделал настройки исключительно под этот тест в результата увеличилась скорость проведения больше чем в 2 раза
max_connections = 20
shared_buffers = 512MB
effective_cache_size = 12GB
maintenance_work_mem = 2GB
checkpoint_completion_target = 0.9
wal_buffers = 16MB
default_statistics_target = 500
random_page_cost = 1.1
work_mem = 67720kB
min_wal_size = 4GB
max_wal_size = 8GB
Показать

Проведение документов уменьшилось до 6 часов 31 минут
Данные настройки рассчитаны на работу 20 соединений исходя из параметров моего старого серверочка 16GB RAM
14. ansh15 06.09.19 15:39 Сейчас в теме
А у теста(Гилева) есть одна особенность - когда свойство "Режим управления блокировкой данных" конфигурации устанавливается в значение "Управляемый", тест в среде Linux начинает показывать более лучший результат, процентов на 15 или больше. В Windows не пробовал, нет технической возможности :)
16. ogidni 143 06.09.19 16:48 Сейчас в теме
(14)
А у теста(Гилева) есть одна особенность - когда свойство "Режим управления блокировкой данных" конфигурации устанавливается в значение "Управляемый", тест в среде Linux начинает показывать более лучший результат, процентов на 15 или больше. В Windows не пробовал, нет технической возможности :)

В Бухе 3-ей по умолчанию стоят управляемый режим блокировок данных
18. capitan 1245 07.09.19 10:37 Сейчас в теме
(14)Тест Гилева в один поток пишет справочник и регистр сведений.
Поэтому ничего удивительного.
В автоматическом режиме платформа ставит блокировки сама, хотя ставить их и не имеет смысла.
А в управляемом вы это отключаете.
С монопольным режимом еще можно поиграться
19. capitan 1245 07.09.19 10:42 Сейчас в теме
Офигенно странные результаты и офигенно странные выводы.
Никогда не поверю что настолько постгри тормознутее скуля.
С другой стороны ставить постгри на винду на больших базах - то еще извращение, постгри родная стихия это линукс.
И рекомендация конечно тоже супер.
Расскажите ее 1С-ам у них же фреш на постгри крутится.
21. ogidni 143 08.09.19 19:19 Сейчас в теме
(19)
Расскажите ее 1С-ам у них же фреш на постгри крутится.

Может от того все висит у них ;-)
22. ogidni 143 08.09.19 22:02 Сейчас в теме
Установил версию Postgres SQL 10.8-18.1C с сайта 1c.ru. Настройки postgres выставил те что во вложении.

Итого получил результат по тесту перепроведения документов:

Время начала: 08.09.2019 20:24:04
Время окончания: 08.09.2019 21:49:28
Итого время 1 час 25 минут, что всего на пол часа больше чем MSSQL и на 7 часаов быстрее чем Postgres 11 версии
VVi3ard; vv2; +2 Ответить
23. ogidni 143 08.09.19 23:52 Сейчас в теме
Чуть позже применил эти же на стройки на Postgres Pro 11 и получил результат по тесту перепроведения документов:

Время начала: 08.09.2019 22:16:55
Время окончания: 08.09.2019 23:38:29
1 час 22 минуты при настройках во вложении (всего 3 минуты в режиме TCP ).
В итоге почти догнали MSSQL 14 ( режиме TCP MSSQL проводил документы 1 час 17 минут.)
24. capitan 1245 09.09.19 09:54 Сейчас в теме
(23)Ну вот вы сами и ответили на все вопросы.
Отсюда мораль - надо думать перед тем как шашкой махать.
На самом деле можно ничего не измерять, а просто порассуждать логически.
Пишется один и тот же объем данных +- 5%
Обе базы реляционные с одинаковой структурой таблиц.
Если обоим хватает ресурсов, то с чего бы получилась разница.
За счет того что постгри версионник, а скуль блокировочник дольше идет работа с временными таблицами.
В вашем варианте тестов они практически не используются и опять же - это происходит потому что постгри упирается в файловую систему винды.
На линуксе и быстрых дисках все будет ровнее.
ogidni; vv2; +2 Ответить
25. ogidni 143 09.09.19 10:53 Сейчас в теме
(24)
На линуксе и быстрых дисках все будет ровнее.

На Ubuntu PGSQL все работает ровно. Заметил лишь то что соединения с временными таблицами работают ну дико медленно -
1 . если нет индекса временной таблы.
2 Если этот индекс делать то тоже медленно.
MSSQL - тоже стал версионником, только 1С с этим не всегда правильно работает.
происходит потому что постгри упирается в файловую систему винды.

Думаю слоны упираются в то что слоны разрабатывались для Linux, а пользуются спросом в РФ 1С Windows
PGSQL мотивируют это тем что:
1. 1C с его большим количеством таблиц для него агрессивная среда.
2. Виндовоз для него тоже Агрессивная среда.
Тогда возникает вопрос для кого слоны создавались?
Отсюда мораль - надо думать перед тем как шашкой махать.

Так ведь шашкой никто не машет, а вот на стандартной конфигурации PG пол России тупит. За 2 месяца перенастроил много баз PG 10 и все стало работать быстрее.
Что касается 9-ой версии PG - на ней не надо было менять настройки - скачал с сайт 1С и все работает нормально.
26. alex_sh2008 4 09.09.19 10:59 Сейчас в теме
(25)
Тогда возникает вопрос для кого слоны создавались?

Для web приложений
27. ogidni 143 09.09.19 11:14 Сейчас в теме
(26) Для Web приложений есть MySQl - которому нет равных по скорости.
До 3.22 версии были у Дельфина ограничения по объему баз.
до 5-ой версии были торможения при базах свыше 10 Гиг и тормоза с большими запросами(Union All с группировками итп).
На сегодняшний у дельфина вообще проблем нет.
Во Веб приложениям дельфин - это как Ferrari и слонам там места не оставили.
28. vv2 09.09.19 11:34 Сейчас в теме
(27) Когда он создавался, всё вами перечисленное ещё отсутствовало.
29. ogidni 143 09.09.19 11:39 Сейчас в теме
(28)
Когда он создавался, всё вами перечисленное ещё отсутствовало.

Да я еще под столом ползал и по "Диалапу" пытался выйти в сеть.
31. alex_sh2008 4 09.09.19 11:51 Сейчас в теме
(27)есть разные приложения и архитектуры приложений, где то хорошо подходит mysql а где то pqsql. К примеру многие системы документооборота используют именно pgsql.
33. ogidni 143 09.09.19 12:06 Сейчас в теме
(31)
есть разные приложения и архитектуры приложений, где то хорошо подходит mysql а где то pqsql. К примеру многие системы документооборота используют именно pgsql

Да в системах документооборота с использованием версионирования слоны, при правильной ахитектуре таблиц в несколько раз превосходят MSSQL.
35. alex_sh2008 4 09.09.19 13:04 Сейчас в теме
(33)
в несколько раз превосходят MSSQL

опять же зависит от многих факторов, в базах в несколько 10тб уже условия другие будут
Fox-trot; +1 Ответить
36. ogidni 143 09.09.19 13:15 Сейчас в теме
(35)
опять же зависит от многих факторов, в базах в несколько 10тб уже условия другие будут

Вопрос есть ли такие рабочие базы 1С? Максимум я работал с 1 ТБ базой ERP на MSSQL 14.
Перевести ее на Postgree для теста не могу, так как при выгрузке базы в *.dt файл вываливается с ошибкой.
Так что будет до конца дней жить в майрософте.
38. alex_sh2008 4 09.09.19 13:30 Сейчас в теме
(36)А ни нет смысла переводить, для ERP pg не подойдет, из за своей специфики pg очень хорошо обслуживает множество коротких транзакций, а вот большие и с большими объемами данных транзакции для него тяжеловаты.
39. ogidni 143 09.09.19 13:33 Сейчас в теме
(38)
А ни нет смысла переводить, для ERP pg не подойдет, из за своей специфики pg очень хорошо обслуживает множество коротких транзакций, а вот большие и с большими объемами данных транзакции для него тяжеловаты.

Читал на форуме "Слоноводов" - то что в 11 Ent данную проблему решили и мол даже получили выигрыш над Оракулом и Мелкомягкими.
Проверить пока что не могу. Пишу конвертацию по полной выгрузке базы 1ТБ базы. Пока что не получилось получить 100% аналог.
40. alex_sh2008 4 09.09.19 13:39 Сейчас в теме
(39)Сильно я сомневаюсь в этом. Получается они за такой короткий срок переписали все ядро сервера.
41. ogidni 143 09.09.19 13:41 Сейчас в теме
(40)
Сильно я сомневаюсь в этом. Получается они за такой короткий срок переписали все ядро сервера.

вот одна из картинок.
В одиннадцатой версии системы ускорили формирование индексов, а также внедрили покрывающие индексы и улучшили индексный поиск по JSON. Также оптимизировали механизмы одновременного исполнения запросов и секционирования таблиц. Повысилось удобство создания SQL-запросов, оконные функции теперь полностью покрывают стандарт языка SQL:2011. Транзакциями в процедурных языках, которые поддерживает решение, можно управлять вручную.

Postgres Pro Enterprise 11 получил расширенную поддержку управления доступом пользователей, в частности, на уровне отдельных записей. Интегрировали в решение и ключевые криптографические функции семейства SHA2, призванные вывести на новый уровень надежность хранения хешей паролей. В новой версии поддерживаются автономные транзакции и есть нативный планировщик заданий.
42. alex_sh2008 4 09.09.19 13:43 Сейчас в теме
(41)Ну картинки, это реклама, и может ничего общего не иметь с реальностью
43. ogidni 143 09.09.19 13:44 Сейчас в теме
(42)
Ну картинки, это реклама, и может ничего общего не иметь с реальностью

А у вас имеются опыт по работе с большими данными в PG 11 Pro Ent?

Вот еще немного цитат из рекламных буклетов:
В пределе СУБД Postgres Pro Enterprise 11 способна выдержать нагрузку до 10 000 одновременно работающих пользователей и 1 млн транзакций в секунду при размере базы данных до 150 ТБ, при этом максимальная задержка при восстановлении работоспособности кластера составит менее 1 секунды (данные в зависимости от используемого серверного оборудования).
44. alex_sh2008 4 09.09.19 13:50 Сейчас в теме
(43)Я не использую пг, только тестирую и много что меня не устраивает. В особенности поддержка нескольких баз данных в одном кластере, сильная зависимость настроек сервера от структуры базы.
30. vv2 09.09.19 11:40 Сейчас в теме
(25) Вроде как Postgresql создавался как постреляционная СУБД, с наследованием таблиц и прочим модным и нужным кому-то функционалом.
32. ogidni 143 09.09.19 12:04 Сейчас в теме
(30)
Вроде как Postgresql создавался как постреляционная СУБД, с наследованием таблиц и прочим модным и нужным кому-то функционалом.

Да данный функционал, очень хорошо приживается к 1С. К Вебу больше нужна скорость отдачи данных, никто не будет ждать пока сайт открывается 20 и более секунд.
34. capitan 1245 09.09.19 12:44 Сейчас в теме
(32)реляционная СУБД она и в африке реляционная СУБД
Единственно что она может быть критична к конфигурации сервера потому что все тащит в память как скуль или не критична как мускуль
В принципе все это регулируется настройками, потому что каждый создатель СУБД хочет и старается чтобы ее везде использовали
например для постгри есть сайт леонард ин уа и там как раз можно взять нормальные настройки под любой вариант использования.
Поэтому рассказывать что какая то СУБД из первой пятерки в разы превосходит какую то из первой же пятерки - это просто кривые настройки 99%
Есть профессиональное тестирование TPC и у него есть сайт на котором все СУБД гордятся собой там можно все это увидеть
37. ogidni 143 09.09.19 13:24 Сейчас в теме
(34)
Есть профессиональное тестирование TPC и у него есть сайт на котором все СУБД гордятся собой там можно все это увидеть

Как правило все проф тесты - есть маркетинг. Никаких реальных данных там нет.
Сам по себе данный топик был после того как на сайте Postgres(на Инфостарте есть перевод статьи) увидел рекламу в которой обещали двукратный прирост скорости по сравнению с 10-ой версии. После 2 недель различных изнурительных тестов с разными настройками 10 и 11 версии - никакого роста не увидел, сплошь маркетинг для недалеких домохозяек.
Видать надо было как то обосновать траты на покупку Postgres SQL 11 Ent. При чем я скажу стоимость там не детская и даже выше чем у MSSQL, даже с учетом цен на операционку Windows Server 20**
Из чего складываются цены на Postgres SQL 11 Ent не понятно.
При чем я так понимаю в связи с использованием Postgres SQL - возникают риски что на какой нибудь 19 платформе 1С КОРП, надо будет купить лицензии Postgres Enterprise - не то там какие нибудь ядра перестанут функционировать.
А пока то продолжаю пользовать 10-у версию слона с сайта users.v8 доп настройками под 1С.
45. capitan 1245 09.09.19 13:55 Сейчас в теме
(37)Не все в этом мире маркетинг друг мой.
Иногда есть и нормальные исследования, но нигилистам этого не понять

И маленько уже подзадолбали эти рассказы про купить лицензии Postgres Enterprise
Уже стерся отвечать - для 1С постгри бесплатный
Точка
Если интересно - здесь же уже раз 100 отвечал можно погуглить
46. ogidni 143 09.09.19 14:05 Сейчас в теме
(45)
Не все в этом мире маркетинг друг мой.

Полностью согласен - еще бывает пропаганда и агитация.
Если есть ссылки на норм проф исследования pg на 1С то пожалуйста выложите.
Уже стерся отвечать - для 1С постгри бесплатный

Все же чутка подприкупили лицензий pg 11 pro ent для одного Муниципалитета(централиз бухгалтерия), чтобы разбавить Заморские продукты с "Аля Российскими". Есть требование к гос. закупкам - процентное соотношение Российское-Заморское ПО - для гос компаний.
Массовую закупку слонов - не планируем.

В обосновании на покупку так и написали:
В пределе СУБД Postgres Pro Enterprise 11 способна выдержать нагрузку до 10 000 одновременно работающих пользователей и 1 млн транзакций в секунду при размере базы данных до 150 ТБ, при этом максимальная задержка при восстановлении работоспособности кластера составит менее 1 секунды (данные в зависимости от используемого серверного оборудования).
Спасибо маркетологам за счастливое детство.
48. ogidni 143 09.09.19 14:40 Сейчас в теме
(34)
Поэтому рассказывать что какая то СУБД из первой пятерки в разы превосходит какую то из первой же пятерки - это просто кривые настройки 99%

Да согласен. Под типовые решения от 1С БУХ 3.0, УТ 11, ЗУП 3.1
небходимы особые настройки
Как мимнимум
autovacuum = on
online_analyze.threshold = 50
online_analyze.scale_factor = 0.1
online_analyze.enable = on
online_analyze.verbose = off
online_analyze.local_tracking = on
online_analyze.min_interval = 10000 

online_analyze.table_type = 'temporary' - спорный иногда необходим online_analyze.table_type = 'all' (Если база маленькая)

Эта настройка под Linux как турбина для Лады калины при выполнении больших запросов, особенно заметно на динамических списках.
shared_preload_libraries = 'online_analyze, plantuner'

По моим скромным наблюдениям - под Виндовозом данный параметр - эффекта не дает

random_page_cost = 1.1
для SSD дает прирост скорости. Для сверхбыстрых накопителей типа NVME - можно вставить 0.1-0.5. Но я выбрал 0.8-1.1
seq_page_cost = 0.1
Так же настройка под SSD

fsync = off
Дает прирост на запись 1-10%. Можно ставить под VMware либо с RAID массивами с батарейкой. Если не уверены то лучше оставить on, чтобы не потерять данные

row_security = off
Дает очевидный прирост по скорости. На больших базах 1 ТБ и выше - чуть ли не в 10 раз
52. ansh15 10.09.19 11:44 Сейчас в теме
(48)
либо с RAID массивами с батарейкой.

На хорошем аппаратном RAID контроллере с кэшем в 1-4 ГБ и модулем защиты кэша
fsync = on и full_page_writes=on почти не приводят уменьшению производительности. Оно наблюдается, в основном, на обычных SATA HDD. Хотя, и не так сильно как на более ранних версиях PostgreSQL лет 7-8 назад. То есть, выключить можно, но смысла нет.
53. ogidni 143 10.09.19 13:58 Сейчас в теме
(52)
На хорошем аппаратном RAID контроллере с кэшем в 1-4 ГБ и модулем защиты кэша
fsync = on и full_page_writes=on почти не приводят уменьшению производительности. Оно наблюдается, в основном, на обычных SATA HDD. Хотя, и не так сильно как на более ранних версиях PostgreSQL лет 7-8 назад. То есть, выключить можно, но смысла нет.

На одной большой базе:
1 ERP база почти 2 TB
2. Контроллер HPE P440/4G Smart Array (чтение/запись с суперконденсатором)
3. SSD 480 Gb Intel DC S4600 - 8 шт
4. Vmware ESXi
5 Wind Server 2018
Кеш не справляется. Видно это по счетчикам: %WAIT и %VMWAIT утилиты esxtop.
Если вешаю базу на отдельный 4 Tb SSD диск без Хранилки на sata порт без Raid контроллера (SSD 3.84 Tb SATA D3-S4610 ) - то скорость выпростает почти в 1.5 раза.
Правда база на MSSQL.
Похоже пора хранилку покупать с кешем 10gb и выше
54. ansh15 10.09.19 15:53 Сейчас в теме
(53)
SSD 480 Gb Intel DC S4600

SSD 400 - 1200 Gb SAS 12Gb/s вполне подойдут для такой высоконагруженной системы, они уже и не очень дорого стоят.

Скорость чтения До 2150 Мб/сек
Скорость записи До 2120 Мб/сек
IOmeter, скорость записи 4Кб файлов, глубина очереди=32 320000 IOPS
Это заявляется для Western Digital Ultrastar DC SS530 800 Гб
на sata порт без Raid контроллера

При интенсивном чтении/записи/перезаписи какова нагрузка на CPU? Процентов 90 или меньше?
56. ogidni 143 10.09.19 18:50 Сейчас в теме
55. alex_sh2008 4 10.09.19 16:12 Сейчас в теме
(53)
Кеш не справляется. Видно это по счетчикам: %WAIT и %VMWAIT утилиты esxtop.

причем тут дисковый массив и эти счетчики, эти счетчики показывают сколько вообще ждет машина ресурсов. У вас может балансировка кривая или банально не хватка памяти на хосте, загонят в свопинг машины.
57. ogidni 143 10.09.19 18:53 Сейчас в теме
(55)
причем тут дисковый массив и эти счетчики, эти счетчики показывают сколько вообще ждет машина ресурсов. У вас может балансировка кривая или банально не хватка памяти на хосте, загонят в свопинг машины.

Сначало делали 2 виртуалки + Сервер 1С и Скуль.
Сейчас одна виртуалка. Балансировать нечего. Смысл в том что на одном ssd все быстре фурышчит.
Вывод сделал что рейд контролер слабый. Счетчиков-статистики использования памяти Raid контроллера не нашел
Памяти 512gb. Я так краем уха слышал что SSD плохо работают с RAID контроллерами.
Говорят под них надо покупать специализированные SSD полки
58. nomad_irk 8 10.09.19 19:09 Сейчас в теме
(57)ну как бэ.....латентность массива будет ВСЕГДА выше латентности одного диска. Т.к. у вас нагрузка маленькая, то на одном диске получается шустрее. Массив повышает параллелизм работы, а не общую скорость.
59. ogidni 143 10.09.19 19:17 Сейчас в теме
(58)тут согласен, тем не менее большинство рейдов создавались под слабые сата и сам диски. Время на месте не стоит, а нормальные полки стоят как луноход Nasa
63. nomad_irk 8 10.09.19 20:04 Сейчас в теме
(59)Так с помощью этих "полок" вы деньги зарабатываете как бэ :)
60. alex_sh2008 4 10.09.19 19:19 Сейчас в теме
(57) нормально они работают если поддерживают, для vmware нужны драйвера на этот контроллер, как правило производители делают такие драйвера, если вообще vmware поддерживает этот контроллер. 1 диск будет конечно лучше, но судя по параметрам железки у вас криво настроен sql сервер.
61. ogidni 143 10.09.19 19:35 Сейчас в теме
(60)поддерживает ESXi почти серверное все оборудование Hp. А судя по каким параметрам вы делаете выводы?
62. alex_sh2008 4 10.09.19 20:00 Сейчас в теме
(61)8 дисковый массив, 512Гб памяти, и при этом винда или vmware свопит на диск. Значит есть проблемы с конфигурацией одна из которых это win 2018, поставьте убунту или цент ос, их pg и vmware точно поддерживает.
65. ogidni 143 10.09.19 20:26 Сейчас в теме
(62)думал об этом, только базу не могу выгрузить в dt—шник. Два часа что то грузит и вылетает. Свопа как такового нету особо. Частого Page fault—а нету. Проблема в очередях на диск. Как там буду скрины скину
67. alex_sh2008 4 10.09.19 20:33 Сейчас в теме
(65)а зачем выгружать в дт, просто за архивируйте кластер и восстановите его на никсе с исправлением прав, главное что бы версии движка совпадали
68. ogidni 143 10.09.19 20:34 Сейчас в теме
(67) какой кластер ? Майкрософт в постгрис?
70. alex_sh2008 4 10.09.19 20:36 Сейчас в теме
(68)кластер постгрес, его можно тупо скопировать в другое место и поднять. или у вас мс sql?
71. ogidni 143 10.09.19 22:41 Сейчас в теме
72. alex_sh2008 4 11.09.19 08:16 Сейчас в теме
(71)Ну тогда нет смысла мигрировать, если кончено партия не сказала, тогда через дамп с конвертацией диалекта, на гитхабе видел скрипт который дампы скл сервера конвертирует в диалект постгре, или по пробовать 64 разрядную 1С
73. ogidni 143 11.09.19 10:56 Сейчас в теме
(72) Под 64 битной и запускал. Конвертация диалекта к сожалению не работает под 1С. Скачивал я эту разработку - допиливать надо.
Потом забил на это дело. Начал выгружать доки в XMLб только времени не хватает - лучше так и жить в Майкроскуле
74. alex_sh2008 4 11.09.19 11:08 Сейчас в теме
(73)правильное решение, лучше нормально настройте конфигурацию 1с + ms sql и спокойно пейте кофе с шоколадкой на работе;)
75. alex_sh2008 4 11.09.19 11:13 Сейчас в теме
(73)Что касается выгрузок тут делается все без участия 1С, нужно знать хорошо диалект двух серверов, ну или хотя бы иметь таблицу соответствия. Еще как вариант, сделать РИБ базы 1С на другой сервер, а потом отключить РИБ
76. ogidni 143 11.09.19 11:43 Сейчас в теме
(75)
ок тут делается все без участия 1С, нужно знать хорошо диалект двух серверов, ну или хотя бы иметь таблицу соответствия. Еще как вариант, сделать РИБ

Хорошая идея - сделаю план обмена типовой по Организации и попробую выгрузить ;-)
66. ogidni 143 10.09.19 20:28 Сейчас в теме
(64)пардон, 2016 server и стоит, отпечатался выше
69. alex_sh2008 4 10.09.19 20:34 Сейчас в теме
(66)ну тогда что то не так с настройками, смотреть все надо начиная от драйверов райда, настроек виртуальной машны, версий тулзов вмваре и т.д.
64. alex_sh2008 4 10.09.19 20:14 Сейчас в теме
(61)vmware на текущий момент поддерживает win 2016, которые выше частично, в основном эмуляция
47. ogidni 143 09.09.19 14:30 Сейчас в теме
Анекдот Про Слона:
Встречаются два приятеля.
Один хвастается: "Купил слона! Так здорово! Он теплый такой, дом согревает, с детьми играет, огород поливает!"
Второй приятель: "Продай слона!"
Первый: "Нет! Слон такой хороший! На хоботе у него можно покачаться, в жаркий день он фонтаном работает! Нет, не продам слона!"
В конце концов второй уговорил продать ему слона.

Встречаются на следующий день.
Второй приятель: "Слушай, твой слон мне всю мебель переломал, кучу сделал, детей напугал!"
Первый: "Ну-у с таким настроением ты слона не продашь!"
49. ogidni 143 09.09.19 15:08 Сейчас в теме
Так же заметил такую особенность
1 - если размер базы больше чем доступная память, online_analyze.enable = on, начинаются тормоза и блокировки.
2 - По MSSQL - та же история при включенном версионировании снимков.(Snapshot Level). Видно по первому тесту гилева с вываливание ошибки при нехватке оперативной памяти
для себя сделал рекомендации по памяти RAM под БД с уровнем комфорта 5+:
1 Posgres - Объем рабочих баз умножить на 1
effective_cache_size - размер рабочих баз /2 и при этом не меньше половина от памяти RAM
2. MSSQL с включенным версионированием снимков в режиме совместимости ядра 8.3.12 и выше - Объем рабочих баз умножить на 1,5
50. DrZombi 10.09.19 10:00 Сейчас в теме
Судя по комментариям, автору статьи еще работать и работать :)
51. ogidni 143 10.09.19 10:23 Сейчас в теме
(50)
Судя по комментариям, автору статьи еще работать и работать :)

работа не волк, в лес не убежит
Оставьте свое сообщение