web-dev-qa-db-fra.com

Objectif de l'instance de ProjectsV13 LocalDB

Selon cette réponse , SQL Server Data Tools utilise une instance privée LocalDB ProjectsV13, que vous n'êtes pas censé utiliser pour vos propres applications. À la place, vous devez utiliser MSSQLLocalDB ou votre propre instance privée.

Est-ce documenté quelque part? Pour quoi SSDT utilise-t-il son instance privée? (Je ne vois rien dans le mien.)

Une instance LocalDB privée génère-t-elle essentiellement une deuxième copie de SQL Server? À première vue, il semble plutôt gourmand en ressources d'avoir un moteur de base de données dédié uniquement pour l'outillage des métadonnées. À quel point est-ce vraiment gourmand en ressources? Cela a-t-il un impact sur le démarrage et l'utilisation de Visual Studio? Si oui, et si ce n'est pas vraiment nécessaire, pouvez-vous et devez-vous le désactiver ou consolider les instances d'une autre manière? Ma supposition ne l'est pas; sinon, SSDT n'utiliserait pas d'instance privée, mais ce serait bien de savoir comment cela fonctionne sous le capot.

22
Edward Brey

La raison principale est d'éviter les conflits avec les bases de données "de production" sur MSSQLLocalDB. SSDT crée une nouvelle base de données pour chaque projet de base de données que vous ouvrez. Si votre projet s'appelle Adventureworks, cela peut entrer en conflit avec une base de données Adventureworks créée par des projets Web ou utilisée par des applications ASP.NET locales que vous exécutez/déboguez. Étant donné que SSDT le fait automatiquement, en arrière-plan, il a été estimé qu'il y avait un risque de conflit trop élevé. Par conséquent, une instance distincte est utilisée.

L'utilisation des ressources de LocalDB est assez faible et n'est pas engagée au démarrage (c'est async). Il est conçu pour ralentir lorsqu'il n'est pas utilisé, mais a un impact (10 s de Mo) lors de l'exécution de VS et de l'ouverture de l'Explorateur d'objets SQL Server, car cela se connecte aux bases de données.

19
Kevin Cunnane