Имя: Пароль:
1C
1C 7.7
v7: Регистр, Выбрать и Получить движения, поясните длительность выполнения операций?
,
0 aka AMIGO
 
29.09.11
09:20
БД ДБФ, замеряю производительность работы отчета
реперные точки:
Рег.УстановитьЗначениеФильтра("Товар", Выбтовар, 1); обращение 1 раз, 0.00%
Рег.ВыбратьДвижения() - обращение 1 раз, 0.02%
Пока Рег.ПолучитьДвижение()=1 Цикл - обращение 8 раз, 77.24%

Казалось-бы, выбрать движения - гораздо более долгая операция, чем эти движения уже из выбранного получить..

в БД сейчас 15 человек, отчет зависает на получении движений надолго.. минут на 5

может быть, что-нибудь посоветуете, как ускорить, или заменить этот долгоиграющий оператор?
1 zak555
 
29.09.11
09:21
фильтр на фирму где ?
2 aka AMIGO
 
29.09.11
09:21
(1) конфа практически самодельная, фирмы в регистре нет
3 zak555
 
29.09.11
09:29
Рег.УстановитьЗначениеФильтра("Товар", Выбтовар, 2);  ?
4 aka AMIGO
 
29.09.11
09:31
(3) - 2 - это я знаю, для списка значений, или группы.. у меня один  товар..
5 zak555
 
29.09.11
09:31
(4) это отбор
6 aka AMIGO
 
29.09.11
09:32
(5) уговорил.. попробую..
7 zak555
 
29.09.11
09:32
хотя почему не запрос ?
8 aka AMIGO
 
29.09.11
09:34
(7) запрос я тоже попробую.. счас пока "2"-ку мучаю..
9 Cthulhu
 
29.09.11
10:02
Если фильтр задан по первым измерениям без пропусков - 1с-ина выборку делает по индексу. Иначе - перебором записей.
Поэтому - есть такой прием: ликвидировать пробелы в фильре в порядке следования измерений; гораздо быстрее получается наложить несколько раз фильтры БЕЗ пропусков измерений и выбрать движение, чем накладывать один раз фильтр с пропуском измерений (в порядке их следования). НАМНОГО быстрее!
прим.: то же замечание касается и получения сводных остатков, есичо.
10 1Сергей
 
29.09.11
10:54
(9) спс за инфу
11 aka AMIGO
 
29.09.11
11:31
извините за таймаут, ГБ выдернула с места..
(9) - выигрыш в 2 раза.. это существенно, так что спасибо за совет!
Закон Брукера: Даже маленькая практика стоит большой теории.