2017-04-04 4 views
4

this answerによれば、SQL Server Data Toolsは、独自のアプリケーションで使用するはずのPrivate LocalDBインスタンスProjectsV13を使用します。代わりに、MSSQLLocalDBまたは独自のプライベートインスタンスを使用する必要があります。プロジェクトの目的V13 LocalDBインスタンス

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

プライベートLocalDBインスタンスは基本的にSQL Serverの2番目のコピーをスピンアップしていますか?表面的には、ツールのメタデータのために専用のデータベースエンジンを用意するのはむしろ多大なリソースを必要とします。これは本当に資源集中的なのですか? Visual Studioを起動したり使用したりする際に、パフォーマンスに影響がありますか?そうであれば、それが本当に必要でない場合は、他の方法でインスタンスをオフにしたり統合したりできますか?私の推測ではない。それ以外の場合は、SSDTはプライベートインスタンスを使用しませんが、これがどのように動作するかを知ってうれしいです。

+0

Visual StudioデータベースプロジェクトとSQL Serverオブジェクトエクスプローラのバグレポート:[データベースプロジェクトで間違ったデフォルトのLocalDBインスタンスを使用する](https://developercommunity.visualstudio.com/content/problem/137241/database) -projects-use-wrong-default-localdb-instan.html) –

答えて

4

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

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

関連する問題