Программирование >>  Администрирование microsoft sql 

1 ... 157 158 159 [ 160 ] 161 162 163 ... 203


Примечание мом, приложение, ожидающее юда, должно налагать разделяемые,

а не монопольные блокировки.

Контейнер Locks/Object отображает информацию о заблокированных объектах БД, начиная с уровня рядов и таблиц и заканчивая уровнем БД (рис. 14-21).

Заметьте: три процесса налагают блокировки в таблице Customer БД SSFMDB, Процесс с идентификатором 53 удерживает монопольную блокировку уровня ряда, а процессы с идентификаторами 55 и 56 ожидают, когда они смогут наложить такую же

блокировку на этот же ряд.

Упражнение 3. Устранение проблем, связанных с блокировками, при помощи окна Current Activity и системных хранимых процедур

в этом упражнении вы с помошью SQL Server Enterprise Manager и системных

хранимых процедур будете вести мониторинг проблем с блокировками.

► Для наблюдения за проблемами с блокировками пр и окня Current Activity и системных хранимгх процедур

1. Убедитесь, что вы зарегистрировались на контроллере домена

под учетной записью Administrator.

2. Раскройте меню Start\Programs\Microsoft SQL Server и выберите Enterprise Manager.

3. В дереве консоли последовательно раскройте контейнеры Microsoft SQL Servers,

SQL Server Group, SelfPacedCPU. Management, Current Activity и затем шелкните Process Info.

В правой панели отобразится информация о процессах. Если подробные сведения не отображаются, щелкните значок Process Info правой кнопкой и выберите

View\Detail.

4. В правой панели щелкните заголовок столбца чтобы упорядочить данные по имени пользователя.

Обратите внимание на два запущенные пользователем

ministrator: один - это подключение консоли SQL Server Enterprise Manager к БД

master, a второй - подключение SQL Query Analyzer к БД Northwind. Запомните

идентификатор второго процесса.

5. Переключитесь в SQL Query Analyzer.

6. Щелкните кнопку Load SQL Script в панели инструментов.

Откроется окно Open Query File.

7. Откройте файл BlockLock.sql из папки C:\SelfPacedSQL\CH 14.

Запустится сценарий Transact-SQL, который начнет транзакцию, обновляющую значение поля ContactName записи с заданным значением поля CustomerlD, Он также выполняет системную хранимую процедуру

8. Щелкните кнопку Execute Query в панели инструментов.

Внимательно просмотрите информацию, возвращаемую системной хранимой гро-цедурой splock. Обратите внимание на блокировки, наложенные процессом подключения SQL Query Analyzer, и, в частности, на наложенную им монопольную

блокировку уровня ряда.

9. В меню File выберите Connect

Откроется окно Connect To SQL Server.



47 роиэводительности и активности SQ rver Глава 14

10. Убедитесь, что установлен переключатель Windows Authentication. Затем щелкните ОК, чтобы подключиться к экземпляру SQL Server по умолчанию на компьютере SelfPacedCPU.

11. Щелкните кнопку Load SQL Script в панели инструментов. - .

Откроется окно Open Query File.

12. Откройте файл BlockLock2.sql из папки C:\SelfPacedSQL\CH 14.

13. Откроется запрос BiockLock2,sql, который обновляет ту же запись таблицы, что и первый сценарий, но при этом транзакцию.

14. Щелкните кнопку Execute Query в панели инструментов. , Заметьте: запрос не завершил выполнение.

15. Переключитесь в SQL Server Enterprise Manager.

16. В дереве консоли щелкните контейнер Current Activity правой кнопкой и выберите Refresh.

17. В правой панели дважды щелкните Locks/Process ID.

Заметьте: второй процесс заблокирован первым.

18. Щелкните блокирующий процесс правой кнопкой и выберите Properties. Откроется окно Process Details, где показан последний пакет команд TSQL, выполненный блокирующим процессом.

19. Щелкните кнопку Send Message. Откроется окно Send Message - SelfPacedCPU.

20. В поле Message введите Your application is blocking. Please close your open transaction и щелкните кнопку Send.

Откроется окно Send Message, извещающее об успешной отправке сообщения. Затем появится окно службы Messenger Service с самим сообщением (одно окно

будет отображаться под другим).

21. Дважды щелкните ОК, чтобы закрыть окна сообщений. .

22. В окне Process Details щелкните Close.

23. В дереве консоли выберите заблокированный процесс.

Заметьте: значение столбца Status правой панели - waiting, т. е. этот процесс ожидает, когда он сможет наложить блокировку уровня ряда.

24. В дереве консоли раскройте контейнер Locks/Object и щелкните SSEMDB.dbo.Customer.

В правой панели обратите внимание на две блокировки уровня записи. Первый

процесс наложил монопольную блокировку уровня ряда, а второй ожидает, когда

сможет наложить блокировку.

25. Переключитесь в SQL Query Analyzer.

Заметьте: выполнение второго до сих пор не завершено.

26. Перейдите к первому подключению.

В области запросов выделите и в панели инструментов щелк-

ните кнопку Execute Query.

Перейдите ко второму запросу. Обратите внимание, что теперь он успешно выполнен. Заметьте также, к завершению транзакции второй запрос не удерживает каких-либо монопольнгх блокировок.

28. Переключитесь в SQL Server Enterprise Manager.

29. В дереве консоли щелкните контейнер Current Activity правой кнопкой и выберите команду Refresh.



30. В правой панели дважды Locks/Process ID.

Заметьте: мешающих блокировок и заблокированных процессов нет.

31. Закройте SQL Server Enterprise Manager и SQL Query Analyzer.

Резюме

При наблюдении за производительностью и активностью SQL Server сначала определите задачу мониторинга и затем выберите соответствующее средство наблюдения. Вместо одновременного мониторинга всех операций и ресурсов следует проводить конкретные, узкоспециализированные наблюдения. Проводя в течение определенного времени одинаковые наблюдения, вы сможете установить и корректировать базовый уровень производительности. Окно Current Activity консоли SQL Server Enterprise Manager позволяет управлять взаимоблокировками и просматривать имеюшие-

ся мешающие блокировки.



1 ... 157 158 159 [ 160 ] 161 162 163 ... 203

© 2006 - 2025 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика