Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Отстраняване на неизправности при блокиране в Sql Server 2008

SQL Server 2008 има множество начини за идентифициране на процеси и заявки, включени в блокиране.

  1. Ако блокиранията са лесни за възпроизвеждане, честотата е по-висока и можете да профилирате SQL сървър (имате разходите за достъп и производителност на сървъра, когато профилировачът е активиран), използването на SQL Profiler ще ви даде хубав графичен изглед на блокиране. Тази страница съдържа цялата информация, която необходимост от използване на графики за блокиранеhttp://sqlmag.com/ database-performance-tuning/gathering-deadlock-information-deadlock-graph

  2. В повечето случаи възпроизвеждането на задънени блокировки е трудно или те се случват в производствена среда, където не искаме да прикачваме Profiler към него и да повлияем на производителността.

Бих използвал тази заявка, за да получа блокирания:

SELECT
  xed.value('@timestamp', 'datetime') as Creation_Date,
  xed.query('.') AS Extend_Event
FROM
(
  SELECT CAST([target_data] AS XML) AS Target_Data
  FROM sys.dm_xe_session_targets AS xt
  INNER JOIN sys.dm_xe_sessions AS xs
  ON xs.address = xt.event_session_address
  WHERE xs.name = N'system_health'
  AND xt.target_name = N'ring_buffer'
) AS XML_Data
CROSS APPLY Target_Data.nodes('RingBufferTarget/event[@name="xml_deadlock_report"]') AS XEventData(xed)
ORDER BY Creation_Date DESC

НЕ бих тръгнал към използване на (NOLOCK) за коригиране на задънени блокировки. Това е хлъзгав наклон и крие първоначалния проблем.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. 10 факта за мониторинга на ефективността на базата данни, които могат да ви изненадат

  2. Изпълнете генерирани от NHibernate подготвени отчети в SQL Server Management Studio

  3. Как да инсталирате само компонента SQL Server Management Studio 2008

  4. MSSQL в python 2.7

  5. Разрешението EXECUTE е отказано - 'aspnet_Roles_RoleExists'