лан виконання запиту.
8.2 Монітор продуктивності
Оцінити споживання ресурсів під час виконання запиту можна не тільки за допомогою плану виконання, але і з використанням системного монітора продуктивності. Знайти його можна в Панелі управління, у папці Адміністрування. Системний монітор дозволяє в реальному часі переглядати навантаження на сервер, відстежуючи десятки параметрів, наприклад, такий важливий, як завантаження центрального процесора. На малюнку 12 показаний графік навантаження на центральний процесор під час виконання одного із запитів.
Рисунок 12 - Системний монітор
Як можна поспостерігати, запит вибірки 100000 рядків у индуктированной таблиці збільшує завантаження процесор на 20-25%.
8.3 Трасування запитів
Трасування запитів - це ще один інструмент оптимізації запитів. Трасування в реальному часі показує всі відбуваються на SQL Server процеси, показуючи скільки ресурсів і часу було витрачено на виконання запиту. Щоб запустити трасування запитів, необхідно відкрити SQL Server Profiler, в меню Файл вибрати Створити трасування ... raquo ;, підключитися до SQL Server, вибрати необхідні події і запустити. Запустимо трасування і подивимося, що відбувається на сервері в момент виконання запиту (малюнок 13).
Малюнок 13 - Трасування запитів
9. Індивідуальної завдання
ТЕМА 4. Управління розподіленими транзакціями
Цілі і завдання
) Вивчити основні принципи управління розподіленими транзакціями.
) Виконати завдання за варіантом.
) Відповісти на контрольні питання по даній темі.
) Оформити звіт.
Загальні відомості
Транзакції є ключовим елементом підтримки цілісності даних. Якщо логічна одиниця роботи містить зміна даних поза локального сервера, то стандартна транзакція не зможе забезпечити атомарность операції. Якщо в середині транзакції трапиться помилка, то повинен існувати механізм, здатний скасувати виконану частину роботи. В іншому випадку буде записана часткова транзакція, і база даних залишиться в суперечливому стані.
2.1 Координатор розподілених транзакцій
MS SQL Server використовує координатор розподілених транзакцій (далі DTC) для обслуговування транзакцій, які зачіпають кілька серверів, - їх підтвердження і відкату. Служба DTC використовує двофазну схему підтвердження багатосерверних транзакцій. Це передбачає, що доступні обидва сервери, при цьому служба DTC виконує наступні дії.
. Кожен з серверів відправляє повідомлення про готовність до підтвердження.
. Кожен з серверів виконує перший етап підтвердження, гарантуючи тим самим здатність до повного підтвердженню транзакції.
. Кожен з серверів повідомляє про закінчення підготовки до підтвердження.
. Тільки після того як всі сервери відповіли позитивно про готовність до підтвердження, повідомлення про реальний підтвердженні транзакції відправляється всім їм.
Якщо логічна одиниця роботи містить тільки операції читання з серверів, то використання служби DTC не потрібно. Тільки коли виконується віддалене оновлення даних, транзакція розглядається як розподілена.
Координатор розподілених транзакцій є окремою службою SQL Server, яка запускається і зупиняється за допомогою SQL Server Service Manager.
Тільки один примірник цієї служби запускається на одному сервері, незалежно від кількості встановлених і запущених на ньому примірників SQL Server. Фактичне ім'я служби - msdtc. ехе, споживаний обсяг пам'яті - 2,5 Мбайт.
Служба DTC повинна бути запущена, коли ініціюється розподілена транзакція, в іншому випадку остання завершиться помилкою.
2.2 Виконання розподілених транзакцій
Розподілені транзакції, що запускаються в Transact-SQL, мають відносно просту структуру. Додаток або сценарій Transact-SQL виконує інструкцію Transact-SQL, яка ініціює розподілену транзакцію. Примірник SQL Server Database Engine, що виконує інструкцію, стає керуючим сервером в транзакції. Сценарій або додаток потім виконує або розподілені запити до пов'язаних серверам, або віддалені збережені процедури на віддалених серверах.
Після того як розподілені запити і виклики віддалених процедур виконані, керуючий сервер автоматично викликає координатор розподілених транзакцій (Майкрософт) (MS DTC), щоб прикріпити в розподілену транзакцію пов'язані і ві...