<Insert Picture Here> СУБД ORACLE: применение в различных сферах бизнеса Игорь Мельников, Oracle СНГ igor.melnikov@oracle.com План • Линейка СУБД от Oracle Corporation • Преимущества СУБД от Oracle • Oracle Database 11g Rel.2 Обновление приложений в “Online” <Insert Picture Here> У Oracle много СУБД Oracle Database Oracle 11G Вcтроенные СУБД TimesTen BerKeley DB Oracle Lite RDB CODASYL Hyperion Oracle Berkeley DB Oracle Berkeley DB Описание • Гибкий и быстродействующий механизм (“engine”) доступа к данным • Программные библиотеки, которые компонуются в приложение • Расширенные возможности для встроенных приложений: • Не нужно администрирования • Программное конфигурирование и управление из приложения • Возможность выбора только нужных библиотек • Управление данными скрыто в приложении ! Oracle Berkeley DB Berkeley DB расширения для XQuery-доступа к XML-документам Механизм работы с БД для программ на C, C++, Java, PHP, Perl, .Net … Механизм работы с БД для программ на Java Oracle TimesTen – СУБД реального времени Oracle TimesTen Основы технологии • Высоко-производительная БД, целиком размещаемая в RAM • Гибкие возможности для сохранения данных на диск • Оптимизация структур и алгоритмов для размещения в памяти • Легкая установка и конфигурирование TimesTen Disk Persistence/ Recovery Почему TimesTen быстрее Дисковая СУБД Определение адреса искомой страницы на диске Приложение SQL IPC Пересылка буфера в приложение (via IPC) Query Optimizer /Executor Buffer Pool Hash Function Linked Lists Into Buffers Копирование записей в Private Buffer Data Page Table#Page# Предположим, что страница уже в памяти... Вычисление указателя на адрес страницы (Page Pointer) с использованием хэширования и линейного поиска Почему TimesTen быстрее TimesTen Приложение SQL Копирование данных в буфера приложения Data Store Вычисление прямого адреса в памяти для искомой записи Query Optimizer /Executor Memory-Resident Database Вся БД загружена с диска в память до начала работы Memory Address Архитектура систем реального времени Работает синхронно с оборудованием Содержит дополнительные и исторические данные. Работает асинхронно с оборудованием TimesTen Cache Connect to Oracle Application-Tier Platforms Network Application Program Application Program TimesTen TimesTen In-Memory Database In-Memory Database Cache Connect to Oracle Oracle • Кеширование множества таблиц из Oracle Database • Только чтение или изменения • Двунаправленные изменения: • Из TimesTen в Oracle • Из Oracle в TimesTen • Несколько экземпляров TimesTen для одной Oracle DB • Режимы репликации Быстродействие (Timesten/Database) ₊Transactions per Minute ₊3,000,000 ₊2,500,000 Увеличение быстродействия с Cache Connect to Oracle Oracle Oracle+TimesTen ₊2,497,000 ₊2,000,000 ₊1,500,000 ₊1,000,000 ₊500,000 ₊0 ₊275,000 Oracle Oracle +TimesTen Oracle Database Lite Oracle Database Lite Задача: Обеспечить доступ к информации предприятия мобильным пользователям Мобильные клиенты Sync Layer Mobile Server Data and Applications Oracle Lite Database Синхронизация данных Windows, Windows Mobile, Symbian, Linux, Embedded Linux, etc. Mobile Server Repositor y Полная линейка СУБД Mobile Devices Consumer Electronics Gateways / Routers / Switches Storage & Systems Management Security / Authentication Telecom OSS/BSS Mobile Services Software Core Networking Systems Appliances Securities Trading E-business Call Centers / CRM Supply Chain / Logistics Reservations Business Applications Бизнес-приложения Высокоскоростные приложения Устройства Встроенные приложения Преимущества Oracle Database Oracle №1 на рынке RDBMS Microsoft 18,1% Other 12,6% IBM 20,7% Oracle 48,6% Source: Gartner DataQuest July 2008, based on Total Software Revenue Почему Oracle популярен? • • • • • • • • • • • Многоплатформенность Все типы данных Производительность Различные приложения (OLTP, DW, OLAP, Mining) Масштабируемость (БД 8 экзобайт, десятки тыс польз) Online тестирование изменений (RAT) Изменение приложений в Online Высокая надежность и доступность (24 x 7) Безопасность GRID Управляемость (EM) Независимость от архитектуры Один процессор Симметричная многопроцессорная архитектура (SMP) Слабо сцепленные процессоры (кластер) Можно использовать любые вычислительные архитектуры. Массивно параллельный компьютер (MPP) Разработав однажды, запускайте везде Grid Cluster SMP Uniprocessor Desktop Server Single User • AIX • • • • • • • Linux Solaris HP-UX HP Tru64 HP VMS Windows OS/390 Производительность SQL Query Result Cache • Возможно кэширование результатов запросов, подзапросов (query blocks) • • Кэш совместно используется различными SQL операторами и сессиями пользователей Значительное ускорение для операций агрегации данных и сложных выборок • Буферный кэш прикладного уровня join join join Q2: Использует это Q1: сохранение в кэше join GBY join GBY join GBY прозрачно cache join join T1 GBY T1 GBY T1 GBY T4 T4 join join join T2 T2 T2 24 T3 T3 T3 join join T5 T5 T6 T6 PL/SQL Result Cache В 11g: Принципы работы PL/SQL VM Функция уже вызывалась c такими аргументами? Вызов функции Func1 Нет Да SGA Result Cache 25 Вычисление функции OCI Client Result Cache Кэширование на клиенте Application Server Связанное кэширование Database • • Кэширует результаты запроса на клиенте Улучшает производительность работы с таблицами, используемыми в основном для чтения (read-mostly) • • • Согласован с сервером • • 26 Более быстрое время отклика – исключается передача по сети Уменьшает нагрузку на процессоры сервера Кэш проактивно обновляется, когда изменяется выборка Сихронизация кеша (как в RAC) Разработка приложений Real Native Compilation В PL/SQL 11g • В 11.1, СУБД Oracle при компиляции PL/SQL напрямую может генерировать выполняемый код DLL программно-аппаратной платформы • C-компилятор не нужен • Возможность встроена в СУБД, не нужно никакой дополнительной настройки • Только один параметр: включить/выключить, PLSQL_CODE_TYPE • INTERPRETED • NATIVE 28 Преимущества Real Native Compilation В PL/SQL 11g • Увеличение быстродействия: • Компиляция в 2 раза быстрее, чем с переводом на Cисходный код • Тест Whetstone показывает увеличение быстродействия в 2.5 раза по сравнению c вариантом с использованием C-компилятора (нет ненужного runtime-library и оптимизация) • На тестах – выполнение в 20 раз быстрее, чем при использовании режима интерпретации PVM (на чисто вычислительных задачах) 29 Разработка приложений Поддержка всех средств разработки Oracle Application Express APEX – средство разработки web-приложений • • • • • Web-ориентированное Декларативное Мощный framework Хостинг нескольких сайтов Средства миграции с MS Access • Набор готовых приложений • Использование всех мощных возможностей Oracle database 31 Application Express Декларативность • Написание кода сведено к минимуму • Могут использовать непрофессиональные программисты • Создание сайта на уровне описаний • Метаданные о приложении 32 Разработка приложений • • • • • • 33 Отчеты Формы ввода данных Графики Календари Защита данных Навигация Формы ввода данных Виды форм ввода Tabular forms Master Detail Формы на основе Webсервисов Формы на основе отчета • Расширенные элементы управления • Pop-Up календарь • Списки значений • Проверки (validation) элементов форм ввода 34 <Insert Picture Here> Безопасность 19 сертификатов безопасности !!! Инфраструктура Администратор Разработчик БД Пользователь Сервер приложений Backup Безопасность в БД Администратор Разработчик БД Пользователь Сервер приложений Backup Virtual Privat Database Oracle Lable Security Encryption (TDE/crypto) Безопасность при передаче данных Администратор Разработчик (Network encryption) encrypted БД encrypted Пользователь Сервер приложений encrypted Backup Защита данных от привилегированных Database Vault пользователей Администратор Разработчик encrypted БД encrypted Пользователь Сервер приложений encrypted Backup Securing Backup Защищено Database Vault Администратор Разработчик Защищено Database Vault encrypted БД encrypted Пользователь Сервер приложений encrypted encrypted Защищено Secure Backup Backup Работа с неструктурированными данными Images Специфические типы данных RFID Data Types DICOM Medical Images 3D Spatial Images Тесты производительности (tpc.org) Мировой рекорд TPC-C Цена/Производительность 1,80 1,61 1,60 1,40 Single Intel Processor $/tpmC 1,20 1,00 0,80 0,84 0.54 0,60 0,40 0,20 0,00 Oracle Microsoft DB2 Best Price Performance on Linux As of February 20, 2009: Oracle Database 11g Standard Edition One on Dell PowerEdge 2900 (World record TPC-C price/performance result) 104,492tpmC, .60/tpmC, available 2/20/09. Microsoft SQL Server on HP ProLiant ML350G5, 82,774, $0.84/tpmC, available 03/27/07 (Microsoft Best TPC-C price/performance result).. IBM DB/2 on HP ProLiant ML350, 18,661 tpmC, $1.61 tpmC, available 12/15/05. Best TPC-C Price Performance on Linux: Oracle Database 10g Standard Edition One w/ OEL on HP ProLiant ML350G5, 100,926 tpmC, .74/tpmC, available 6/8/07. Source: Transaction Processing Performance Council (www.tpc.org) Real Application Testing • Новая опция Oracle Database EE • Database Replay (DB Replay) Запуск • SQL Performance Analyzer (SPA) • Значение • Сокращает стоимость тестирования • Улучшает качество тестирования • Выигрыш для бизнеса • Быстрое внедрение технологий • Меньше риск Тест Изменения Правка Решение для Динамичного Бизнеса Database Replay Захват и воспроизведение нагрузки СУБД • Захват информации о нагрузке • Записывает информацию о нагрузке СУБД, включая важную информацию об одновременности нагрузки • Фильтрация захвата (сессии, пользователи и т.д.) • Минимальные накладные расходы (<5% CPU) RAT Rec Запиши и проиграй • Database Replay - проигрывание • Синхронное и асинхронное воспроизведение • Анализ и отчетность • Отчеты об ошибках • Изменение данных • Изменение производительности Анализ и отчетность Сравнение LoadRunner & DB Replay Тестирование e-Business Suite 80 Время (Дни) 80 60 24 40 20 20 5 20 4 0 Установка 0 Анализ работы приложения 0 Выявление ключевых транзакций 2 Создание Нагрузки 5 Запуск теста Общее время тестирования DB Replay: 2 недели LoadRunner: 30 недель LoadRunner DB Replay SQL Performance Analyzer (SPA) Захват и воспроизведение нагрузки SQL RAT • Фокус на проблемы с нагрузкой при выполнении SQL операторов • Детальный анализ производительности отдельного SQL оператора • Захват информации про SQL Workload в эксплуатационной системе • Захватывает текст SQL, планы, bind variables, статистику выполнения • За указанный период времени • Можно захватить информацию для SQL в Oracle Database 10g Release 2 • Воспроизведение SQL Workload в тестовой среде • Тестовое выполнение SQL в тестовой среде • Выявляет SQL с изменившимися планами выполнения и SQL с ухудшившейся производительностью • Для ухудшившегося SQL можно провести настройку с помощью SQL Tuning Advisor • Производит анализ и отчеты SQL Replay Анализ производительности Польза от RAT • Обнаружение ухудшения производительности SQL прежде, чем это отразится на конечных пользователях • RAT полезен при следующих изменениях • Обновление БД • Изменение статистики оптимизатора • Новые индексы, материализованные представления, секционирование и т.д. • Автоматически отслеживает изменение производительности сотен и тысяч запросов – невозможно сделать вручную • Минимальные накладные расходы Самоуправляемая БД Auto-Tuning Advisory Instrumentation Самоуправляемая БД Auto-Tuning Advisory Instrumentation Oracle Database 10g Легкость в использовании 100% 90% IBM DB2 9.1 SQL Server 2005 Oracle 80% 70% 60% 50% 40% Time Steps Oracle Database 10g легче в использовании чем DB2 and SQL Server. • на 38% меньше времени и 35% меньше шагов чем в IBM DB2 9.1 • на 38% меньше времени и 30% меньше шагов чем в SQL Server 2005 Source: Comparative Management Cost Study, Edison Group 2005, 2006 Самоуправляемость • Automatic Workload Repository • • • • • ADDM • • анализирует, советует, извещает Генерируемые сервером аллерты • • Автоматически собирает статистику, SQL workload Записывает каждые 60 мин Statspack + Малая нагрузка на инстанс (только худшие SQL) Сразу после установки, Push vs. Pull, информация о проблеме в тот же момент Advisors Oracle Database 11g Release 2 Online Application Upgrade Oracle Database 11g Release 2 Online Application Upgrade • Часто бизнес-критичные приложения бывают много часов недоступны из-за “наката” обновлений (патчей) или установки новой версии приложения • Oracle Database 11g Release 2 предлагает революционную технологию которая дает возможность обновлять приложения на “лету” – без остановки ! • Одновременно могут быть использованы как старая, так и новая версия приложения ! Решение Edition-based redefinition • Новые типы объектов в СУБД: • edition • editioning view • crossedition trigger • PL/SQL-код устанавливается в новую версию (edition) • Новые столбцы таблиц и изменения данных в них, не видимы в старой версии • Editioning view делают разную проекцию таблиц, структура которых менялась в каждую версию (новые столбцы невидимы в старой версии) • Crossedition триггер, невидимо для старой версии, осуществляет конвертацию данных сделанных в старой версии в новую (и наоборот – в случае “отката” патча) структуру Пример (шаг 1) Post_Upgrade Employees Show_ Employees Создается новая версия приложения Cоздается новая версия (edition) как потомок существующей. Новая версия наследует объекты старой версииродителя Pre_Upgrade Employees ID Ph. … Employees_ Show_ Employees Пример (шаг 2) Post_Upgrade Employees Show_ Employees Структура таблицы меняется! Создается еditioning view, которая скрывает эти изменения для старой версии. Pre_Upgrade Employees ID Ph. … Employees_ Cntry # Show_ Employees Пример (шаг 3) Post_Upgrade Employees Show_ Employees Ed. view Employees – разные в 2-х версиях PL/SQL процедура Show_Employeess меняется в новой версии. Pre_Upgrade Employees ID Ph. … Employees_ Cntry # Show_ Employees Пример (шаг 4) Post_Upgrade Employees Show_ Employees Создается forward crossedition trigger. Pre_Upgrade Employees ID Ph. … Employees_ Cntry # Fwd Xed Show_ Employees Пример (шаг 5) Post_Upgrade Employees Show_ Employees Создается reverse crossedition триггер на случай отката. Rvrs Xed Pre_Upgrade Employees ID Ph. … Employees_ Cntry # Fwd Xed Show_ Employees Пример (шаг 6) Post_Upgrade Employees Show_ Employees Невидимое преобразование данных в новую структуру (в старой версии) Rvrs Xed Pre_Upgrade Employees ID Ph. … Cntry # Fwd Xed Employees_ Show_ Employees Пример (шаг 7) Post_Upgrade Employees Show_ Employees Одновременно работают две версии ! Rvrs Xed Pre_Upgrade Employees ID Ph. … Employees_ Cntry # Fwd Xed Show_ Employees Пример (шаг 8) Post_Upgrade Employees Show_ Employees Версия Pre_Upgrade делается недоступной. Все пользователи работают только с новой версией. Pre_Upgrade Employees ID Ph. … Employees_ Cntry # Show_Employees Версия объекта Editions • Edition – новое понятие в 11.2 • Версия наследуется от родительской • Наследует все объекты от родительской (кроме таблиц и индексов) • Каждая версия может иметь собственную реализацию одного и того же объекта • Версия может иметь только одного потомка • БД должна иметь как минимум одну версию (ORA$BASE) • Сессия всегда выполняется в определенной версии (по умолчанию в ORA$BASE) Oracle Database – наилучшая платформа для корпоративного ПО • • • • • • • • • • Многоплатформенность Все типы данных Производительность Различные приложения (OLTP, DW, OLAP, Mining) Масштабируемость (БД 8 экзобайт, десятки тыс польз) Online тестирование изменений (RAT) Высокая надежность и доступность (24 x 7) Безопасность GRID Управляемость (EM) <Insert Picture Here> Игорь Мельников Старший консультант Oracle СНГ Email : Igor.Melnikov@oracle.com Phone : +7 (495) 641 14 00 Direct: +7 (495) 641 14 42 Mobile: +7 (915) 205 26 27