Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
26 Июл 2017, 15:37
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Медленная работа 8.3 с Postgresql  (Прочитано 9802 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн agp14

  • *
  • Сообщений: 3
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2014-05-08
  • Сайт: 
Добрый день.

Данные:
   1.   Два одинаковых по мощности сервера. ОС == CentOS 6.5
   2.   На одном  Postgresql 9.1.2-1.1C  и 1С:Предприятие 8.2 (8.2.19.83)
      На втором Postgresql 9.2.4-1.1C  и 1С:Предприятие 8.3 (8.3.4.465)
   3.   Конфигурация: 1С:Медицина. Зарплата и кадры бюджетного учреждения, редакция 1.0 (1.0.71.2)
   4.   База одна и та же (перенесена через .dt)
   
Что делаем:
   1.   Делаем начисление зарплаты: Расчет зарплаты - Начисление зарплаты - Добавить - Выбираем сотрудника - Рассчитать - Полный расчет
   
В чем проблема:
   1. На платформе 8.2 - расчет происходит 3-5 секунд.
   2. На платформе 8.3 - расчет происходит несколько минут!
   
Что еще знаю:
   1. Процесс postmaster при расчете на 8.3 загружает проц на 100%
   2. Вывел медленные запросы в лог, оказалось самые медленные запросы - это delete
      Вот пример для сравнения:
На 8.2:
	LOG:  duration: 0.567 ms  statement: DELETE FROM _CRgActP685
WHERE EXISTS(
SELECT 1
FROM tt65 T2
WHERE (_CRgActP685._RecorderTRef = T2._RecorderTRef AND _CRgActP685._RecorderRRef = T2._RecorderRRef AND _CRgActP685._LineNo = T2._LineNo)
AND _CRgActP685._RecorderTRef = T2._RecorderTRef AND _CRgActP685._RecorderRRef = T2._RecorderRRef AND _CRgActP685._LineNo = T2._LineNo)

На 8.3:
	LOG:  duration: 26744.827 ms  statement: DELETE FROM _CRgActP685
WHERE EXISTS
SELECT 1
FROM (SELECT 1 AS SDBL_DUMMY) SDBL_DUAL
INNER JOIN (SELECT
T4._RecorderTRef AS RecorderTRef,
T4._RecorderRRef AS RecorderRRef,
T4._LineNo AS LineNo_
FROM _CRgActP685 T4
INNER JOIN tt65 T5
ON T4._RecorderTRef = T5._RecorderTRef AND T4._RecorderRRef = T5._RecorderRRef AND T4._LineNo = T5._LineNo LIMIT 100000) T3
ON _CRgActP685._RecorderTRef = T3.RecorderTRef AND _CRgActP685._RecorderRRef = T3.RecorderRRef AND _CRgActP685._LineNo = T3.LineNo_
WHERE _CRgActP685._RecorderTRef = T3.RecorderTRef AND _CRgActP685._RecorderRRef = T3.RecorderRRef AND _CRgActP685._LineNo = T3.LineNo_)

 Заранее спасибо за любые подсказки.


Оффлайн Besart

  • *****
  • Сообщений: 678
  • РЕПУТАЦИЯ: 142
  • КПД: 21%
  • Регистрация: 2012-12-10
    • Skype: artfa.a
  • Компания: Фрилансер
  • Профессия: Программист 8.1
запускайте все на 8.2

Оффлайн 1c-brigita

  • Консультант 1С
  • ***
  • Сообщений: 192
  • РЕПУТАЦИЯ: 13
  • КПД: 7%
  • +7 (812) 633-34-39
  • Регистрация: 2013-05-14
  • Компания: Бригита
  • Профессия: Консультант 1С
Такой вопрос лучше "1С"-у задавать в поддержке. :dfbbdrfb:

Оффлайн DmitriyF

  • *****
  • Сообщений: 706
  • РЕПУТАЦИЯ: 43
  • КПД: 6%
  • Регистрация: 2013-03-18
  • Сайт: 
  • Профессия: Разработчик 1С
Добрый день.

Данные:
   1.   Два одинаковых по мощности сервера. ОС == CentOS 6.5
   2.   На одном  Postgresql 9.1.2-1.1C  и 1С:Предприятие 8.2 (8.2.19.83)
      На втором Postgresql 9.2.4-1.1C  и 1С:Предприятие 8.3 (8.3.4.465)
   3.   Конфигурация: 1С:Медицина. Зарплата и кадры бюджетного учреждения, редакция 1.0 (1.0.71.2)
   4.   База одна и та же (перенесена через .dt)
   
Что делаем:
   1.   Делаем начисление зарплаты: Расчет зарплаты - Начисление зарплаты - Добавить - Выбираем сотрудника - Рассчитать - Полный расчет
   
В чем проблема:
   1. На платформе 8.2 - расчет происходит 3-5 секунд.
   2. На платформе 8.3 - расчет происходит несколько минут!
   
Что еще знаю:
   1. Процесс postmaster при расчете на 8.3 загружает проц на 100%
   2. Вывел медленные запросы в лог, оказалось самые медленные запросы - это delete
      Вот пример для сравнения:
На 8.2:
	LOG:  duration: 0.567 ms  statement: DELETE FROM _CRgActP685
WHERE EXISTS(
SELECT 1
FROM tt65 T2
WHERE (_CRgActP685._RecorderTRef = T2._RecorderTRef AND _CRgActP685._RecorderRRef = T2._RecorderRRef AND _CRgActP685._LineNo = T2._LineNo)
AND _CRgActP685._RecorderTRef = T2._RecorderTRef AND _CRgActP685._RecorderRRef = T2._RecorderRRef AND _CRgActP685._LineNo = T2._LineNo)

