ПЕРЕЛІК ДИСЦИПЛІН:
  • Адміністративне право
  • Арбітражний процес
  • Архітектура
  • Астрологія
  • Астрономія
  • Банківська справа
  • Безпека життєдіяльності
  • Біографії
  • Біологія
  • Біологія і хімія
  • Ботаніка та сільське гос-во
  • Бухгалтерський облік і аудит
  • Валютні відносини
  • Ветеринарія
  • Військова кафедра
  • Географія
  • Геодезія
  • Геологія
  • Етика
  • Держава і право
  • Цивільне право і процес
  • Діловодство
  • Гроші та кредит
  • Природничі науки
  • Журналістика
  • Екологія
  • Видавнича справа та поліграфія
  • Інвестиції
  • Іноземна мова
  • Інформатика
  • Інформатика, програмування
  • Юрист по наследству
  • Історичні особистості
  • Історія
  • Історія техніки
  • Кибернетика
  • Комунікації і зв'язок
  • Комп'ютерні науки
  • Косметологія
  • Короткий зміст творів
  • Криміналістика
  • Кримінологія
  • Криптология
  • Кулінарія
  • Культура і мистецтво
  • Культурологія
  • Російська література
  • Література і російська мова
  • Логіка
  • Логістика
  • Маркетинг
  • Математика
  • Медицина, здоров'я
  • Медичні науки
  • Міжнародне публічне право
  • Міжнародне приватне право
  • Міжнародні відносини
  • Менеджмент
  • Металургія
  • Москвоведение
  • Мовознавство
  • Музика
  • Муніципальне право
  • Податки, оподаткування
  •  
    Бесплатные рефераты
     

     

     

     

     

     

         
     
    Деякі аспекти забезпечення ефективності роботи системи управління базами даних
         

     

    Інформатика, програмування

    Деякі аспекти забезпечення ефективності роботи системи управління базами даних

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

    Якість роботи складається як з апаратного рівня, так і з програмного рівня оснащення. Одним із способів забезпечення ефективності роботи СУБД є оснащення її професійною системою моніторингу.

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

    СУБД складається з двох складових: БД (інформація) і примірник чи інстанція (конкретна реалізація системи). База даних складається з фізичних файлів, що зберігаються в системі, і з логічних частин.

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

    Розглянемо необхідні структурні компоненти та зв'язку, прімінітельно до СУБД Oracle.

    Дисковий масив (компонент фізичного рівня) Oracle:

    реляційна БД (database files) - один або більше файлів даних, в яких зберігається інформація в БД (можна мати як один файл даних, так і сотні таких файлів), інформація з однієї таблиці може бути розкидана по декількох файлів даних (а кілька таблиць можуть ділити між собою простір файлів даних), таблиці розподіляються по декількох файлів даних, що може значно збільшити продуктивність системи;

    логування операцій (redo log files) - два або більше файлів журналювання операцій, які містять інформацію, необхідну для процесу відновлення системи. Ці файли зберігають всі зміни, які відбулися в БД. За допомогою цього відновлюються ті зміни, які були вироблені, але не зафіксовані перед збоєм системи. Файли журналювання повинні бути добре захищені проти апаратних збоїв (як на програмному, так і на апаратному рівні);

    архів логів (archive log) - точна копія файлів журналювання операцій.

    Фонові процеси (background processes) Oracle:

    драйвер запису даних у БД (Database writer) - запис змінених (брудних) блоків з блоків буферів БД на диск. Коли транзакція змінює інформацію в блоці даних, цей блок даних не зобов'язаний бути негайно записаний на диск. Значить можна записувати дані на диск способом більше ефективним, ніж запис всіх змін окремо. Зазвичай записуються дані тоді, коли вони вже потрібні для читання. Записуються також ті дані, які були нещодавно використані. Для систем з асинхронним введенням-виводом достатньо одного процесу. Для інших можна значно збільшити продуктивність, створивши кілька процесів;

    драйвер запису логів (redo log writer) - записує дані з журнального буфера в журнал змін;

    драйвер архівує пристрої (archiver) - копіює файли журналу змін при їх заповненні. Він активний лише в тому випадку, якщо СУБРД працює в режимі ARCHIVELOG.

    Системна глобальна область (system global are або SGA) - це область розділяється пам'яті, яку Oracle використовує для зберігання даних і керуючої інформації одного конкретного екземпляра Oracle. SGA розміщується в пам'яті при запуску інстанції Oracle і звільняє пам'ять при зупинці. Кожен запущений екземпляр Oracle має свою власну SGA. Складові SGA (кожен з яких створюється в пам'яті при запуску інстанції):

    кеш-буфер БД - зберігає останні відкриті блоки даних. Ці блоки можуть містити дані, які змінилися, але ще не були записані на диск (брудні блоки); дані, які не змінювалися або були записані на диск після зміни (чисті блоки). Так як кеш-буфер БД зберігає блоки даних на основі алгоритму останніх використовуваних блоків, то найбільш активно використовувані блоки постійно залишаються в пам'яті (знижуючи дисковий ввід-висновок і збільшуючи продуктивність системи);

    буфер журналу змін - зберігає дані про зміни БД. Буфер журналу змін записується у файл журналу змін настільки швидко і ефективно наскільки це можливо;

    розділяється пул - це область SGA, в якій зберігаються такі структури розділяється пам'яті, як колективні SQL-області у бібліотечній кеші і внутрішня інформація словника даних. Недостатній обсяг розділяється пулу може призвести до деградації продуктивності всієї системи. Він складається з бібліотечного кешу і кеша словника даних. Бібліотечний кеш являє собою область пам'яті, де зберігаються всі оператори SQL і PL/SQL. Процесор БД розуміє лише команди SQL. Незалежно від того, які засоби застосовуються для забезпечення взаємодії користувача з БД, лише оператори SQL надсилаються програмного забезпечення для обробки.

    Серверні процеси - це механізми виконання програмного коду. Кілька процесів можуть працювати одночасно. СУБД працює з двома видами процесів: користувацькі процеси і процеси Oracle.

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

    диспетчери (dispatcher) - процес, відповідальний за кожен протокол зв'язку. Вони організують взаємодію між призначеними для користувача і розділяються серверними процесами.

    SQL * Net - це клієнтські мережеві компоненти і адміністративні утиліти.

    На пропонованій схемі показані необхідні структурні компоненти і зв'язку, моніторинг яких необхідно здійснювати.

    На компонентах дискового масиву - реляційна БД - в процентному співвідношенні зайнятість файли з даними від загальної кількості дискового простору; логування операцій - зайнятість файлами з журнал операцій; архів логів - відсоток зайнятості на пристрої з резервування (backup) файлів.

    Стрілками позначені зв'язки між компонентами СУБД, моніторинг яких також обов'язковий.

    Продуктивність всієї системи в цілому залежить від функціонування кеш-буфера БД, він складається з блоків пам'яті того ж розміру, що і блоки Oracle. Всі дані завантажуються в кеш-буфер. У них же виконується і будь-яке оновлення даних, тому дуже важливо правильно встановлювати розмір буфера. Oracle переносить дані на диск (використовується підкачки swap-даних) в відповідно до порядку їх розміщення в списку LRU (least recently used -- найбільш давно що використовувалися). Цей список відстежує звернення до блоків даних та враховує частоту звертання до них. Коли виконується звернення до блоку даних, що зберігається в кеш-буфері, він поміщається в той кінець списку - MRU (most recently used - нещодавно використаних). При цьому, якщо серверу потрібне місце в кеш-буфері для завантаження нового блоку з диска він звертається до списку LRU і вирішує який з блоків перенести на диск, для того щоб звільнити місце для нового блоку. У блоків найбільш віддалених у списку від MRU найбільша вірогідність видалення з кеш-буфера. Найдовше залишаються в кеш-буфері ті блоки, звернення до яких здійснюється найбільш часто. Аналіз функціонування кеш-буфера виявив наступну блок-схему його роботи.

    Таблиця X $ BH містить інформацію про блоки в кеш-буфері. У ній можна побачити, як "лічильник звернень" збільшується при кожному зверненні до блоку. Спочатку знаходиться блок. Використовуємо блок таблиці DUAL - спеціальної таблиці, що складається з одного рядка і одного стовпця (присутня у всіх БД Oracle). Знайдемо відповідний номер файла і номер блоку у файлі:

    select file_id, block_id

    from dba_extents

    where segment_name = 'DUAL' and owner = 'SYS';

    FILE_ID BLOCK_ID

    ---------- ----------

    1 870

    Тепер можна використовувати отриману інформацію для отримання "лічильника звернень" для цього блоку:

    select tch from x $ bh where file # = 1 and dbablk = 870;

    TCH

    ----------

    2

    select * from dual;

    D

    -

    X

    select tch from x $ bh where file # = 1 and dbablk = 870;

    TCH

    ----------

    3

    При кожному зверненні збільшується значення лічильника. Блоки з часом переміщуються за списком природним шляхом, тому що змінені блоки переносяться до списку "брудних" (для запису на диск процесом DBWn). Якщо незважаючи на повторне використання блоків кеш-буфер заповнився, і блок з невеликим значенням "лічильника звернень" видаляється зі списку, він повертається з новими даними приблизно в середину списку. Інтенсивно використовувані блоки кешуються надовго, а рідко використовуються - довго там не затримуються.

    Розмір кеш-буфера визначається двома параметрами налаштування DB_BLOCK_SIZE і DB_BLOCK_BUFFERS (розташовуються у файлі init.ora). Загальний обсяг кеш-буфера визначається, як добуток цих двох параметрів DB_BLOCK_SIZE * DB_BLOCK_BUFFERS.

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

    Список літератури

    Грін Джо і ін Oracle 8/8i Server. Енциклопедія користувача: Пер. с англ./Джо Грін и др. - К.: Видавництво "ДіаСофт", 2000. - 576 c.

    Кайт Том Oracle для професіоналів. Книга 1. Архітектура й основні особливості: Пер. с англ./Том Кайт - СПб.: ТОВ "ДиаСофтЮП", 2003. - 672 c.

    Новик Володимир Довідник. SQL, PL/SQL, SQL * Plus -- Ізраїль: 2001. - 126 с.

    Еббі Майкл, Корі Майкл, Абрамсон Йєн Oracle9i: Перше знайомство - М.: Видавництво "Лорі", 2003. - 517 c.

    Biju Thomas, Bryla Bob Oracle 9i DBA Fundamentals I: Study Guide - San Francisco: SYBEX Inc., 2002.

    Biju Thomas, Bryla Bob Oracle 9i DBA Fundamentals II: Study Guide - San Francisco: SYBEX Inc., 2002.

    Bobrowski Steven ORACLE7 Server Administrator's Guide - Ireland: 1992.

    Prise Jason Oracle Database 10g SQL - McGraw-Hill/Osborne: 2004.

    Для підготовки даної роботи були використані матеріали з сайту http://www.realcoding.net/

         
     
         
    Реферат Банк
     
    Рефераты
     
    Бесплатные рефераты
     

     

     

     

     

     

     

     
     
     
      Все права защищены. Reff.net.ua - українські реферати ! DMCA.com Protection Status