Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
конспект лекцій розробка.docx
Скачиваний:
1
Добавлен:
01.04.2025
Размер:
24 Мб
Скачать
☆

6.2. Виявлення і усунення тупикових блокувань і блокуючих з'єднань.

Двумя общими проблемами, которые встречаются довольно часто, являются тупиковые блокировки и блокирующие соединения. Они могут произойти почти в любой системе управления БД, особенно когда большое количество пользователей одновременно устанавливают соединения к базам данных.

Тупиковые блокировки имеют место тогда, когда два пользователя устанавливают блокировки на разные объекты, пытаясь при этом заблокировать объект другого пользователя. Каждый из них ждет, пока другой снимет блокировку, но этого не происходит.

Блокирующие соединения появляются, когда одно соединение удерживает блокировку, а второе пытается установить несовместимый тип блокировки. Это принуждает второе соединение ждать или блокировать первое.

И тупиковые блокировки, и блокирующие соединения могут понизить производительность сервера.

Несмотря на то что SQL Server сам способен обнаруживать и исправлять такие ситуации, ему можно помочь ускорить этот процесс, распознавая потенциальные проблемы и принимая меры, если это необходимо. Информация о процессах предоставляет сведения, когда происходят тупиковые блокировки или блокирующие соединения. Обратите внимание на следующие столбцы информации: Wait Time (Время ожидания), Wait Type (Тип ожидания), Resource (Ресурс), Blocking (Блокирует) и Blocked By (Блокирован). Когда вы разбираетесь с тупиковой блокировкой или блокирующим соединением, внимательно изучите установленные на объекте блокировки, вызвавшие проблему. Как это сделать, было рассказано в предыдущем разделе. Если потребуется прервать конфликтующие процессы, выполните действия, описанные в последнем разделе главы.

6.3. Відстежування виконання команд в sql Server.

Иногда необходимо отслеживать команды, посылаемые пользователями на выполнение. Это можно сделать в окне Activity Monitor (Монитор активности).

1. Запустите SQL Server Management Studio и подключитесь к серверу.

2. В панели Object Explorer (Обозреватель объектов) раскройте узел сервера, а потом узел Management (Управление).

3. Дважды щелкните узел Activity Monitor (Монитор активности), находящийся под узлом Management (Управление), чтобы открыть одноименное окно. Поле Last Refresh (Последнее обновление) в разделе Status (Состояние) показывает дату и время последнего обновления отображаемой в окне информации об активности сервера.

Совет Если это было давно, щелкните в панели инструментов кнопку Refresh (Обновить), чтобы обновить информацию.

4. В списке Select a page (Выберите страницу) выберите элемент Process Info (Информация о процессе). Справа отобразится информация о процессах. Данные в столбце User (Пользователь) могут помочь отследить пользовательские соединения и процессы, которые они используют.

5. Отобразите диалоговое окно Process Details (Сведения о процессе), дважды щелкнув процесс, чтобы увидеть последний пакет инструкций, отправленный пользователем на выполнение (рис. 5-14).

6. Для отслеживания текущих команд, выполняемых пользователем, периодически щелкайте кнопку Refresh (Обновить).

7. Чтобы прекратить процесс, воспользуйтесь кнопкой Kill Process (Прекратить процесс). При появлении запроса на подтверждение щелкните кнопку Yes (Да).

Рис. 5-14. Диалоговое окно Process Details