Имя: Пароль:
1C
1C 7.7
v7: Ускорить прямой запрос
,
0 kloptula
 
24.03.15
15:40
Всем привет. Есть конфигурация на опер. учете. Проведение по критичным регистрам переписано на прямые запросы. В итоге время проведения 1 документа "задним" числом уменьшилось с 1 минуты до 12-13 секунд. Хочется еще ускорить, возможно ли и в какую сторону копать?
1 D_E_S_131
 
24.03.15
15:41
"Проведение по критичным регистрам переписано на прямые запросы." — интересно, как это сделано?
2 kloptula
 
24.03.15
15:41
Забыл добавить. Если документ проводится 1-й раз, время 12-13 секунд, если повторно перепровести этот же документ, то он проводится за 1 секунду.
3 kloptula
 
24.03.15
15:41
(1) 1cpp
4 kloptula
 
24.03.15
15:43
(1) имеется ввиду заменен вызов ВыгрузитьИтоги() на выборку прямым запросом.
5 D_E_S_131
 
24.03.15
15:44
"Хочется еще ускорить, возможно ли и в какую сторону копать?" — а откуда уверенность, что можно еще быстрее сделать?
6 kloptula
 
24.03.15
15:45
(5) см. (2)
7 D_E_S_131
 
24.03.15
15:50
(6) Вероятно, первый раз создаются записи в таблице, а при повторной записи анализируется, что ничего не изменилось и ничего не делается.
8 Herby
 
24.03.15
16:10
(6) так запрос кэшируется вот и быстрее.
9 Ёпрст
 
24.03.15
16:12
1с это много
10 Ёпрст
 
24.03.15
16:12
1 сек
11 Herby
 
24.03.15
16:13
(0) если уверен, что запрос написан грамотно, то можно еще
покопать в сторону добавлений индексов. но с ними тоже не стоит перебарщивать, это как раз тот случай когда кашу можно испортить маслом.
12 Злопчинский
 
24.03.15
16:18
Снова - много лишних записей.
Убить нулевые итоги.
13 Злопчинский
 
24.03.15
16:18
Проблемы с сетью
работа в локалке а не втерминале
и прочее
14 kloptula
 
24.03.15
16:21
(12) Нет там нулевых итогов. Я базу только развернул на SQL. А насколько мне известно при выгрузке-загрузке итоги пересчитываются.

(13) Все и так в терминале.
15 Ёпрст
 
24.03.15
16:26
сам запрос то на вт слеплен поди, да ?
16 Ёпрст
 
24.03.15
16:27
ускорить можно
1.сделать период хранения останков 5 дней
2. налепить индексы на измерения
3. переписать алгоритмы проведения
17 kloptula
 
24.03.15
16:37
(15) ага на них самых.
18 kloptula
 
24.03.15
16:37
(15) лучше самому соединять, без ВТ?
19 Ёпрст
 
24.03.15
16:41
(18) да нет, просто смотреть план запроса и..оптимизировать.
Только вот, как правило, получение итогов при проведении, это маааааленькая часть всего алгоритма проведения дока.
20 kloptula
 
24.03.15
16:43
(19) Что переписывать в алгоритмах, если самая долгая операция (98%) это ВыполнитьИнструкцию() в прямом запросе.

(16) А каким образом индексы на измерения налепить? Подскажите где можно подсмотреть.
21 Ёпрст
 
24.03.15
16:58
в пофигураторе, первое, поставить индекс на табличку движений воткнув галку быстрая обработка движений..
потом, можно понавтыкать галок (только не бездумно) на отбор итогов и движений на нужные измерения
22 kloptula
 
24.03.15
17:40
(21) Спасибо за советы, попробую ускорить процесс
23 kloptula
 
24.03.15
19:13
Все таки видимо проблема в алгоритме. Если делаю выборку по одной строке документа, отрабатывает быстро ~50мс. В плане запросов посмотрел, поиск только по индексам. Вообщем круто и быстро работает.

Проблема в том, что в расходных документах по 500-700 строк и строки могут дублироваться. А расчитывать остатки мне необходимо с учетом уже сформированных движений, поэтому приходится вызывать запрос 500-700 раз (для каждой строки). Отсюда долгое время общего проведения документа.

Что ж за непруха то такая.
24 Новый участник
 
24.03.15
19:24
(23) За это на экзамене выгоняют или даже заставляют писать тиражные рарусовские конфы.

Не надо каждую строку проводить, исправляй это. Свёртку ТЧ придумали давно, не игнорируй её.
25 kloptula
 
24.03.15
19:30
(24) Ну тогда пусть 1с своих программистов повыгоняет с работы. Так типовой алгоритм работает. Да и ТЧ в общем случае не получится свернуть.
26 Новый участник
 
24.03.15
19:35
(15) Где это так проводятся документы? Старая методика была посчитать, чтоб не в ммнус, провести. Новая - провести, проверить минусы, откатить. Но чтоб цикл проведения по строкам  - сомневаюсь я.

Что за конфа?
27 kloptula
 
24.03.15
19:46
(26) Не цикл проведения по строкам, а учет при расчете остатка уже сформированных движений документа. Конфигурация ТиС ред. 9.2.
28 FN
 
24.03.15
20:14
(23) Запрос делай один раз и выгружай в ТЗ, потом по ходу проведения сразу меняй ТЗ с учетом уже сделанных движений.
В итоге на каждую строку будешь в ТЗ иметь актуальные данные.
Классика...
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс