Tôi đã điều tra sự tăng trưởng nhanh chóng của nhật ký giao dịch SQL Server 2005 khi tôi thấy rằng nhật ký giao dịch sẽ chỉ cắt chính xác - nếu cột sys.databases "log_reuse_wait" được đặt thành 0 - có nghĩa là không có gì là giữ nhật ký giao dịch sử dụng lại không gian hiện có.SQL Server sys.databases log_reuse_wait câu hỏi
Một ngày khi tôi có ý định sao lưu/cắt bớt tệp nhật ký, tôi thấy rằng cột này có 4 hoặc ACTIVE_TRANSACTION đang diễn ra trong tempdb. Sau đó tôi đã kiểm tra bất kỳ giao dịch mở nào bằng DBCC OPENTRAN ('tempdb') và cột open_tran từ sysprocesses. Kết quả là tôi có thể tìm thấy không có giao dịch hoạt động bất cứ nơi nào trong hệ thống.
Các cài đặt trong cột log_reuse_wait có chính xác không? Có các giao dịch đang diễn ra không thể phát hiện được bằng các phương pháp tôi đã mô tả ở trên không? Tôi chỉ thiếu một cái gì đó hiển nhiên?
Có thể, nhưng sau một giờ hoặc lâu hơn ACTIVE_TRANSACTION đã biến mất và quay lại 0 (NOTHING). Nếu gợi ý của bạn là đúng, thì mỗi khi tôi truy vấn sys.databases thì tempdb (hoặc master) sẽ luôn ở trong chế độ ACTIVE_TRANSACTION. – Clinemi