SQL Server 2005 Express Edition 介紹

 
SQL Server 2005 Express Edition 介紹

 

摘要:SQL Server Express Edition 是基於 SQL Server 2005 技術的免費產品,包括特有的應用程序 XCopy 功能以及不同於其他 SQL Server 2005 版本的網絡和安全性。本文討論了這些主題以及 SQL Server Express 與 Visual Studio 2005 集成的問題,同時還將本產品與現有的 Microsoft 免費數據庫(如 MSDE 和 Jet)進行了比較。


簡介

SQL Server Express 是基於 SQL Server 2005 技術的一款免費易用的數據庫產品旨在提供一個非常便於使用的數據庫平臺,可以針對其目標情況進行快速部署。之所以便於使用,首先是因爲它具有一個簡單可靠的圖形用戶界面 (GUI) 安裝程序,可以引導用戶完成安裝過程。SQL Server Express 附帶的免費 GUI 工具包括:SQL Server Management Studio Express Edition(啓動時可以使用的技術預覽版本)、Surface Area Configuration Tool 和 SQL Server Configuration Manager。這些工具可以簡化基本的數據庫操作。通過與 Visual Studio 項目的集成,數據庫應用程序的設計和開發也變得更加簡單。此外,我還將介紹通過移動數據庫應用程序(像移動典型 Windows 文件一樣)來對其進行部署的功能。服務和修補也得到了簡化和自動化。

SQL Server Express 使用與其他 SQL Server 2005 版本同樣可靠的、高性能的數據庫引擎,也使用相同的數據訪問 API(如 ADO.NET、SQL Native Client 和 T-SQL)。事實上,它與其他 SQL Server 2005 版本的不同僅體現在以下方面:

  • 缺乏企業版功能支持

  • 僅限一個 CPU

  • 緩衝池內存限制爲 1 GB

  • 數據庫最大爲 4 GB

默認情況下,在 SQL Server Express 中,啓用諸如自動關閉和像複製文件一樣複製數據庫的功能,而禁用高可用性和商業智能功能。如果需要,也容易進行伸縮,因爲 SQL Server Express 應用程序可以無縫地與 SQL Server 2005 Workgroup Edition、SQL Server 2005 Standard Edition 或 SQL Server 2005 Enterprise Edition 一起使用。通過 Web 下載文件可以進行免費、快速、方便的部署。

本白皮書介紹 SQL Server Express 特有的組件和功能,如應用程序 XCopy(用戶實例)、網絡和安全性。還介紹常見情況的使用原則。此外,我還將介紹使用 Microsoft Visual Studio 2005 輕鬆開發數據應用程序,這主要針對以下人員:

  • 愛好者和其他非專業開發人員

  • 數據庫開發人員、管理員和專業操作人員

  • 業務分析人員

  • 技術決策者

目標情況

開發 SQL Server Express 是爲了滿足以下兩個不同的用途。第一個用途是用作服務器產品,特別是作爲 Web 服務器或數據庫服務器。第二個用途是用作本地客戶端數據存儲區,其中應用程序數據訪問不依賴於網絡。易用性和簡單性是主要設計目標。

SQL Server Express 主要用於以下三種情況:

  • 非專業開發人員生成 Web 應用程序

  • ISV 將 SQL Server Express 重新發布爲低端服務器或客戶端數據存儲區

  • 愛好者生成基本的客戶端/服務器應用程序

SQL Server Express 提供的易用、可靠的數據庫平臺功能豐富,可用於這些情況。特別要注意安裝和部署的易用性和可靠性使 ISV 的使用和重新發布變得輕鬆。


SQL Server 2005 Express Edition 的主要功能

SQL Server Express 使用的數據庫引擎與其他 SQL Server 2005 版本相同,並且所有編程功能也相同。有關上述主題的其他信息,請參閱 SQL Server 2005 聯機叢書。下面詳細介紹了 SQL Server Express 特有的、並且/或者對客戶有較顯著影響的功能。

引擎規範

SQL 引擎支持 1 個 CPU、 1 GB RAM 和 4 GB 的數據庫大小。此機制允許通過定義適當的斷點來輕鬆區別於其他 SQL Server 2005 版本。另外,沒有工作負荷中止值,並且引擎的執行方式與其他版本相同。對可以附着到 SQL Server Express 的用戶數沒有硬編碼限制,但其 CPU 和內存限制實際上限制可以從 SQL Server Express 數據庫獲取可接受響應次數的用戶數。

SQL Server Express 可以安裝並運行在多處理器計算機上,但是不論何時,只使用一個 CPU。在內部,引擎將用戶調度程序線程數限制爲 1,這樣一次只使用 1 個 CPU。因爲一次只能使用一個 CPU,所以不支持執行諸如並行查詢這樣的功能。

1 GB RAM 限制是對緩存池的內存限制。緩存池用於存儲數據頁和其他信息。但是,跟蹤連接、鎖等所需的內存不計入緩存池限制。因此,服務器使用的總內存有可能大於 1 GB,但用於緩存池的內存絕不會超過 1 GB。不支持或不需要地址窗口化擴展插件 (AWE) 或 3 GB 數據訪問。