На 8.3:
	LOG:  duration: 26744.827 ms  statement: DELETE FROM _CRgActP685
WHERE EXISTS
SELECT 1
FROM (SELECT 1 AS SDBL_DUMMY) SDBL_DUAL
INNER JOIN (SELECT
T4._RecorderTRef AS RecorderTRef,
T4._RecorderRRef AS RecorderRRef,
T4._LineNo AS LineNo_
FROM _CRgActP685 T4
INNER JOIN tt65 T5
ON T4._RecorderTRef = T5._RecorderTRef AND T4._RecorderRRef = T5._RecorderRRef AND T4._LineNo = T5._LineNo LIMIT 100000) T3
ON _CRgActP685._RecorderTRef = T3.RecorderTRef AND _CRgActP685._RecorderRRef = T3.RecorderRRef AND _CRgActP685._LineNo = T3.LineNo_
WHERE _CRgActP685._RecorderTRef = T3.RecorderTRef AND _CRgActP685._RecorderRRef = T3.RecorderRRef AND _CRgActP685._LineNo = T3.LineNo_)

 Заранее спасибо за любые подсказки.

Настройки Слонов одинаковы на обоих серверах?

Оффлайн agp14

  • *
  • Сообщений: 3
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2014-05-08
  • Сайт: 
1. По-крайней мере postgresql.conf одинаков.

Оффлайн kirill1970

  • *
  • Сообщений: 18
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2012-12-06
  • Сайт: 
  • Профессия: Ученик 1С

Оффлайн DmitriyF

  • *****
  • Сообщений: 706
  • РЕПУТАЦИЯ: 43
  • КПД: 6%
  • Регистрация: 2013-03-18
  • Сайт: 
  • Профессия: Разработчик 1С
1. По-крайней мере postgresql.conf одинаков.
Пробуйте настраивать. Возможно что то изменилось в самой проге. Или на крайняк возьмите сборку от etersoft установите настройте так же и проверьте скорость работы.

Оффлайн imozg

  • *
  • Сообщений: 1
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2011-02-02
  • Сайт: 
  • Профессия: Программист 1С
Присоединяюсь к теме. Беда такая же. УПП 1.3, релиз платформы 8.3.5.1146
Добавлено: 08 Окт 2014, 08:48

На чуть чуть получилось увеличить время работы за счет замены значений в postgres.conf
seq_page_cost = 0.1
random_page_cost = 0.11

Но это совсем не то чтобы хотелось. Пока решили перейти обратно на 8.2
Добавлено: 08 Окт 2014, 10:29

Похожие проблемы так же не решены на тут и тут

Последний раз редактировалось: imozg; 08 Окт 2014, 10:29. Причина: Объединение сообщений

Оффлайн IBR83

  • *
  • Сообщений: 1
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2015-05-19
  • Сайт: 
  • Профессия: Ученик 1С
У меня была такая-же проблема на Зарплата и кадры бюджетного учреждения, но затем я попробовал установить вместо PostgreSQL от поставить PostgreSQL от Etersoft, заработало влет, сегодня запущу в продакшен, завтра посмотрю как будет работать.

Оффлайн ScannerDarkly

  • *
  • Сообщений: 9
  • РЕПУТАЦИЯ: 1
  • КПД: 11%
  • Регистрация: 2012-05-24
  • Сайт: 
  • Профессия: Программист 8.1
У нас такая же трабла с регистром расчетов на 8.3.6

При записи движений, вот этот запрос выполняется наверное секунд 90.
DELETE FROM _CRgActP6122                                                                                                                  
WHERE EXISTS(                                                                                                                             
SELECT 1                                                                                                                                 
FROM (SELECT 1 AS SDBL_DUMMY) SDBL_DUAL                                                                                                   
INNER JOIN (SELECT                                                                                                                       
T4._RecorderTRef AS RecorderTRef,                                                                                                         
T4._RecorderRRef AS RecorderRRef,                                                                                                         
T4._LineNo AS LineNo_                                                                                                                     
FROM _CRgActP6122 T4                                                                                                                     
INNER JOIN tt24 T5                                                                                                                       
ON T4._RecorderTRef = T5._RecorderTRef AND T4._RecorderRRef = T5._RecorderRRef AND T4._LineNo = T5._LineNo LIMIT 100000) T3               
ON _CRgActP6122._RecorderTRef = T3.RecorderTRef AND _CRgActP6122._RecorderRRef = T3.RecorderRRef AND _CRgActP6122._LineNo = T3.LineNo_   
WHERE _CRgActP6122._RecorderTRef = T3.RecorderTRef AND _CRgActP6122._RecorderRRef = T3.RecorderRRef AND _CRgActP6122._LineNo = T3.LineNo_)

На MSSQL или в файловой это пара секунд.
Решение Postgres от Etersoft выдает те же результаты


Теги:
 


* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

alex0402
94 Сообщений
oleg-x
82 Сообщений
Геннадий ОбьГЭС Геннадий ОбьГЭС
68 Сообщений
Golickoff Golickoff
51 Сообщений
AIFrame
46 Сообщений
ilyay ilyay
42 Сообщений
Амал
30 Сообщений
Dethmontt Dethmontt
22 Сообщений
lansy
22 Сообщений
xproh
21 Сообщений

* Кто онлайн

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal