Курс предоставляет знания и навыки настройки производительности корпоративных приложений, использующих системы управления базами данных Oracle, оптимизации SQL-запросов, осуществления мониторинга работы, а также построения решений на основе клиент-серверной и распределенной, многозвенной архитектуры.
По окончании курса слушатели смогут:
- настраивать приложения SQL и PL/SQL;
- использовать дополнительные механизмы для настройки и оптимизации приложений в клиент-серверной и многозвенной архитектуре;
- настраивать производительности SQL-запросов;
- осуществлять мониторинг и трассировку SQL;
- использовать преимущества распределенных вычислений перед клиент-серверной архитектурой;
- использовать новые особенности архитектуры сервера базы данных Oracle и осуществлять его тонкую настройку;
- использовать новые возможности SQL и PL/SQL;
- преобразовывать запросы с использованием распределенных вычислений на основе сервера Oracle WebLogic.
Аудитория
Курс предназначен для разработчиков и администраторов серверов приложений и баз данных Oracle.
Для эффективного обучения на курсе, слушатели должны обладать следующими знаниями и навыками:
- понимание концепций объектно-ориентированного программирования;
- знание PL/SQL;
- основы разработки приложений для сервера приложений Oracle.
- Факторы, влияющие на производительность приложений, проблемы производительности, роли оптимизации. Выбор методологии оптимизации.
- Логическая и физическая компоновка базы данных. Использование табличных пространств с блоком, отличным от стандартного.
- Процессы управления сервером, механизмы управления памятью сервера и серверными процессами. Оптимальное использование. Механизмы мониторинга памяти. Разделяемый пул и SQL-область. Программная глобальная область. Фазы выполнения SQL-операторов. Необходимость использования параметров в запросах. Использование системных представлений для мониторинга разбора SQL-предложений.
- Понятие параллельного сервера. TNS-адресаты. Настройка процессов прослушивания для работы с протоколами HTTP, FTP, WebDAV. Репозиторий XMLDB.
- Использование OCI-библиотеки и стандарта JDBC для доступа к серверу Oracle. Утилита SQLDeveloper как средство разработки и отладки SQL-запросов.
- Общая архитектура распределенных вычислений Oracle. «Фарм» и «кластер», единая точка входа, SSO-сервер. Сервер Oracle WebLogic - основа создания распределенных вычислительных сред масштаба предприятия.
- Типы данных. Функции для работы с TimeStamp. Рациональное использование табличных пространств для размещения больших объектов. Использование объектных и агрегатных типов для хранения данных.
- Генерация плана выполнения запросов. Команда Explain Plan. Отображение плана выполнения запросов утилитами SQLDeveloper и JDeveloper. Отображение плана выполнения запросов с помощью SQL*Plus. Использование представления V$SQL_PLAN для анализа выполненных запросов. Использование Enterprise Manager для просмотра планов выполнения запросов.
- Методы трассировки SQL-запросов. Параметры инициализации сервера и конфигурирование сессии для проведения трассировок. Форматирование трассировочных файлов. Oracle Session Resource Profiler для получения информации о ходе выполнения операторов. Использование Oracle SQL Analyze для идентификации и корректировки «плохих» SQL-запросов.
- Функционирование оптимизатора. Оптимизатор по правилам и стоимости. Выбор режима оптимизации на различных уровнях. Различные пути доступа к данным. Выбор оптимального пути. Воздействие индексов на методы доступа к данным. Типы индексов. Индексы и ограничение целостности в базе данных.
- Сбор статистики по объектам, схемам и системе. Типы статистических данных. Пакет DBMS_STATS и методы сбора статистики. Мониторинг автоматического сбора статистики. Индексная статистика. Построение статистических гистограмм. Гистограммы и селективность выборок.
- Управление стоимостным оптимизатором. Параметры, влияющие на режим оптимизации. Правила использования подсказок. Управление целями оптимизации. Категории подсказок.
- Сортировки и группировки. Использование аналитических функций в запросах. Управление фреймами. Ввод дополнительных оконных переменных в запросы. JOIN-запросы. Объединение множества таблиц. Использование HASH JOIN. Настройка рабочих областей памяти для выполнения HASH-операций. SQL 1999 и JOIN-операции. Оценка JOIN-статистики.
- Язык манипулирования данными DML. выполнения сложных операторов DML с подзапросами. Оператор Merge. Подсказки оптимизатору при выполнении больших вставок данных.
- Стабилизация плана выполнения запроса и создание OutLines. Использование стабильных планов. Редактирование сохраненных OutLines.
- Язык DDL. Создание и изменение таблиц DDL. Команда Create Table. Определение параметров хранения таблиц на физическом уровне. Локальное управление табличными пространствами. Сегменты, экстенты, блоки. Параметры блоков, почему в Oracle 10g их стало значительно меньше.
- Создание временных транзакционных и сессионных таблиц.
- Создание таблиц с разбивкой на партиции. Глобальные и локальные индексы. Ранжирование партиций, листовые и HASH-партиции. Комбинированные партиции.
- Индексные таблицы. Доступ к данным в индексных таблицах, проблемы обновления данных. Особенности размещения индексных таблиц в физических блоках дисковой памяти.
- Индексы по функциям
- Таблицы, организованные как внешние. Загрузка в базу данных JDBC-драйвера стороннего разработчика для обеспечения доступа к другим базам данных. Настройка безопасности доступа к протоколу TCP из Java-приложений в Oracle-сервере.
- «Откладываемые» ограничения целостности и проблемы каскадного обновления первичных ключей. Команда Set Constraint. Изменение структуры таблицы, команда Alter Table и ограничения целостности. Создание неуникальных индексов для первичных и уникальных ключей. Мгновенное включение ограничений.
- Использование функций в индексах. Deterministic-функции. Индексы и оптимизация. Необходимость использования индексов. Особенности хранения индексов на дисковом пространстве. Кластеры. Hash-кластеры с сортировкой и кластеры одной таблицы. Необходимость использования кластеров. Практический пример преобразования некластеризованных таблиц в кластеризованные. Кластерные индексы.
- Материализованные представления. Сколько создавать материализованных представлений. Типы представлений и методы обновления. Преобразование сложных запросов в материализованные представления.
- Оптимизация PL/SQL. Агрегатные типы данных, массивы и таблицы PL/SQL. Оператор BULK COLECT и операции DML. Извлечение данных из базы данных в PL/SQL-таблицы, оператор BULK FETCH. Преобразование типов данных. Ссылочные типы данных. Ассоциативные таблицы и правила доступа к элементам.