2010-01-25 21 views
75

I (C#/Linq kullanarak) bir veri aktarma işlemini koşuyorum ve doğal olarak ben mümkün olduğunca benim sorguları optimize etmek çalışıyorum. Bu amaçla ben SQL oturum açma adıyla filtrelenmiş benim iz (o benzersiz verilerim ithalat sürecine bağlanabilir bir isim), Server Profiler kullanarak DB üzerinde bir iz çalıştırıyorum.SQL Server Profilcisi'nde "Denetim Oturumu Açma" nedir?

Tuhaf bir şekilde, SQL ifadelerimin çoğu gerçekten hızlı :) - çok az sayıda sorgu, 1 ms işaretini bile aşabilir. Ama bütün sorgular arasındaki EventClass "Denetim Girişi" veya "Denetim Çıkış" olduğu birkaç satır vardır içinde aralıklı - ve bir "Denetleme Oturumu kapat" süresi bir dakika kadar olabilir!

Bu, içe aktarma işlemlerimi kullanıyorum gerçeğiyle ilgili bir şey var mı? Eğer öyleyse, büyük vurgular sorguları bulmak için herhangi bir yolu var bu yüzden onları temizleyebilir miyim?

+0

related: http://stackoverflow.com/questions/279401/sql-connection-pooling-and-audit-login-logout/468222#468222 –

+0

ilgili: https : //stackoverflow.com/questions/44920375/sql-server-profiler-how-to-inspect-understand-the-duration-for-the-audit-logout – Stefan

cevap

68

Doğru hatırlıyorsam, bir Denetim Çıkışının süresi, bağlantının açık olduğu süredir. Örneğin. Komutun hızı ile ilgisi yok - sadece girişin 'giriş yapmış' olduğu süre.

+6

ilginç, teşekkürler! Ama sonra "giriş" ve "çıkış" arasındaki sorgular için okuma sayısı sadece 56 iken, bu kadar yüksek (~ 400.000) okuma sayısı neden? –

+0

Oturum açmaktan çıkış yapmak için ms sayısıdır. Kullanılan bağlantı içindeki sorguların gerçek miktarı değil. 400 000 ms yaklaşık 7 dakikadır. CPU'ya bakın, CPU'yu ve/veya disk kullanımını yüksek olan sorguları bulmak ve bulmak için sütunları okur ve yazar. – Thies

+0

Üzgünüm, zaman ölçümlerine "Oku" yanıtlarını mı kastediyorsunuz? –

11

Giriş/Çıkış olaylar yıkmaya ayarı yukarı/ilişkilidir. IIRC zaman, diğer log olaylarında olduğu gibi bir işlem süresinin aksine 'zaman için giriş yapmış'. Eğer bağlantı havuzu yönetimi vb bir sorun gruplar için

çiğ kez fiili aktivite herhangi etkileri dahil alıyor zamanı teşhis etmek yeterli olmalıdır var şüpheli sürece Genelde

, kimse bu olayları gizler

+0

"Ayarlama/Yırtılma" özelliğini daha ayrıntılı olarak incelemek mümkün mü? Lütfen aşağıdaki ilgili soruya bakınız: https://stackoverflow.com/questions/44920375/sql-server-profiler-how-to-inspect-understand-the-duration-for-the-audit-logout – Stefan

2

Ayrıca Denetim Giriş/Çıkış sadece this answer gibi bağlantı noktası olduğunu belirterek bağlantı yeniden/bağlantı havuzu için döndürülen anlamına gelebilir.

3

Denetim Çıkış etkinliği sınıfı, bir kullanıcının Microsoft SQL Server oturumu kapattığını gösterir. Bu sınıftaki olaylar yeni bağlantılarla veya bir bağlantı havuzundan yeniden kullanılan bağlantılarla başlatılır.

, boşta kalma süresi de dahil olmak üzere, bağlantının oturum açtığı toplam süredir, bu nedenle bir performans sorunu belirtmez. Ayrıca, profil oluşturma girişlerinin/çıkışlarının bir performans sorununa neden olması pek olası değildir. Kötü performans gösteren sorguları, muhtemelen uzun süren sorguları aramanız daha iyi olur. Daha fazla bilgi için

i önermek https://msdn.microsoft.com/en-us/library/ms175827.aspx :)

+0

Denetim Çıkış Etkinliklerinden Emin misiniz? Bağlantılar bir bağlantı havuzundan yeniden kullanıldığında tetiklenir? Bağlantı havuzlarının yüksek Denetim Kapatma sürelerini görebilmenizin bir nedeni olduğunu düşündüm, çünkü bağlantı açık ama hayatının çoğu için boşta –