• Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

  • CTF с учебными материалами Codeby Games

    Обучение кибербезопасности в игровой форме. Более 200 заданий по Active Directory, OSINT, PWN, Веб, Стеганографии, Реверс-инжинирингу, Форензике и Криптографии. Школа CTF с бесплатными курсами по всем категориям.

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

  • Автор темы olga13
  • Дата начала
O

olga13

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

puh14

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

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

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

olga13

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

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

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

Спасибо за ответ. Видимо, мой предшественник все-таки был прав.

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

Allexei

Спасибо за ответ. Видимо, мой предшественник все-таки был прав.

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

Allexei

Да. отбор движений и отбор итогов. Но это ИМНО
 
Д

Дайнеко

Ни черта Ваш предшественник не прав!

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

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

Вот так рождаются уродцы.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!