SQLBase під мікроскопом

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

Чи доводилося Вам робити настроювання SQL в системах SQLBase? З чого Ви починали? Існують, ймовірно, тисячі операторів SQL, якими користуються кожен день, але з їх допомогою не можна виявити оператори, обмежують продуктивність сістеми.Настройка, у разі відсутності вихідного коду, є тим засобом, який забезпечує коректне конфігурування SQLBase.


Багато систем написані виходячи з тестових баз даних, що не містять реальні обсяги даних. Тому програмісти часто повинні здогадуватися, який оператор SQL буде забезпечувати найкращу продуктивність. На стадії розробки часто додають індекси, однак, без чіткого розуміння, яка від них у результаті буде користь. Такий підхід призводить до створення малоефективних систем.


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


SQLPerformance досягає цього, використовуючи засоби аудиту SQLBase. SQLBase ревізує всі виконувані оператори SQL у файл на сервері і потім зчитує цей файл за допомогою SQLBase File Handling API (при цьому не потрібно наявності спільно використовуваних директорій). Кожен зустрічається в списку оператор перевіряється на поточне виконання. У позитивному випадку значення лічильника збільшується, в негативному – До списку включається новий оператор. Нарешті, список сортується в порядку убування (час виконання * число звернень). Цей список оновлюється кожні три секунди.


Як використовувати SQLPerformance



Запустіть SQLPerformance, введіть ім'я Вашого SQLBase сервера (наприклад, "Server1") і пароль (це поле можна залишати порожнім для локальних версій SQLBase); переконайтеся в тому, що опція Append не позначена і встановіть значення поля Minimum Time рівним 0. Потім натисніть Start. Тепер SQLPerformance з'єднається з SQLBase сервером і почне аудит під назвою SQLPERF. Ім'я аудит-файлу виводиться в назві вікна. Кожні три секунди буде з'являтися курсор очікування у міру того, як аудит-файл буде виводитися і аналізуватися разом з формуванням списку. Тепер запустіть які-небудь оператора SQL по базі даних в SQLTalk. Ви побачите, що вони виводяться в список. Повторний запуск цих операторів призведе до зростання лічильника в колонці. Ви також побачите, що розмір аудит-файлу почне зростати. Аудит-файли ростуть дуже швидко, тому переконайтеся в тому, що дискового простору досить! Можна встановити максимально дозволений розмір файлу в полі "Max Audit Size".


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


При натисканні кнопки Stop аудит буде завершено і для оновлення списку буде використаний останній прохід по аудит-файлу. В якості прикладу дивіться Рис.1.

Рис.1 Використання SQLPerformance



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


Для повного перегляду операторів SQL відзначте їх в списку після виділення таблиці SQL. Для перегляду планів виконання виділіть таблицю Execution Plan. При першій спробі перегляду плану виконання SQLPerformance зробить запит на початок роботи з базою даних. Такий запит при перегляді планів виконання робиться тільки один раз при роботі з кожною окремою базою даних.


Вихід з SQLPerformance в ході аудиту автоматично зупиняє останній. Застереження: в разі закриття SQLPerformance або вимкнення комп'ютера під час аудиту, SQLBase не припиняє аудит. У цьому випадку необхідно припинити процес вручну в програмі SQLTalk командою:

STOP AUDIT SQLPERF

Якщо Ви задоволені роботою SQLPerformance, запускайте свій додаток і постарайтеся запустити найбільш ресурсномістких функцію. Тепер можна почати налаштування.


Рамки цієї статті не дозволяють докладно пояснити роботу SQLBase. Єдине, що варто відзначити, це те, що остання колонка містить індексовані в базі даних колонки. Для більш повної інформації див. "Глава 15: Введення в оптимізацію запитів" Розширене Керівництво Користувача SQLBase ("Chapter 15: Introduction to Query Optimization" in the SQLBase Advanced Topics Guide).


Як працює SQLPerformance



SQLPerformance використовує C-API SQLBase для всіх типів баз даних і всіх видах доступу до файлів. Зв'язок з сервером реалізується через SQLCSV. Аудит запускається за допомогою SQLCBV і SQLEXE для компілювання та виконання наступних операторів:

START AUDITING PERFM SQLPERF TO [directory]
SIZE 0 APPEND 1 CATEGORY 2

повертаючи дескриптор сервера від SQLCSV. (Примітка: Команда не документована.) Якщо аудит вже почався, таймер періодично оновлює дисплей. Кожного разу, коли список оновлюється, для вилучення з файлу 1,024-байтових блоків використовуються функції SQLMOP (відкрити віддалений файл), SQLMRD (вважати блок з відкритого файлу) і SQLMCL (закрити віддалений файл). Ці блоки потім аналізуються в списку.


У ході перегляду плану виконання здійснюється підключення до відповідної бази даних SQLBase з використанням SQLCNC, при цьому оператор компілюється за допомогою SQLCBV, і план виконання витягується за допомогою SQLGET з параметром SQLPEXP. Строка результату потім аналізується і вводиться в список плану виконання. Нарешті колонки, пов'язані з цим індексом, і статистика рядків у таблиці витягуються за допомогою наступних операторів:

SELECT colname, rowcount FROM SYSKEYS,
SYSTABLES WHERE IXNAME (+) =:1 AND
NAME = :2 ORDER BY colno

SQLPerformance спеціально ігнорує наведені вище оператори, щоб вони не з'являлися в списку!


Додаток SQLPerformance написано на Microsoft Visual C + +, версія 5.0. Ми зробили так для того, щоб обмежити вимоги за часом виконання для користувачів без інсталяції CTD. Виконуваний файл скомпоновано статично, так що немає ніякої необхідності інсталювати файли бібліотеки MFC.


Майбутні поліпшення



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


Про автора: Alan Down – позаштатний розробник, що спеціалізується на продуктах Centura, Visual C + + і 3COM.


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


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

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

Ваш отзыв

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

*

*