Разработка ABL приложений с использованием OpenEdge ORACLE DataServer Сергей Климов SKlimov@bis.ru ЗАО «Банковские информационные системы» («БИС») Разработка.

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



Advertisements
Похожие презентации
ПОРТАЛЬНЫЕ ТЕХНОЛОГИИ И ИХ МЕСТО В СОВРЕМЕННОМ БАНКЕ Константин Гунбин Начальник управления программных сервисов ЗАО Банковские информационные системы.
Advertisements

БАЗЫ ДАННЫХ ЛЕКЦИЯ 12. тема: ОСНОВЫ ЯЗЫКА SQL Общие сведения SQL структурированный язык запросов (Structured Query Language)
СУБД Access Запросы Автор: Тутыгин В.С.. Назначение запросов Запросы обеспечивают простой доступ к определенному подмножеству записей одной или нескольких.
PL/SQL Курсоры. Курсор – специальный элемент, связанный с SQL-оператором SELECT. Объявление курсора происходит в секции объявления базового блока. Работа.
Программируемый клиент ORACLE Технология Pro C/C++
Дмитрий Стреляев Начальник управления систем ДБО ЗАО Банковские информационные системы (БИС) QBIS.Online – надежный фундамент в построении клиентоориентированного.
Обеспечение целостности данных Процедурное. Хранимые процедуры Хранимые процедуры пишутся на специальном встроенном языке программирования, они могут.
Рахим Сафиуллин Начальник управления BPM-решений ЗАО Банковские информационные системы (БИС) Опыт компании БИС по разработке и внедрению BPM-решений ОПЫТ.
Язык SQL Последовательности Представления Индексы.
Введение в SQL (НЕ select) Затрагиваемые темы Роль языка SQL. Части SQL Роль языка SQL. Части SQL Администрирование БД: привилегии (DCL) Администрирование.
5.2. Представление о мире (VIEW)Представления предназначены для сохранения результатов выполнения запросов в виде таблиц. В отличие от хранимых процедур.
СУБД Microsoft Access 2003 Элементы языка SQL. Язык SQL SQL (Structured Query Language) – структурированный язык запросов Язык SQL применяется во многих.
Сентябрь, 02© Инфосистемы Джет Повышение производительности и надежности программного комплекса Дмитрий Волков, Юлия Кошкина «Инфосистемы Джет»
Что Такое Progress ?. Progress Software Corporation l Основана в 1981 l Штаб-квартира в Bedford, USA l 1,100 сотрудников l Присутствие в 60+ странах l.
Triggers для mysql. Что есть триггер? Триггер - это хранимая процедура особого типа, исполнение которой обусловлено наступлением определенного события.
Разработка телекоммуникационной и информационной системы для прогнозирования аварий и катастроф на НПЗ.
1 Основы SQL: MySQL Будем использовать MySQL СУБД с открытым кодом Бесплатная версия (Community Edition) – на В Linux-дистрибутивах.
Базы данных – это совокупность сведений (о реальных объектах, процессах, событиях или явлениях), относящихся к определенной теме или задаче, организованная.
1 БАЗЫ ДАННЫХ Использование SQL для построения запросов. ЗАНЯТИЕ 6 ПУГАЧЁВ Ю.В. Учитель информатики Харьковская общеобразовательная школа І-ІІІ ступеней.
Александр Федоров Начальник управления информационной безопасности ЗАО Банковские информационные системы (БИС) ЗАЩИТА ДАННЫХ В СИСТЕМЕ ДБО Защита данных.
Транксрипт:

Разработка ABL приложений с использованием OpenEdge ORACLE DataServer Сергей Климов ЗАО «Банковские информационные системы» («БИС») Разработка ABL приложений с использованием OpenEdge ORACLE DataServer

Программа Разработка ABL приложений с использованием OpenEdge ORACLE DataServer Причины использования OpenEdge DataServer for ORACLE Обзор конфигураций OpenEdge DataServer for ORACLE Проблемы миграции и накладываемые ограничения Секреты и хитрости

Причины использования OpenEdge DataServer for ORACLE Разработка ABL приложений с использованием OpenEdge ORACLE DataServer ORACLE de facto стандарт промышленной СУБД ORACLE обладает большим потенциалом для масштабирования приложений: RAC, горизонтальное масштабирование и т.п.

Разработка ABL приложений с использованием OpenEdge ORACLE DataServer Обзор конфигураций OpenEdge DataServer for ORACLE

PROGRESS Networking Разработка ABL приложений с использованием OpenEdge ORACLE DataServer PROGRESS Networking ORACLE DB OpenEdge DataServer Broker OpenEdge Client

Преимущества PROGRESS Networking Разработка ABL приложений с использованием OpenEdge ORACLE DataServer Универсальность Простота настройки на некоторых платформах

