Если Вам приходится сопровождать многопользовательские
программы, использующие в своей работе MS SQL Сервер, тогда Вы наверняка
сталкивались с проблемой отслеживания блокировок. Для того, чтобы
разобраться в причине зависания какого-либо рабочего места (что
скорее всего связано с возникшей блокировкой ресурсов другим пользователем),
обычно приходилось пользоваться процедурой SP_WHO или громоздким
интерфейсом MMC. Иногда, при сильной загрузке сервера, данную информацию
получить было затруднительно, так как стандартный способ вызывал
интенсивный обмен данными с сервером. Кроме того, этот способ был
абсолютно ручным. В конце концов было принято решение написать отдельную
программу, которая бы занималась постоянным отслеживанием блокировок
и активности сервера, не нагружала бы сервер сама и была нетребовательна
к ресурсам компьютера.
То, что вышло - далеко не идеал, однако программа
получилась довольно удобной, так как сводит в одном месте все необходимое
при контроле блокировок: процесс, заблокировавший ресурс, процесс,
обратившийся к заблокированному ресурсу, пользователи процессов,
программа, запустившая процесс, наименование заблокированного ресурса,
тип блокировки, команда, вызвавшая обращение к заблокированному
ресурсу и время, которое уже прошло, с тех пор, как процесс натолкнулся
на блокировку. В этом же окне можно выбрать нужный процесс и дать
ему команду "KILL", с помощью правой кнопки мыши.
Можно открыть несколько окон, указывая для каждого
свой сервер, если их у вас больше одного. Ну и там же, из основного
окна можно вызвать список процессов на сервере, чтобы получить примерное
представление о его текущей активности.
|
|