Câu hỏi phỏng vấn SQL Server
Câu hỏi

Deadlock được giải quyết n...

Câu trả lời

Trong SQL Server, deadlock xảy ra khi hai hoặc nhiều giao dịch cùng chặn lẫn nhau, mỗi giao dịch giữ khóa trên tài nguyên mà giao dịch khác cần để hoàn thành. Điều này dẫn đến tình trạng không giao dịch nào có thể tiếp tục thực hiện và giải phóng tài nguyên, khiến hệ thống bị đình trệ. SQL Server giải quyết deadlock bằng cách sử dụng một thuật toán phát hiện deadlock và chọn một giao dịch làm "nạn nhân" để hủy bỏ, giải phóng khóa và cho phép các giao dịch khác tiếp tục

Cách SQL Server Giải Quyết Deadlock

  1. Phát hiện Deadlock: SQL Server sử dụng một thread gọi là lock monitor để kiểm tra các tình huống deadlock. Nếu phát hiện ra một chu trình chờ đợi trong đồ thị chờ đợi (wait-for graph), nó xác định rằng đã xảy ra deadlock
  2. Chọn Nạn Nhân: SQL Server chọn một giao dịch để hủy bỏ dựa trên một số tiêu chí như chi phí của giao dịch (thời gian CPU sử dụng, số lượng tài nguyên đã tiêu thụ, v.v.) và chọn giao dịch có chi phí thấp nhất để hủy bỏ
  3. Hủy Bỏ Giao Dịch: Giao dịch được chọn làm nạn nhân sẽ bị hủy bỏ, và tất cả các thay đổi mà nó đã thực hiện sẽ được lùi lại (rollback). SQL Server sau đó sẽ trả lại thông báo lỗi 1205 cho ứng dụng, thông báo rằng giao dịch đã bị deadlock và đã bị hủy bỏ
  4. Xử Lý Lỗi: Ứng dụng nên có một trình xử lý ...
senior

senior

Gợi ý câu hỏi phỏng vấn

middle

Thứ tự của SQL SELECT trong SQL Server là gì?

junior

Foreign key (khóa ngoại) trong SQL Server là gì?

middle

Làm thế nào để lấy ra các hàng ngẫu nhiên từ một bảng trong SQL Server?

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào