2008-10-10 36 views
7

Tôi đang chuẩn bị cung cấp bản trình bày trên SQL Server Compact Edition 3.5 (SP1 - vừa được phát hành) và tôi đã tự hỏi liệu có ai đã thiết kế (hoặc dự tính thiết kế) một hệ thống với SQL Server CE 3.5 (hoặc phiên bản cũ hơn) không?Có ai sử dụng (hoặc xem xét sử dụng) Sql Server Compact Edition không?

Cụ thể, có ai nghĩ đến (hoặc có kinh nghiệm) sử dụng SQLCE làm giải pháp lưu trữ dữ liệu ngoại tuyến (như một phần của thiết kế hệ thống được kết nối) không?

Phiên bản 3.5 có vẻ khá phong phú so với người tiền nhiệm của nó, có sẵn sàng xem xét nghiêm túc không (bây giờ nó hỗ trợ LINQ to SQL, cột nhận dạng và phân loại T-SQL quan trọng)?

Bạn có cân nhắc việc sử dụng nó nếu bạn cần một cơ sở dữ liệu dựa trên tệp chân thấp (đặc biệt nếu nó cần được hỗ trợ trên thiết bị di động và hệ thống máy tính để bàn), hoặc có lựa chọn tốt hơn không?

Trả lời

9

Tại nơi làm việc, gần đây chúng tôi đã phải di chuyển một dự án được thiết kế cho SQL Server Express sang SQLCE. Lúc đầu, tôi nghĩ rằng nó sẽ là khủng khiếp, chủ yếu là do thực tế là không có thủ tục được lưu trữ. Một khi chúng tôi bắt đầu đào sâu vào nó mặc dù, và nhìn thấy những gì nó cung cấp, chúng tôi đã được thuyết phục đó là động thái đúng. Nó hỗ trợ LINQ, truy vấn rất nhiều dữ liệu mất MUCH nhanh hơn chúng tôi nghĩ nó sẽ. Chèn và cập nhật chậm hơn một chút, nhưng thực sự không quá tệ. Vấn đề duy nhất chúng tôi gặp phải là A) Management Studio 2005 không hỗ trợ nó, và mặc dù năm 2008, nó rất hạn chế. Không chắc chắn tại sao, hy vọng họ sẽ thay đổi điều đó cho các bản phát hành trong tương lai, nhưng nó đã làm tôi thất vọng. B) Khi cố gắng di chuyển một SQL Server DB hiện tại sang một SQLCE, thực sự không có cách nào dễ dàng để tạo lược đồ từ một hiện có, và để di chuyển tất cả dữ liệu. Bạn có thể sẽ phải cuộn công cụ của riêng bạn để làm điều đó (chúng tôi đã phải).

Tất cả những gì được nói mặc dù kết quả cuối cùng thật tuyệt vời.Thời gian cài đặt đã được giảm xuống còn một phần ba do người dùng không phải cài đặt SQL Express và ứng dụng chạy mượt mà hơn trên các máy có ít bộ nhớ hơn. Tất cả trong tất cả, tôi đã ngạc nhiên trước nó hoạt động như thế nào.

+0

Điều đó khá thú vị - đặc biệt là hiệu suất! Bạn đã làm điểm chuẩn nào chưa? – RobS

+0

Khác với việc cắt giảm thời gian cài đặt, chúng tôi chưa bao giờ thực sự thực hiện bất kỳ việc chấm điểm nào. Đối với các truy vấn lớn, mặc dù nó chạy khá tốt. Điều duy nhất nó không thể xử lý trên các truy vấn là Left Outter Joins. MAN đã mất mãi mãi. Một ngày nọ khi tôi chán tôi sẽ làm một số điểm chuẩn. – BFree

+0

http://www.oracle.com/technology/products/berkeley-db/index.html có thể là một thay thế, không phải là một thay thế SQL nhưng có thể được trừu tượng hóa dưới dạng bản đồ băm liên tục. –

6

Tôi đã thử một số phiên bản SQLCE và luôn sử dụng ADO.NET SQLite implementation tuyệt vời - nhẹ hơn, nhanh hơn, dễ sử dụng hơn (ít nhất là cho mục đích của tôi), và nó có thể di chuyển được gần như tất cả các nền tảng.

0

