SQL Server 2012 Express LocalDB 的作用

來源:互聯網
上載者:User

標籤:

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

關於 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 來說,兩者有些差異性,比較如下:

  • 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

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

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

以下是顯示該目錄的表徵圖,這裡會列出所有 LocalDB 的執行個體:

在此目錄 ( 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

以下是建立 LocalDB 執行個體的指令,其中 “LocalDbTest” 是你可以自行命名的執行個體名稱:

SqlLocalDB.exe create LocalDbTest

接著我們通過命令列出所有 LocalDB 已經建立的所有執行個體,並查看特定執行個體的相關資訊:

SqlLocalDB.exe info    SqlLocalDB.exe info Projects

接著我們在看看文章之前介紹過的實體檔案路徑,你將會發現多了一個目錄,我們用 %LOCALAPPDATA% 環境變數進入該目錄看看:

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

進入該目錄就會看到如同 SQL Server 完整版一樣有這些系統資料庫檔案、錯誤紀錄、紀錄追蹤、加密金鑰、…等等,如示:

 

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 只允許本機隊列。

相關連結

  • Download Microsoft SQL Server 2012 Express
  • SQL Server 2012 Express LocalDB (MSDN)
  • SqlClient Support for LocalDB (MSDN)
  • SqlLocalDB Utility
  • Introducing LocalDB, an improved SQL Express
  • SQL Server 2012 LocalDB 管理之旅

SQL Server 2012 Express LocalDB 的作用

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.