SQL Server 2012 Express LocalDB 的做用

微軟最新推出的 SQL Server 2012 Express LocalDB 是一種 SQL Server Express 的運行模式,特別適合用在開發環境使用,也內置在 Visual Studio 2012 之中。sql

關於 SQL Server 2012 Express LocalDB 的運做方式數據庫

在安裝 LocalDB 時會複製一個 SQL Server Express 實例所需的最少文件,基本上 LocalDB 幾乎等同於完整的 SQL Server Express 數據庫引擎,且 LocalDB 方式啓動的 SQL Server Database Engine 實例與 SQL Server Express 具備相同的限制 (由於跟 SQL Server Express 共享相同的文件),但 LocalDB 因爲簡化了管理,因此比 SQL Server Express 還多了一些限制,不過這些限制一般不影響開發。相對舊版的 SQL Server 2008 Express 來講,二者有些差別性,比較以下:express

  • SQL Server 2008 Express
  • 安裝 SQL Server 2008 Express 的過程時間花得比較久
  • 經過 SQL Server 2008 Express 安裝程序一次只能安裝一個 SQL 實例 (Instance),若要安裝更多實例則必須在運行一次 SQL Server 2008 Express 安裝程序      注:默認實例名稱爲 SQLEXPRESS
  • 需經過 SQL Server 配置管理器Windows 服務管理器 啓動該實例
  • SQL Server 2012 Express LocalDB
  • 安裝 SQL Server 2012 Express LocalDB 的過程很是快 (安裝時間很是短)
  • 安裝 SQL Server 2012 Express LocalDB 完後,默認會有個自動實例v11.0,但以後若要創建其餘實例再也不須要運行安裝程序,只需經過 SqlLocalDB.exe 工具程序便可任意創建新的實例,創建一個實例的時間不超過 3 秒!
  • 可經過特殊的鏈接字符串自動啓動該實例,或可經過 SqlLocalDB.exe 工具程序啓動,應用程序不需複雜或耗時的組件工做便可開始使用數據庫!
  • 在同一臺主機裏,每一個用戶均可以創建本身的 LocalDB 實例,每一個實例是以不一樣使用者身分運行不一樣進程,因此不一樣使用者可有同名的實例

SQL Server 2012 Express LocalDB 區分兩種實例類型,分別爲:服務器

  • LocalDB 自動實例 ( Automatic Instances )

LocalDB 自動實例是公用的。工具

  • 安裝完 LocalDB 後的 v11.0 就是自動實例,雖然感受只有一個實例,可是因爲在同一臺主機裏,每一個用戶均可以創建本身的 LocalDB 實例,全部使用者雖然都有同名的 v11.0 的實例,但彼此都是獨立分開的進程(Process)。這些實例會自動爲使用者創建及管理,而且可供任何應用程序使用。
  • 用戶計算機上安裝的每個 LocalDB 版本各存在一個 LocalDB 自動實例。將來若是還有下一版 SQL Server 2012 Express LocalDB 出現,就會再有新的實例名稱可用,默認自動實例名稱是一個 v 字符後面接着 xx.x 格式的 LocalDB 發行版號碼。 例如,v11.0 表明 SQL Server 2012。
  • LocalDB 具名實例 ( Named Instances )
  • LocalDB 具名實例是私用的。
  • 這些實例是由該負責創建及管理該實例的使用者或特定單一應用程序所擁有。
  • 不一樣使用者默認沒法存取自定義的 LocalDB 具名實例,除非你手動創建具名實例的分享功能,開啓分享功能後就可讓其餘使用者存取該具名實例的數據庫。

瞭解 SQL Server 2012 Express LocalDB 實例的數據庫文件所在路徑測試

在安裝好 SQL Server 2012 Express LocalDB 以後,默認會有個實例名爲 v11.0,該實例的相關文件所在目錄一般位於如下目錄 ( 請將 <user> 替換成你的登錄帳號 )加密

C:\Users\<user>\AppData\Local\Microsoft\Microsoft SQL Server Local DB\Instances.net

或用 %LOCALAPPDATA% 環境變量進入該目錄比較方便:3d

%LOCALAPPDATA%\Microsoft\Microsoft SQL Server Local DB\Instancesblog

如下是顯示該目錄的圖標,這裏會列出全部 LocalDB 的實例:

clip_image003

在此目錄 ( v11.0 ) 下所看到的文件都是實例的相關文件,系統數據庫文件、錯誤紀錄、紀錄追蹤、加密密鑰、…等等,不過若你在 LocalDB 實例中創建用戶數據庫時,必需要明確指定其數據文件與記錄文件的路徑,不然默認全部創建的數據庫都會位於 %USERPROFILE% 目錄下 ( C:\Users\<username> )

創建 SQL Server 2012 Express LocalDB 具名實例

你能夠想象一下,一個 SQL 數據庫實例就如同一臺完整的 SQL Server 數據庫服務器,在一個實例裏面會有本身的系統數據庫 (master, msdb, model, temp),就跟咱們通常在使用 SQL Server 沒有什麼兩樣,當你創建額外的 LocalDB 實例的話,這些系統數據庫就會跟另外一個具名實例徹底獨立開來,彼此徹底互不影響。

就開發的角度來講,你甚至能夠在開發測試的環境裏創建一套跟客戶端正式主機徹底相同的數據庫環境,光是這一點就與以往的 SQL Server Express 區別巨大,也是新版 LocalDB 真正厲害的地方!

在創建新的 LocalDB 實例以前,必須先了解 SqlLocalDB.exe 工具程序的路徑,請參考如下路徑:

C:\Program Files\Microsoft SQL Server\110\Tools\Binn\SqlLocalDB.exe

clip_image004

如下是創建 LocalDB 實例的指令,其中 「LocalDbTest」 是你能夠自行命名的實例名稱:

SqlLocalDB.exe create LocalDbTest

clip_image006

接着咱們經過命令列出全部 LocalDB 已經創建的全部實例,並查看特定實例的相關信息:

SqlLocalDB.exe info    SqlLocalDB.exe info Projects

clip_image008

接着咱們在看看文章以前介紹過的實體文件路徑,你將會發現多了一個目錄,咱們用 %LOCALAPPDATA% 環境變量進入該目錄看看:

%LOCALAPPDATA%\Microsoft\Microsoft SQL Server Local DB\Instances

clip_image010

進入該目錄就會看到如同 SQL Server 完整版同樣有這些系統數據庫文件、錯誤紀錄、紀錄追蹤、加密密鑰、…等等,以下圖示:

clip_image012

 

SQL Server 2012 Express LocalDB 與其餘 SQL Server 版本的比較

在 SQL Server 2012 問世以前,SQL Server 依據不一樣的運行環境各有推出不一樣的版本,在運行上也有不一樣的限制,例如:

  • SQL Server Enterprise ( 企業版,適合大量數據或高可用性環境 )
  • SQL Server Standard ( 標準版,適合用在通常數據庫處理環境 )
  • SQL Server Express ( 輕量版,適合用在單機或小量數據庫的環境 )
  • SQL Server Compact ( 精簡版,又稱 SQL CE,適用於行動化或嵌入式系統環境 )

而 SQL Server 2012 Express LocalDB 又是甚麼樣的一個定位呢?從數據庫系統複雜度加以從新排序過以下:

  • SQL Server Enterprise > Standard > Express > LocalDB > Compact

因爲 SQL Server 2012 Express LocalDB 跟前版的 SQL Server 2008 R2 Express 很像,其中的限制有:

  • LocalDB 的實例排序規則默認爲 SQL_Latin1_General_CP1_CI_AS,沒法變動。

但支持數據庫層級數據行層級表達式層級定序。

也就是說,你只要在創建數據庫時指定其排序規則便可,或是掛載其餘數據庫系統移過來的數據庫文件,或還原自其餘數據庫的備份文件也都不會有問題。

自主數據庫遵循自主數據庫定序所定義的元數據和 tempdb 定序規則。

  • LocalDB 不得爲合併式複寫訂閱者。
  • LocalDB 不支援 FILESTREAM。
  • LocalDB 針對 Service Broker 只容許本機隊列。

相關連接

相關文章
相關標籤/搜索