Tôi có một ứng dụng WCF hiện đang sử dụng lưu trữ tệp dựa trên XML để lưu trữ dữ liệu được sử dụng để tạo báo cáo. Bên cạnh đó, các quyết định xử lý này được thực hiện dựa trên thông tin được lưu trữ trong các tệp XML này.Bất kỳ cân nhắc nào trước khi nhảy vào SQLite?
Tôi hiện đang đạt khối lượng khoảng 30 000 tệp văn bản. Điều này là cực kỳ thuế, và các ứng dụng tại thời điểm đến một dừng nghiền.
Tôi luôn muốn xóa bỏ XML DAL có lợi cho RDBMS, nhưng các nhà quản lý dự án sẽ không cho phép nó. Nhưng họ sẽ sẵn sàng xem xét một giải pháp không có máy chủ ví dụ như SQLLite. Tôi thực sự bị cám dỗ để chỉ đi sâu vào và bắt đầu sử dụng nó như là một DAL thay thế (Data Access Layer).
Tôi sẽ không cần nhiều hơn 20 bảng trong toàn bộ giải pháp và tôi hy vọng sẽ nhận được không quá 20 000 - 100 000 giao dịch mỗi ngày, tuy nhiên điều này là cực, khối lượng thực sẽ nhỏ hơn trong hầu hết các trường hợp.
Cập nhật
Tôi không mong đợi rất nhiều kết nối đồng thời, khi tôi nói giao dịch, tôi về cơ bản có nghĩa là 1 hoặc 2 khách hàng mà thực hiện cuộc gọi và thực hiện chống lại các cơ sở dữ liệu theo thứ tự. Đôi khi có thể có khả năng khách hàng bên ngoài thực hiện cuộc gọi nhanh đến DB. Nhưng phần lớn các kết nối DB sẽ được thực hiện bởi dịch vụ WCF của tôi, đó là nhiệm vụ được lập lịch biểu kết thúc, không phục vụ 100 người trong toàn bộ tổ chức.
Một điểm tốt nữa là tôi chỉ cần giữ lại dữ liệu trong 90 ngày, vì vậy DB không nên phát triển quá lớn.
Mối quan tâm chính của tôi là:
Độ tin cậy là SQLLite? Nếu DB File bị hỏng, tôi sẽ mất tất cả dữ liệu xử lý. DB dễ sao lưu như thế nào? Nó sẽ xử lý khối lượng của tôi? Và cuối cùng nhà cung cấp dịch vụ .net hoạt động tốt như thế nào (nằm ở đây: http://sourceforge.net/projects/sqlite-dotnet2/).
Nếu bạn có bất kỳ kinh nghiệm nào với SQLLite, vui lòng đăng kinh nghiệm của bạn để tôi có thể đưa ra quyết định sáng suốt để chuyển đổi hay không.
Cảm ơn trước ...
Hãy để tôi thuật lại câu hỏi của mình. –
Phải, sqlite không xử lý nhiều người dùng cố gắng truy cập đồng thời, nhưng miễn là nó đơn giản là một kho dữ liệu nguyên khối được sử dụng bởi một ứng dụng tại một thời điểm, nó hoạt động rất tốt. – Karl
@Karl, nó xử lý truy cập đồng thời bởi các quy trình khác nhau, thậm chí từ các hệ thống khác nhau và nó hỗ trợ các giao dịch, đó là cách tốt nhất để quản lý khóa. Nó tuân thủ ACID. Tuy nhiên, vì toàn bộ cơ sở dữ liệu được chứa trong một tệp và nó khóa ở mức tệp, trình đọc chặn trên đang chờ viết và viết khối cho đến khi đọc xong. –