2017-04-04 54 views
4

根據this answer,SQL Server數據工具使用專用的LocalDB實例ProjectsV13,您不應將它用於您自己的應用程序。相反,您應該使用MSSQLLocalDB或您自己的私有實例。項目目的V13 LocalDB實例

這是否記錄在任何地方? SSDT使用其私有實例做什麼? (我沒有看到我的東西。)

私有LocalDB實例是否基本上在第二個SQL Server副本上運行?表面上看,擁有一個專門用於處理元數據的數據庫引擎似乎相當耗費資源。這真的是資源密集型的嗎?它對啓動和使用Visual Studio有影響嗎?如果是這樣,並且如果不是真的需要,是否可以並且應該關閉它或以其他方式整合實例?我的猜測不是;否則,SSDT不會使用私有實例,但很高興知道這是如何工作的。

+0

錯誤報告爲Visual Studio數據庫項目和SQL Server對象資源管理器,有助於說明爲什麼會有混淆:[數據庫項目使用錯誤的默認LocalDB實例](https://developercommunity.visualstudio.com/content/problem/137241/database -projects - 使用 - 錯誤 - 默認的LocalDB-instan.html) –

回答

4

主要原因是爲了避免與MSSQLLocalDB上的任何「生產」數據庫發生衝突。 SSDT會爲您打開的每個數據庫項目創建一個新數據庫。如果您的項目名爲Adventureworks,這可能與Web項目創建的Adventureworks數據庫衝突,或者您正在運行/調試的本地ASP.NET應用程序使用該數據庫。由於SSDT在後臺自動執行此操作,因此認爲衝突風險太高。因此,使用一個單獨的實例。

LocalDB的資源使用率非常低,不會在啓動時發生(它是異步的)。它的設計目的是在不使用時關閉,但在運行VS並打開SQL Server對象資源管理器時會產生影響(10 MB),因爲這會連接到數據庫。