2010-01-02 39 views
12

我正在嘗試使用SQL Server Compact Edition 3.5作爲銷售應用程序的數據庫後端。將會安裝3-4個Windows Forms應用程序,這些程序將全部(通過LINQ2SQL)讀取和寫入位於網絡共享中的一個.sdf文件。多用戶場景中的SQL Server CE - 這真的很愚蠢嗎?

我的(相當直接的)測試表明,這可能是可行的。 Documentation指出SQL Server CE最多支持256個連接。 Does SQL Server CE even lock its rows?我應該擔心其他併發問題嗎?底線是,有沒有人使用SQL Server CE成功連接到同一個數據庫的多個應用程序?

我是否應該爲未來頭疼而煩惱,並使用SQL Server Express?

回答

14

MS建議(從達裏安·米勒的comparison guide):

當你需要數據服務 功能,如能力 支持多個遠程用戶,你 應與SQL Server Express 版,並開始處理數據服務 家譜。

運行時支持併發在同一臺機器上,不知道多臺機器訪問該文件。在文件通過網絡共享存儲的情況下,這可能不符合ce的最佳性能配置文件。我會說,去與EE,這是一個簡單的MSI安裝簡單。

SSCE併發性:從 同一應用程序

SSCE允許多個連接在同一個數據庫(.sdf文件)或在同一計算機上甚至多個 應用程序。 這給了你更多的自由, 結構需要您的應用程序, 如允許用戶繼續 與數據交互,而與後端 數據庫進行 同步,或者對同一臺機器共享多個 應用 SSCE數據存儲。事務性的 併發鎖由 數據庫引擎做出,以防止併發的 連接同時訪問相同的 記錄。 單個數據庫併發 連接的技術限制是 256,但從性能角度來看,70-80是更好的實際 限制。

http://technet.microsoft.com/en-us/library/bb380177%28SQL.90%29.aspx

+0

非常有用的信息,謝謝! – 2011-01-27 07:55:11

0

我想說,只要你在一臺機器上運行所有的東西,你就會少用sql ce頭疼的事情。在每臺運行應用程序的計算機上安裝Express版本都不是很好,很麻煩,而且可能是矯枉過正。

+0

那麼,這個想法是隻有一個數據庫和3 - 4個客戶端,所以我只需要安裝一次Express(每個客戶)。 – Edo 2010-01-03 00:39:18

+0

我想我誤解了你的問題。如果應用程序放置在多臺機器上,並且必須將db放在網絡共享中,那麼我可能會使用SQL Express。 – user227997 2010-01-11 14:13:06