Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 10 лет назад пользователемФилипп Швырев
1 Оптимизация хранимых условий отбора Миндияров Илья Главный специалист Центра информационных технологий и консалтинга ПАРУС
2 Комплексная система управления. Хранимые условия отбора Для пользователей, которым надо манипулировать несколькими типовыми комбинациями условий отбора, предлагается альтернативный механизм, называемый хранимыми условиями отбора. Он доступен во всех приложениях Системы в большинстве разделов. Суть этого механизма в том, что пользователь имеет возможность заранее подготовить для каждого раздела Системы любое количество типовых условий отбора. ПРОБЛЕМА1: Медленная работа хранимых условий отбора. ПРОБЛЕМА2: Нет возможности выполнить процедуру PL/SQL, для реализации сложной логики. РЕШЕНИЕ1: Ждать реализации условий отбора в разделе через РЕШЕНИЕ1: Ждать реализации условий отбора в разделе через PKG_COND_BROKER РЕШЕНИЕ2: Установить проектное решение из этой презентации
3 Комплексная система управления. Пример использования Система контроля учетных данных Пример папок отбора
4 Комплексная система управления. Вопросы рассматриваемые в презентации Ускорение работы хранимых условий отбора Для получения текста программ нажмите правой кнопкой мыши на объекте Hru.zip выберите Копировать, а затем в проводнике нажмите правую кнопку мыши и выберите Вставить.
5 Комплексная система управления. Оптимизация хранимых условий отбора ВАЖНО! После выполнения скрипта из Hru.zip будет заменен штатный объект F_CONDFOLDERS_WHERE_CLAUSE Теперь при написании запросов станут доступны следующие конструкции /*rawsql*/ - при добавлении условия не будут добавляться in (…) /*rawsql*/ - при добавлении условия не будут добавляться in (…) /*proc … proc*/ - перед выполнением запроса будет выполнена процедура PL/SQL /*proc … proc*/ - перед выполнением запроса будет выполнена процедура PL/SQL
6 Комплексная система управления. Пример использования В модуле Администратор Словари->Хранимые условия отбора->Таблицы отбора
7 Комплексная система управления. Пример использования Выполняем действие Генерация состава
8 Комплексная система управления. Пример использования В модуле Администратор Словари->Хранимые условия отбора->Схемы отбора
9 Комплексная система управления. Пример использования Выбираем действие Папки…
10 Комплексная система управления. Пример использования Добавляем папку _В месяце
11 Комплексная система управления. Пример использования Добавляем папку _Текущий расчет
12 Комплексная система управления. Пример использования Создадим функции 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 /
13 Комплексная система управления. Пример использования В модуле Расчет зарплаты Функции->Расчет зарплаты перейдем на вкладку Папки
14 Комплексная система управления. Пример использования Запустим Монитор SQL-запросов
15 Комплексная система управления. Пример использования Узнаем как называется (какой имеет псевдоним) главное представление раздела 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
16 Комплексная система управления. Пример использования Возвращаемся в модуль Администратор и у папки _В месяце нажимаем на кнопку Запрос
17 Комплексная система управления. Пример использования Возвращаемся в модуль Администратор и у папки _В месяце нажимаем на кнопку Запрос В начале запроса вставим /*rawsql*/ - это позволит нам использовать exists вместо in (…)
18 Комплексная система управления. Пример использования Результат: 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
19 Комплексная система управления. Пример использования Для папку _Текущий расчет условие будет /*rawsql*/ exists ( select null from v_slpays_shadow s where s.nclnpspfm=v_clnpspfm.nrn and S.NSLCALCULAT = UDO_F_SLCALCWAGES_CALCULATION )
20 Комплексная система управления. Пример использования Реализация сложного отбора с помощью процедуры PL/SQL
21 Комплексная система управления. Пример использования Реализация сложного отбора с помощью процедуры PL/SQL Вставляем комментарий вида /*proc begin … end; proc*/
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.