Đã thử SQLCE nhiều lần. Luôn luôn kết thúc bằng cách sử dụng một cái gì đó khác (Firebird (nhúng), SQLite, VistaDB). IMO SQLCE là cách để giới hạn là hữu ích trong các tình huống phức tạp hơn hoặc ít hơn. Mặc dù tôi không có kinh nghiệm thực tế với phiên bản mới nhất (3.5) nhưng tôi nghi ngờ nó vẫn còn hút :)

0

Tôi đã giúp phát triển và duy trì phần mềm PDA sử dụng SQL Server CE 2.0. Tôi nghĩ rằng đó là OK miễn là bạn biết nơi mà các giới hạn được.

4

hiện tại tôi đang sử dụng SQL CE với NHibernate trong một ứng dụng kinh doanh nơi cơ sở dữ liệu SQL CE được đồng bộ hóa với Sync Framework qua WCF đến máy chủ SQL 2008. hoạt động như một sự quyến rũ! đặc biệt tạo cơ sở dữ liệu từ các tệp ánh xạ nhibernate chỉ là tuyệt vời.

nhưng ngay cả khi sử dụng linq2sql nó hoạt động khá tốt!

+0

wow, nghe có vẻ như một dự án thực sự thú vị! Làm cách nào bạn tìm thấy khung Đồng bộ hóa? – RobS

+0

Tôi thứ hai nhận xét đó. Bất kỳ cơ hội nào bạn sẽ tạo một bài đăng về việc triển khai của mình? –

0

Tôi đã sử dụng SQLCE một lần, cho một bài tập tôi đã nhận được trong một cuộc phỏng vấn xin việc, và chỉ đủ cho điều đó. Bây giờ, bất cứ khi nào tôi cần chức năng như vậy, tôi sử dụng sqlite hoặc firebird.

Tính khả dụng của SQLCE cho bài tập đó rất tốt. Nó nhanh chóng, có trình soạn thảo trực quan tốt và tích hợp tốt vào Visual Studio.

Tóm lại: nếu bạn có thể xử lý các giới hạn của SQLCE, và bạn chắc chắn bạn sẽ không cần nhiều hơn thế - hãy sử dụng nó.

0

Nếu được sử dụng trên thiết bị di động thì bạn không thể sử dụng LINQ to SQL.

Chúng tôi sử dụng nó và nó là tốt đẹp, nhưng LINQ to DataSet không phải là tốt đẹp như LINQ to SQL

0

Chúng tôi sử dụng SQLCE (phiên bản 3.0 Tôi tin) trong một dự án một năm hoặc 2 trước.
Vấn đề tôi gặp phải là nó cần cài đặt, không phải XCOpy có thể triển khai được. Ngoài ra hiệu suất là khủng khiếp. chúng tôi đã làm khoảng 20 chèn một giây, mà có lẽ bên ngoài khả năng của nó, nhưng nó chắc chắn không thể xử lý nó. Các vấn đề về hiệu suất và triển khai đã thuyết phục tôi rằng có các giải pháp thay thế tốt hơn. dự án tiếp theo của tôi sẽ sử dụng SQLite hoặc VistaDB.

Tôi đã sử dụng SQLite trên Mac và IPhone để phát triển và nó hoạt động rất tốt trên cả hai nền tảng đó.

+0

Tôi đang sử dụng SQL CE 3.5 trên một dự án ngay bây giờ và chèn các hàng (trên máy tính để bàn) với tốc độ trên 10.000 hàng mỗi giây, do đó, để nói rằng nó không phải lúc nào cũng đúng. Nó phụ thuộc vào chính xác cách bạn đang sử dụng nó. – ctacke

0

Có vấn đề nếu bạn sử dụng SQLCE 3.5 SP1 với khung thực thể. Về cơ bản có một vấn đề khi truyền một số tham số cho một truy vấn. Công việc xung quanh là gỡ cài đặt SQLCE và cài đặt phiên bản khác được phát hành dưới dạng hotfix. Vấn đề với điều đó là khi cố gắng bao gồm SQLCE trong một dự án thiết lập. Thông tin thêm về vấn đề này có thể được tìm thấy trong luồng này: http://social.msdn.microsoft.com/Forums/en-US/sqlce/thread/b6bac277-cf66-4c74-a0b3-e48abedbd161

Một vấn đề khác lạ là SQLCE 3.5 SP1 với khuôn khổ thực thể sẽ không hoạt động trên 64 hệ thống bit trừ khi bạn xây dựng nó để nhắm mục tiêu x86 (http://social.msdn.microsoft.com/forums/en-US/adodotnetentityframework/thread/aa5850bb-34fe-4064-82b0-4a7cac675c91/)

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