4 GB 數據庫大小限制僅適用於數據文件,而不適用於日誌文件。但是,不限制可以附着到服務器的數據庫數。SQL Server Express 的啓動略有變化。用戶數據庫不會自動啓動,分佈式事務處理協調器也不會自動初始化。雖然對於用戶體驗而言,除了啓動速度更快之外,感覺不出什麼變化。仍建議要使用 SQL Server Express 的編程人員在設計自己的應用程序時,牢記這些變化。

多個 SQL Server 2005 Express 安裝可以與其他 SQL Server 2000、SQL Server 2005 或 Microsoft Desktop Engine (MSDE) 安裝共存於同一臺計算機上。通常,最好將 SQL Server 2000 實例升級到 Service Pack 4 (SP4)。在同一臺計算機上,最多可以安裝 16 個 SQL Server Express 實例。這些實例的名稱必須是唯一的,以便可以標識它們。

默認情況下,SQL Server Express 安裝爲一個名爲 SQLEXPRESS 的命名實例。這個特殊的實例可以在多個應用程序和應用程序供應商之間共享。建議您使用此實例,除非您的應用程序具有特殊配置要求。

可用於編程 SQL Server Express 的 API 與用於編程 SQL Server 2005 的 API 相同,這樣如果用戶選擇轉到其他 SQL Server 2005 版本,他們也不會感到有任何不適應。支持 SQL Server 2005 中的所有新功能(例如公共語言運行時 (CLR) 集成)、新數據類型(例如 VARCHAR(MAX) 和 XML)、用戶定義類型和用戶定義聚合。此外,SQL Server Express 數據庫可以附着到 SQL Server 2005,而且使用 SQL Server Express 實例編寫的應用程序同樣可以與 SQL Server 2005 實例一起協調運行。還支持複製和 SQL Service Broker 功能,該功能將在後面詳細介紹。

工具支持

SQL Server Express 是以易於使用爲目的而設計的,其圖形用戶界面 (GUI) 工具甚至可以使數據庫初學者輕鬆使用 SQL Server Express 中的基本數據庫功能。名爲 SQL Server Management Studio Express Edition 的新 GUI 工具可以作爲獨立的 Web 下載文件獲得。SSMS-EE 可以使您輕鬆管理數據庫、執行查詢分析功能,並且可以免費重新發布。

SSMS-EE 可以連接到 SQL Server Express 和其他 SQL Server 2005 版本、SQL Server 2000 以及 MSDE 2000。連接時,會顯示一個簡單的連接對話框,引導用戶選擇要使用的實例和身份驗證方法。可以進行本地連接和遠程連接。對象資源管理器將以分層方式枚舉並顯示使用的公共對象(例如實例、表、存儲過程等),有助於用戶實現對數據庫訪問的可視化。

從對象資源管理器的快捷菜單中,可以訪問所有數據庫管理功能。SSMS-EE 的功能(如創建和修改數據庫、表、視圖、登錄帳戶和用戶)與其他版本中的完整 SQL Server Management Studio 相同。這使您在升級到 SSMS 完整版後,可以立即應用在 SSMS-EE 中學到的技能。

許多數據庫用戶更喜歡使用 T-SQL 來管理其服務器,因爲與使用圖形用戶界面相比,這種方法可以進行更精密細緻的控制。SSMS-EE 中的查詢編輯器允許用戶開發和執行 T-SQL 語句和腳本。查詢編輯器的功能豐富,例如關鍵字顏色代碼、結果窗格(用於以數據網格形式返回結果)。錯誤消息(如果有)也將顯示在結果窗格中。SSMS-EE 支持 SSMS 的所有查詢編輯器功能,包括圖形查詢計劃。

圖 1:查詢編輯器

SSMS-EE 將通過獨立的 Web 下載文件進行發佈。用戶只需單擊可執行文件就可以啓動安裝程序。如果已安裝 SSMS,將無法安裝 SSMS-EE,因爲不需要安裝。同樣,用戶通過重新啓動該安裝程序或使用“控制面板”中的“添加/刪除程序”菜單可以卸載 SSMS-EE。

SQL Server Express 附帶的一些工具包括 SQL 計算機管理器、SQL 命令 和 BCP。SQL 計算機管理器用於啓動和停止 SQL Server 服務,以及啓用和禁用網絡協議。SQL 命令用於使用命令行進行連接和查詢,而 BCP 用於大容量複製數據。

SQL 計算機管理器允許管理員配置基本服務和網絡協議,在 SQL Server 2005 中,與以前的工具(如服務器網絡實用工具、客戶端網絡實用工具和服務管理器)等效。SQL 計算機管理器不用於調整性能特徵或 SQL Server 的操作。

