2009-10-18 49 views
7

Tôi đang sử dụng Visual Studio 2008. và tôi mới ở sqlce.I đang kiểm tra tệp sdf và nếu sdf không tồn tại, tôi tạo và sau đó chèn khoảng 5000 hàng vào sqlce db.If sdf của tôi tồn tại, trước tiên tôi xóa tất cả các hàng của bảng và sau đó chèn các bản ghi này vào các bảng đã tồn tại. Sau khi chèn xong, tôi đang nén cơ sở dữ liệu.Bằng cách này, nén kéo dài khoảng 13 giây. Tôi biết một phương thức gọi Shrink.Shrink và Compact làm cho db nhỏ hơn nhưng trong scenerio này Tôi sử dụng? Làm thế nào tôi có thể làm cho nén với thời gian ngắn hơn? Tôi không cần sao lưu của sdf và sau khi nhỏ gọn, tôi xóa cũ sdf.i đọc this chủ đề nhưng couldnt quyết định mà tôi nên sử dụng.thu nhỏ hoặc nhỏ gọn trong Sql Server CE?

Trả lời

13

Xin xem:

mà trích từ SQL Server Compact Team Blog:

SqlCeEngine/ISSCEEngine: Shrink Vs nhỏ gọn Sự khác biệt giữa hai là nhiều tương tự vào Internal và bộ nhớ ngoài Frag vấn đề.

Từ SqlCeEngine.Shrink documentation:

đò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 documentation:

đò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 xác nhận 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.

không gian rỗng với trong trang có thể là như kết quả của:

1) Nếu có 5 dòng trong một trang và hai trong số đó được xóa

2) Nếu có một dòng trong giữa trang mà trên bản cập nhật cần thiết hơn không gian, đã rời khỏi trang (Ví dụ: nvarchar cột cập nhật)

trang rỗng và các trang chưa phân bổ có thể ở lại trong cơ sở dữ liệu như một tái sult của:

1) Tất cả các hàng trong một trang được xóa

2) Tổng số các bảng được giảm

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