Различия

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

Ссылка на это сравнение

ru:creating_user_reports:create_optimum [2014/03/03 10:57]
barinova [Особенности работы с памятью]
ru:creating_user_reports:create_optimum [2018/06/04 14:22] (текущий)
Строка 13: Строка 13:
 ===== Объектная модель и скорость получения данных ===== ===== Объектная модель и скорость получения данных =====
  
-Работа Business Studio построена на СУБД MS SQL. Все данные о бизнес-модели хранятся в ней определенным образом. Структуры данных и их связи между собой описаны в **Объектной модели** (см. главу [[/ru/manual/report/object_model]]).+Работа Business Studio построена на СУБД MS SQL. Все данные о бизнес-модели хранятся в ней определенным образом. Структуры данных и их связи между собой описаны в **Объектной модели** (см. главу [[/ru/manual/manual]] -> [[/ru/manual/report/object_model]]).
  
 Параметры (данные), которые использует пользователь в своей работе, делятся на: Параметры (данные), которые использует пользователь в своей работе, делятся на:
Строка 95: Строка 95:
 ==== Рекомендация 1  - Создавать фильтры по хранимым параметрам и спискам ==== ==== Рекомендация 1  - Создавать фильтры по хранимым параметрам и спискам ====
  
-Создавать фильтры по возможности по хранимым параметрам и спискам.+Создавать фильтры следует по возможности по хранимым параметрам и спискам.
  
 Если одни и те же данные можно получить фильтрацией по хранимому или нехранимому параметру, то необходимо создавать условия по хранимому параметру. Если одни и те же данные можно получить фильтрацией по хранимому или нехранимому параметру, то необходимо создавать условия по хранимому параметру.
Строка 134: Строка 134:
 ==== Рекомендация 2 – Создавать фильтры по "Элементам списков" и Связям ==== ==== Рекомендация 2 – Создавать фильтры по "Элементам списков" и Связям ====
  
-Создавать фильтры по возможности по "Элементы списков" и справочникам связей, а не по параметрам типа "Список", где:+Создавать фильтры следует по возможности по "Элементы списков" и справочникам связей, а не по параметрам типа "Список", где:
  