ORACLE Networking Разработка ABL приложений с использованием OpenEdge ORACLE DataServer ORACLE DB PROGRESS Networking OpenEdge Client

Преимущества ORACLE Networking Разработка ABL приложений с использованием OpenEdge ORACLE DataServer Производительность Проста администрирования

Разработка ABL приложений с использованием OpenEdge ORACLE DataServer Проблемы миграции и накладываемые ограничения

Проблемы миграции. Данные Разработка ABL приложений с использованием OpenEdge ORACLE DataServer Длина символьного поля в PROGRESS 32K в ORACLE 4K (varchar2) Потенциальный размер записи не может превышать 32К Отсутствие word-index Отсутствие массивов Имя поля в таблице ORACLE 30 байт, в PROGRESS 32 байта Начальные значения последовательностей положительные

Длина символьного поля в PROGRESS 32K в ORACLE 4K Разработка ABL приложений с использованием OpenEdge ORACLE DataServer Заменять VARCHAR2 на LONG. Но может быть только один LONG в таблице! Миграция на CLOB Менять логику приложения, т.о. чтобы не создавать строки, превышающие 4K

Потенциальный размер записи не может превышать 32К Разработка ABL приложений с использованием OpenEdge ORACLE DataServer Уменьшать SQL Width Замена varchar2 на LONG

Отсутствие word-index Разработка ABL приложений с использованием OpenEdge ORACLE DataServer Замена CONTAINS на MATCHES. Падение производительности! Перенос поля с WI в отдельную OpenEdge таблицу Отказ от использования WI

Отсутствие массивов Разработка ABL приложений с использованием OpenEdge ORACLE DataServer Может приводить к ограничению на размер записи или поля Может приводить к ограничению на имя поля в таблице ORACLE до 30 байт

Проблемы миграции. Данные Разработка ABL приложений с использованием OpenEdge ORACLE DataServer Уменьшать наименования полей до 30 байт Сделать начальные значения последовательностей положительными

Проблемы миграции. Код Разработка ABL приложений с использованием OpenEdge ORACLE DataServer Отсутствие SHARE-LOCK Видимость записи при CREATE Плавающий ROWID Работа с 2-мя БД: SETUSERID, USERID и т.п. Отсутствие оператора CURRENT-VALUE

Отсутствие SHARE-LOCK Разработка ABL приложений с использованием OpenEdge ORACLE DataServer Переработать приложение без SHARE-LOCK Разработать механизм аналогичный SHARE-LOCK

Видимость записи при 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.

Плавающий ROWID Разработка ABL приложений с использованием OpenEdge ORACLE DataServer Перечитайте ROWID после изменения уникального ключа Перечитайте ROWID после отката удаления Замените ROWID на RECID

Проблемы миграции. Код Разработка ABL приложений с использованием OpenEdge ORACLE DataServer Функции типа SETUSERID, USERID и CAN-DO должны всегда содержать ссылку на логическую БД Функция CURRENT-VALUE должна использоваться только после NEXT-VALUE Оператор CURRENT-VALUE не доступен Не доступны функции DBTASKID, COUNT-OF

Проблемы миграции. Производительность Разработка ABL приложений с использованием OpenEdge ORACLE DataServer

Проблемы миграции. Производительность Разработка ABL приложений с использованием OpenEdge ORACLE DataServer Тюнинг клиентских параметров Тюнинг параметров запроса Использование «родного» SQL через SEND-SQL- STATEMENT Использование VIEW Использование хранимых процедур

Разработка ABL приложений с использованием OpenEdge ORACLE DataServer Секреты и хитрости

Клиентские параметры Разработка ABL приложений с использованием OpenEdge ORACLE DataServer – Dsrv qt_cache_size Записей/ Сек

Параметры запроса Разработка ABL приложений с использованием OpenEdge ORACLE DataServer Записей/ Сек

Использование возможностей 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

Использование возможностей ORACLE Разработка ABL приложений с использованием OpenEdge ORACLE DataServer

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. САМЫЙ БЫСТРЫЙ ВАРИАНТ

ORACLE VIEW Разработка ABL приложений с использованием OpenEdge ORACLE DataServer CREATE OR REPLACE VIEW last_acct_pos AS SELECT …. FOR EACH last_acct_pos: … END. Импорт VIEW в схема-холдер

Хранимые процедуры Разработка 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.

СПАСИБО! МОСКОВСКИЙ ОФИС: +7 (495) СЕВЕРО-ЗАПАДНЫЙ ОФИС: +7 (812) ПЕНЗЕНСКИЙ ОФИС: +7 (841) Концепция построения ЦАБС QBIS ВОПРОСЫ?