在計算機管理器中,有一個名爲“Microsoft SQL Servers”的節點,其中包含所有服務、服務器網絡協議和客戶端網絡協議。服務節點列出了所有可用的 Express 服務,並提供了諸如服務器實例名稱、服務狀態和啓動類型之類的詳細信息。您可以選擇某個特定服務,然後執行諸如啓動、停止、暫停或重新啓動服務之類的操作。“服務器網絡協議”節點枚舉了計算機上每個實例的協議列表。右鍵單擊某個協議(例如 TCP 協議),可以從打開的快捷菜單中啓用或禁用該協議,也可以更改其屬性。“客戶端網絡協議”節點也提供類似選項。請注意,“服務器網絡協議”節點直接處理 SQL Server 實例上的協議設置,而“客戶端網絡協議”節點處理客戶端(如 MDAC 或 SQL Native Client 提供程序)的協議設置。使用“客戶端網絡協議”節點可以創建別名,該別名是 SQL Server 的備用名稱,可以包含服務器名稱、使用的協議、連接字符串以及加密信息之類的信息。

SQL 命令是現有 osql 工具的 OLE DB 版本,不僅嘗試保持與 osql 的功能性兼容,還支持新的 SQL Server 2005 數據類型。所有命令行選項都將信息輸出到標準輸出,操作失敗時可能出現的錯誤消息除外。SqlCmd -? 命令顯示 sqlcmd 開關的語法摘要。

SQL 計算機管理器和 SQL 命令對於 SQL Server Express 和其他 SQL Server 2005 版本相同。

網絡支持

儘管用戶可以顯式打開其他支持的協議(例如 TCP/IP 和 Named Pipes),但默認情況下,SQL Server Express 只能訪問本地計算機上的共享內存連接類型。SQL Server Express 不支持 VIA 協議和 HTTP 協議。因爲默認情況下只能使用共享內存,所以除非打開網絡,否則無法從遠程計算機連接到 SQL Server Express。可以通過以下方式打開網絡:

  • 使用外圍應用配置器工具啓用網絡,並啓用和啓動 SQLBROWSER 服務。

  • 使用 SQL Server 配置管理器啓用相關協議,並啓動 SQL Browser。圖 2 介紹瞭如何使用此工具啓用網絡協議。

  • 如果您預先知道需要網絡支持,請在安裝命令行中使用 DISABLENETWORKPROTOCOLS=0

  • 使用基於 SMO 的腳本啓用協議。

在 SQL Server 2005 中,SQL Browser 是一項新服務,用於標識命名實例監聽的端口。由於共享內存不使用該服務,因此默認情況下,該服務在 SQL Server Express 中處於關閉狀態。這意味着用戶必須啓動該服務,網絡訪問纔可以進行。

注意:一個有趣的事實是 SQL Browser 監聽 UDP 1434 端口。但是,佔用 UDP 1434 端口的早於 SQL Server 2000 SP3 之前的版本可能會導致 SQL Browser 名稱解析失敗,因爲它們可能拒絕放棄該端口。解決方法是:將計算機上的所有 SQL Server 2000/MSDE 實例都升級到 SP3 版本或更高版本。

圖 2. 使用 SQL Sever 配置管理器啓用協議

數據訪問支持

SQL Server 2005 Express 支持的本機提供程序和託管提供程序與其他 SQL Server 2005 版本相同。這樣會有巨大的好處:爲 SQL Server Express 編寫的應用程序可以無縫用於其他 SQL Server 版本。

SQL Server 2005 Express 支持使用 ADO.NET 進行託管訪問。我們建議您使用 SqlClient 數據提供程序來開發新的應用程序,因爲大多數應用程序 XCopy 功能僅能與 SqlClient 一起使用。ADO.NET 2.0 數據提供程序(Visual Studio 2005 中提供)支持 varchar(MAX) 和 XML 之類的新 SQL Server 數據類型以及用戶定義類型。

從 SQL Server 2005 開始,服務器中的邏輯會話與物理連接分離。客戶端傳輸層和服務器傳輸層都將更新爲提供多路複用功能,這樣只使用一個物理連接就可以建立多個邏輯會話。這使得客戶端針對同一個連接可以有多個活動的結果集 (MARS)。請注意,一般而言,MARS 並不是爲了避免使用多個連接。在 SQL Server 2005 中,MARS 默認情況下處於關閉狀態,使用 MARS 可以交替執行 SQL 操作。例如,您可以對一個結果集進行操作,也可以在處理該結果集時對數據庫執行語句,而無需打開新的連接。在許多情況下,MARS 可以有效替代服務器遊標,當數據檢索操作和更新操作在同一個事務中進行時,尤爲有用。

SQL Server 2005 客戶端也支持異步輸入輸出 (I/O),這樣應用程序線程不會再被數據傳輸操作阻塞,客戶端應用程序就可以儘快作出響應。在這種模式下,I/O 調用將會立即返回,完成後將異步通知應用程序。這使得應用程序可以繼續其他處理過程,並在以後檢查 I/O 完成事件。

