什么是LocalDB
隨着SQL Server 2012的發布,LocalDB躍入我們的視線,它可以被看做是SQL Server Express的輕量級版本。LocalDB專門為開發人員創建,它非常易於安裝,幾乎無需管理,兼容T-SQL語言,編程接口與SQL Server Express別無二致。有了LocalDB,開發人員就不需要在自己的筆記本上安裝和維護一個龐大的SQL Server實例了。另外,LocalDB也適用於小型應用環境,開發人員可以將其用於小型生產環境或者嵌入式環境。
為開發人員量身定制
我們在關注LocalDB的技術細節之前,首先來了解一下構建LocalDB的背景。一直以來,SQL Server Express滿足了我們兩方面的需求。它既是免費版的SQL Server,又具有足夠強大的功能,與其它版本相兼容。當然,它的能力也存在一些限制,即它的每個數據庫的存儲容量不能超過10G。SQL Server作為一個成熟的數據庫產品,其Express版本依然具有相當的復雜度。但作為開發人員,我們更希望降低管理復雜度,專注於開發。LocalDB的開發目標由此形成,它是輕量級的SQL Server Express,為開發人員量身定制。
核心技術特性
說了這么多,現在讓我們來看看LocalDB的核心技術特性:
1)兼容其它SQL Server版本,使用sqlservr.exe作為服務進程,使用相同的客戶端訪問接口(如ADO.NET、ODBC或PDO),兼容T-SQL編程語言。
2)在同一台計算機上不必安裝多個LocalDB,不同的應用程序可以並行執行多個LocalDB進程,但所有的進程都是從同一個可執行文件(sqlservr.exe)啟動的。
3)LocalDB不會創建任何系統服務,LocalDB進程會根據需要自動啟動、停止。應用程序只需連接“Data Source=(localdb)\ MSSQLLocalDB”,LocalDB就會作為應用程序的子進程啟動。隨着連接的終止,LocalDB進程也會隨之停止。
4)LocalDB支持AttachDbFileName屬性,允許開發者指定數據庫文件位置。例如:
Data Source = (localdb)\ MSSQLLocalDB;
Integrated Security = true;
AttachDbFileName = C:\MyData\Database1.mdf
輕量級數據庫對比(LocalDB vs. SQL Express vs. Compact)
LocalDB並不能完全替代SQL Server Express,它只是對開發人員提供了另外一種選擇,並保證與SQL Server Express一致的兼容性。
LocalDB與SQL Server Compact之間有很大區別:
1) 運行模式:SQL Server Compact是一個進程內(in-proc)DLL,LocalDB則作為獨立進程運行。
2)磁盤占用:SQL Server Compact的體積僅有4MB,LocalDB安裝之后則有140MB。
3) 功能特性:SQL Server Compact僅提供RDBMS的核心功能,而LocalDB則提供更豐富的功能,比如存儲過程、幾何和地理數據類型。
最后的說明
LocalDB作為一個功能豐富的輕量級數據庫,是否提供了良好的管理接口?
答案是肯定的。LocalDB提供了一個命令行管理工具SqlLocalDB.exe,我們也可以SQL Server Management Studio(SSMS)管理LocalDB,也可以使用Visual Studio 2012開發工具(及其以上版本)內部自帶的簡版SqlServer管理工具。
現在Visual Studio 2012+開發工具,安裝后都默認都安裝了LocalDB,根據VS版本不同,相應的LocalDB版本就不同。
以上內容根據下面網址提供的內容進行了整理。
原文英文地址:
https://blogs.msdn.microsoft.com/sqlexpress/2011/07/12/introducing-localdb-an-improved-sql-express/
原文中文地址: