Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 11 лет назад пользователемЭдуард Бухаров
1 Разработка ABL приложений с использованием OpenEdge ORACLE DataServer Сергей Климов ЗАО «Банковские информационные системы» («БИС») Разработка ABL приложений с использованием OpenEdge ORACLE DataServer
2 Программа Разработка ABL приложений с использованием OpenEdge ORACLE DataServer Причины использования OpenEdge DataServer for ORACLE Обзор конфигураций OpenEdge DataServer for ORACLE Проблемы миграции и накладываемые ограничения Секреты и хитрости
3 Причины использования OpenEdge DataServer for ORACLE Разработка ABL приложений с использованием OpenEdge ORACLE DataServer ORACLE de facto стандарт промышленной СУБД ORACLE обладает большим потенциалом для масштабирования приложений: RAC, горизонтальное масштабирование и т.п.
4 Разработка ABL приложений с использованием OpenEdge ORACLE DataServer Обзор конфигураций OpenEdge DataServer for ORACLE
5 PROGRESS Networking Разработка ABL приложений с использованием OpenEdge ORACLE DataServer PROGRESS Networking ORACLE DB OpenEdge DataServer Broker OpenEdge Client
6 Преимущества PROGRESS Networking Разработка ABL приложений с использованием OpenEdge ORACLE DataServer Универсальность Простота настройки на некоторых платформах
7 ORACLE Networking Разработка ABL приложений с использованием OpenEdge ORACLE DataServer ORACLE DB PROGRESS Networking OpenEdge Client
8 Преимущества ORACLE Networking Разработка ABL приложений с использованием OpenEdge ORACLE DataServer Производительность Проста администрирования
9 Разработка ABL приложений с использованием OpenEdge ORACLE DataServer Проблемы миграции и накладываемые ограничения
10 Проблемы миграции. Данные Разработка ABL приложений с использованием OpenEdge ORACLE DataServer Длина символьного поля в PROGRESS 32K в ORACLE 4K (varchar2) Потенциальный размер записи не может превышать 32К Отсутствие word-index Отсутствие массивов Имя поля в таблице ORACLE 30 байт, в PROGRESS 32 байта Начальные значения последовательностей положительные
11 Длина символьного поля в PROGRESS 32K в ORACLE 4K Разработка ABL приложений с использованием OpenEdge ORACLE DataServer Заменять VARCHAR2 на LONG. Но может быть только один LONG в таблице! Миграция на CLOB Менять логику приложения, т.о. чтобы не создавать строки, превышающие 4K
12 Потенциальный размер записи не может превышать 32К Разработка ABL приложений с использованием OpenEdge ORACLE DataServer Уменьшать SQL Width Замена varchar2 на LONG
13 Отсутствие word-index Разработка ABL приложений с использованием OpenEdge ORACLE DataServer Замена CONTAINS на MATCHES. Падение производительности! Перенос поля с WI в отдельную OpenEdge таблицу Отказ от использования WI
14 Отсутствие массивов Разработка ABL приложений с использованием OpenEdge ORACLE DataServer Может приводить к ограничению на размер записи или поля Может приводить к ограничению на имя поля в таблице ORACLE до 30 байт
15 Проблемы миграции. Данные Разработка ABL приложений с использованием OpenEdge ORACLE DataServer Уменьшать наименования полей до 30 байт Сделать начальные значения последовательностей положительными
16 Проблемы миграции. Код Разработка ABL приложений с использованием OpenEdge ORACLE DataServer Отсутствие SHARE-LOCK Видимость записи при CREATE Плавающий ROWID Работа с 2-мя БД: SETUSERID, USERID и т.п. Отсутствие оператора CURRENT-VALUE
17 Отсутствие SHARE-LOCK Разработка ABL приложений с использованием OpenEdge ORACLE DataServer Переработать приложение без SHARE-LOCK Разработать механизм аналогичный SHARE-LOCK
18 Видимость записи при CREATE Разработка ABL приложений с использованием OpenEdge ORACLE DataServer Добавление после CREATE – VALIDATE, RELEASE, ROWID или RECID DO TRANSACTION: CREATE Customer. Customer.Cust-id = FIND FIRST Customer WHERE Cust-Id = 10 NO-LOCK NO-ERROR. END. VALIDATE Customer.
19 Плавающий ROWID Разработка ABL приложений с использованием OpenEdge ORACLE DataServer Перечитайте ROWID после изменения уникального ключа Перечитайте ROWID после отката удаления Замените ROWID на RECID
20 Проблемы миграции. Код Разработка ABL приложений с использованием OpenEdge ORACLE DataServer Функции типа SETUSERID, USERID и CAN-DO должны всегда содержать ссылку на логическую БД Функция CURRENT-VALUE должна использоваться только после NEXT-VALUE Оператор CURRENT-VALUE не доступен Не доступны функции DBTASKID, COUNT-OF
21 Проблемы миграции. Производительность Разработка ABL приложений с использованием OpenEdge ORACLE DataServer
22 Проблемы миграции. Производительность Разработка ABL приложений с использованием OpenEdge ORACLE DataServer Тюнинг клиентских параметров Тюнинг параметров запроса Использование «родного» SQL через SEND-SQL- STATEMENT Использование VIEW Использование хранимых процедур
23 Разработка ABL приложений с использованием OpenEdge ORACLE DataServer Секреты и хитрости
24 Клиентские параметры Разработка ABL приложений с использованием OpenEdge ORACLE DataServer – Dsrv qt_cache_size Записей/ Сек
25 Параметры запроса Разработка ABL приложений с использованием OpenEdge ORACLE DataServer Записей/ Сек
26 Использование возможностей ORACLE Разработка ABL приложений с использованием OpenEdge ORACLE DataServer FOR EACH acct WHERE acct.acct-cat = "b" AND CAN-DO("40*1", acct.acct) NO-LOCK, LAST acct-pos OF acct NO-LOCK
27 Использование возможностей ORACLE Разработка ABL приложений с использованием OpenEdge ORACLE DataServer
28 SEND-SQL-STATEMENT Разработка ABL приложений с использованием OpenEdge ORACLE DataServer RUN STORED-PROC send-sql-statement h1 = PROC-HANDLE NO-ERROR ("select... "). FOR EACH proc-text-buffer WHERE PROC-HANDLE = h1:... END. CLOSE STORED-PROC send-sql-statement WHERE PROC-HANDLE = h1. САМЫЙ БЫСТРЫЙ ВАРИАНТ
29 ORACLE VIEW Разработка ABL приложений с использованием OpenEdge ORACLE DataServer CREATE OR REPLACE VIEW last_acct_pos AS SELECT …. FOR EACH last_acct_pos: … END. Импорт VIEW в схема-холдер
30 Хранимые процедуры Разработка ABL приложений с использованием OpenEdge ORACLE DataServer RUN STORED-PROC newProcAcctPos LOAD-RESULT-INTO tt1 (INPUT "40", INPUT "1", OUTPUT ?). bh = tt1:DEFAULT-BUFFER-HANDLE. CREATE QUERY q. q:SET-BUFFERS (bh). q:QUERY-PREPARE("for each " + tt1:name). q:QUERY-OPEN.
31 СПАСИБО! МОСКОВСКИЙ ОФИС: +7 (495) СЕВЕРО-ЗАПАДНЫЙ ОФИС: +7 (812) ПЕНЗЕНСКИЙ ОФИС: +7 (841) Концепция построения ЦАБС QBIS ВОПРОСЫ?
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.