0

SSDT データベース プロジェクトがあります。SQL Server 2012 localdbインスタンスに発行する発行プロファイルを設定しました。プログラムでデータベースを公開するために使用できるコードをいくつか見つけました。

最初にこれらをインポートします。

using Microsoft.Build.Evaluation;
using Microsoft.Build.Logging;
using Microsoft.Build.Framework;

次に、DB を公開します。

// Create a logger.
FileLogger logger = new FileLogger();
logger.Parameters = @"logfile=Northwind.msbuild.log";

// Set up properties.
var projects = ProjectCollection.GlobalProjectCollection;
projects.SetGlobalProperty("Configuration", "Debug");
projects.SetGlobalProperty("SqlPublishProfilePath", @"Northwind.publish.xml");

// Load and build project.
var dbProject = ProjectCollection.GlobalProjectCollection.LoadProject(@"Northwind.sqlproj");
dbProject.Build(new[]{"Build", "Publish"}, new[]{logger});

Visual Studio 2010 を使用して、コードに示されている発行プロファイルを使用してデータベースを手動で発行すると、約 4 ~ 10 秒かかります。ただし、このコードを実行してプログラムで同じことを行うと、約 40 秒かかります。

Buildターゲットを削除しようとしましたが、これは顕著な違いはありませんでした。

プログラマティック オプションのパフォーマンスが低いのはなぜですか? 手動パブリッシュと同じパフォーマンスを達成するにはどうすればよいですか?

4

0 に答える 0