Оптимизация хранимых условий отбора Миндияров Илья Главный специалист Центра информационных технологий и консалтинга ПАРУС mindiyarov@parus.ru.

Презентация:



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

Сведение отчетности Центр учета Возможности версии «Парус-Бюджет 8.5.4» Эксперт-аналитик ДМА Вера Пономаренко.
Новые возможности КОР Краткий обзор. Новые возможности КОР Использование доменов для работы с данными типа CLOB и BLOB Настройка условий.
Предопределенный импорт «Парус-Предприятие 8» Материалы вебинара можно скачать по ссылке:
Oracle Application Express Некоторые приемы работы при реализации WEB- доступа к Парус 8.
Описание различных способов получения отчетов MS Excel в "ПАРУС - Предприятие 8" Миндияров Илья Главный специалист Центра информационных технологий и консалтинга.
Администрирование информационных систем Администрирование БД. Управление разрешениями.
Начало работы с Системой Итак, Система установлена на Вашем компьютере. Что дальше? Теперь необходимо сформировать базу данных, зарегистрировать пользователей.
PL/SQL Триггеры (INSERT, UPDATE, DELETE). Определение Три́ггер базы данных (англ. trigger) это хранимая процедура особого типа, которую пользователь не.
Система контроля прав доступа При помощи процедур и триггеров в MySQL.
Построение запросов в Access. Преимущества запросов Они позволяют собирать воедино информацию из нескольких таблиц, учитывая связи, установленные между.
Содержание: 1. Управление данными. а) Извлечение данных команда SELECT; б) Полный список разделов. 2. Раздел SELECT. а) Синтаксис раздела SELECT; б) Ключевые.
Доработки приложения «Администратор» за 2012 год Московец Олег Аналитик Отдела обеспечения поддержки продаж Центра информационных технологий и консалтинга.
CREATE TABLE Ident_table ( ID int IDENTITY(1, 1), some_values varchar(50)); IDENTITY [ ( seed, increment ) ]
Язык QBE Язык QBE -общая характеристика Табличный двумерный язык, основанный на реляционном исчислении. Декларативный язык. Язык четвертого поколения (4.
Настройка прав доступа к файлам и папкам Windows.
Переключение между домашней сетью и сетью на рабочем месте. 1.Доступ в Интернет 2.Включение общего доступа к файлам и принтерам 3. Использование домашней.
Отчеты с типом «Двоичные данные» «Парус-Предприятие 8» Материалы вебинара можно скачать по ссылке:
«ИЗМЕНЕНИЕ ДАННЫХ В БД» Выполнил: студент 722 группы Специальности Информационные системы (по отрослям) Токарев Виктор.
Санкт-Петербургский Государственный Университет Математико-механический факультет Кафедра системного программирования Научный руководитель: Б.А. Новиков.
Транксрипт:

Оптимизация хранимых условий отбора Миндияров Илья Главный специалист Центра информационных технологий и консалтинга ПАРУС

Комплексная система управления. Хранимые условия отбора Для пользователей, которым надо манипулировать несколькими типовыми комбинациями условий отбора, предлагается альтернативный механизм, называемый хранимыми условиями отбора. Он доступен во всех приложениях Системы в большинстве разделов. Суть этого механизма в том, что пользователь имеет возможность заранее подготовить для каждого раздела Системы любое количество типовых условий отбора. ПРОБЛЕМА1: Медленная работа хранимых условий отбора. ПРОБЛЕМА2: Нет возможности выполнить процедуру PL/SQL, для реализации сложной логики. РЕШЕНИЕ1: Ждать реализации условий отбора в разделе через РЕШЕНИЕ1: Ждать реализации условий отбора в разделе через PKG_COND_BROKER РЕШЕНИЕ2: Установить проектное решение из этой презентации

Комплексная система управления. Пример использования Система контроля учетных данных Пример папок отбора

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

Комплексная система управления. Оптимизация хранимых условий отбора ВАЖНО! После выполнения скрипта из Hru.zip будет заменен штатный объект F_CONDFOLDERS_WHERE_CLAUSE Теперь при написании запросов станут доступны следующие конструкции /*rawsql*/ - при добавлении условия не будут добавляться in (…) /*rawsql*/ - при добавлении условия не будут добавляться in (…) /*proc … proc*/ - перед выполнением запроса будет выполнена процедура PL/SQL /*proc … proc*/ - перед выполнением запроса будет выполнена процедура PL/SQL

Комплексная система управления. Пример использования В модуле Администратор Словари->Хранимые условия отбора->Таблицы отбора

Комплексная система управления. Пример использования Выполняем действие Генерация состава

Комплексная система управления. Пример использования В модуле Администратор Словари->Хранимые условия отбора->Схемы отбора

Комплексная система управления. Пример использования Выбираем действие Папки…

Комплексная система управления. Пример использования Добавляем папку _В месяце

Комплексная система управления. Пример использования Добавляем папку _Текущий расчет

Комплексная система управления. Пример использования Создадим функции create or replace function UDO_F_SLCALCWAGES_CALCMONTH return number is begin return PKG_SLCALCWAGES.CALCMONTH; end; / grant execute on UDO_F_SLCALCWAGES_CALCMONTH to public / create or replace function UDO_F_SLCALCWAGES_CALCYEAR return number is begin return PKG_SLCALCWAGES.CALCYEAR; end; / grant execute on UDO_F_SLCALCWAGES_CALCYEAR to public / create or replace function UDO_F_SLCALCWAGES_CALCULATION return number is begin return PKG_SLCALCWAGES.CALCULATION; end; / grant execute on UDO_F_SLCALCWAGES_CALCULATION to public /

Комплексная система управления. Пример использования В модуле Расчет зарплаты Функции->Расчет зарплаты перейдем на вкладку Папки

Комплексная система управления. Пример использования Запустим Монитор SQL-запросов

Комплексная система управления. Пример использования Узнаем как называется (какой имеет псевдоним) главное представление раздела select V_CLNPSPFM.*, F_CLNPSPFM_GET_CHARGE(NCOMPANY, NRN) N78928, F_CLNPSPFM_GET_RETAIN(NCOMPANY, NRN) N78929, F_CLNPSPFM_GET_OVERPAY(NCOMPANY, NRN) N78930, F_CLNPSPFM_GET_PAY(NCOMPANY, NRN) N78931, F_CLNPSPFM_GET_GRWAGES(NCOMPANY, NRN) N78932, F_CLNPSPFM_GET_RATE(NCOMPANY, NRN) N78933, substr(F_CLNPSPFM_GET_SCHEDULE(NCOMPANY, NRN), 1, 240) S78934, substr(F_CLNPSPFM_GET_SLCOSTS(NCOMPANY, NRN), 1, 240) S78935 from V_CLNPSPFM where nCOMPANY = :A$COMPANY order by SSURNAME, DBEGENG В нашем случае псевдонима нет – представление так и называется V_CLNPSPFM

Комплексная система управления. Пример использования Возвращаемся в модуль Администратор и у папки _В месяце нажимаем на кнопку Запрос

Комплексная система управления. Пример использования Возвращаемся в модуль Администратор и у папки _В месяце нажимаем на кнопку Запрос В начале запроса вставим /*rawsql*/ - это позволит нам использовать exists вместо in (…)

Комплексная система управления. Пример использования Результат: select V_CLNPSPFM.*, F_CLNPSPFM_GET_CHARGE(NCOMPANY, NRN) N78928, F_CLNPSPFM_GET_RETAIN(NCOMPANY, NRN) N78929, F_CLNPSPFM_GET_OVERPAY(NCOMPANY, NRN) N78930, F_CLNPSPFM_GET_PAY(NCOMPANY, NRN) N78931, F_CLNPSPFM_GET_GRWAGES(NCOMPANY, NRN) N78932, F_CLNPSPFM_GET_RATE(NCOMPANY, NRN) N78933, substr(F_CLNPSPFM_GET_SCHEDULE(NCOMPANY, NRN), 1, 240) S78934, substr(F_CLNPSPFM_GET_SLCOSTS(NCOMPANY, NRN), 1, 240) S78935 from V_CLNPSPFM where /*rawsql*/ exists (select null from v_slpays_shadow s where s.nclnpspfm=v_clnpspfm.nrn and S.NMONTH = UDO_F_SLCALCWAGES_CALCMONTH and S.NYEAR = UDO_F_SLCALCWAGES_CALCYEAR ) and nCOMPANY = :A$COMPANY order by SSURNAME, DBEGENG

Комплексная система управления. Пример использования Для папку _Текущий расчет условие будет /*rawsql*/ exists ( select null from v_slpays_shadow s where s.nclnpspfm=v_clnpspfm.nrn and S.NSLCALCULAT = UDO_F_SLCALCWAGES_CALCULATION )

Комплексная система управления. Пример использования Реализация сложного отбора с помощью процедуры PL/SQL

Комплексная система управления. Пример использования Реализация сложного отбора с помощью процедуры PL/SQL Вставляем комментарий вида /*proc begin … end; proc*/