SQL Server 2005 時間範圍內的數據訪問組件將分成兩部分:MDAC 堆棧(屬於操作系統)和 SQL Native Client 提供程序(向 SQL Server 提供用於本機數據訪問的特定數據訪問庫)。SQL Native Client 針對 SQL OLEDB、SQL ODBC 和 ADO 客戶,這些客戶正在編寫新的應用程序或增強現有應用程序以利用 SQL Server 2005 的新功能。

SQL Native Client 將 SQL Server 2005 添加項包含到 SQL OLE DB、SQL ODBC、SQL BCP 和 SQL 網絡接口。只有 C 或 C++ 程序員纔可以通過 SQL Native Client 使用 SQL Server 2005 功能,例如 MARS、用戶定義類型、XML 數據類型等。SQL Native Client 由新的組件構成(新類 ID),這些組件獨立於 MDAC 中的現有組件,並且與其不同。例如,使用的 OLE DB Progid 是 SQLNCLI;ODBC 驅動程序名稱是 SQL Native Client;使用的頭文件是 SQLNCLI.h。

SQL Native Client 作爲單個 dll (SQLNCLI.dll) 提供,而不作爲操作系統組件提供,這樣可以簡化服務,使重新發布和部署應用程序變得更輕鬆。隨着新版 SQL Server 的發佈,將會提供更新的 SQL Native Client 版本,應用程序可以顯式更改其配置清單以使用較此提供程序的更高版本。

在 MDAC 提供程序和 SQL Native Client 提供程序之間存在一些基於交互的有趣動態。例如,MDAC 2.5、2.7 或 2.8 無法使用共享內存連接到 SQL Server 2005。這會影響使用 SQL OLE DB 或 SQL ODBC 的所有本機應用程序,不僅包括現有本機應用程序,而且還包括託管的 OLE DB 或 ODBC 應用程序,因爲它們在內部都使用了 MDAC。通常,對於 SQL Server,如果共享內存連接失敗,將使用網絡協議(例如 TCP/IP)。但是,對於 SQL Server Express,因爲網絡在默認情況下是關閉的,所以這些應用程序將完全無法連接。解決辦法是:將應用程序改爲使用 SQL Native Client 提供程序,或者啓用網絡傳輸控制協議 (TCP) 並啓動 SQL Browser。

安全性

對於 SQL Server Express,我們的一個目標是爲不同組件提供安全的默認值。例如,關閉網絡協議(如 TCP/IP 和 Named Pipes)。不啓動 SQL Browser 服務,除非用戶在安裝命令行中顯式請求啓動。如果使用 Windows 身份驗證,則默認情況下禁用 SA 帳戶或系統管理員帳戶。計算機上的普通用戶幾乎沒有對 SQL Server Express 實例的權限。服務器上的本地管理員必須向普通用戶顯式授予相關權限,這些用戶才能使用 SQL 功能。

在 SQL Server 中,SA 登錄帳戶是一個特殊的登錄帳戶,是系統管理員 (sysadmin) 角色的成員。主要用於使用 SQL 身份驗證模式的配置中,而不用於 Windows 身份驗證模式。出於安全原因,SQL 驗證模式要求輸入強 SA 密碼,在 GUI 安裝和無提示 SQL 身份驗證模式安裝期間,用戶必須輸入強 SA 密碼。但是,對於無提示 Windows 身份驗證安裝,不需要 SA 密碼。原因是使用 Windows 身份驗證模式時,如果用戶未指定密碼,無提示 SQL Server Express 安裝程序會提供一個隨機的強 SA 密碼。在這種情況下,安裝程序也會禁用 SA 帳戶,因此如果您想要使用 SA 帳戶,必須稍後使用 T-SQL 顯式啓用該帳戶。這樣,在使用 Windows 身份驗證時,ISV 就不必提供密碼了,從而不會阻塞大規模部署情況。在將來的版本中,此功能可能還會擴展到基於 GUI Windows 的安裝。

複製支持

用戶通過複製可以使用“發佈服務器 - 訂閱服務器”模式以用戶定義的間隔保持多個站點的數據副本同步。SQL Server Express 支持訂閱合併發佈、快照發布和事務性發布,但不允許自己發佈。在 SQL Server Express 中,複製訂閱完全正常運行。但是,因爲 SQL Server Express 不附帶 SQL 代理,所以計劃訂閱比較困難。您可以通過以下方法同步 SQL Server Express 訂閱:

  • 使用複製管理對象 (RMO) 以編程方式同步。

  • 將 Windows 同步管理器用於計劃同步。

SQL Service Broker

SQL Service Broker (SSB) 是 SQL Server 2005 中一個新的、可靠的消息傳送基礎結構。該服務程序可以選擇通過對等消息交換約定(稱爲對話框)進行通信。此功能可以通過 T-SQL 語言的擴展插件來訪問。

SQL Server Express 只有在與其他 SQL Server 2005 版本一起使用時,纔可以使用 Service Broker。如果 SQL Server Express 接收到一條來自另一個 SQL Server Express 實例的 Broker 消息,並且另一個 SQL Server 2005 版本未處理該消息,則該消息將被刪除。因此,消息可以源於一個 SQL Server Express 實例而終止於另一個 SQL Server Express 實例,但是如果要這樣,該消息必須通過非 SQL Server Express 實例進行路由。您可以檢查 Message Drop 跟蹤事件,該事件可以通過事件探查器訪問,也可以使用跟蹤存儲過程來跟蹤此類事件。與刪除的消息關聯的錯誤消息包括與以下消息類似的消息:"This message has been dropped due to licensing restrictions."(“由於授權限制,此消息已被刪除。”)

以擴展情況爲例。應用程序在收銀機上部署了 100 個 SQL Server Express 實例。它們正連接到後端的非 SQL Server Express 服務器上。只要後端服務器涉及所有對話框,就會發生這種情況。SQL Server Express 實例無法在不經過後端服務器的情況下成功進行會話。

用戶實例

用戶實例是 SQL Server Express 中的新功能,可以像處理文件一樣處理數據庫。現在,本地數據庫可以隨應用程序一起移動、複製或通過電子郵件傳送。在新的位置,不需要進行額外配置就可以使其正常運行。用於在 SQL Server Express 中啓用應用程序用戶實例支持的主要功能有三個:連接字符串中的 AttachDBFilename 選項、不需要指定邏輯數據庫名稱和“用戶實例”選項。

在用戶實例支持中,暗含着幾個假設。假設實例名爲 SQLEXPRESS 的 SQL Server Express 已安裝在計算機上。還假設它是一個僅託管堆棧解決方案,您必須使用 .NET SQL Server 數據訪問接口開發可部署的 XCopy 應用程序。也就是說,不能使用 SQL Native Client 或 MDAC 來開發可用於用戶實例的應用程序。

通常,應用程序開發人員僅將用戶數據庫和日誌文件隨應用程序一起復制。但是,在 SQL Server 中,一個特定數據庫(稱爲 master 數據庫)中存在多個配置條目。依賴於 master 數據庫中的條目的功能包括 SQL 身份驗證(建議您儘可能使用 Windows 身份驗證)。如果您的應用程序依賴於 master 數據庫中的任何條目,則應用程序開發人員必須確保將這些配置條目複製到目標系統中。一個方法是:當將運行的應用程序安裝到目標計算機上時,要隨之包括一個 SMO、DMO 或 T-SQL 配置腳本。對於大多數使用 Windows 身份驗證運行的應用程序,從 master 數據庫複製信息並不難。

AttachDBFileName

您可以爲 AttachDBFileName 連接字符串條目指定相對文件路徑或絕對文件路徑。當打開連接時,將附着指定的數據庫文件,此數據庫用作該連接的默認數據庫。如果調用 AttachDBFileName 時該數據庫已附着,則附着操作不會產生任何影響。此關鍵字支持稱爲 |DataDirectory| 的特定字符串,該字符串在運行時指向存儲數據庫文件的應用程序的數據目錄。此特定字符串應位於文件路徑的起始處,僅對本地文件系統有效,並且會檢查 /../ 語法以便該文件路徑不高於替換字符串指向的目錄。

使用 AttachDBFileName 時,日誌文件的用法有些變化。日誌文件名的格式必須爲:<database-File-Name>_log.ldf,並且在使用 AttachDBFileName 時,沒有用於指定日誌文件名的選項。例如,如果數據庫文件名爲 myDb.mdf 且位於 c:/myApp,則日誌文件名應爲 myDb_log.ldf。如果 SQL 在數據庫文件所在的目錄中找不到此文件,則在附着過程中將創建一個新的日誌文件。這意味着,在使用 AttachDBFileName 時,不支持用戶定義的日誌文件名。

SQL Server 支持對一個數據庫使用多個數據和日誌文件,這些文件可以分佈在多個文件組中。AttachDBFileName 語法不支持此功能,也不支持網路共享、HTTP 路徑或通用命名約定 (UNC) 遠程數據庫。

邏輯數據庫名稱

如果在連接字符串中未指定邏輯數據庫名稱,則將爲要附着的數據庫自動生成一個名稱。該名稱是基於 .mdf 文件的相對文件路徑生成的。例如,如果文件位於 c:/myDocuments/Myapp/myDB.mdf,則邏輯數據庫名稱將基於完整路徑。如果文件路徑的字符多於 128 個,則此功能將使用現有路徑和一個哈希來生成邏輯數據庫名稱。這是 SQL Server Express 中的新功能,因爲在 SQL Server 2000 中不指定數據庫名稱將導致出現錯誤。支持的語法包括 database=;initial catalog=;,或者用戶也可以在連接字符串中完全省略它們。

在同一臺計算機上移動或複製數據庫時,此功能非常有用,因爲基於文件路徑的邏輯名稱是唯一的。如果沒有此功能,則在使用同一個邏輯名稱打開兩個不同目錄中的數據庫時,SQL Server 中將會發生命名衝突。計算機之間還支持應用程序 XCopy。

