Опубликован: 11.12.2006 | Доступ: свободный | Студентов: 5820 / 381 | Оценка: 4.42 / 3.86 | Длительность: 57:15:00

Лекция 36: Разрешение наиболее распространенных проблем производительности

Enterprise Manager

Кроме использования Enterprise Manager для автоматизации повседневных административных функций вы можете использовать его как средство, помогающее в мониторинге процессов и блокировок SQL Server. (О блокировках см. "Транзакции и блокировка транзакций" .) Например, вы можете собирать данные о том, какие процессы используют блокировки и какие объекты блокируются (объект в данном случае – это таблица, база данных или временная таблица). Для просмотра этой информации выполните следующие шаги.

  1. В окне Enterprise Manager раскройте Microsoft SQL Server, раскройте SQL Server Group, раскройте сервер, раскройте папку Management и раскройте папку Current Activity (рис. 36.7). Папка Current Activity (Текущие операции) содержит три папки: Process Info (Информация о процессах), Locks/Process ID (Блокировки/Идентификаторы процессов) и Locks/Object (Блокировки/Объекты).
  2. Щелкните на папке Process Info, чтобы увидеть следующую информацию: имена пользователей, подсоединенных в данный момент к SQL Server (колонка User); идентификатор процесса пользователя (Process ID); состояние процесса пользователя (running [выполняется], sleeping [неактивное состояние] или background [фоновый режим]); базу данных, к которой подсоединен каждый пользователь (Database); команды (Commands) и приложения (Application), выполняемые каждым пользователем; время ожидания (Wait time), то есть время, которое ждет пользователь, пока не получит доступ к какому-либо ресурсу; показатели использования ЦП, физического ввода-вывода и памяти каждым процессом; и состояние блокировки каждого процесса (блокирует ли данный процесс другие процессы или блокирован другими процессами). Чтобы увидеть всю эту информацию, вам придется выполнить прокрутку вправо. На рис. 36.8 показана часть этой информации.
    Раскрытая папка Current Activity (Текущие операции) в окне Enterprise Manager

    увеличить изображение
    Рис. 36.7. Раскрытая папка Current Activity (Текущие операции) в окне Enterprise Manager
     Информация папки Process Info (Информация о процессах) в окне Enterprise Manager

    увеличить изображение
    Рис. 36.8. Информация папки Process Info (Информация о процессах) в окне Enterprise Manager
  3. Щелкните на папке Locks / Process ID для просмотра в правой панели списка системных идентификационных номеров процессов (SPID) для текущих активных процессов (рис. 36.9). Дважды щелкните на каком-либо из SPID-номеров в правой панели, чтобы появилось диалоговое окно Process Details (Подробности процесса) (рис. 36.10). В этом диалоговом окне показан последний оператор T-SQL, выполненный выбранным процессом.
     SPID-номера, показанные в панели Locks / Process ID

    увеличить изображение
    Рис. 36.9. SPID-номера, показанные в панели Locks / Process ID
     Диалоговое окно Process Details

    Рис. 36.10. Диалоговое окно Process Details
  4. Раскройте папку Locks / Process ID для просмотра в левой панели SPID-номеров текущих процессов (рис. 36.11).
  5. Щелкните на каком-либо SPID-номере в левой панели, чтобы увидеть информацию о блокировках для этого процесса в правой панели (рис. 36.11). В эту информацию включен тип блокировки (Lock type), режим блокировки (Mode), состояние блокировки (Status) и владелец блокировки (Owner). Может быть указан один из следующих типов блокировки.
    • RID. Блокировка строк.
    • KEY.Блокировка строк внутри индекса.
    • PAG. Блокировка страницы данных или индекса.
    • EXT. Блокировка экстента.
       Раскрытая папка Locks / Process ID

      увеличить изображение
      Рис. 36.11. Раскрытая папка Locks / Process ID
    • TAB. Блокировка таблицы, включая все страницы данных и индекса для этой таблицы.
    • DB. Блокировка базы данных.
    Может быть указан один из следующих режимов блокировки.
    • S. Разделяемая блокировка.
    • X. Монопольная блокировка.
    • U. Блокировка изменений.
    • BU. Блокировка массовых изменений.
    • IS. Разделяемая блокировка намерения.
    • IX. Монопольная блокировка намерения.
    • SIX. Монопольная разделяемая блокировка намерения.
    • Sch-S. Блокировка схемы для компилирования запросов.
    • Sch-M. Блокировка схемы для операций языка DDL.
    Может быть указано одно из следующих состояний блокировки.
    • GRANT. Означает, что данная блокировка была предоставлена выбранному процессу.
    • WAIT. Означает, что данный процесс блокирован другим процессом и ожидает получения блокировки.
    • CNVT. Означает, что данная блокировка преобразована в другой тип блокировки.
  6. Раскройте папку Locks / Object, чтобы увидеть список текущих блокированных объектов (рис. 36.12). Могут быть блокированы такие объекты, как таблицы, временные таблицы, базы данных и т.д.
     Раскрытая папка Locks / Object

    увеличить изображение
    Рис. 36.12. Раскрытая папка Locks / Object
  7. Щелкните на имени блокированной базы данных или таблицы, чтобы увидеть в правой панели информацию о ее блокировке (рис. 36.13). Здесь показана та же информация, что и при щелчке на каком-либо SPID-номере в папке Locks / Process ID, только с другой "точки зрения".
    Просмотр информации о блокировке для объекта

    увеличить изображение
    Рис. 36.13. Просмотр информации о блокировке для объекта