2009-04-01 41 views
9

Tôi có một phương pháp chạy theo định kỳ để tối ưu hóa cơ sở dữ liệu SQL Server Compact Edition (3.5) của ứng dụng của tôi. Mã hiện tại sử dụng phương thức Shrink():Sự khác biệt giữa Thu nhỏ và Nhỏ gọn trong SQL Server CE là gì?

 SqlCeEngine engine = new SqlCeEngine(dbConnectionString); 
     engine.Shrink(); 

Hôm nay tôi nhận thấy rằng cũng có phương thức Compact(). Đó là thích hợp hơn để bảo trì định kỳ?

Trả lời

9

Từ SQL Server Compact Team Blog:

Sự khác biệt giữa hai là nhiều tương tự như nội bộ và bên ngoài phân mảnh bộ nhớ.


Từ SqlCeEngine.Shrink tài liệu,

đòi lãng phí không gian trong cơ sở dữ liệu bằng cách di chuyển các trang trống và chưa phân bổ đến cuối của tập tin, và sau đó cắt bỏ các tập tin. Bạn có thể định cấu hình cơ sở dữ liệu để tự động thu nhỏ bằng cách đặt tùy chọn ngưỡng tự động trong chuỗi kết nối. Thu hẹp không tạo tệp cơ sở dữ liệu tạm thời .

Từ SqlCeEngine.Compact tài liệu,

đòi lãng phí không gian trong cơ sở dữ liệu bằng cách tạo ra một tập tin cơ sở dữ liệu mới từ tệp hiện có. Bằng cách tạo cơ sở dữ liệu mới có nghĩa là , nó lấy lại không gian miễn phí giữa các hàng.


Để rõ ràng hơn, Thu hẹp yêu cầu các trang hoàn toàn miễn phí hoặc chưa được phân bổ; trong đó, Nhỏ gọn cũng yêu cầu không gian bị lãng phí trong trang. Do đó Compact yêu cầu tạo một tệp cơ sở dữ liệu mới.

Các vấn đề liên quan