請注意,仍然可以使用關鍵字 databaseInitial Catalog 來顯式指定邏輯數據庫名稱。用戶在使用複製、使用 SQL Service Broker、在 T-SQL 查詢中使用多個部分組成的名稱或使用跨數據庫方案時,可能想要顯式指定邏輯數據庫名稱。

自動關閉

SQL 2000 具有自動關閉功能,此功能在 SQL Server Express 中,默認情況下處於啓用狀態。此功能在不存在到用戶數據庫的活動連接時,解除對用戶數據庫的文件鎖定。這樣,在使用該數據庫的應用程序關閉後,就可以移動或複製該數據庫了。

但是,在用戶看來,自動關閉功能並非始終有效,特別是在發生意外客戶端終止或使用連接池時。對於意外客戶端終止,連接最終會被超時機制清除。連接池啓用後,用戶調用連接關閉時,連接實際上並沒有關閉,而是返回到連接池。爲了關閉所有連接,通常不得不關閉應用程序域或所有打開的連接。ADO.NET 還包含 ClearPool 之類的函數,用於手動重設。

用戶實例

用戶實例允許非管理員用戶附着和管理 SQL Server Express 數據庫。他們通過創建 SQL Server 專用副本來進行附着和管理,該副本運行在打開與某個數據庫的連接的用戶的安全上下文中。打開連接的用戶成爲用戶實例的服務帳戶,從而具有完整的數據庫系統管理員權限。這些權限允許非管理員 Windows 用戶具有數據庫管理員權限,從而允許用戶使用 AttachDBFilename 附着數據庫。這些權限還允許用戶創建任何必要的數據庫對象;使得此模式對於開發數據庫應用程序比較理想。

安裝和部署

SQL Server Express 安裝程序是 SQL Server 2005 安裝程序的簡化版本,它功能強大、可靠,並且支持 GUI 和無提示安裝兩種模式。僅支持基於 Windows 安裝程序 (.msi) 的技術。

SQL Server Express Web 下載文件使用稱爲 SFXCab 的 Microsoft 安裝技術被打包成一個可執行文件。您可以從 Microsoft 下載中心下載 SQL Server Express。雙擊 .exe 文件將自動啓動安裝進程。

Visual Studio 2005 版本的 .NET Framework 是安裝 SQL Server Express 的必備組件,如果在計算機上找不到正確版本,安裝程序將生成錯誤。在安裝程序實際運行之前,會運行一個稱爲系統配置檢查 (SCC) 的組件。此組件驗證系統是否滿足安裝的最低要求;包括最低硬件要求、最低操作系統要求、掛起的重新啓動要求等。許多用戶可能無法滿足掛起的重新啓動要求,這意味着用戶必須重新啓動計算機,SQL Server Express 安裝才能繼續。SCC 的主要優點是可以及早標識出因計算機配置此外引起的常見安裝錯誤,進而向用戶顯示相應的警告和錯誤消息。例如,如果計算機只有 256 MB 的內存,SCC 將顯示警告,但會繼續安裝。下面的圖 3 顯示了 SCC 屏幕快照示例。

圖 3. 系統配置檢查

安裝程序啓動後,您可以看到屏幕被簡化了,任何開發人員都可以進行訪問。例如,默認情況下,使用“隱藏高級配置”複選框隱藏了一些複雜的對話框(如用於處理排序規則和服務帳戶的對話框)。如果用戶沒有選中此選項,則會顯示高級配置對話框。默認情況下,安裝日誌記錄功能被打開,這樣用戶可以使用 /Program Files/Microsoft SQL Server/90/Setup Bootstrap/LOG 目錄中創建的日誌文件輕易瞭解所有安裝故障。

默認情況下,SQL Server Express 安裝爲一個名爲 SQLEXPRESS 的命名實例,建議應用程序使用共享的 SQLEXPRESS 實例。默認情況下,SQL 中有幾項功能也被關閉,因此您必須顯式選擇要安裝的組件。下面顯示了功能組件樹屏幕,從中您可以手動複選要安裝的項目。安裝命令行 ADDLOCAL=All 將選擇安裝所有組件。下面的表 1 中顯示了功能組件樹 GUI 條目和相應的命令行選項。

功能組件 GUI

功能組件命令行參數:提供逗號分隔的列表,要安裝的功能與 ADDLOCAL 之間沒有空格。

SQL Server Database Services

SQL_Engine

數據文件

SQLEngine_Data_Files

複製

SQL_Replication

客戶端組件

Client_Components

SQL 命令行工具

Server_tools

連接組件

Connectivity

軟件開發工具包

SDK

當您自己安裝產品時,建議您使用 GUI 安裝模式。通常,您可以從 Microsoft 站點下載 SQL Server Express,也可以從應用程序 CD 獲得。

建議您在安裝應用程序過程中安裝 SQL Server Express 時使用無提示安裝模式。在這種模式下,您可以驗證計算機中是否存在名爲 SQLEXPRESS 的實例,如果不存在,請進行無提示安裝。有兩種方法可以很容易地確定計算機上是否存在 SQL Server Express 實例:

  • SQL Windows Management Instrumentation (WMI) 提供程序中的 ServerInstance 包含 SQL 版本和版本信息。

  • T-SQL 命令 Select SERVERPROPERTY("ENGINEEDITION") 返回值 4,代表 SQL Server Express。

