Unicenter SQL-Station – ще один шлях підвищення ефективності роботи додатків

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


Часто, особливо якщо справа пов'язана з використанням баз даних, повільне функціональність таких програм пов'язане з використанням "неоптимізованого" програмного коду. Будь-який досвідчений SQL-програміст напевно зможе навести не один приклад зі своєї практики, коли зміна програмного коду, іноді проста перестановка параметрів SQL-вирази, призводила до помітного прискорення роботи програмного забезпечення.


Таким чином, ще один шлях підвищення ефективності роботи додатків – це оптимізація програмного коду. Але цей шлях вимагає наявності у програмістів, крім глибоких знань, ще й великого досвіду і навіть інтуїції. Але не варто відмовлятися від цього шляху, якщо знань, досвіду та інтуїції ваших програмістів недостатньо для досягнення необхідного результату, тому завжди можна вдатися до допомоги спеціальних програмних продуктів. Наприклад, до Unicenter SQL-Station – з набору програмних продуктів компанії Computer Associates – Unicenter Database Management Solutions.


Програмний комплекс Unicenter Database Management Solutions представляє собою універсальний набір інтегрованих інструментів для широкого діапазону промислових СУБД, включаючи DB2, Oracle, Microsoft SQL Server і Sybase, які дозволяють здійснювати безперервний моніторинг "строкатою" суміші баз даних, що працюють в гетерогенних інформаційних середовищах сучасних підприємств. Дані моніторингу фільтруються і корелюються для виділення факторів, які мають негативний вплив на ефективність функціонування складних бізнес-додатків. Здійснюючи детальні виміри і виконуючи глибоку аналітику баз даних, цей комплекс надає інструменти виконання автоматичних реакцій для запобігання потенційних проблем та забезпечення високопродуктивного використання баз даних на вашому підприємстві.


Як вже говорилося, Unicenter SQL-Station допомагає уникнути небезпеки вбудовування неефективного програмного коду у додатки на етапі їх створення або при модернізації вже існуючих на підприємстві програмних систем. Навіть якщо написаний вами програмний код не містить явних помилок, це не гарантує оптимальну роботу ваших додатків. Дослідження показують, що неоптимізований SQL вираження є причиною від 60 до 80% проблем з продуктивністю роботи додатків. Unicenter SQL-Station надає можливість формування оптимального, ефективного SQL коду, а також ідентифікації програм, вбудованих SQL висловів та об'єктів баз даних, які найбільш негативно впливають на продуктивність системи. Забезпечуючи допомогу при створенні, тестуванні, налагодженні і налаштування SQL коду, цей продукт може значно прискорити процес створення програмних додатків.


Щоб не бути голослівними, давайте розглянемо приклад з налагодження Oracle SQL уривка з використанням одного з компонентів Unicenter SQL-Station під назвою Plan Analyzer.


Етап I, Аналіз . Plan Analyzer функціонує як експерт, який відповідає на всі ваші питання по налаштуванню SQL коду і надає вам план оптимізації з докладними коментарями, дозволяючи:



На рис. 1 зображено вікно інтерфейсу Unicenter SQL-Station Plan Analyzer. Відкривши файл нашого прикладу, ми бачимо у верхній частині вікна інтерфейсу наш SQL код, в центральній частині – план виконання нашого коду за умови використання "Hint Rule". План складається з послідовності кроків, що мають інтуїтивно зрозумілу забарвлення і коментарі, прочитати які можна в нижній частині вікна при виборі відповідного кроку. У правій частині вікна можна подивитися кількісні дані і параметри, пов'язані з вибраним кроком плану. Дані та параметри об'єктів у контексті даного плану можна подивитися, вибравши закладку "Objects" у центральній частині екрана (рис. 2). Або, вибравши закладку "Execution Stats", можна побачити точну кількісну і тимчасову статистику виконання коду і використовувати ці дані для аналізу ефективності даного плану виконання (рис. 3).

Рис. 1. Інтерфейс Unicenter SQL-Station Plan Analyzer. Hint Rule.

Рис. 2. Інтерфейс Unicenter SQL-Station Plan Analyzer. Hint All Rows.

Рис.3. Інтерфейс Unicenter SQL-Station Plan Analyzer. Execution Stats.


Етап II, Оптимізація-1. Оптимізацію коду ми виконуємо, використовуючи технологію налаштування Oracle "hints". Для порівняння результатів використання різних "hints" ми натискаємо на закладку в верхній частині екрану "Hint All Rows" і одержуємо новий план (рис. 4), який можемо проаналізувати таким же чином, як і попередній.

Рис. 4. Інтерфейс Unicenter SQL-Station Plan Analyzer. Hint All Rows.


Провівши попередній аналіз, ми вирішили створити власний "Hints 1" і, виконавши нескладні маніпуляції, отримали ще один план (рис. 5). Ці експерименти продовжилися створенням "Hints2" і закінчилися на "Hints3".

Рис. 5. Інтерфейс Unicenter SQL-Station Plan Analyzer. Hints1.


Спробувавши виправити SQL код, ми засумнівалися у правильності наших дій і вирішили їх перевірити, використовуючи закладку "Check SQL" (рис. 6). У правій частині цього вікна відобразилися всі "некоректні", з точки зору логіки виконання, елементи нашої програми.

Рис. 6. Інтерфейс Unicenter SQL-Station Plan Analyzer. Check SQL.

Спробувавши виправити SQL код, ми засумнівалися у правильності наших дій і вирішили їх перевірити, використовуючи закладку "Check SQL" (рис. 6). У правій частині цього вікна відобразилися всі "некоректні", з точки зору логіки виконання, елементи нашої програми.


Етап III, Оптимізація-2. Більш глибокий аналіз і порівняння ефективності планів можна проводити, використовуючи зручну графічну або табличну форми. На рис. 7, 8 відображені діаграми, які наочно показують різницю (або відсутність такої) у кількісних (рис. 7) і тимчасових (рис. 8) характеристиках виконання коду по всіх наших планах (назва плану з'являється на екрані при підведенні вказівника мишки до відповідного стовпцю діаграми).

Рис. 7. Вікно SQL Comparison. Plan Operation.

Рис. 8. Вікно SQL Comparison. Execution Stats.


Таким чином, послідовно вносячи зміни в наш SQL код і аналізуючи за допомогою Unicenter SQL-Station Plan Analyzer вплив цих змін на ефективність виконання коду, ми змогли добитися скорочення часу реакції додатків і значно поліпшити SQL продуктивність наших баз даних.


На закінчення хотілося б відзначити, що найбільший результат в підвищенні ефективності вдається досягти на високонавантажених базах даних, в яких число транзакцій в секунду виміряється тисячами і на кодах складених програмістами, що не мають спеціального досвіду. У цих випадках підвищення продуктивності може поліпшуватися в кілька разів і навіть на порядок. У нашому прикладі ми навмисне не стали робити акцент на точні значення отриманих результатів. Метою було продемонструвати ще один спосіб підвищення ефективності роботи додатків, використовуючи спеціальні програмні продукти. Описаний в нашому прикладі продукт належить до великого сімейства програмних продуктів компанії Computer Associates – Unicenter Database Management Solutions. Цей програмний комплекс дозволяє вирішити більшість основних проблем, пов'язаних з управлінням розподіленими базами даних, а саме:



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


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

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

Ваш отзыв

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

*

*