Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Khắc phục sự cố trong Sql Server 2008

SQL Server 2008 có nhiều cách để xác định các quy trình và truy vấn liên quan đến bế tắc.

  1. Nếu deadlock dễ tái tạo, tần suất cao hơn và bạn có thể cấu hình máy chủ SQL (bạn có quyền truy cập và chi phí hiệu suất trên máy chủ khi trình cấu hình được bật) bằng cách sử dụng SQL Profiler sẽ cung cấp cho bạn cái nhìn đồ họa đẹp mắt về deadlock. Trang này có tất cả thông tin bạn cần sử dụng biểu đồ bế tắc http://sqlmag.com/ cơ sở dữ liệu-hiệu suất-điều chỉnh / thu thập-deadlock-information-deadlock-graph

  2. Hầu hết các lần tái tạo deadlock là khó hoặc chúng xảy ra trong môi trường sản xuất mà chúng tôi không muốn gắn Profiler vào nó và ảnh hưởng đến hiệu suất.

Tôi sẽ sử dụng truy vấn này để giải quyết các trường hợp bế tắc đã xảy ra:

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

Tôi sẽ KHÔNG đi theo hướng sử dụng (NOLOCK) để sửa lỗi bế tắc. Đó là độ dốc trơn trượt và ẩn chứa vấn đề ban đầu.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tôi có nên sử dụng quy tắc CASCADE DELETE không?

  2. vấn đề với AttachDbFilename là gì

  3. Khóa chính tổng hợp so với cột ID bổ sung?

  4. Chèn các hàng vào bảng chỉ với một cột IDENTITY

  5. Lưu trữ hình ảnh trên cơ sở dữ liệu