Отправляет email-рассылки с помощью сервиса Sendsay

1С и электронная коммерция

  Все выпуски  

1С и электронная коммерция Производительность. Оптимизация работы документов (продолжен




1С и электронная коммерция    Рассылка сайта Новый Иерусалим on-line

Понедельник, 23 Октября 2006 года (10 Октября 2006 по ст.ст.)
Седмица 20-я по Пятидесятнице, Глас вторый


Мчч. Евлампия и Евлампии (303-311). Прп. Амвросия, старца Оптинского и всея России чудотворца (1891). + Собор преподобных Оптинских старцев: Льва, Макария, Амвросия, Моисея, Антония, Илариона, Исаакия (1-го), Анатолия (старшего), Иосифа, Варсонофия, Анатолия (младшего), Нектария, Исаакия (2-го), Никона. Свт. Амфилохия, еп. Владимиро-Волынского (1122). Собор Волынских святых: прп. Иова Почаевского, свтт. Стефана и Амфилохия, епп. Владимиро-Волынских, прпмч. Макария, архим. Овручского, блгв. Феодора, кн. Острожского, Ярополка, кн.Владимиро-Волынского и Иулиании, княж. Ольшанской. Блж. Андрея, Христа ради юродивого, Тотемского (1637). Мч. Феотекна (III-IV). Прп. Вассиана Константинопольского (V). Прп. Феофила исп. (VIII). Страдание 26 прпмчч. Зографского м-ря от латин: игумена Фомы, монахов Варсонофия, Кирилла, Михея, Симона, Илариона, Иова, Иакова, Киприана, Саввы, Иакова, Мартиниана, Космы, Сергия, Павла, Мины, Иосифа, Иоанникия, Антония, Евфимия, Дометиана, Парфения и 4 мирян. Сщмч. Макария, архим. Каневского. Св. блгв. Яропокла, кн. Владимиро-Волынского. Св. Феодора (в мон. Феодосия), кн. Острожского. Прп. Иулиании Ольшанской. Свт. Павлина, архиеп. Йоркского (644) (Кельт. и Брит.). Новосщмчч. Феодора (Поздеевского), архиеп. Волоколамского и Иннокентия (Смирнова), еп. Пензенского.

Производительность. Оптимизация работы документов (продолжение).

Графы отбора

Определение граф отбора является одним из наиболее ответственных моментов с точки зрения производительности системы.

С одной стороны графы отбора являются мощным средством оптимизации выборки информации по некоторым значениям. С другой стороны само поддержание графы отбора требует иногда весьма значительных ресурсов системы.

Приведем описание устройства и использования граф отбора, которое позволит оценить при разработке конфигурации целесообразность определения той или иной графы.

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

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

один документ может быть отнесен к достаточно большому количеству значений

отборов. Например, если к графе отбора "Товары" прикрепить реквизит "Товар" табличной части и измерение "Товар" регистра "УчетТоваров", то документ будет отнесен к стольким значениям графы отбора, сколько различных товаров будет в табличной части документа и(или) в его движениях регистра. Каждое вхождение документа в графу отбора заносится в список отдельной строкой. Таким образом, количество вхождений  документа в различные графы отбора определяет затрачиваемые на поддержание граф отбора ресурсы.

Очевидно, что большое количество вхождений документов в графы отбора повлечет существенное увеличение объема информационной базы и увеличения времени затрачиваемого на запись и проведение документа. Еще раз заметим, что объем ресурсов определяется суммарным количеством вхождений документов в графы отбора, которое зависит от количества значений реквизитов, данных регистров и бухгалтерских операций, которые в документах определены для включения документа в графы отбора. Так, в приведенном примере, графа отбора "Склад" вызовет по одному вхождению на приходные и расходные накладные и два вхождения на накладную на внутреннее перемещение. Тогда, как графа отбора "Товар" вызовет столько вхождений, например, расходной накладной, сколько различных товаров она будет содержать, то есть это может быть несколько десятков и несколько сотен записей в списке отбора. Это означает, что при проектировании графы отбора следует также учитывать и предполагаемое среднее количество строк в основных документах. Само количество граф отбора практически не влияет на производительность системы. Так, например, можно сделать одну графу отбора: "Организации" или две графы отбора: "Покупатели" и "Поставщики". При условии, что каждый реквизит документа, который был бы отнесен к графе "Организации" будет отнесен к одной из двух граф отбора, затраты ресурсов системы будут практически одинаковыми.

Теперь рассмотрим использование граф отбора. Можно выделить два основных назначения граф отбора:

1) Отбор документов при просмотре журнала документов.

