Application Express

advertisement
Разработка приложений Oracle Database 11g
Руководство Oracle
Июнь 2007 г.
1
ПРИМЕЧАНИЕ.
Приведенные ниже сведения описывают общее назначение нашей продукции. Они предназначены
только для справки и не могут быть включены в контракты. Они не являются обязательством
поставлять материал, код или функции. На них не следует полагаться при принятии решений
относительно закупок. Разработка, выпуск и график поставки функций или функциональности,
описанных в связи с продукцией компании Oracle, осуществляются исключительно по усмотрению
компании Oracle.
Разработка приложений Oracle Database 11g
ПРИМЕЧАНИЕ. ............................................................................................................................... 2
ЗАДАЧИ РАЗРАБОТКИ ПРИЛОЖЕНИЙ ............................................................................. 4
СОКРАЩЕНИЕ ВРЕМЕНИ РАЗРАБОТКИ И ВЫВОДА НА РЫНОК ........................ 4
SQL Developer ................................................................................................................................ 4
SQL Developer: Migration Workbench .................................................................................. 5
SQL Developer: Oracle APEX 3.0.1 ....................................................................................... 5
Application Express ........................................................................................................................ 5
Application Express: печать PDF ........................................................................................... 6
Application Express: перенос из Microsoft Access ............................................................. 6
Application Express: диаграммы Flash .................................................................................. 7
Application Express: размещение элементов путем перетаскивания ............................ 7
Application Express: новые типы элементов ....................................................................... 7
Application Express: объекты поддержки ............................................................................ 7
Application Express: кэширование страниц и областей .................................................. 7
Application Express: другие усовершенствования ............................................................. 7
.NET.................................................................................................................................................. 8
.NET ODT: интеграция с Visual Studio 2005 ..................................................................... 9
.NET ODT: полностью интегрированный отладчик PL/SQL ..................................... 9
.NET ODP: поддержка 64-разрядных вычислений .......................................................... 9
.NET ODP: поддержка ADO.NET 2.0 ................................................................................ 9
.NET ODP: повышение производительности ................................................................ 10
PHP ................................................................................................................................................. 10
PHP: Database Resident Connection Pooling (DRCP) ...................................................... 10
PL/SQL .......................................................................................................................................... 10
PL/SQL: подлинно собственная компиляция ................................................................. 10
SQL: кэш результатов запросов .......................................................................................... 11
PL/SQL: кэш результатов функций ................................................................................... 11
PL/SQL: отслеживание зависимостей на уровне мелких структурных единиц ..... 11
PL/SQL: последовательности ............................................................................................. 12
PL/SQL: PL/Scope ................................................................................................................. 12
PL/SQL: иерархический профайлер................................................................................. 12
Java................................................................................................................................................... 12
Java: OracleJVM Performance, JIT Compiler ...................................................................... 13
Java: производительность и портативность благодаря стандартам Java ................... 13
Java: JDBC 4.0 ........................................................................................................................... 13
Java: совместимость OracleJVM с Java 5 ............................................................................ 13
Java: Rowset (JSR-114) перенесен на JDBC на сервере .................................................. 13
Java: открытие Oracle по отношению к Java .................................................................... 13
Java: упреждающая выборка в 1-м цикле приема-передачи......................................... 14
Java: собственный протокол AQ ......................................................................................... 14
Java: уведомление об изменении базы данных/запроса ............................................... 14
Java: кэш результатов сервера и клиента ........................................................................... 14
Java: безопасность ................................................................................................................... 14
Java: простота использования Oracle JVM ....................................................................... 14
Java: управляемость ................................................................................................................. 14
ЗАКЛЮЧЕНИЕ .............................................................................................................................. 15
Разработка приложений Oracle Database 11g
ЗАДАЧИ РАЗРАБОТКИ ПРИЛОЖЕНИЙ
Современные организации, занятые в сфере ИТ, вынуждены выбирать из множества языков и средств
разработки приложений. В некоторых случаях даже внутри одной организации для разработки
приложений используются несколько разных продуктов. Организации, размер которых увеличился в
результате слияний и поглощений, сталкиваются со сложными задачами управления и интеграции,
вызванными тем, что в присоединенных организациях применялись другие, конкурирующие
технологии разработки приложений. Технологии способствуют инновациям в бизнесе и позволяют
тем организациям, которые оперативно поставляют приложения на рынок, приобретать конкурентные
преимущества.
Oracle Database 11g поддерживает разнообразные технологии разработки приложений, содержит
средства, которые улучшают работу приложений и повышают производительность разработчиков.
СОКРАЩЕНИЕ ВРЕМЕНИ РАЗРАБОТКИ И ВЫВОДА НА РЫНОК
Единая интегрированная платформа Oracle Database 11g обеспечивает высокую производительность и
масштабируемость для самых популярных технологий, используемых современными разработчиками
приложений. Oracle Database 11g предлагает существенные новые возможности для всех основных сред
разработки приложений, что позволяет сократить время вывода на рынок и повысить
производительность.
Для создания приложений на основе баз данных Oracle разработчики приложений могут выбирать
удобные им языки, включая C, C++, Java, COBOL, PL/SQL, Visual Basic, C# и PHP. Разработчики
выбирают язык, который хорошо знают или который наиболее подходит для конкретной задачи. К
примеру, приложение может использовать Java на сервере для создания динамических веб-страниц,
PL/SQL — для внедрения хранимых процедур в базе данных и C++ — для внедрения логики с
интенсивными вычислениями на среднем ярусе. Oracle Database 11g предлагает заказчикам широкие
возможности и качество лучшей базы данных в отрасли, поддерживающей множество самых
популярных технологий разработки приложений.
SQL Developer
Мощное и бесплатное средство разработки баз данных.
Oracle SQL Developer — это бесплатное графическое средство, повышающее производительность и
упрощающее выполнение задач по разработке баз данных. Oracle SQL Developer предназначен для
разработчиков баз данных Oracle, упрощает циклы разработки и сокращает потребность в
приобретении средств от сторонних поставщиков для разработки и отладки кода SQL и PL/SQL. SQL
Developer позволяет пользователям просматривать, создавать и изменять объекты баз данных,
выполнять инструкции SQL, изменять и отлаживать PL/SQL, генерировать отчеты из широкого списка
готовых отчетов или создавать собственные. Создав это средство, компания Oracle снова
продемонстрировала свою готовность помогать сообществу разработчиков баз данных повышать
производительность и решать прочие задачи. SQL Developer 1.1.3 входит в комплект Oracle Database
11g. SQL Developer 1.2 можно загрузить с веб-сайта SQL Developer. Дополнительные сведения об
Oracle SQL Developer см. на сайте http://www.oracle.com/technology/products/database/sql_developer
SQL Developer: Migration Workbench
Упрощает перенос баз данных сторонних поставщиков на платформу Oracle.
Приложение Migration Workbench, добавленное в SQL Developer 1.2, содержит следующие функции:







