我正在使用MiniProfiler来分析我的SQL命令。
现在我遇到的一个问题是,linq生成了重复的INSERT语句。
我将它们转换为了一个
一个SqlBulkCopy是否有关联的命令字符串?
如何让批量拷贝出现在sql命令列表中?
至少在“%sql”部分计数是可能的吗?
我知道我可以使用
以下是当前代码:
现在我遇到的一个问题是,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);
}
BULK INSERT
是否是使用SQL启动的。它在SQL Profiler中显示为SQL,但可能是假的。 - usrCustomTiming
类,允许您对“批量复制”进行性能分析,并以与“sql”相同的方式在UI中显示。一旦发布,我会提供一个示例。 - Jarrod Dixon