您可以使用安裝引導程序或 Visual Studio“單擊一次”技術來包括 SQL Server Express Microsoft Windows Installer (MSI) 或 Web 下載文件 exe,這對於 ISV 特別有用。如果 SQLEXPRESS 實例已經存在,就不應該繼續安裝 SQL Server Express。需要注意的重要一點是:Microsoft 不支持 .msi 鏈接,因而不應該使用。SQL Server Express 也不支持合併模塊。如果某個現有 MSDE 安裝未顯示在“控制面板”的“添加/刪除程序”菜單中,則必須清除 SQL Server Express 的安裝。

以下列出了一些常用的命令行參數。

  • SAPWD 用於提供 SA 帳戶的密碼,主要與 SECURITYMODE=SQL 一起使用。SECURITYMODE=SQL 用於啓用混合模式身份驗證,對於提供強 SA 密碼很重要。對於 Windows 身份驗證,不需要此參數。

  • ADDLOCAL=ALL 用於選擇安裝所有 SQL Server Express 組件。

  • DISABLENETWORKPROTOCOLS 用於啓用/禁用網絡協議。默認情況下,值爲 1,意味着默認情況下,禁用網絡協議。使用 DISABLENETWORKPROTOCOLS=0 可以在實例中啓用網絡協議。

  • /qn 用於無提示安裝。

  • INSTANCENAME 參數用於指定命名實例的名稱。建議的默認值爲 SQLEXPRESS

語言支持

SQL Server Express 數據庫引擎支持 MSDE 支持的全部 12 種語言。目標語言包括:英語、葡萄牙語(巴西)、荷蘭語、簡體中文、繁體中文、法語、德語、意大利語、日語、朝鮮語和西班牙語。

支持注意事項

通過新聞組、基於 Web 的文檔和資源(例如 SQL 聯機叢書和白皮書),對 SQL Server Express 提供支持。

硬件/軟件要求

  • 硬件要求

    • 處理器頻率最小爲 600 mHz

    • 處理器頻率建議爲 1 GHz

    • RAM 最小爲 256MB(安裝程序會發出警告)

    • RAM 建議爲 512MB

    • 硬盤空間最小爲 170 MB(系統中必須裝有 Microsoft .NET Framework)

    • 視頻設備分辨率最低爲 800 x 600,256 色

    • 視頻設備分辨率建議爲 1024 x 768,增強色 - 16 位

  • 軟件要求:

    • Microsoft Internet Explorer 6.0 SP1 或更高版本

    • Microsoft .NET Framework 2.0

  • 操作系統

    • Microsoft Windows 2000 SP4 Professional

    • Microsoft Windows 2000 SP4 Server

    • Microsoft Windows 2000 SP4 Advanced

    • Microsoft Windows 2000 SP4 Data Center

    • Microsoft Windows XP SP1 Professional 或更高版本

    • Microsoft Windows 2003 Server 或更高版本

    • Microsoft Windows 2003 Enterprise 或更高版本

    • Microsoft Windows 2003 Data Center 或更高版本

    • Microsoft Windows Small Business Server 2003 Standard 或更高版本

    • Microsoft Windows Small Business Server 2003 Premium 或更高版本

64 位支持

SQL Server Express 將支持 x64 平臺上的 Windows on Windows (WOW)。WOW 實質上是在 64 位計算機上運行 32 位 SQL Server Express。SQL Server Express 不能安裝在 IA64 計算機上。

SQL Server Express 沒有的功能

其他 SQL 版本具有的某些功能,SQL Server Express 卻不具有,這些功能包括:

  • 可用性功能,例如數據鏡像、羣集等

  • 全文搜索

  • SQL 代理

  • Reporting Services

  • 商業智能平臺,例如 Notification Services 和 Analysis Services

  • SQL Management Studio,是新的 GUI 工具,用於替換 SQL 2000 企業管理器

請注意,在 2006 年,全文搜索和 Reporting Services 功能將添加到 SQL Server Express Edition 中。

Visual Studio 集成

SQL Server Express 隨所有 Visual Studio 版本一起安裝。Visual Studio 使用實例名稱 SQLEXPRESS 安裝 SQL Server Express。在 SQL Server Express 中,應用程序依賴於 SQLEXPRESS 實例名稱。集成 Visual Studio 和 SQL Server Express 是爲了讓使用 SQL Server Express 訪問數據庫與使用 Jet 訪問一樣簡單容易。這對於客戶端應用程序和 ASP.NET Web 服務器兩種情況都是如此。

例如,在 Visual Studio 項目中引入了一個數據庫對象,該對象模板 SQL Server 數據庫。當用戶在 Visual Studio 項目中選擇“添加新對象”選項時,將顯示此對象。將數據庫添加到項目後,將對該數據庫自動進行連接管理,這樣用戶就可以單擊該數據庫來查看數據庫中的所有對象,例如表、存儲過程等。我們爲您提供了直接將相關表拖放到表單中的功能。如果使用 Visual Web Developer,將自動創建 GridViewSqlDataSource,而不需要用戶在代碼行中鍵入。您也可以僅通過拖放操作,將某個控件(如文本框)自動綁定到某個數據庫值。所有連接字符串設置都存儲在中心 Web.config 文件中,這樣用戶便必須在一個單獨的位置才能進行修改。

Visual Studio 使用 SQL Server Express 中的用戶實例,所以在 Visual Studio 項目中,可以像處理 Windows 文件一樣處理 SQL Server 數據庫文件。例如,您可以像處理 Jet 文件一樣,重命名、刪除、複製或移動數據目錄中的數據庫 (.mdf) 文件。對關聯日誌文件 (.ldf) 的操作與 .mdf 文件一樣,因爲 Visual Studio 保持這些文件之間的關聯。Visual Studio 管理這些操作,即使運行的 ASP.NET 頁面或進程針對的是數據庫,這些操作也會成功。這意味着通常的 Visual Studio 應用程序開發人員不需要在設計和開發期間擔心日誌文件。但是,在部署期間,日誌文件必須與數據庫文件一起傳輸。

與其他免費 Microsoft 數據庫的比較

與 MSDE 的比較

在 SQL Server 2005 中,SQL Server Express 代替了 Microsoft SQL Server Desktop Engine (MSDE),提供了很多易用的功能,可供非專業開發人員或愛好者使用。MSDE 基於 SQL 2000 技術,建議用於 Windows 9x 平臺,而 SQL Server Express 基於 SQL Server 2005 技術。SQL Server Express 具有諸如應用程序 XCopy、有效的安裝程序 UI、CLR 支持、GUI 工具和 Visual Studio 集成之類的功能,而 MSDE 不具有這些功能。但是,與 MSDE 相比,有些功能 SQL Server Express 也不具有。這些功能包括:DTS、複製發佈和 SQL 代理。

在 MSDE 中,一直可以在部署時使用合併模塊功能,而 SQL Server Express 不具有此功能。MSDE 中的工作負荷中止值有時難以理解和使用。在 SQL Server Express 中,不再使用此中止值,引擎改爲使用 CPU、RAM 和數據庫大小限制,這與其他版本不同。下表顯示了這兩個產品的比較結果。

SQL Server Express 2005

MSDE 2000

用戶實例支持

沒有此功能

獨立下載中的 DTS

具有 DTS 運行時

因爲沒有 MDAC 而容易部署

安裝時會同時安裝 MDAC

只有 MSI,服務順利

MSI 和 MSM,MSM 服務困難

支持訂閱服務器的事務複製、合併複製和快照複製

除了支持複製訂閱外,還支持合併/快照發布

有效的安裝程序 UI

基本的安裝程序 UI

沒有代理

具有代理

支持 Windows 2000 SP4、Windows XP SP1 和 Windows 2003

支持 Windows 98、Windows Me、Windows 2000、Windows XP、Windows NT4 和 Windows 2003

CLR 支持

無 CLR 支持

提供 GUI 工具

不提供 GUI 工具

數據庫大小限制:4 GB

數據庫大小限制:2 GB

1 個 CPU,1 GB RAM

2 個 CPU,2 GB RAM

沒有中止值

工作負荷中止值限制爲 5 個併發工作負荷

與 Visual Studio 深度集成

與 Visual Studio 基本集成

與 Jet 的比較

SQL Server Express 基於最新的 SQL Server 2005 技術,而 Jet 相當長的一段時間內一直處於 Servive Pack 和維護階段。僅 SQL Server Express 提供所有最新、最強大的功能,例如 CLR 集成和 XML 支持。SQL Server Express 的可靠性和可伸縮性也明顯優於 Jet。爲 SQL Server Express 編寫的應用程序可以輕鬆移植到 SQL Server Workgroup Edition、SQL Server Standard Edition 或 SQL Server Enterprise Edition,而 Jet 實現這種伸縮比較困難。SQL Server Express 還對其數據庫對象提供更加細化的安全性控制。使用 Visual Studio 2005 集成和用戶實例功能,我們將 Jet 的易用性引入 SQL Server。

結論

SQL Server Express 是一款重要的 Microsoft 產品版本,因爲該產品專用於非專業開發人員、ISV 和愛好者。它免費、易用、具有強大的功能,並且可以無縫升級到其他 SQL Server 版本。有一些功能(例如用戶實例)是此 SQL Server 版本的專有功能,並且默認情況下,安裝和部署都是安全的。與現有的免費 Microsoft 數據庫(Jet 和 MSDE)相比,SQL Server Express 的優勢明顯。SQL Server Express 與 Visual Studio 2005 的集成也簡化了您的數據庫設計和部署操作。

發佈了20 篇原創文章 · 獲贊 4 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章