私はMiniProfilerを使用してSQLコマンドをプロファイルしています。SqlBulkCopyがMiniProfilerでsqlとして表示されるようにする
私が今扱っている問題の1つは、linqによって生成されたINSERT文です。
私はSqlBulkCopy
コマンドに変換しましたが、MiniProfilerのsqlビューには表示されません。
SqlBulkCopyに関連するコマンド文字列がありますか?
一括コピーをSQLコマンドのリストに表示させることはできますか?
少なくとも%sqlビットでカウントさせることはできますか?
私はMiniProfiler.Current.Step("Doing Bulk Copy")
を使用することができます知っていますが、それはSQLとしてカウントされないだろう、と任意の詳細と一覧に表示されません。以下
現在のコード:
public static void BulkInsertAll<T>(this DataContext dc, IEnumerable<T> entities)
{
var conn = (dc.Connection as ProfiledDbConnection).InnerConnection as SqlConnection;
conn.Open();
Type t = typeof(T);
var tableAttribute = (TableAttribute)t.GetCustomAttributes(
typeof(TableAttribute), false).Single();
var bulkCopy = new SqlBulkCopy(conn)
{
DestinationTableName = tableAttribute.Name
};
//....
bulkCopy.WriteToServer(table);
}
データは特別なTDSパケットとして送信されているが、私は 'BULKのINSERT'は、SQLを使用して開始されているかどうかわかりません。これは、SQLプロファイラではSQLとして表示されますが、それは偽の可能性があります。 – usr
もっと一般的な 'CustomTiming'クラスを追加する[MiniProfiler 3.0](https://github.com/MiniProfiler/dotnet)に取り組んでいます。これは、一括コピーをプロファイルしてUIに表示させることを可能にします同じ方法で "sql"が行います。一度それが終わったら、私は例で答えるでしょう。 –
@JarrodDixon:素晴らしい!タイムスケール(6〜8週間を超える)に関するアイデア? :) –