vấn đề SQL Azure.SQL Azure - Một phiên khóa toàn bộ DB để cập nhật và chèn
Tôi đã có một vấn đề mà biểu hiện là ngoại lệ sau đây trên (asp.net) trang web của chúng tôi:
Timeout hết hạn. Khoảng thời gian chờ đã hết trước khi hoàn thành hoạt động hoặc máy chủ không phản hồi. Tuyên bố đã bị hủy .
Kết quả cập nhật và chèn không bao giờ hoàn thành trong SMSS. Không có bất kỳ khóa X hoặc IX nào hiện diện khi truy vấn: sys.dm_tran_locks
và không có giao dịch khi truy vấn sys.dm_tran_active_transactions
hoặc sys.dm_tran_database_transactions
.
Sự cố xảy ra với mọi bảng trong cơ sở dữ liệu nhưng các cơ sở dữ liệu khác trên cùng một cá thể không gây ra sự cố. Thời gian của vấn đề có thể là bất cứ nơi nào từ 2 phút đến 2 giờ và không xảy ra tại bất kỳ thời gian cụ thể trong ngày.
Cơ sở dữ liệu chưa đầy.
Tại một thời điểm, vấn đề này không giải quyết được nhưng tôi có thể giải quyết vấn đề bằng cách truy vấn sys.dm_exec_connections
tìm phiên chạy dài nhất và sau đó giết nó. Điều kỳ lạ là, kết nối đã được 15 phút tuổi, nhưng vấn đề khóa đã có mặt trong hơn 3 giờ.
Tôi có thể kiểm tra bất kỳ điều gì khác không?
EDIT
Như mỗi câu trả lời của Paul bên dưới. Tôi thực sự đã theo dõi vấn đề trước khi anh ta trả lời. Tôi sẽ đăng các bước tôi đã sử dụng để tìm ra điều này bên dưới, trong trường hợp họ giúp đỡ bất kỳ ai khác.
Các truy vấn sau được chạy khi có "khoảng thời gian chờ".
select * from sys.dm_exec_requests
Như chúng ta có thể thấy, tất cả các yêu cầu WAIT đang chờ đợi trên phiên 1021 đó là yêu cầu sao chép! TM Request
cho biết giao dịch DTC và chúng tôi không sử dụng giao dịch được phân phối. Bạn cũng có thể thấy wait_type của SE_REPL_COMMIT_ACK
một lần nữa ngụ ý nhân rộng.
select * from sys.dm_tran_locks
Một lần nữa chờ đợi vào phiên 1021
SELECT * FROM sys.dm_db_wait_stats ORDER BY wait_time_ms desc
Và vâng, SE_REPL_CATCHUP_THROTTLE
có một thời gian chờ đợi tổng cộng 8.094.034 ms, đó là 134.9minutes !!!
Cũng xem diễn đàn sau đây để biết chi tiết về vấn đề này. http://social.technet.microsoft.com/Forums/en-US/ssdsgetstarted/thread/c3003a28-8beb-4860-85b2-03cf6d0312a8
Tôi đã cho câu trả lời sau đây trong giao tiếp của tôi với Microsoft (chúng tôi đã nhìn thấy vấn đề này với 4 của 15 cơ sở dữ liệu của chúng tôi ở trung tâm EU dữ liệu):
Câu hỏi: Có đã có những thay đổi đối với các giới hạn điều chỉnh mềm này trong ba tuần qua tức là kể từ khi các vấn đề của tôi bắt đầu?
Trả lời: Không, không có.
Câu hỏi: Có cách nào chúng tôi có thể ngăn chặn hoặc được cảnh báo rằng chúng tôi sắp đạt đến giới hạn?
Trả lời: Không. Vấn đề có thể không do ứng dụng của bạn gây ra nhưng có thể do các đối tượng thuê khác là phụ thuộc vào cùng một phần cứng vật lý. Nói cách khác, ứng dụng của bạn có thể tải rất ít và vẫn gặp sự cố. Nói cách khác, lưu lượng truy cập của riêng bạn có thể là nguyên nhân gây ra sự cố này, nhưng nó cũng có thể do những người thuê nhà khác dựa trên cùng một phần cứng vật lý. Không có cách nào để biết trước rằng vấn đề sẽ sớm xảy ra - nó có thể xảy ra bất cứ lúc nào mà không cần cảnh báo. Nhóm hoạt động của Azure Azure không giám sát loại lỗi này, vì vậy chúng sẽ không tự động tìm cách giải quyết vấn đề cho bạn. Vì vậy, nếu bạn chạy vào nó, bạn có hai opitions:
Tạo một bản sao của db của bạn và sử dụng đó và hy vọng các db được đặt trên máy chủ khác với ít tải.
Liên Windows Azure hỗ trợ và thông báo cho người về vấn đề này và để cho họ làm Lựa chọn 1 cho bạn
Cảm ơn Paul triệu, bạn chỉ cần xác nhận kết luận tôi có thể đến! Tôi sẽ cập nhật bài đăng của mình bằng dữ liệu mà tôi đã loại bỏ trong trường hợp nó giúp người khác chẩn đoán. Tôi cũng đã mở một vấn đề hỗ trợ với MS về việc này. Chúng tôi là một đối tác vàng, cho tất cả những gì đếm, vì vậy hy vọng chúng tôi sẽ nhận được một câu trả lời đôi khi trước Giáng sinh! –
Đừng lo lắng, xin lỗi khi biết rằng bạn đang gặp phải vấn đề tương tự như chúng tôi. Đó là một vấn đề nghiêm trọng và khá nhiều không thể giảm thiểu từ một quan điểm mã hóa. –
Cảm ơn một tấn cho Paul này, tôi đã gặp phải các vấn đề tương tự và đã được săn bắn ở khắp mọi nơi cho một câu trả lời hợp lý. Đây là sự nghi ngờ của tôi và các truy vấn của bạn đã giúp xác nhận điều đó. –