Назначение проектовV13 LocalDB instance

В соответствии с этим ответом инструменты данных SQL Server используют частный экземпляр LocalDB ProjectsV13, который вы не должны использовать для своих приложений. Вместо этого вы должны использовать MSSQLLocalDB или свой собственный частный экземпляр.

Насколько это документировано? Для чего SSDT использует свой частный экземпляр? (Я ничего не вижу в своем.)

Является ли частный экземпляр LocalDB главным образом разворачивает вторую копию SQL Server? На первый взгляд, это звучит довольно ресурсоемким, чтобы иметь выделенный механизм базы данных только для инструментария метаданных. Насколько ресурсоемким это действительно? Имеет ли это влияние на запуск и использование Visual Studio? Если да, и если это действительно не нужно, можете и должны вы отключить или консолидировать экземпляры каким-то другим способом? Я думаю, что нет; в противном случае SSDT не будет использовать частный экземпляр, но было бы неплохо узнать, как это работает под капотом.

Ответ 1

Основная причина заключается в том, чтобы избежать конфликтов с любыми "производственными" базами данных на MSSQLLocalDB. SSDT создает новую базу данных для каждого проекта базы данных, который вы открываете. Если ваш проект называется Adventureworks, это может конфликтовать с базой данных Adventureworks, созданной веб-проектами или используемой локальными приложениями ASP.NET, которые вы используете/отлаживаете. Поскольку SSDT делает это автоматически, на заднем плане, было сочтено, что существует слишком высокий риск конфликта. Следовательно, используется отдельный экземпляр.

Использование ресурсов LocalDB довольно низкое и не возникает при запуске (это async). Он предназначен для вращения вниз, когда он не используется, но имеет влияние (10 с МБ) при запуске VS и открытии обозревателя объектов SQL Server, поскольку он подключается к БД.