-  * "Элементы списков" - корневой раздел в **Объектной модели** (см. [[/ru/manual/report/object_model#элементы_списков|Элементы списков]]);+  * "Элементы списков" - корневой раздел в **Объектной модели** (см. статью [[/ru/manual/manual]] -> [[/ru/manual/report/object_model#элементы_списков|Элементы списков]]);
   * Связи - справочники в **Объектной модели** (**Классы -> Общие связи**).   * Связи - справочники в **Объектной модели** (**Классы -> Общие связи**).
  
-Как было указано ранее, параметры типа "Список" являются сами по себе фильтрами. Поэтому вывод списков у объектов в "Класс" или фильтр по таким спискамприводят к созданию подзапросов SQL, что приводит к дополнительным затратам времени на получение необходимой выборки данных. В то же время "Элементы списков" по сути являются просто cправочниками, так же как и справочники в "Классы". Фильтрация по справочнику - чистый запрос SQL, он работает быстрей.+Как было указано ранее, параметры типа "Список" являются сами по себе фильтрами. Поэтому вывод списков у объектов в "Класс" или фильтр по таким спискам приводят к созданию подзапросов SQL, что приводит к дополнительным затратам времени на получение необходимой выборки данных. В то же время "Элементы списков" являются просто справочниками, так же как и справочники в "Классы". Фильтрация по справочнику - чистый запрос SQL, он работает быстрей.
  
 Эта рекомендация работает почти во всех случаях, когда нужно найти что-то по связям чего-то с чем-то. В случае, если надо найти отсутствие этих связей, то необходимо делать поиск через "Классы". Эта рекомендация работает почти во всех случаях, когда нужно найти что-то по связям чего-то с чем-то. В случае, если надо найти отсутствие этих связей, то необходимо делать поиск через "Классы".
Строка 158: Строка 158:
 Во всех фильтрах следует как можно больше сужать область поиска по хранимым параметрам. Во всех фильтрах следует как можно больше сужать область поиска по хранимым параметрам.
  
-Исходя из того, что:+Следует учитывать, что:
  
   * Самыми быстрыми операциями являются операции с хранимыми параметрами.   * Самыми быстрыми операциями являются операции с хранимыми параметрами.
   * Чем меньше данных будет выбрано для обработки, тем быстрее произойдет обработка данных.   * Чем меньше данных будет выбрано для обработки, тем быстрее произойдет обработка данных.
  
-Поэтомунеобходимо задавать условия по хранимым фильтрам так, чтобы в результаты фильтра попадало больше целевой информации, что сведет к минимуму количество операций для её последующей обработки: расчету нехранимых параметров, дополнительной фильтрации.+Поэтому необходимо задавать условия по хранимым фильтрам так, чтобы в результаты фильтра попадало больше целевой информации, что сведет к минимуму количество операций для её последующей обработки: расчету нехранимых параметров, дополнительной фильтрации.
  
 **Пример. Необходимо найти все процессы первого уровня.** **Пример. Необходимо найти все процессы первого уровня.**
Строка 179: Строка 179:
 <endTableBox| Таблица 2. Условия фильтра> <endTableBox| Таблица 2. Условия фильтра>
  
-==== Рекомендация 4 – Не включать опции привязок если это не требуется ====+==== Рекомендация 4 – Не включать опции привязокесли это не требуется ====
  
 Если известно, что данные в сложной привязке не будут иметь дублирования или пустых строк, то не рекомендуется выставлять опции: Если известно, что данные в сложной привязке не будут иметь дублирования или пустых строк, то не рекомендуется выставлять опции:
Строка 233: Строка 233:
 <endTableBox| Таблица 4. Условия фильтра по справочнику "Физические лица"> <endTableBox| Таблица 4. Условия фильтра по справочнику "Физические лица">
  
-В отчете в настройках сложной привязки типа "Фильтр" выбирается на показ параметр "Фамилия И.О.", который является нехранимым. Поэтомудля ускорения создания отчета в настройках фильтра на вкладке **Показ** необходимо установить флажок для параметров:+В отчете в настройках сложной привязки типа "Фильтр" выбирается на показ параметр "Фамилия И.О.", который является нехранимым. Поэтому для ускорения создания отчета в настройках фильтра на вкладке **Показ** необходимо установить флажок для параметров:
   * "Фамилия"   * "Фамилия"
   * "Имя"   * "Имя"
Строка 266: Строка 266:
 С точки зрения минимизации времени получения данных, правильным будет первый путь, так как второй путь предполагает работу с параметром "Потомки" справочника с нестандартной иерархией. Работа с нехранимым параметром "Все сотрудники" выполняется быстрее, так как этот параметр оптимизирован по быстродействию разработчиком. С точки зрения минимизации времени получения данных, правильным будет первый путь, так как второй путь предполагает работу с параметром "Потомки" справочника с нестандартной иерархией. Работа с нехранимым параметром "Все сотрудники" выполняется быстрее, так как этот параметр оптимизирован по быстродействию разработчиком.
  
-В подобных ситуациях если в справочниках уже есть параметры, предоставленные разработчиком, то рекомендуется использовать их, а не создавать свои условия. Они уже оптимизированы по времени выполнения.+В подобных ситуацияхесли в справочниках уже есть параметры, предоставленные разработчиком, то рекомендуется использовать их, а не создавать свои условия. Они уже оптимизированы по времени выполнения. 
 + 
 +==== Рекомендация 8 - Не использовать привязку с RTF полем в качестве источника, если оно содержит большое количество данных ==== 
 + 
 +Вставка полей RTF занимает больше времени, чем вставка обычных текстовых полей. \\  
 +Для ускорения процесса формирования отчётов можно: 
 +  - Если возможности RTF для каких-то параметров не нужны - вместо таких полей RTF использовать простые текстовое поля. 
 +  - Вместо вывода содержимого полей RTF выводить в отчёте ссылки на файлы, куда предварительно вынести соответствующую информацию (подробнее об этом см. в примере ниже). 
 +  
 + 
 +**Пример. К процессу нужно приложить документ, содержащий значительное количество информации** 
 + 
 +В данном случае рекомендуем сделать следующее: 
 +  * Всю информацию поместить в документ MS Word (*.doc, *.docx). 
 +  * Создать бумажный\электронный документ и в поле "Файл бумажного документа" указать ссылку на этот документ. 
 +  * Поместить данный документ на вкладку "Нормативно-справочные документы" процесса. 
 + 
 +В отчёте нужно создать следующую привязку: 
 +  * Тип привязки "BAND". 
 +  * Источник данных "Объект" - "Нормативно-справочные документы". \\ Чтобы её найти, поставьте галку "Показывать всё" в левом верхнем углу окна. 
 +  * Параметр объекта "Файл" 
 + 
 +Такой вариант отчёта будет формироваться быстрее, чем вариант с выводом содержимого полей RTF. 
 + 
 +[<contextnavigator>] 
 + 
Актуальные новости, публикации и практики для бизнес-архитекторов и аналитиков
Driven by DokuWiki