Курс надає знання та навички налаштування продуктивності корпоративних додатків, які використовують системи управління базами даних 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. Перетворення типів даних. Довідкові типи даних. Асоціативні таблиці та правила доступу до елементів.