Các VLF quan trọng như thế nào khi xem xét hiệu suất cơ sở dữ liệu? Điều gì sẽ mô tả một tình huống tối ưu cho các VLF?
Các VLF quan trọng như thế nào khi xem xét hiệu suất cơ sở dữ liệu? Điều gì sẽ mô tả một tình huống tối ưu cho các VLF?
Câu trả lời:
Một tệp nhật ký ảo là gì?
SQL Server chia tệp nhật ký giao dịch cho mỗi cơ sở dữ liệu thành các phần nhỏ hơn, được gọi là 'tệp nhật ký ảo' (hay gọi tắt là VLF). Chức năng chính của chúng là các dấu rút ngắn tại một bản sao lưu nhật ký, tức là SQL Server sẽ chỉ xóa (và đánh dấu có sẵn để sử dụng lại) các VLF hoàn toàn trống. MSDN có một phần trên Nhật ký giao dịch - Kiến trúc vật lý .
Điều gì quyết định số lượng VLF?
Mỗi khi tệp nhật ký phát triển (cho dù thông qua tăng trưởng tự động hoặc tăng trưởng thủ công), phần mới của tệp nhật ký được chia thành một số VLF, hoàn toàn dựa trên kích thước của phần mới (nhật ký giao dịch hiện tại được để riêng). Vì vậy, các cài đặt tự động tăng nhỏ (tức là 10% tự động tăng mặc định) sẽ khiến một số lượng lớn các VLF được tạo.
Ý nghĩa của một số lượng lớn các VLF là gì?
Vấn đề chính mà một số lượng lớn các VLF gây ra là:
DBCC
vì chúng sử dụng ảnh chụp nhanh cơ sở dữ liệu trong nền để tạo điều kiện kiểm tra tính nhất quán mà không bị chặn).Làm cách nào để biết cơ sở dữ liệu của tôi có bao nhiêu VLF?
DBCC LOGINFO
sẽ trả về 1 hàng cho mỗi VLF trong nhật ký giao dịch của cơ sở dữ liệu của bạn. Câu hỏi này có một vài tập lệnh hữu ích để áp dụng trên tất cả các cơ sở dữ liệu trên máy chủ.
Có bao nhiêu VLF là quá nhiều?
Đó là một lời kêu gọi phán xét bạn sẽ phải tự đưa ra. Nguyên tắc cá nhân của tôi là dưới 50 tuổi không đáng để làm phiền, và hơn 100 (hoặc hơn) và tôi sửa các cài đặt tự động phát triển và ghi chú tinh thần vào (trong cửa sổ bảo trì tiếp theo) thu nhỏ và lấy lại nhật ký (như bên dưới) .
Cứu giúp! Tôi có hàng trăm tỷ VLF và việc phục hồi cơ sở dữ liệu của tôi mất cả ngày!
Phác thảo ngắn (từ blog của Kimberly Tripp ):
BACKUP LOG
)DBCC SHRINKFILE
vớiTRUNCATEONLY
để thu nhỏ tệp nhật ký đến kích thước nhỏ nhất có thể.ALTER DATABASE [...] MODIFY FILE [...] SIZE=newsize
để thay đổi kích thước nhật ký giao dịch của bạn sao lưu trong một bước **.** Lưu ý - nếu bạn có tệp nhật ký rất lớn (hàng chục GB trở lên), bạn có thể muốn thay đổi kích thước theo nhiều bước để có được số lượng VLF phù hợp với kích thước phù hợp để tránh sao lưu nhật ký 'chunky' quá mức. Vì các VLF là đơn vị cắt ngắn nên chúng cũng xác định kích thước sao lưu nhật ký, như chi tiết trong blog của Kim .