2) Оптимизация выборки информации в отчетах, обработках и других алгоритмах.

Отбор документов при просмотре журналов весьма удобное средство, которое предоставляет пользователям возможность быстро получить, например, выборку всех документ по конкретной организации. Отбор может устанавливаться принудительно из языка, выбираться из специального диалога или выбираться с помощью закладок окна журнала. Однако заметим, что организация отборов для просмотра журналов должно производиться весьма взвешенно, так как поддержание большого числа граф отбора, особенно с большим количеством вхождений может серьезно сказаться на производительности системы. Оптимизация выборки информации с использованием графы отборы происходит в следующих случаях:

1) Графа отбора может быть автоматически использована системой для оптимизации выполнения запроса (объект "Запрос"). Это происходит в случае, если указано условие запроса, определенное равенством переменной запроса конкретному значению (переменной, элементу диалога) и все данные определенные для данной переменной запроса определены также в графе отбора. Например, если запрос строится по регистру взаиморасчетов и условие ограничивает выборку данных одним значением измерения регистра (организацией) и данное измерение регистра включено в некоторую графу отбора, то при выполнении запроса будет использована графа отбора и будут обрабатываться только документы относящиеся к данной организации. Если существует более одной графы отбора которая может быть использована для оптимизации выполнения запроса, то система пытается самостоятельно выбрать графу отбора, разброс значений которой будет максимальным. Существует возможность принудительно указать запросу использование конкретной графы отбора. Она будет использована только в случае соответствия условия запроса структуре графы.

2) Графа отбора может быть автоматически использована системой для оптимизации выполнения временного расчета регистров оперативного учета в случае, если одно из измерений или один из реквизитов, для которого установлено конкретное значение фильтра, входит в графу отбора. Также как и при оптимизации выполнения запроса, система выбирает из возможных по условию фильтра наиболее подходящую графу отбора с точки зрения разброса значений. Существует возможность указать принудительно определенную графу отбора, если она соответствует фильтру.

3) Графа отбора может быть автоматически использована системой для оптимизации выборки движений регистра оперативного учета в случае, если измерение (или реквизит) для которого установлено конкретное значение фильтра входит в графу отбора. Система выбирает из возможных по условию наиболее подходящую графу отбора. Существует возможность указать принудительно определенную графу отбора, если она соответствует фильтру.

4) Графа отбора может быть использована для перебора документов по конкретному значению отбора из встроенного языка методом объекта типа "Документ".

Заметим, что во всех перечисленных режимах оптимизируемых с помощью граф отбора ускоряется собственно перебор документов, относящихся к определенному значению графы отбора. При этом эффективность оптимизации будет зависеть от объема данных документа, которые затем будут уже последовательно отбираться. Например, если запрос или выборка движений регистров выполняются по контрагенту, по которому, как правило, на один документ приходится одно движение регистра использование графы отбора может увеличить производительность системы на данной операции в десятки и сотни раз.

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

Если рассмотреть случай, когда графа отбора строится по товарам и среднее количество строк в документе достаточно большое, например 100 и разброс использования товаров достаточно маленький (в большом количестве документов продаются одни и те же товары), реально ускорение будет не очень большое. Так как при помощи графы отбора выбираться будут документы, в которых встречался такой товар, а уже внутри документа будут перебираться строки или движения регистра. При этом если товар встречается в половине документов, то использование графы отбора сократит количество анализируемых системой движений регистров только в два раза. Если разброс использования товаров достаточно большой и среднее количество строк в документах невысокое (например, 5-10) то результат оптимизации выборки информации при использовании графы отбора будет более значительным.

Таким образом, эффективность создания граф отбора для оптимизации расчетов и выборок по движениям регистров оперативного учета и данным многострочных документов должна определяться исходя из среднего количества документов, которые будут относиться к одному значению отбора.

Например, можно отметить существенное влияние наличия граф отбора на формирование таких отчетов как "Карточка клиента". Такого рода отчеты формируются перебором движений регистра и параллельным временным расчетом регистров для определения текущего остатка. И то, и другое действие вызывается с установленным фильтром. Наличие графы отбора позволяет существенно ускорить построение такого отчета, особенно, если количество движений регистра в документе в среднем невелико.

Следует заметить, что в версии 7.7 существует возможность устанавливать отборы движений в свойствах измерений и реквизитов регистров. Установка этих отборов не предоставляет возможности выборки документов при визуальном просмотре, однако их использование существенно ускоряет выборки движений регистров, временные расчеты и выполнение запросов по регистру в случае, если устанавливается условие запроса или фильтр объекта "Регистр" по конкретному значению измерения или реквизита. Эти отборы система использует автоматически, если они установлены в метаданных. Использование для оптимизации выборки движений отборов движений обычно эффективнее использования граф отбора, так как отбираются непосредственно движения, а не документы. Кроме того, поддержание отборов в движениях регистров не столь существенно увеличивает объем базы данных, так как ведется не с помощью отдельной таблицы, а с помощью построения дополнительных индексов.

Важным аспектом применения граф отбора является использование в алгоритмах конфигурации самого факта наличия графы отбора. В одних случаях конфигурация создается таким образом, что ее алгоритмы не рассчитаны, на наличие графы отбора, а создание графы отбора ускоряет выполнение некоторых отчетов и обработок. Например, отчет о продажах по конкретному клиенту значительно ускорится, при создании в конфигурации графы отбора по контрагентам. В другом случае конфигурация может в определенных алгоритмах непосредственно быть ориентирована на существование определенной графы отбора. Например, при проведении документа задним числом временный расчет остатков товаров на момент документа может выполняться по каждой позиции документа отдельно исходя из того, что при наличии графы отбора по товарам расчет итогов регистра по каждому товару данного документа отдельно (с использованием фильтра) будет выполняться быстрее, чем по всем товарам вообще. Разумеется, если такой графы отбора существовать не будет, то такой алгоритм будет обходить все движения регистра столько раз, сколько товаров в данном документе. Кроме того, при большом количестве строк в документах использование графы отбора также не даст большого эффекта. Таким образом, создание в конфигурациях алгоритмов явно ориентированных на существование графы отбора требует четкого осмысления предполагаемого эффекта и возможно экспериментов на реальных данных.

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

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

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


Архив рассылки по адресу: www.anobis.ru
Пишите нам: mags05@mail.ru
ICQ: 340597008

Надежные серверы и графические станции на платформе Intel (Xeon) и AMD различного назначения. Большой выбор моделей. Сборка конфигураций на заказ. Трехлетняя гарантия, сервисное обслуживание серверов с выездом к Заказчику. Бесплатная доставка.

Новый Иерусалим on-line: Все о Ново Иерусалимском монастыре, фотогаллерея, доска православных объявлений (знакомства, трудоустройство и др.), расписание автобусов и электричек, православный чат, схема проезда до монастыря, форум, православный интернет редактор - окажет профессиональную помощь в поддержке Вашего сайта любой тематики (возможно постоянное сотрудничество) и много другой полезной информации.

Приглашаем рекламодателей размещать текстовую рекламу в виде статей, обзоров и новостей в наших рассылках и сайтах - более 28 368 подписчиков. Заявки присылайте по почте и ICQ 340597008. Подробнее здесь>>>

Подпишитесь на другие наши рассылки

Рассылки Subscribe.Ru
Секреты рекламы и создания интернет-магазинов
Скидки, подарки, призы...
1С и электронная коммерция
Серверы, сетевое оборудование, тесты, характеристики, советы
Рукопашный бой для девушек – выживание, психология, самозащита!
Милосердие. Чем ты можешь помочь ближнему.
Православные знакомства.
Здоровый образ жизни.

В избранное