sql komutlarımı profillemek için MiniProfiler kullanıyorum.MiniProfiler'de sql olarak görünmesi için SqlBulkCopy'yi edinme
Şu anda uğraştığım bir sorun, linq tarafından oluşturulan INSERT ifadeleridir.
Onları bir SqlBulkCopy
komutuna dönüştürdüm, ancak şimdi MiniProfiler uygulamasında sql görünümünde görünmüyor.
SqlBulkCopy için ilişkili bir komut dizesi bile olabilir mi?
Toplu kopyanın sql komutları listesinde görünmesini sağlamak mümkün mü?
En azından% sql bit içinde sayılabilir mi? Ben MiniProfiler.Current.Step("Doing Bulk Copy")
kullanabilirsiniz ama bu SQL olarak saymak olmaz ve herhangi bir ayrıntı listesinde gösterme olmaz
ben farkındayım. Aşağıda
Güncel kodu:
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);
}
veri özel TDS paketleri olarak gönderiliyor, ama 'DÖKME INSERT' SQL kullanarak başlatıldı olup olmadığını bilmiyorum. SQL Profiler'de SQL olarak görünür, ancak bu sahte olabilir. – usr
Daha fazla genel bir 'CustomTiming' sınıfı ekleyen, "toplu kopya" profilini oluşturmanıza ve kullanıcı arabiriminde görünmesine izin veren [MiniProfiler 3.0] (https://github.com/MiniProfiler/dotnet) üzerinde çalışıyorum. "sql" ile aynı şekilde yapar. Bir kez bittiğinde, bir örnekle cevaplayacağım. –
@JarrodDixon: Harika! Zaman ölçeği ile ilgili herhangi bir fikir (6-8 haftadan fazla)? :) –