Благодаря полной интеграции с SQL Developer пользователи получают единое средство для
просмотра баз данных сторонних поставщиков, переноса выбранных объектов на платформу
Oracle и последующей работы с ними.
В Quick Migration Wizard сокращены требования к привилегиям, т. е. привилегия DBA не
требуется.
Пошаговый перенос дает возможность управления каждым этапом процесса переноса.
Поддержка переноса на уровне мелких структурных единиц позволяет пользователям выбирать
конкретные объекты, подлежащие переносу.
Перенос сложных объектов поддерживает хранимые процедуры, триггеры и представления.
Translation Scratch Editor дает возможность переноса с одной инструкцией.
Translation Difference Viewer позволяет сравнивать объекты попарно путем сопоставления
инструкций и блоков.
SQL Developer: Oracle APEX 3.0.1
SQL Developer 1.2 поддерживает объекты APEX 3.0.1 и отличается следующими особенностями:



Добавлена возможность подключения ко всем приложениям Oracle APEX, связанным со
схемой базы данных (на уровне приложений и страниц), и просмотра этих приложений.
Можно запускать такое количество отчетов, которое позволит пользователям создавать отчеты
о рабочих областях, приложениях, страницах и схемах.
Появилась возможность экспорта и импорта приложений Oracle APEX через контекстное
меню.
Application Express
Уникальное бесплатное средство разработки для создания веб-приложений.
Oracle Application Express (Oracle APEX), ранее HTML DB, — это средство быстрой разработки вебприложений для базы данных Oracle. При наличии лишь одного веб-браузера и минимального опыта
программирования можно разрабатывать и развертывать профессиональные приложения, которые
будут и быстрыми, и безопасными. Для разработки, развертывания и выполнения приложений
Application Express не требуется клиентское программное обеспечение. Oracle Application Express
сочетает в себе свойства личной базы данных, производительность, простоту использования и гибкие
возможности наряду со свойствами базы данных предприятия, безопасностью, целостностью,
масштабируемостью, доступностью и поддержкой Интернета.
Application Express содержит три главных средства:



