Керівництво з технічної оцінки продукту SQLBase від компанії Gupta Technologies. Частина 1

Ефективний, безпечний переклад транзакцій з настільних комп'ютерів на веб-сервери, що працюють під управлінням Linux або Windows

Введення



Тригери


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


У СУБД SQLBase реалізована повна і гнучка підтримка тригерів, що дозволяє розробникам баз даних вирішувати практично будь-які завдання:


Збережені команди


Збережені команди використовуються для забезпечення оптимальної роботи часто використовуваних операторів SQL. Збережені команди аналогічні збереженим процедурам, за винятком того, що в них міститься один оператор SQL (команда SELECT або DML). Вони також компілюються, оптимізуються і зберігаються в базі даних. Після запису команди в базу даних програми можуть викликати її без передачі по мережі службової інформації, компіляції та оптимізації запитів. За одним запитом можна викликати кілька збережених команд (даний процес називається зчепленням), наприклад, для формування послідовного ідентифікатора однієї таблиці для вставки запису в іншу таблицю. Це дозволяє зменшити кількість мережевих повідомлень і загальне навантаження на мережу. Збережені команди забезпечують максимальну продуктивність для додатків оперативної обробки транзакцій (OLTP).

Підтримка транзакцій


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

Підтримка багатопотокових додатків


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


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

Приклад 2: Можна періодично опитувати фоновий процес для отримання нових даних з метою оновлення графіка на екрані, в той час як користувач виконує інші завдання в тому ж самому додатку.

Точки збереження


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

Відкат DML


На відміну від більшості інших баз даних в SQLBase можливий відкіт змін структури бази даних без зміни даних. Це вкрай корисна функція при розробці схем і оновленні розгорнутих баз даних.

Підтримка розподілених транзакцій (двофазна фіксація транзакції)


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

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

Підтримка бізнес-транзакцій за допомогою Microsoft Transaction Server MTS


Інтеграція СУБД SQLBase в корпоративні транзакції. Виконання транзакцій більше не обмежується базою даних. Тепер транзакції охоплюються складні бізнес-процеси, які включають оновлення баз даних від різних постачальників і розташованих в різних вузлах. Підтримка MTS дозволяє повністю інтегрувати SQLBase в COM + транзакції, включаючи підтримку повної фіксації і відкоту для всіх транзакцій. Для створення MTS транзакцій можна використовувати різні мови програмування, включаючи Team Developer. Наприклад, одна об'єднана транзакція може переказувати гроші з локального облікового запису SQLBase в центральну обліковий запис на сервері SQL Server. Транзакція або виконується успішно, або, у разі збою, виконується відкат у всіх задіяних базах даних.

Ефективність і продуктивність


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

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

Багаторядковий доступ


SQLBase забезпечує прикладення даними за запитом. Більшість СУБД розроблені для надання по кожному коли програма окремого рядка з бази даних. Це відбувається тому, що багато систем управління базами даних, які розроблялися для оточень на базі великих або міні-ЕОМ, були призначені для роботи з додатками, розташованими на сервері (без використання технології клієнт / сервер) або з простими додатками командного рядка.

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

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

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

Оптимізатор на основі витрат та статистики


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

У цьому типі оптимізації, наприклад, зміна порядку умов з'єднання у реченні "WHERE" може призвести до зміни набору використовуваних індексів. Така залежність може викликати проблеми, тому що від програмістів для досягнення максимальної продуктивності потрібно розуміння правил оптимізатора, а це далеко не просте завдання, особливо якщо постачальник не зробив правила загальнодоступними.

У SQLBase вбудований складний оптимізатор запитів на основі вартості, що використовує різні статистичні відомості про розподіл даних у таблицях і індексах, які зберігаються в метатабліцах в системному каталозі. Оптимізатор аналізує всі можливі способи обробки запиту і визначає оптимальний спосіб доступу до даних. Оцінюються всі плани запиту і розраховуються витрати на їх виконання. Незалежно від синтаксису, введеного користувачем, вибирається запит з найменшими витратами. Таким чином, користувач або розробник програми звільняється від "чаклунства" з визначенням синтаксису, що забезпечує вибір оптимального плану доступу.

Можливості мови SQL часто дозволяють витягати інформацію з бази даних SQL за допомогою різних способів завдання оператора SELECT. Оптимізатор запитів СУБД SQLBase може перевіряти запити і робити їх більш ефективними за допомогою зміни їх внутрішньої структури.

Реєстрація відновлення даних


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

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

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

продовження статті

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*