7.7 Остатк И Сводныйостаток

olga13

Well-Known Member
10.10.2008
208
0
#1
Добрый день.
И снова о регистрах.
У меня есть два практически одинаковых регистра. Разница лишь в том, что в одном остатки хранятся по партиям, а в другом - без партий. Человек, который создавал такую структуру, мотивировал это тем, что функция "Остаток" работает быстрее, чем "СводныйОстаток". Так ли это? Мне кажется, что дублирование информации гораздо хуже. Каково ваше мнение?
 

puh14

Well-Known Member
11.07.2008
1 412
0
#2
Когда вы вычисляете остаток платформа берет ближайшую дату, на которую рассчитаны итоги по измерениям и досчитывает по записям до нужной даты. С партиями записей становится в разы больше. Количество записей в итогах без партий меньше, поэтому на регистрах без партий что остаток, что сводный остаток будут работать быстрее.
Когда вы вызываете функцию сводный остаток, платформа выполняет вызов запроса к БД. А вот как выглядит запрос и насколько он хорош по скорости можно посмотреть в профайлере ( вот вам и объективное сравнение). Плюс есть еще дополнительная индексация измерений регистров - тоже может помочь с скоростью.

Дублирование информации происходит в разных таблицах - единственный минус это время потраченное на запись в них, а так больше это ни на что не влияет.

З.Ы. по хорошему - прямой запрос к БД будет работать еще быстрее (даже с партиями).
 

olga13

Well-Known Member
10.10.2008
208
0
#3
Когда вы вычисляете остаток платформа берет ближайшую дату, на которую рассчитаны итоги по измерениям и досчитывает по записям до нужной даты. С партиями записей становится в разы больше. Количество записей в итогах без партий меньше, поэтому на регистрах без партий что остаток, что сводный остаток будут работать быстрее.
Когда вы вызываете функцию сводный остаток, платформа выполняет вызов запроса к БД. А вот как выглядит запрос и насколько он хорош по скорости можно посмотреть в профайлере ( вот вам и объективное сравнение). Плюс есть еще дополнительная индексация измерений регистров - тоже может помочь с скоростью.

Дублирование информации происходит в разных таблицах - единственный минус это время потраченное на запись в них, а так больше это ни на что не влияет.

З.Ы. по хорошему - прямой запрос к БД будет работать еще быстрее (даже с партиями).
Спасибо за ответ. Видимо, мой предшественник все-таки был прав.

А что такое "дополнительная индексация измерений регистров"?
 

Allexei

Well-Known Member
02.05.2008
322
1
#4
Спасибо за ответ. Видимо, мой предшественник все-таки был прав.

А что такое "дополнительная индексация измерений регистров"?
Создается дополнительный индекс по регистру.
Пример индекса:
Измерение+Период+Регистратор+Номер строки
Для Измерение - включено индексирование
 

Дайнеко

Well-Known Member
19.11.2009
951
0
#8
Ни черта Ваш предшественник не прав!

Разве может быть большее зло чем, мусор и нагроможденность! как пишет коллега Пух, грамотно настроив регистр или применяя приемы программирования добиваемся нужной производительности.

Да, верно то, что СводныйОстаток работает медленнее. Но насколько! На милисекунды на всей номенклатуре. Которых пользователь не заметит. А на противовесе - бестолковая структура данных с ее минусами:
- время проведения
- тщательный контроль, что бы все доки синхронно изменяли оба регистра. Опыт учит, что когда-нибудь они разойдутся. "Если гадость только теоретически может случиться - она случается". Примерно так писал закон Мерфи.
- при разработке любого отчета ломать голову - с какого брать данные.
- размер данных.

Вот так рождаются уродцы.