Cách theo dõi bế tắc


11

Khi nào bạn bắt đầu khắc phục sự cố bế tắc SQL Server 2005/2008 và làm thế nào? Cảnh báo được bật SSMS thông qua cảnh báo điều kiện hiệu suất của SQL Server, các đối tượng-> SQLServer: Khóa, Bộ đếm-> Khóa chờ / giây, Trường hợp: _Total, cảnh báo nếu bộ đếm: tăng trên giá trị 3. Đây có phải là cách chủ động theo dõi không? Giá trị chấp nhận được là gì? Tôi đánh giá rất cao sự giúp đỡ của bạn. Cảm ơn bạn!!!

Câu trả lời:


7

3

Điều đầu tiên cần làm là nhìn vào biểu đồ khóa chết và xem chính xác những gì đang diễn ra. Sau đó, bạn có thể xem xét các tùy chọn của mình, thường biến thành a) sửa đổi ứng dụng để chuẩn hóa theo thứ tự các đối tượng khóa (ví dụ: nếu có thể đưa ra logic ứng dụng, hãy lập một quy ước với các nhà phát triển của bạn để luôn khóa các bảng theo thứ tự bảng chữ cái) hoặc b ) xem bạn có thực sự hoạt động ở mức cô lập phù hợp trong mỗi giao dịch.


Theo stackoverflow.com/a/112256/14731 một lệnh khóa nhất quán không ngăn chặn bế tắc.
Gili

3

Tôi sẽ đi theo dấu vết phía máy chủ tự động của 2 vấn đề chính:

  • truy vấn dài (bạn thiết lập thời lượng dài cho môi trường của bạn)

  • Bế tắc - kiểm tra biểu đồ Deadlock và Khóa: Chuỗi bế tắc

Bạn sẽ nhận được các tệp theo dõi mỗi ngày và bạn có thể theo dõi hành động - xem liệu một số sự kiện theo lịch trình có gây ra sự cố không. Bạn có thể xem thêm chi tiết về cấu hình sản xuất trong câu hỏi này: Sử dụng SQL Profiler trên cơ sở dữ liệu đang được sản xuất .


3

Hãy thử thiết lập dấu vết, như được mô tả trong bài viết trực tuyến của cuốn sách này: http://msdn.microsoft.com/en-us/l Library / ms178104% 28Query.90% 29.aspx

DBCC TRACEON (1204)
DBCC TRACEON (1222)

- mới đối với SQL 2005
DBCC TRACEON (-T1222)


1

Trình quản lý hoạt động trung tâm hệ thống (SCOM) với Gói quản lý máy chủ SQL có thể cảnh báo về các bế tắc nếu bạn bật ghi nhật ký tin nhắn 1205. Bạn có thể kích hoạt nó bằng truy vấn SQL sau : EXEC sp_altermessage 1205, 'WITH_LOG', 'true'.

Ngoài ra, hãy xem câu trả lời của tôi cho "Tại sao tên đối tượng và tên chỉ mục không được điền trong biểu đồ khóa chết?" đối với tập lệnh PowerShell tôi đã viết sẽ lấy thông tin khóa chết từ bộ đệm sự kiện và viết biểu đồ khóa chết dưới dạng tệp xdl có thể được mở trong SQL Management Studio 2012 hoặc cao hơn hoặc xem trong notepad để xem chi tiết hơn.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.