Trong khi thu hẹp là nguy hiểm thực sự vì những lý do được đề cập ở đây. Có một phương tiện hạnh phúc giữa câu trả lời của Jimbo và câu trả lời của John ... Bạn nên luôn luôn nghiêm túc xem xét liệu bạn có muốn thu nhỏ cơ sở dữ liệu của mình hay không.
Trong một thế giới lý tưởng - bạn sẽ tạo DB của mình với nhiều không gian trống để phát triển. Tôi gọi đây là "Đúng kích cỡ" cơ sở dữ liệu của bạn. Bạn sẽ cho phép không gian trống này ở đó và không cố gắng trả lại và giữ cho tổng kích thước của bạn đúng với kích thước bạn đã sử dụng .. Tại sao? Bởi vì cơ sở dữ liệu của bạn cuối cùng sẽ phát triển trở lại .. Sau đó, bạn sẽ thu nhỏ lại .. Và bạn sẽ bị mắc kẹt trong mô hình thu nhỏ vô dụng khủng khiếp này theo sau sự tăng trưởng - và toàn bộ thời gian, như một số người đã chỉ ra, bạn sẽ tăng phân mảnh chỉ số của bạn.
Tôi đã viết blog về điều này khi tôi khuyên mọi người " Đừng chạm vào nút thu nhỏ đó! " Nhưng đôi khi ... Đôi khi bạn cần phải làm vậy. Nếu bạn có một cơ sở dữ liệu lớn, chỉ cần giải phóng không gian đáng kể và không mong đợi phát triển trở lại vào đó - thì bạn có thể cân nhắc thu hẹp như một hoạt động một lần miễn là bạn có thể xử lý phân mảnh chỉ mục của mình sau khi xây dựng lại họ Hoạt động thu nhỏ có thể tốn thời gian, vì vậy bạn muốn lập kế hoạch cho thời gian mà bạn có thể trả giá của hoạt động thu hẹp đó. Cách tiếp cận tạo DB trống và sao chép dữ liệu vào nó hoạt động - nhưng điều đó có thể trở nên rất khó khăn với cơ sở dữ liệu lớn hơn và nhiều dữ liệu.
Nếu bạn có kế hoạch thêm không gian đó trở lại DB thông qua mô hình sử dụng và tăng trưởng bình thường vào tương lai, thì bạn có thể chỉ muốn để lại không gian ở đó.
Cũng thế
Bạn nói bạn "xóa" nhật ký giao dịch của bạn. Tôi tò mò muốn biết bạn đã làm điều này như thế nào nhưng khi bạn đọc bài đăng tôi đã chia sẻ và những người khác trong loạt bài, bạn sẽ thấy một số mẹo về quản lý nhật ký giao dịch. Nhưng tóm lại - nếu bạn đang ở chế độ Full Recovery, bạn nên thực hiện sao lưu nhật ký thường xuyên để giữ cho nhật ký sử dụng lại chính nó. Mặt khác - không có bản sao lưu nhật ký trong khi ở Chế độ đầy đủ - tệp nhật ký tiếp tục phát triển và tăng trưởng và luôn lưu những gì bạn đã làm vì bạn đã nói với SQL rằng bạn không chỉ muốn duy trì nhật ký đó để phục hồi sự cố mà muốn giữ sao lưu thủ công của nó để phát lại các giao dịch / hoàn tác giao dịch để phục hồi đến một thời điểm cụ thể cho mục đích khôi phục ... Nếu bạn đơn giản và thấy nhật ký phát triển quá mức,BEGIN TRAN ... do work.... COMMIT TRAN
hoặc cho dù bạn vừa đưa ra một DELETE
tuyên bố lớn và xóa toàn bộ mớ dữ liệu trong một giao dịch ngầm.)
Tôi cũng giả định rằng bạn đang tìm kiếm không gian trống này trên hệ thống tệp của bạn. Nếu bạn đang tìm kiếm nó trong SQL và trong tệp lớn mà bạn có - có thể là bạn đang chờ quá trình dọn dẹp ma hoàn tất nếu tìm kiếm ngay sau thao tác của bạn. Paul Randal viết blog về Ghost Cleanup .