К.т.н. Гулак Н.К. , студенти 4к Піскун А.В.,Мохур Д.В.

Національний авіаційний університет, Україна

Oracle Database: мережність систем керування базами даних

Oracle в наш час – є системою номер один управління бази данних (СУБД) для корпоративних інформаційних систем. Висока надійність і продуктивність є якостями, які оптимальним чином підходять для великих і середніх підприємств, де необхідно автоматизувати десятки робочих місць і забезпечити обробку великої кількості документів. Існують різні поставки СУБД для забезпечення практично будь-яких вимог користувача.

Центральним компонентом сучасних інформаційних систем виступає надійний, потужний, продуктивний сервер баз даних, експлуатаційні характеристики якого безпосередньо визначають якість її функціонування. Тому вибір сервера бази даних є найбільш важливою ланкою, який визначає ваші дії на всіх етапах - від вибору системи до її промислової експлуатації.

На сьогоднішній день існують як пропрієтарні, так і вільно використовувані системи управління базами даних, наприклад, такі як:

• IBM DB2 UDB

• Microsoft SQL Server

• MySQL

• PostgreeDB

• FireBird

Кожна система має свої особливості, переваги , недоліки і свою ціну.

СУБД Oracle є найстарішою СУБД, перша версія з'явилася у 1979 році. З тих пір Oracle розвивався, ставав швидше, надійніше і зручніше для розробника і користувача. На сьогоднішній день Oracle має як мінімум 4 унікальні технології, що забезпечують конкурентну перевагу цієї СУБД. Про те, що Oracle Database є визнаним лідером у цій галузі виробництва ПЗ, свідчить той факт, що за підсумками 2009 року Oracle Database належить 47% світового ринку систем управління базами даних.

Якими ж саме перевагами забезпечений цей факт?

Деякі з технологій, реалізованих в Oracle Database, мають аналоги в інших СУБД, наприклад, MS SQL Server, але практично у всіх порівняннях аналогій, Oracle надає більш широкий і зручний функціонал в даній області.

Порівняємо  Oracle Database 10g-11g і Microsoft SQL Server 2005-2008:

  - Версійний режим

Важлива відмінність в тому, що сегменти відкату Oracle Database захищені від безрозмірного зростання і місце простору відкату використовується циклічно (розмір і їх кількість може задаватися адміністратором). При неправильному розмірі сегментів дуже довга транзакція може отримати помилку, в результаті чого відкотиться лише одна транзакція, в той час як в MS SQL Server зростання tempdb не обмежений, в результаті одна <невдала> транзакція може просто переповнити tempdb і зупинити роботу всіх користувачів (є job , яким можна якось спробувати зреагувати). У Oracle Database, на відміну від MS SQL Server, зберігаються не версії рядків, а блоки даних, що дозволяє накладати версійність універсально на будь-які об'єкти, плюс оптимізувати операції введення-виведення. Наприклад, при необхідності робити клон блоку в пам'яті, який вже позначений на скидання (на жорсткий диск), і не чекати, поки блок дочекається своєї черги і з"явиться на диску.

Суть цієї технології полягає в забезпеченні узгодженого читання даних. Тобто, уявімо ситуацію: о 10:00 користувач А починає читання даних з таблиці. О 10:05 він прочитує тільки половину даних, які зберігаються в таблиці. У 10:03 користувач В змінює дані цієї таблиці від середини  до кінця. Які дані повинен отримати користувач А, коли він дійде до кінця таблиці? Очевидно, що він повинен отримати ту картину, яка була на момент початку роботи його запиту, тобто без урахування змін, які вніс користувач В. Це необхідно для захисту транзакцій від неузгоджених змін даних, які могли бути викликані іншою, конкурентною транзакцією, і забезпечити ізоляцію транзакцій. Версійний режим з'явився вперше у версії SQL Server 2005 і практично повністю копіює реалізацію в Oracle, яка з'явилася в 83-му році у 3-ї версії. Але є одна суттєва відмінність: у MS SQL Server версії рядків зберігаються в tempdb, в той час як в Oracle Database - в окремій структурі сегментів відкату (в Oracle для окремих транзакцій можна створювати окремі сегменти відкату). Tempdb часто стає головним болем адміністратора MS SQL Server.  Проблемі  tempdb на msdn присвячена не одна нота, тому що там крім тимчасових таблиць і табличних змінних зберігаються сортування і курсори. Додавання в tempdb ще і версій рядків робить і без того перевантажений tempdb вузьким місцем у системі.

Версійний механізм дозволяє в Oracle Database робити ретроспективні (flashback) запити і бачити стан таблиць в минулому, чого немає в SQL Server.

  - Розмір блоку

Блок бази даних - це найменша одиниця інформації, яку СУБД читає або записує на жорсткий диск або в оперативну пам'ять. Наприклад, щоб прочитати один рядок з таблиці, яка займає 200 байт, потрібно прочитати з пам'яті або жорсткого диска блок повністю, розмір якого становить, наприклад, 8000 байт і потім витягувати з прочитаного блоку потрібний рядок. Очевидно, що в цьому випадку 7800 байт були прочитані даремно. Зворотня ситуація, коли потрібно прочитати всі рядки таблиці, СУБД буде змушена прочитати чим більше блоків, тим більше рядків і більше розмір одного рядка. Вигідно було б прочитати 1 блок розміром, наприклад, 32 кілобайти, ніж читати 4 блоки розміром по 8 кілобайт. Однією з пріоритетних завдань з налаштування продуктивності є мінімізація кількості логічних читань (прочитаних блоків), і в Oracle Database адміністратор має безліч механізмів для вирішення цього завдання.