Application Builder — создание динамических веб-приложений на основе баз данных.
SQL Workshop — просмотр объектов баз данных, выполнение нерегламентированных
запросов SQL, а также графический конструктор запросов.
Utilities — загрузка и выгрузка данных для плоских файлов и электронных таблиц.
Application Express — высокопроизводительное средство для создания приложений, генерирующих
отчеты о данных в базе. Отчеты обычно связаны гипертекстовыми ссылками с другими отчетами,
поэтому навигация в базе данных аналогична навигации на веб-сайтах. Столбцы в отчетах можно с
легкостью связать с другими отчетами, диаграммами и формами ввода данных, причем все это
выполняется декларативно. Многофункциональный механизм генерации диаграмм позволяет
представлять запросы SQL в графическом виде, что повышает эффективность передачи данных.
Application Express также удобен для редактирования данных в базах и поддерживает множество
элементов управления декларативными формами, включая группы переключателей, флажки, списки
выбора, переключатели челночного типа, текстовые редакторы и элементы выбора даты.
Благодаря простоте использования Application Express позволяет быстро создавать гибкие приложения
для различных отделов организации. Развернутые в Интернете, эти приложения работают с
высочайшей производительностью. Исторически сложилось, что отделам, прототипам и малым
проектам достаточно баз данных на настольных компьютерах. Такие базы являются динамичными
средствами, которые удовлетворяют требованиям к разработке, предъявляемым организациями малого
и среднего бизнеса или отделами предприятий. Базы данных, хранящиеся на нескольких настольных
компьютерах, с трудом поддаются управлению и могут быть уязвимы. Часто они не подходят для
работы с конфиденциальными сведениями и не поддерживают работу через Интернет. Интерфейс
разработчика, выполненный по аналогии с интерфейсом браузера, декларативная платформа
программирования и простые мастера делают Application Express прекрасной альтернативой
приложениям многопользовательских баз данных, хранящихся на настольных компьютерах, например
Microsoft Access.
Разработчики приложений, ориентирующиеся на SQL, также по достоинству оценят простоту создания
приложений на основе баз данных при наличии минимального опыта программирования для
Интернета или даже при его отсутствии. Вам не требуется учить языки сценариев или сложные
платформы развертывания: достаточно написать несколько запросов и выбрать готовые темы
пользовательских интерфейсов и элементы управления формами для создания
высокопрофессиональных, безопасных и масштабируемых приложений. Дополнительные сведения об
Oracle Application Express см. на сайте
http://www.oracle.com/technology/products/database/application_express
Application Express: печать PDF
Можно экспортировать область отчета в формат PDF — по сути, распечатать отчет. Кроме того,
возможна полная интеграция с Oracle Business Intelligence (BI) Publisher, что позволяет создавать
высокоточные отчеты. BI Publisher представляет собой подключаемый модуль MS Word для разработки
комплексных шаблонов отчетов, который может объединять несколько таблиц (например, шаблон и
созданный на его основе объект), диаграммы и другие параметры, переданные из Application Express.
Эти шаблоны отчетов можно затем загрузить в Application Express, что даст возможность доступа через
URL-адрес, вызова посредством нажатия кнопки или ссылки.
Application Express: перенос из Microsoft Access
Появилась возможность переносить приложения и базы данных Microsoft Access на платформу Oracle,
что обеспечивает объединение, контроль и централизованное управление для важных данных.
Application Migration позволяет переносить приложение Microsoft Access и генерировать приложение
Oracle Application Express. Процесс переноса включает в себя следующие шаги:
1.
2.
3.
4.
5.
С помощью средства Exporter из Microsoft Access экспортируются метаданные.
С помощью Oracle Migration Workbench (входит в состав SQL Developer 1.2) база данных
Microsoft Access переносится на платформу Oracle.
Создается рабочая область Oracle Application Express, а затем проект переноса.
Проверяются и обновляются извлеченные объекты.
Генерируются приложения Oracle Application Express.
Application Express: диаграммы Flash
У разработчика появилась возможность создавать приложения с диаграммами, которые отображаются в
браузере с помощью подключаемого модуля Adobe Flash Player. Поддерживаются 18 типов диаграмм
Flash. В процессе создания можно предварительно просматривать выбранный тип и задавать
большинство атрибутов для итоговой диаграммы. В дополнение к созданию новых диаграмм Flash
можно также преобразовывать существующие диаграммы SVG в диаграммы Flash. Диаграммы Flash
позволяют использовать в пользовательском интерфейсе усовершенствованные элементы управления,
а также содержат такие функции, как асинхронные обновления.
Application Express: размещение элементов путем перетаскивания
Новая функция размещения элементов путем перетаскивания позволяет изменять порядок элементов в
текущей области, менять отдельные атрибуты (имя элемента, ярлык и тип в текущем диапазоне
элементов и типов), удалять элементы и быстро создавать новые элементы. Можно разместить элементы
слева или справа от существующего элемента и вставить новый ряд, чтобы оперативно добавить
элементы в середину существующей формы. Для удаления элемента достаточно перетащить его в
корзину внизу.
Application Express: новые типы элементов
Добавлено несколько новых типов элементов. В их число вошли следующие:





Shuttle
HTML Editor Minimal — доступен в Textarea
HTML Editor Standard — доступен в Textarea
Popup Color Picker — доступен в Popup List of Values
Date Picker (используется маска формата)
Application Express: объекты поддержки
Функция объектов поддержки, впервые появившаяся в Application Express 2.2, была расширена и теперь
позволяет определять сценарии обновлений. Эта функция служит для распределения обновлений.
Кроме того, появилась возможность включать определения из таблицы управления доступом в
сценарии установки.
Application Express: кэширование страниц и областей
Служит для записи частей приложения в кэш для повышения производительности. Атрибуты кэша
настраиваются на страницах атрибутов «Страница» и «Регион». Эта функция подходит для статических
страниц и областей, например списков, где нет условий и областей, содержащих HTML-текст.
Application Express: другие усовершенствования
В этой версии появилось несколько других усовершенствований, в том числе:





Календарь — в стандартные календари добавлены представления по месяцам и дням.
Совместно используемые компоненты — дополнительные возможности копирования и
изменения родительского элемента для списков, ссылок-цепочек и т. д.
Поиск элементов — поиск Cascading Style Sheets (CSS) и изображений.
Одновременное удаление — одновременное удаление нескольких кнопок, процессов,
вычислений и проверок.
Навигация — добавлены новые значки для перехода к совместно используемым компонентам








и отчетам о приложениях.
Сравнение приложений и схем — поиск различий между двумя приложениями или объектами
в двух разных схемах.
Установки по умолчанию для Application Builder — определение предпочтений рабочих
областей для вкладок, аутентификации, тем и глобализации с целью обеспечения единого
подхода.
Предпочтения разработчика — определение предпочтений режима представления для
Application Builder.
Поддержка публичных страниц — позволяет использовать для публичных приложений
идентификатор сеанса, равный нулю, что помогает при работе с поисковыми механизмами и
закладками.
SQL Workshop — расширенные возможности навигации и улучшенный доступ к схемам.
Новые элементы управления паролями и учетными записями — указание правила истечения
срока паролей, надежности (минимального числа знаков и т. д.) и блокировки.
Управление рабочими областями — определение размеров рабочих областей, запрос имен
рабочих областей по электронной почте и просмотр журнала попыток входа в систему.
Новый подход к управлению пользователями — упрощение навигации и усовершенствование
значков.
.NET
Тесная интеграция с Visual Studio.
Oracle Developer Tools для Visual Studio .NET (ODT) — это тесно интегрированная надстройка для
Microsoft Visual Studio. ODT — это бесплатное средство, доступное как для Visual Studio 2005, так и для
Visual Studio NET 2003. ODT упрощает и ускоряет разработку кода .NET для Oracle и позволяет
разработчикам работать в Visual Studio на протяжении всего жизненного цикла разработки. ODT
позволяет просматривать и изменять объекты схем Oracle с помощью встроенных визуальных
редакторов и автоматически генерировать код .NET путем перетаскивания. Разработчики могут с
легкостью изменять данные таблиц, исполнять инструкции SQL Oracle, изменять и отлаживать код
PL/SQL, разрабатывать и развертывать хранимые процедуры .NET. Встроенная контекстно зависимая
интерактивная справка, включающая в себя руководства пользователя Oracle SQL и PL/SQL,
максимально упрощает доступ к документации Oracle. Дополнительные сведения об Oracle Developer
Tools for Visual Studio .NET см. на сайте http://www.oracle.com/technology/tech/dotnet/tools
Oracle Data Provider для .NET открывает широкие возможности Oracle Database 11g для приложений
.NET.
Oracle Data Provider для .NET (ODP.NET) обеспечивает оптимизированный доступ к базе данных
Oracle из среды .NET. ODP.NET позволяет разработчикам пользоваться преимуществами
расширенной функциональности баз данных Oracle, включая Real Application Clusters, оптимизацию
производительности, XML DB и расширенные функции безопасности. ODP.NET предоставляет
программистам возможность повысить производительность, обрести гибкость и выбрать функции для
приложений .NET. Таким образом, разработчики могут использовать .NET, не лишаясь широких
возможностей управления данными, которые обеспечивает Oracle. ODP.NET характеризуется
собственной поддержкой .NET Framework 1.0 и более поздней версии, включая .NET Framework для
32-разрядной версии Windows, Windows x64 (AMD64 и Intel EM64T) и 64-разрядной Windows для Intel
Itanium. Дополнительные сведения об Oracle Data Provider для .NET см. на сайте
http://www.oracle.com/technology/tech/windows/odpnet
Oracle Database Extensions для .NET — это компонент Oracle Database 11g для Windows, который
упрощает разработку, развертывание и выполнение хранимых процедур и функций, написанных на
языке под управлением .NET, например C# или VB.NET. Сохраненные процедуры .NET или функции
разрабатываются с помощью Microsoft Visual Studio и развертываются с помощью тесно
интегрированного .NET Deployment Wizard, входящего в состав Oracle Developer Tools для Visual
Studio .NET. После развертывания хранимую процедуру .NET можно вызвать в коде приложения
.NET, из SQL или PL/SQL, из другого приложения .NET, хранимой процедуры PL/SQL или Java, из
триггера. Кроме того, вызов хранимой процедуры или функции может быть разрешен из любого места.
Дополнительные сведения об Oracle Database Extensions для .NET см. на сайте
http://www.oracle.com/technology/tech/dotnet/ode
.NET ODT: интеграция с Visual Studio 2005
Oracle Developer Tools для Visual Studio .NET полностью интегрирован с Visual Studio 2005. Элемент
управления в виде дерева упрощает просмотр объектов схем баз данных. Каждый узел с объектами
схемы содержит контекстные меню, которые позволяют работать на этом узле. К примеру, узел
таблицы содержит элемент меню «Извлечь данные», который открывает окно данных Oracle. Кроме
того, он содержит элемент меню «Проект», который открывает редактор таблиц Oracle для удобного
создания или изменения таблицы Oracle. Аналогичным образом многие другие типы схем Oracle имеют
зависящие от меню элементы. В окне свойств Visual Studio отображаются метаданные для любого узла
схемы базы данных Oracle, который выбран в настоящее время. К примеру, если выбрать узел столбца
таблицы, то в окне свойств отобразится тип данных Oracle для этого столбца.
ODT также полностью интегрирован с функциями автоматической генерации кода Visual Studio, что
ускоряет разработку приложений. При перетаскивании на поверхность проекта немедленно создается
исполняемый код .NET, который обращается к базе данных Oracle. Этот код можно с легкостью и
визуально соединить с виджетами на поверхности проекта (например, с элементом управления
Gridview), то есть создать исполняемое приложение при минимальных трудозатратах на
программирование.
.NET ODT: полностью интегрированный отладчик PL/SQL
Полностью интегрированный редактор и отладчик PL/SQL позволяет использовать все избранные
функции отладки Visual Studio из кода PL/SQL. Возможен плавный переход от кода .NET к коду
хранимой процедуры PL/SQL и обратно!
.NET ODP: поддержка 64-разрядных вычислений
ODP.NET поддерживает 64-разрядные вычисления для Windows x64 и Windows Itanium, что повышает
масштабируемость приложений .NET.
.NET ODP: поддержка ADO.NET 2.0
Поддержка Microsoft ADO.NET 2.0, включая следующее:






Классы фабрик поставщиков и базовые классы упрощают код доступа к данным для
нескольких источников данных через API, единый для всех поставщиков.
Конструктор строк подключения сокращает количество ошибок в строках подключения и
упрощает управление ими.
Поддерживаются локальные и распределенные транзакции в System.Transactions.
Пакетная обработка позволяет изменять несколько рядов за один цикл приема-передачи базы
данных: для этого используется метод OracleDataAdapter.Update.
Обнаружение схем позволяет разработчикам приложений находить и возвращать сведения о
схемах баз данных, например таблицы и хранимые процедуры.
Перечислитель источников данных позволяет приложению получать общий доступ к набору
доступных источников данных Oracle.
.NET ODP: повышение производительности
Поддержка Microsoft ADO.NET 2.0, включая следующее:



Благодаря кэшированию инструкций контексты параметров ODP.NET теперь кэшируются
автоматически, что повышает производительность в случаях, когда несколько раз выполняется
одна и та же инструкция.
Пользователи ODP.NET, работающие с Oracle Database 11g, заметят, что ускорилось
извлечение LOB.
Перечислитель источников данных позволяет приложению получать общий доступ к набору
доступных источников данных Oracle.
PHP
PHP — это популярный язык сценариев, повсеместно интегрируемый в HTML для создания
динамических веб-страниц. Расширение oci8 для PHP — это стабильный высокопроизводительный
драйвер базы данных PHP, полностью интегрированный с Oracle Database. Используя PHP с Oracle
Database, можно запрашивать и обновлять данные, исполнять хранимые процедуры и функции,
загружать изображения и с легкостью создавать масштабируемые, глобальные приложения.
Дополнительные сведения об Oracle и PHP см. на сайте http://www.oracle.com/technology/tech/php
PHP: Database Resident Connection Pooling (DRCP)
Oracle Database 11g для приложений PHP с высокой масштабируемостью.
Только многопоточные приложения. Благодаря этой новой функции процессы различных
приложений могут совместно использовать сеансы на одном и том же или нескольких хосткомпьютерах. Пул поддерживается на сервере баз данных новым фоновым процессом.
Эта функция полезна для приложений, которые не могут быть развернуты как многопоточные
(например, приложения PHP в среде веб-сервера Apache). Запросы баз данных выполняются вне
зависимости от состояния сеанса. Эти приложения больше не должны постоянно поддерживать
подключения к базам данных, что повышает масштабируемость базы данных.
PL/SQL
PL/SQL — это императивный язык программирования 3-го поколения, предназначенный конкретно
для плавной обработки команд SQL. Для этого предусмотрен особый синтаксис и поддерживаются
точно такие же типы данных, как и в SQL. Он доступен и в других средах, однако в этом документе
рассматривается PL/SQL, хранимый и скомпилированный в базе данных Oracle, а также работающий в
исполняемом файле Oracle, где он автоматически наследует портативность Oracle Database.
Многие заказчики Oracle Database используют такой передовой подход, как доступ через клиентский
код только путем вызова подпрограмм PL/SQL. Этот подход не только отражает общепринятые
передовые методы модульного программирования (определить чистый, функциональный API и скрыть
внедрение), но и обычно существенно сокращает число сетевых циклов приема-передачи между
клиентом и Oracle Database. Дополнительные сведения о PL/SQL см. на сайте
http://www.oracle.com/technology/tech/pl_sql
PL/SQL: подлинно собственная компиляция
Прирост производительности даже в стандартной комплектации.
До выпуска Oracle Database 11g процедуры PL/SQL ускоряли, компилируя их в собственный код,
находящийся в совместно используемых библиотеках. Эти процедуры переводились в код C, затем
компилировались с помощью компилятора C и связывались с процессом Oracle. В Oracle Database 11g
потребность в компиляторе C отпала, и исходный код PL/SQL непосредственно преобразуется в
собственный код. Кроме того, Oracle выполняет связывание и загрузку, поэтому каталоги файловой
системы больше не требуются. Теперь индивидуальный разработчик может компилировать модули
программы для выполнения в собственной среде, не полагаясь на структуры на стороне DBA.
Компилирование кода PL/SQL в собственной среде в Oracle Database 11g примерно в два раза быстрее,
чем в Oracle Database 10g. Производительность исполнения также значительно повысилась.
SQL: кэш результатов запросов
Можно повысить производительность по запросам, которые совершаются часто, но данные в которых
изменяются редко.
Результаты запросов и фрагменты запросов могут быть кэшированы в кэше результатов запросов SQL
(в совместно используемом пуле). Затем база данных может использовать кэшированные результаты для
ответа на эти запросы и фрагменты запросов, которые будут выполняться в будущем. Извлечение
результатов из кэша результатов запросов SQL осуществляется быстрее, чем повторное выполнение
запроса, поэтому производительность часто выполняемых запросов существенно повышается, когда их
результаты кэшируются.
Пользователи могут аннотировать запрос или фрагмент запроса с помощью подсказки о кэше
результатов. В итоге результат сохранится в кэше результатов запросов SQL.
Параметр инициализации RESULT_CACHE_MODE позволяет выбирать, будет ли кэш результатов
запроса SQL использоваться для всех запросов (по мере возможности) или только для аннотированных
запросов.
База данных автоматически отклоняет кэшированный результат всякий раз, когда транзакция изменяет
данные или метаданные объектов базы данных, которые использовались для создания этого
кэшированного результата.
PL/SQL: кэш результатов функций
Функция PL/SQL иногда используется для возврата результата вычисления, входными данными для
которого являются один или несколько параметризованных запросов, созданных функцией. В
некоторых случаях эти запросы обращаются к данным (например, в каталоге товаров в магазинном
приложении), которые изменяются очень редко в сравнении с частотой вызова функции. В исходный
текст функции PL/SQL можно включать синтаксис, чтобы кэшировать его результаты и для
обеспечения корректной работы очищать кэш, когда в любой таблице из списка происходят
вставка/обновление/удаление. Кэш, подобный кэшу результатов запросов SQL, находится в совместно
используемом пуле. DBA контролирует и отслеживает оба кэша результатов через обычные API.
Клавиша поиска в кэше — это комбинация фактических аргументов, с помощью которых вызывается
функция. Когда при вызове функции кэша результатов обнаруживается запись в кэше, тело функции не
исполняется; вместо этого немедленно возвращается кэшированное значение.
PL/SQL: отслеживание зависимостей на уровне мелких структурных единиц
В предыдущих выпусках метаданные регистрировали взаимозависимости между объектами с
гранулярностью целого объекта. К примеру, единица P PL/SQL зависит от единицы Q PL/SQL, или
представление V зависит от таблицы T. Таким образом, зависимые объекты иногда аннулировались,
хотя для этого не было логического обоснования. К примеру, если представление V зависит только от
столбцов C1, C2, и C3 в таблице T и добавляется новый столбец C99, то это логически не влияет на
действительность представления V. Однако при добавлении столбца C99 в предыдущих выпусках V
аннулировалось.
Oracle Database 11g регистрирует метаданные зависимостей на более мелком уровне гранулярности,
поэтому добавление C99 не аннулирует V. Аналогичным образом, если процедура P зависит только от
элементов E1 и E2 в пакете PKG, при добавлении элемента E99 в PKG процедура P не аннулируется.
(В Oracle Database 10g это изменение PKG аннулирует P.)
Сокращение косвенного аннулирования зависимых объектов в ответ на изменения в объектах, от
которых они зависят, существенно увеличивает доступность приложений. Выгода от этого заметна как в
среде разработки, так и при исправлении или обновлении развернутого приложения. Выгода очевидна,
когда применяют набор исправлений Oracle Database, поскольку изменения объектов схемы должны
быть совместимы и поэтому не вызывать косвенного аннулирования.
PL/SQL: последовательности
В новой версии упрощены задачи программирования.
Генератор последовательностей снабжает приложения сериями последовательных номеров. Генератор
последовательностей особенно полезен в многопользовательских средах, где он служит для генерации
уникальных последовательных номеров, например идентификаторов сотрудников, при этом
отсутствуют служебные данные, связанные с записью/чтением диска, и исключены блокировки
транзакций.
В предыдущем выпуске Oracle Database, когда программе PL/SQL требовалось получить значение из
синтаксиса, использовался SQL. Программистам PL/SQL это не подходит по причине неудобства
использования. В Oracle Database 11g теперь достаточно использовать псевдостолбцы CURRVAL и
NEXTVAL в выражении PL/SQL.
PL/SQL: PL/Scope
PL/Scope позволяет просматривать исходный код PL/SQL по аналогии с тем, как Cscope (см.
http://cscope.sourceforge.net/) позволяет просматривать исходный код C. Можно искать в исходном
коде PL/SQL и отображать все типы определений, инструкций, назначений и ссылок. Компилятор
PL/SQL может по мере необходимости создавать метаданные, необходимые для поддержки PL/Scope,
и хранить их в каталоге баз данных. Метаданные учитывают нюансы языка, включая области и
перегрузку. С помощью входящих в комплект генераторов отчета можно генерировать отчеты (в
особенности HTML-отчеты с гиперссылками). PL/Scope помогает повысить производительность
разработчикам, в особенности тем, кто поддерживает написанный не ими код.
PL/SQL: иерархический профайлер
Иерархический профайлер PL/SQL сообщает о профиле динамического исполнения программы
PL/SQL, организованного запросами подпрограммы. Он учитывает время исполнения SQL и PL/SQL
по отдельности. Каждая сводка на уровне подпрограммы в профиле динамического исполнения
содержит такие сведения, как количество запросов подпрограммы, время, проведенное в самой
подпрограмме, время, проведенное в поддереве подпрограммы (то есть в подпрограммах-потомках), и
подробные сведения о соотношении родительского и дочернего уровня. Сгенерированные HTMLотчеты можно просматривать в любом браузере. Возможности навигации браузера в сочетании с
правильно подобранными ссылками служат удобным способом анализа производительности крупных
приложений, повышения производительности приложений и снижения затрат на разработку.
Java
База данных Oracle содержит Java VM, что позволяет выполнять Java непосредственно в базе данных.
Добавление Java в базу данных вызвано требованиями заказчиков относительно портативности и
возможности повторного использования. Java можно переносить на средний ярус или с него (J2EE,
POJOS, JDBC) в базу данных (хранимые процедуры Java) и обратно. Другой важной выгодой от
использования Java является возможность повторно использовать большую коллекцию доступных
библиотек классов Java и эффективно применять навыки разработки приложений на Java.
JDBC — это отраслевой стандарт интерфейса прикладного программирования (API — application
programming interface), который позволяет добавлять инструкции SQL в код Java. Каждый поставщик
баз данных, например Oracle, осуществляет свое внедрение JDBC путем внедрения интерфейсов
стандартного пакета java.sql. Дополнительные сведения об Oracle Java, JDBC и Database Web Services
см. на сайте http://www.oracle.com/technology/tech/java/java_db/index.html
Java: OracleJVM Performance, JIT Compiler
Значительный прирост производительности.
OracleJVM содержит компилятор JIT (just-in-time — точно в срок). JIT динамически и прозрачно
создает собственные двоичные коды из любых классов Java, существующих в базе данных. Двоичные
коды сохраняются во избежание перекомпиляции. JIT включен по умолчанию (в стандартной
комплектации) и не требует компилятора C или дополнительной настройки. Тестирование,
проведенное нашей компанией с помощью стандартного отраслевого теста, показало увеличение
скорости в 10 раз.
Java: производительность и портативность благодаря стандартам Java
Производительность и портативность приложений при разных платформах и поставщиках — главные
причины использования Java. В этом выпуске JDBC поддерживает Java SE 6, JDBC 4.0 и JMX.
Исполняемый модуль Java, встроенный в RDBMS, поддерживает Java SE 5, Rowset (JSR-114) и JMX.
Java: JDBC 4.0
Oracle Database 11g JDBC поставляется в двух вариантах: ojdbc5.jar для Java 5 (т. е. JDK 1.5) и ojdbc6.jar
для Java 6 (т. е. JDK 1.6). ojdbc6.jar поддерживает новую спецификацию JDBC 4.0, включая
усовершенствования подключения и инструкций, интерфейс оболочек, новые стандартные типы
данных, типы наборов знаков национального языка SQL 2003, усовершенствования LOB, иерархию
исключений и усовершенствования Rowset (JSR-114).
Java: совместимость OracleJVM с Java 5
OracleJVM позволяет повторно использовать приложения и библиотеки Java SE непосредственно в
базе данных, что приводит к существенному повышению продуктивности и производительности. Этот
выпуск в стандартной комплектации поддерживает Java SE 5 (что обеспечивает совместимость с JDK
1.5).
Java: Rowset (JSR-114) перенесен на JDBC на сервере
Драйвер JDBC на сервере теперь поддерживает спецификацию Rowset. Код Java/JDBC, использующий
JDBCRowSet, CachedRowSet, WebRowSet, JoinRowSet и FilteredRowSet, теперь можно выполнять
непосредственно в базе данных.
Java: открытие Oracle по отношению к Java
В этом выпуске следующие функции были открыты: SYS.ANYDATA, Sys:ANYTYPE, Secure Files и
уведомление об изменении запроса.
Java: упреждающая выборка в 1-м цикле приема-передачи
Для нерегламентированных запросов SQL новый механизм упреждающей выборки сочетает в себе
синтаксический разбор, исполнение и выборку для извлечения первого пакета из набора результатов,
полученных при первом взаимодействии с базой данных. Надежные тесты, проведенные нашей
компанией, показали сокращение сетевых циклов приема-передачи на 50 %; сокращение времени
ответа на 50 %, сокращение потребления ресурсов процессора сервера и клиента на 30 %. Чтобы
оценить практические выгоды этого сокращения, приведем в пример типичное интернет-приложение
для розничной торговли: при 1 миллионе нерегламентированных запросов в день (или за
определенный период времени) число циклов приема-передачи за тот же период сократится на 1
миллион.
Java: собственный протокол AQ
Для запросов JMS/AQ через JDBC новый собственный протокол AQ (в отличие от интерфейса на базе
PL/SQL) обеспечивает прирост производительности и сокращение потребления ресурсов процессоров
сервера на 40-300 %.
Java: уведомление об изменении базы данных/запроса
Поддержка JDBC для уведомления об изменении базы данных/запроса — это механизм
масштабируемости, который позволяет потоку JDBC подписываться на уведомление об изменениях в
наборе результатов запросов.
На среднем ярусе эта функция может использоваться для своевременного аннулирования и обновления
кэшей данных. Дополнительные сведения об API см. в документе Oracle Database 11g JDBC.
Java: кэш результатов сервера и клиента
Наборы результатов SQL можно кэшировать в SGA на сервере и автоматически аннулировать всякий
раз, когда связанные объекты изменяются. Стек клиента OCI на клиенте служит аналогом кэша
результатов на сервере. Он синхронизируется с изменениями в кэше сервера.
Java: безопасность
Oracle Advanced Security для драйвера JDBC-Thin.
JDBC-Thin теперь поддерживает компонент Oracle Advanced Security (приобретаемый отдельно) —
наряду с JDBC-OCI, который уже поддерживает его, — включая надежную аутентификацию (т. е.
Kerberos, Radiius, SSL) и поддержку новых алгоритмов шифрования и целостности данных.
Java: простота использования Oracle JVM
Высокая сложность использования — одно из препятствий массового внедрения Java в базы данных.
Этот выпуск содержит множество функций, упрощающих и улучшающих взаимодействие с
пользователем, например интерфейс, подобный JDK, переадресацию на выходе, интерфейс свойств,
резидентный JAR базы данных, двухъярусную продолжительность состояния сеанса Java.
Java: управляемость
Управляемость — ключевое требование рабочей среды, предъявляемое к приложениям Java,
исполняемым на основе (т. е. к компонентам JDBC, Java EE) или внутри базы данных Oracle (т. е. к Java
в базе данных). Этот выпуск содержит следующие функции управляемости: MBean для входа в систему
JDBC, программные запуск и выключение, JMX в OraceJVM и усовершенствования OraceJVM Utilities.
ЗАКЛЮЧЕНИЕ
Организации, занимающиеся разработкой приложений, могут выбирать из множества языков и
технологий программирования. Oracle Database 11g содержит высокопроизводительный и мощный
набор средств разработки приложений, поддерживает самые популярные технологии разработки,
включая Java, PHP и .NET. Application Express — это уникальное средство разработки вебприложений, идеально подходящее для быстрого создания приложений, адресованных отделам или
организациям малого и среднего бизнеса. Наличие в базе данных PL/SQL и Java позволяет выбирать
тип архитектуры, подходящий для создания кода базы данных на сервере, что может повысить
производительность, безопасность, улучшить возможности поддержки и масштабируемость
приложений. SQL Developer предоставляет графическую рабочую среду для Oracle Database,
увеличивающую продуктивность разработчика баз данных. Oracle Migration Workbench упрощает
перенос других баз данных на платформу Oracle. Вместе эти средства упрощают задачи разработки и
помогают организации сократить время разработки приложений и вывода на рынок.
Разработка приложений Oracle Database 11g
Июнь 2007 г.
Автор: Дэвид Гамбино
Соавторы: Сью Харпер, Алекс Ке, Брин Ллевеллин, Куасси Менса, Дэвид Пик,
Кристиан Шей
Oracle Corporation
Международная штаб-квартира
500 Oracle Parkway
Redwood Shores, CA 94065
U.S.A.
Международные запросы:
Телефон: +1.650.506.7000
Факс: +1.650.506.7200
oracle.com
© Oracle, 2007. Все права защищены.
Этот документ предоставляется только для справки, и его содержание может быть
изменено без уведомления.
Мы не гарантируем отсутствие ошибок в этом документе, не даем никаких иных
гарантий и не ставим условий, выраженных в устном виде или подразумеваемых
законодательством, включая подразумеваемые гарантии и условия годности для
продажи или годности для конкретной цели. Мы явным образом отказываемся от
всякой ответственности в отношении этого документа, и этот документ не создает
прямых и косвенных договорных обязательств. Без получения предварительного
разрешения в письменном виде запрещается воспроизводить или передавать этот
документ в любой форме или любыми средствами, как электронными, так и
механическими, вне зависимости от цели.
Oracle является охраняемым товарным знаком Oracle Corporation и/или ее филиалов.
Другие товарные знаки могут быть собственностью соответствующих владельцев.
Download