Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Горячая тема (более 10 ответов) РассчитатьРегистрыПо и долгое проведение (число прочтений - 3963 )
noxxx
Full Member
***
Отсутствует


1c++ rocks 8)

Сообщений: 239
Местоположение: Москва
Зарегистрирован: 24. Августа 2007
Пол: Мужской
РассчитатьРегистрыПо и долгое проведение
28. Сентября 2009 :: 10:09
Печать  
Здравствуйте, господа.
Пришло время оптимизации и столкнулся я с такой непонятной вещью.

У нас дописанный ПУБ, имеем документ "РеализацияПродукции" с 19 строками. Проведение выполняется за 17 (!!!) секунд. Соответственно, все курят в это время. Стал смотреть через замер производительности - 12 секунд выполняется Регистры.РассчитатьРегистрыПо(Конт.ТекущийДокумент()); из процедуры глСписаниеМПЗРасчетРегистров(), которая ЕМНИП является типовой 1С-овской.

Подскажите, с чем может быть связана такая медленная обработка и куда ковырнуть, что б ускорить этот процесс?  Смущённый
  
Наверх
ICQ  
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3047
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: РассчитатьРегистрыПо и долгое проведение
Ответ #1 - 28. Сентября 2009 :: 10:23
Печать  
для начала установить фильтры.
  

1&&2&&3
Наверх
 
IP записан
 
noxxx
Full Member
***
Отсутствует


1c++ rocks 8)

Сообщений: 239
Местоположение: Москва
Зарегистрирован: 24. Августа 2007
Пол: Мужской
Re: РассчитатьРегистрыПо и долгое проведение
Ответ #2 - 28. Сентября 2009 :: 10:46
Печать  
trad писал(а) 28. Сентября 2009 :: 10:23:
для начала установить фильтры.


Фильтры устанавливаются. Проверил. Что еще посмотреть?
  
Наверх
ICQ  
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3047
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: РассчитатьРегистрыПо и долгое проведение
Ответ #3 - 28. Сентября 2009 :: 11:23
Печать  
в регистре по измерению ТМЦ (или как он у тебя называется?..) установить "Отбор движений" и, если оно не первое в регистре, "Отбор итогов".
  

1&&2&&3
Наверх
 
IP записан
 
noxxx
Full Member
***
Отсутствует


1c++ rocks 8)

Сообщений: 239
Местоположение: Москва
Зарегистрирован: 24. Августа 2007
Пол: Мужской
Re: РассчитатьРегистрыПо и долгое проведение
Ответ #4 - 28. Сентября 2009 :: 11:28
Печать  
trad писал(а) 28. Сентября 2009 :: 11:23:
в регистре по измерению ТМЦ (или как он у тебя называется?..) установить "Отбор движений" и, если оно не первое в регистре, "Отбор итогов".


Спасибо, попробую
  
Наверх
ICQ  
IP записан
 
noxxx
Full Member
***
Отсутствует


1c++ rocks 8)

Сообщений: 239
Местоположение: Москва
Зарегистрирован: 24. Августа 2007
Пол: Мужской
Re: РассчитатьРегистрыПо и долгое проведение
Ответ #5 - 28. Сентября 2009 :: 12:10
Печать  
Теперь Регистры.РассчитатьРегистрыПо(Конт.ТекущийДокумент())  выполняется за 8 секунд. Можно еще как-то ускорить программно? Или уже железки и на уровне SQL-сервера?
  
Наверх
ICQ  
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3047
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: РассчитатьРегистрыПо и долгое проведение
Ответ #6 - 28. Сентября 2009 :: 12:59
Печать  
Цитата:
Можно еще как-то ускорить программно?
может быть и можно.
+ железо: диски, память.
+ прямые запросы
  

1&&2&&3
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: РассчитатьРегистрыПо и долгое проведение
Ответ #7 - 28. Сентября 2009 :: 14:37
Печать  
Вычисления идут по каждой строке отдельно или сразу по всем строкам документа ?
  
Наверх
 
IP записан
 
noxxx
Full Member
***
Отсутствует


1c++ rocks 8)

Сообщений: 239
Местоположение: Москва
Зарегистрирован: 24. Августа 2007
Пол: Мужской
Re: РассчитатьРегистрыПо и долгое проведение
Ответ #8 - 29. Сентября 2009 :: 06:58
Печать  
Z1 писал(а) 28. Сентября 2009 :: 14:37:
Вычисления идут по каждой строке отдельно или сразу по всем строкам документа ?


Сразу по всем.

Фишка в том, что из-за специфики работы документы проводятся всегда задним числом. Порой бывает, что документ, проводимый задним числом, проводится в 10 раз медленнее, чем если этот же документ провести "сегодняшним числом", т.е. после ТА, т.к. расчета регистров не происходит.

В базе данные за 3 года работы, размер 11 Гб.

Сейчас сижу и думаю, то ли переписывать проведение на прямые запросы, то ли что  Нерешительный
  
Наверх
ICQ  
IP записан
 
U_zer
Экс-Участник


Re: РассчитатьРегистрыПо и долгое проведение
Ответ #9 - 29. Сентября 2009 :: 07:10
Печать  
noxxx писал(а) 29. Сентября 2009 :: 06:58:
Z1 писал(а) 28. Сентября 2009 :: 14:37:
Вычисления идут по каждой строке отдельно или сразу по всем строкам документа ?



Сейчас сижу и думаю, то ли переписывать проведение на прямые запросы, то ли что  Нерешительный


Да сразу так все не надо переписывать, наверное. Лучше попробовать переписать расчет остатков на одном критичном документе, а потом посмотреть, стоит ли оно того или нет.
  
Наверх
 
IP записан
 
noxxx
Full Member
***
Отсутствует


1c++ rocks 8)

Сообщений: 239
Местоположение: Москва
Зарегистрирован: 24. Августа 2007
Пол: Мужской
Re: РассчитатьРегистрыПо и долгое проведение
Ответ #10 - 29. Сентября 2009 :: 07:21
Печать  
Цитата:
noxxx писал(а) 29. Сентября 2009 :: 06:58:
Z1 писал(а) 28. Сентября 2009 :: 14:37:
Вычисления идут по каждой строке отдельно или сразу по всем строкам документа ?



Сейчас сижу и думаю, то ли переписывать проведение на прямые запросы, то ли что  Нерешительный


Да сразу так все не надо переписывать, наверное. Лучше попробовать переписать расчет остатков на одном критичном документе, а потом посмотреть, стоит ли оно того или нет.


Расчет остатков переписать? Разве это можно сделать?
  
Наверх
ICQ  
IP записан
 
U_zer
Экс-Участник


Re: РассчитатьРегистрыПо и долгое проведение
Ответ #11 - 29. Сентября 2009 :: 07:54
Печать  
noxxx писал(а) 29. Сентября 2009 :: 07:21:
Цитата:
noxxx писал(а) 29. Сентября 2009 :: 06:58:
Z1 писал(а) 28. Сентября 2009 :: 14:37:
Вычисления идут по каждой строке отдельно или сразу по всем строкам документа ?



Сейчас сижу и думаю, то ли переписывать проведение на прямые запросы, то ли что  Нерешительный


Да сразу так все не надо переписывать, наверное. Лучше попробовать переписать расчет остатков на одном критичном документе, а потом посмотреть, стоит ли оно того или нет.


Расчет остатков переписать? Разве это можно сделать?


Нужно!
  
Наверх
 
IP записан
 
noxxx
Full Member
***
Отсутствует


1c++ rocks 8)

Сообщений: 239
Местоположение: Москва
Зарегистрирован: 24. Августа 2007
Пол: Мужской
Re: РассчитатьРегистрыПо и долгое проведение
Ответ #12 - 29. Сентября 2009 :: 08:07
Печать  
Цитата:
noxxx писал(а) 29. Сентября 2009 :: 07:21:
Расчет остатков переписать? Разве это можно сделать?


Нужно!


Я, может, что-то не понимаю  Озадачен
Пока отказался от расчета регистров партий и мест хранения и контролирую расход и списание ручками.

Есть какой-то еще способ?
  
Наверх
ICQ  
IP записан
 
U_zer
Экс-Участник


Re: РассчитатьРегистрыПо и долгое проведение
Ответ #13 - 29. Сентября 2009 :: 08:10
Печать  
Ну, ты на верном пути. Вообще, не используй РасчитатьРегистрыНа(По), Используй запрос по табл. части и остаткам, если тебе они нужны.
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать