web-dev-qa-db-ja.com

ProjectsV13 LocalDBインスタンスの目的

この回答 によると、SQL Server Data ToolsはプライベートLocalDBインスタンスProjectsV13を使用します。これは、独自のアプリケーションで使用することを想定していません。代わりに、MSSQLLocalDBまたは独自のプライベートインスタンスを使用する必要があります。

これはどこかに文書化されていますか? SSDTはプライベートインスタンスを何に使用しますか? (私の中には何も見えません。)

プライベートLocalDBインスタンスは基本的にSQL Serverの2番目のコピーを起動していますか?表面的には、メタデータのツール専用に専用のデータベースエンジンを用意することは、かなりリソースを消費します。これは本当にリソース集約ですか? Visual Studioの起動と使用にパフォーマンス上の影響がありますか?その場合、それが本当に必要ない場合は、オフにしたり、他の方法でインスタンスを統合したりできますか?私の推測ではありません。それ以外の場合、SSDTはプライベートインスタンスを使用しませんが、これが内部でどのように機能するかを知っておくと便利です。

22
Edward Brey

主な理由は、MSSQLLocalDB上の「本番」データベースとの競合を避けるためです。 SSDTは、開くデータベースプロジェクトごとに新しいデータベースを作成します。プロジェクトがAdventureworksと呼ばれる場合、これは、Webプロジェクトによって作成された、または実行中/デバッグ中のローカルASP.NETアプリケーションによって使用されるAdventureworksデータベースと競合する可能性があります。 SSDTがこれを自動的に行うため、バックグラウンドで、競合のリスクが高すぎると感じられました。したがって、別のインスタンスが使用されます。

LocalDBのリソース使用率はかなり低く、起動時に発生しません(非同期です)。使用していないときはスピンダウンするように設計されていますが、VSを実行してSQL Serverオブジェクトエクスプローラーを開いていると、DBに接続するため、影響があります(数10 MB)。

19
Kevin Cunnane