Крім того, в Oracle Database реалізований механізм управління заповненням простору блоку (pct_free, pct_used), що дозволяє ефективно настроювати СУБД для вирішення того чи іншого завдання.

У SQL Server розмір блоку (page size) дорівнює 8 кілобайт і не може бути змінений, що сильно обмежує можливість налаштування системи, особливо DSS систем (сховища даних). У Oracle Database розмір блоку задається під час створення бази даних, і, більше того, для кожного табличного простору може бути заданий свій розмір блоку, наприклад, для табличних просторів з маленькими, часто змінюваними таблицями - менший розмір, для табличних просторів з великими, рідко змінюваними таблицями, що містять великий обсяг даних - більший розмір, що суттєво може вплинути на продуктивність системи в цілому.

  - Індекси

У Oracle Database підтримуються різні типи індексів, які не реалізовані в MS SQL Server, наприклад: B-tree cluster indexes, Hash cluster indexes, Reverse key indexes, Bitmap indexes, Bitmap join indexes. Кожен з цих типів індексів може забезпечити істотний приріст продуктивності в тій чи іншій ситуації.

Використання Bitmap index дозволяє значно прискорити вибір по полях з низькою селективністю, тобто невеликою кількістю  значень у полі. Використання такого типу індексу - один із шляхів вирішення проблеми продуктивності в системах сховищ даних.

Використання Reverse index дозволяє зменшити конкуренцію за блоки БД при включенні в поле монотонно наростаючих значень: наприклад, номерів документів або унікального ключа. Це ще один інструмент адміністратора бази даних щодо підвищення продуктивності системи без збільшення потужності устаткування.

У Oracle Database також існує зручне і просте середовище для виконання всіх адміністративних дій: Enterprise manager. Починаючи з 10-ї версії, EM має web-інтерфейс. Слід зазначити, що з Oracle EM можна управляти не тільки одиничним екземпляром бази даних, але і кластером і мережею GRID-серверів.

В 10-й, і в 11-й версії Oracle Database поліпшені і доповнені функції самоадміністрування і самодіагностики сервера. В 10-й версії з'явилася функція автоматичного збору статистики, аналізу та видачі рекомендацій, відстеження різних показників, з видачею про це повідомлення.

В 10-й версії  з"явилася можливість використання технології Flashback table, що дозволяє значно спростити відновлення  помилок. Більше не потрібно відновлення з резервної копії, досить вибрати віддалений об'єкт і відновити його з <кошика>. Слід зазначити, що в MS SQL Server також можливе виконання аналогічної операції, але вимагає значно більше часу: потрібне відновлення з резервної копії, вибір точки відновлення і накат втрачених транзакцій вручну. Теж саме стосується і відновлення після помилкової транзакції. У Oracle Database це робиться як через консоль EM, так і вручну, SQL операторами, причому потрібно просто вибрати момент у минулому, на який потрібне відновлення. У MS SQL Server відновлення також виробляється з резервної копії з наступним ручним накатом журналів.

Таким чином, Oracle Database надає користувачеві три варіанти:

       1. повну самодіагностику і самонастройку, яка вдосконалюється від версії до версії, узагальнюючи і базуючись на досвіді тисяч адміністраторів з усього  світу і математичних моделях;

      2. потужну і зручну консоль адміністратора, що не вимагає установки якого-небудь додатково ПЗ на комп'ютер адміністратора, і, отже, доступну з будь-якого комп'ютера в мережі, в тому числі по мережі Інтернет, якщо це необхідно;

        3. тонкі засоби діагностики і настройки, що залишилися з минулих версій і дозволяють адміністратору в повній мірі застосувати свої знання в області налаштування продуктивності.

Аналогічні засоби інших СУБД або жорстко обмежують адміністратора через повну автоматизацію процесів налаштування, наприклад, оперативну пам'ять, або надають менш багатий функціонал для виконання стандартних операцій.

 Слід відмітити , що сьогодні швидко змінюється бізнес-середовище і це часто спрямовує компанії до розподілених середовищ. Дивлячись на потреби в інтеграції інформації,які виникаютьу компаній,стає очевидно, що Oracle пропонує повне і стійке вирішення кожної з цих потреб. Корпорація Oracle є найбільшим у світі постачальником програмного забезпечення для управління інформацією та другою у світі компанією з постачання програмного забезпечення.

Література:

1.     Oracle для профессионалов. Книга1. Архитектура и основные особенности. Третье издание, переработанное и дополненное: Пер. с англ. /Том Кайт – СПб.: ООО «ДиаСофтЮП»,2005 – 656с.

2.     Microsoft Corporation. Администрирование Microsoft SQL Server 2000. Учебный курс MCSA/ MCSE, MCDBA/Пер. с англ. - 2-е изд., испр. - М.: Издательско-торговый дом "Русская Редакция", 2002. - 640 стр.: ил.

3.     Малколыи Г. Программирование для Microsoft SQL Server 2000 с использованием XML. /Пер, с англ. - М.: Издательско-торговый дом "Русская Редакция", 2002. - 320 с.: ил.

4.     Ян Абрамсон , Майкл С. Эбби, Майкл Кори.ORACLE 10g.  Первое знакомство .