SQLExpress 有幾個主要的限制:
1. 僅允許本地連接。
2. 數據庫文件的最大尺寸為4GB,此限制只對數據文件(後綴名為 mdf),日志文件(後綴名為 ldf)不受此限。
3. 只使用一個CPU來運算,不能充分利用多CPU服務器的性能。
4. 可使用的記憶體量最高只有1GB。
5. 沒有 SQL Agent,若要做排程服務必須自己編寫。
因此它是 SQL Server 產品系列中面對低端的產品,是面對桌面型應用,或者小型的內部網絡應用的。
所謂面對桌面型應用的軟件,是指單用戶在一台電腦就能完成操作的軟件,強調操作指令和數據處理一體化,不考慮多用戶共享權限和並發處理問題。與此相對的是客戶/服務器(或浏覽器/服務器)模式軟件,SQL2005 就是 客戶/服務器應用模式中的服務器端軟件,SQL2005 只能管理附加(Attach)到服務器實例內的數據庫文件(mdf文件),而此數據庫文件也唯一歸屬於該SQL2005實例,不能被其它程序調用(當然,也不能被客戶程序直接調用),必須由SQL2005實例執行分離(Dettach)該數據庫文件後,才能由其它程序調用。
為了適應桌面應用,SQLExpress 比 SQL2005 新增了一項標志性的功能:不需將外置的數據庫附加到 SQLExpress 服務器中,就能夠直接調用,即在連接數據庫語句中增加了 AttachDBFilename 選項。有此功能後,我們用 Microsoft Visual Studio 設計桌面型應用程序時,使用Access數據庫或SQLExpress數據庫的方式幾乎相同,由於SQLExpress數據庫的功能更多、擴展性更強,而且是嵌入到 Visual Studio 軟件中的默認數據庫,相關幫助文檔更多,在編程中使用SQLExpress數據庫甚至比Access更方便。唯一缺點是包含SQLExpress的軟件尺寸較大,與使用Access數據庫的軟件相比,尺寸約大40兆,但現在的電腦硬盤容量有上百G,幾十兆已不是問題。
從桌面數據庫的發展過程來看,Foxpro 曾經很受軟件開發者喜愛,後來微軟公司開發的 VB、C# 等編程語言主推Access做桌面數據庫,使得 Foxpro 逐漸衰落。當今 Internet 網絡快速普及,純桌面數據管理軟件已經落伍,取而代之的是帶有網絡功能的客戶/服務器(C/S)軟件,或浏覽器/服務器(B/S)軟件,與之對應編程語言就是 Visual Studio 。使用 Visual Studio + SQLExpress 編寫的面對桌面的數據管理軟件,能夠很容易升遷到客戶/服務器應用(甚至就是二者兼備),有此推斷,SQLExpress 也將逐漸替代 Access 。
目前,網絡服務器和虛擬主機服務商提供的數據庫產品主要就是 SQL Server 2000-2008 和 Access ,幾乎沒有 SQLExpress 。這是因為 SQLExpress 只能使用1GB內存,和一個CPU,在多用戶共享應用時,隨著用戶增多,效能下降的很快,這個缺點與Access類似(也可能比Access強點有限)。由於SQLExpress和SQL2005管理的是同一種數據庫文件,如果軟件編程得當,就應該二者兼備。因此,在有SQL2005的服務器上,就沒有必要再應用SQLExpress了。作為特例,在小型企業內部網中,由於SQL2005的購置費較高,也可使用SQLExpress作為客戶 端/服務器系統中的服務器端軟件。
如果要編寫兼容SQLExpress和SQL2005的軟件,在編程時只需將連接數據庫字符串抽離出來, 用自定義函數來替代(該函數的返回值等於“連接數據庫字符串”),就可以了。
我公司編寫的“何問起收藏夾”軟件,是面對桌面應用、客戶/服務器應用,及浏覽器/服務器應用於一身的軟件,管理本機數據的後台數據庫就是SQLExpress ,同時也支持調用Web網站SQL2005數據庫。