類似於sqlite (不支持存儲過程)
導讀:LocalDB是SQL Server 2012帶來的新特性,它是一個專門為開發人員量身定制的輕量級數據庫。本文將為您講解LocalDB的開發背景,展示其核心特性,並看看它與微軟的其它輕量級數據庫到底有何不同。
什么是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的核心技術特性:
- 兼容其它SQL Server版本,使用sqlservr.exe作為服務進程,使用相同的客戶端訪問接口(如ADO.NET、ODBC或PDO),兼容T-SQL編程語言。
- 在同一台計算機上不必安裝多個LocalDB,不同的應用程序可以並行執行多個LocalDB進程,但所有的進程都是從同一個可執行文件(sqlservr.exe)啟動的。
- LocalDB不會創建任何系統服務,LocalDB進程會根據需要自動啟動、停止。應用程序只需連接“Data Source=(localdb)\v11.0”,LocalDB就會作為應用程序的子進程啟動。隨着連接的終止,LocalDB進程也會隨之停止。
- LocalDB支持AttachDbFileName屬性,允許開發者指定數據庫文件位置。例如:
- Data Source = (localdb)\v11.0;
- 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之間有很大區別:
運行模式:SQL Server Compact是一個進程內(in-proc)DLL,LocalDB則作為獨立進程運行。
磁盤占用:SQL Server Compact的體積僅有4MB,LocalDB安裝之后則有140MB。
功能特性:SQL Server Compact僅提供RDBMS的核心功能,而LocalDB則提供更豐富的功能,比如存儲過程、幾何和地理數據類型。
最后的思考
LocalDB作為一個功能豐富的輕量級數據庫,絕對值得我們去嘗試。接下來,我們也許會思考,LocalDB是否提供了良好的管理接口?答案是肯定的。
LocalDB提供了一個命令行管理工具SqlLocalDB.exe。下次,就讓我們一起來探討如何使用命令行實用工具SqlLocalDB.exe和SQL Server Management Studio(SSMS)管理LocalDB。(張志平/編譯)
原文鏈接:Introducing LocalDB, an improved SQL Express
下載鏈接:SQL Server 2012 Express & LocalDB
LocalDB並不是要取代SQL快捷版,而是要讓開發者能夠花費最少的精力來開發應用程序。微軟會繼續為用戶提供免費的SQL Server快捷版,他們可以在上面運行小型的評估項目,數據庫大小的限制為10GB。