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

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

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

  • *****
  • Сообщений: 725
  • РЕПУТАЦИЯ: 47
  • КПД: 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

  • *****
  • Сообщений: 725
  • РЕПУТАЦИЯ: 47
  • КПД: 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 авторов за месяц

oleg-x
89 Сообщений
alex0402
53 Сообщений
AIFrame
43 Сообщений
Геннадий ОбьГЭС Геннадий ОбьГЭС
37 Сообщений
Oldman06
31 Сообщений
Golickoff Golickoff
30 Сообщений
vitasw
29 Сообщений
MuI_I_Ika MuI_I_Ika
19 Сообщений
DmitriyF DmitriyF
14 Сообщений
Св Ч Св Ч
12 Сообщений

* Кто онлайн

  • Точка Гостей: 254
  • Точка Скрытых: 0
  • Точка Пользователей: 4
  • Точка Сейчас на форуме:

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

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

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

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

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal