SQL profiler sunucu performansını etkiler mi?


11

Sql server 2008 bazı yüksek yük için başarısız olduğu bir sorunla karşı karşıyayım. Ben bu yük durumu bulmak gerekir ve böylece yük işleyebilir kodu optimize etmek gerekir. İnternette SQL profiler daha sonra sorunun tam olarak nerede olduğunu bulmak için analiz edilebilir veritabanı etkileşimlerini izlemek için kullanılabileceğini buldum. Ayrıca sql profiler nasıl başlayabileceğimizi bulduk. Ama şimdi sorum şu ki sql profiler başlayarak sunucu performansını etkileyecek mi?


5
Evet. Nasıl ve nerede çalıştırdığınıza bağlıdır. Doğru şekilde yapılması, yüzde birkaç ekstra yük kadar az olabilir.
Mitch Wheat

3
Genişletilmiş etkinlikler daha hafif bir seçenek olabilir.
Martin Smith

Yanıtlar:


10

SQL Server Profiler, istemci tarafında SQL Server Trace kullanan bir GUI'dir. Bu doğa nedeniyle, evet, ortama bağlı olarak hafif ila şiddetli bir performans etkisi görebilirsiniz.

SQL Server Profiler esas olarak sunucuda neler olduğuna hızlı bir bakış için uygundur (veritabanı sunucusunun ekstra gecikmeyi kaldırabilmesi şartıyla). Uzun süre çalıştırılması amaçlanmamıştır. Daha uzun izler için sunucu tarafı izini veya Genişletilmiş Olayları kullanın.


+1 çok kısa bir profiler iz bile, birçok faktöre bağlı olarak, bir sunucu sakat olabilir.
Aaron Bertrand

3

Eğer kullanırsanız sunucu tarafı izleme , performans üzerindeki etkisi en aza indirilebilir.


Sunucum ve veritabanım aynı makineye yüklenmiş. Şimdi sql profiler "Microsoft SQL yönetim stüdyosu -> Araçlar-> SQL profiler" ile başlarsanız o zaman ne kadar performans düşüşünü bekleyebilirim ve hangi faktörlere göre?

Sunucunuzun ne kadar meşgul olduğuna, kaç olayın ve izlemenizin kaç sütundan oluştuğuna ve filtrelemenize bağlıdır. Filtreleme her iki yönde de etkilenebilir - bir şekilde kullanıcı arayüzüne döndürülen satırların sayısını azaltabilir (gerçekten profilin sunucu tarafı izlemesinden daha fazla zarar görmesini sağlayan kısım), ancak diğer taraftan kötü seçilmişseniz filtre (örn. textdata LIKE '%foo%') ters etkiye sahip olabilir. Biraz sihir beklentisi sağlamak için çok fazla değişken var, sadece denemek zorunda kalacaksınız. Yine de gerçekten bir sunucu tarafı izi kullanıyor olmalısınız.
Aaron Bertrand

Orijinal belgeye erişemiyorsanız bu bağlantıyı deneyin .
Marc Lopez

3

Önceki posterlerin söylediği her şey doğrudur. Profiler bir noktada DMO kullanılan ve artık izleme olaylarını yakalamak için SMO kullanan bir uygulamadır. Bu, bir sunucu tarafı izlemesi kullanmaya kıyasla çok büyük miktarda ek yük getirir.

SMO, bir istemci uygulaması Profiler ile birlikte izleme işlemine ek bir "katman" ekleyen bir API'dir. Bir sunucu tarafı izlemesi, izleme olaylarını doğrudan bir işlem kuyruğundan okuyacaktır ve bunun sonucunda yükü göz ardı edilebilir.

Saniyede 10.000'den fazla işlem gerçekleştiren SQL Server ortamlarında sunucu tarafı izleri çalıştırabildim. Aynı ortamlarda Profiler kullanmak, veritabanı örneğini dizlerine getirecektir. Herhangi bir üretim ortamında, veritabanı etkinliğini izlemeniz gerekiyorsa, her zaman sunucu tarafı izlemesi kullanın. Profiler veritabanı örneğini öldürür.


2

Evet, SQL Server Profiler performansı etkiler.

GUI'yi kullanarak izlediğinizde, tüm olaylar eşzamanlı olarak işlenir ve filtrelenir, böylece sunucu yükü, ağ gecikmesi, topladığınız olayların ve hatta toplanan olayların nerede saklandığı gibi faktörlerin tümü ek yüke katkıda bulunur.

Diğer yanıtların önerdiği gibi, GUI yerine bir sunucu tarafı izlemesi kullanmak tercih edilir. Ancak, bu yöntem kullanımdan kaldırılmıştır ve bunun yerine Genişletilmiş Olaylar kullanılmalıdır. (Not: bir izlemeden daha hafif olan Genişletilmiş Etkinlikler kullanıldığında bile, sunucuya istenmeyen miktarda yük eklemek hala mümkündür - bir etkinlik ayarlarken ek yükü en aza indirmeyi düşünmek için ikinci paragrafımdaki listeye bakın oturum, toplantı, celse.)

Çok yüklü bir sunucu durumunda, ölçüm işleminin kendisi araştırılmakta olan sorunu etkileyebileceğinden, toplanan bilgiler konusunda çok dikkatli olmanız gerekir.


0

SQL Server Profiler iki adımda çalışır: önce tüm sorguları günlüğe kaydetmesini söylersiniz. Daha sonra bazı tipik işlemler gerçekleştirirsiniz (veya sadece üretime karşı oturum açmasına izin verirsiniz). Bu bir "test yükü" oluşturur. Daha sonra test yükünü kullanarak gerçek profil oluşturma (analiz) işlemini gerçekleştirin.

Günlüğe kaydetme, özellikle sorguların maliyetine kıyasla çok pahalı değildir.


Sunucum ve veritabanım aynı makineye yüklenmiş. Şimdi sql profiler "Microsoft SQL yönetim stüdyosu -> Araçlar-> SQL profiler" ile başlarsanız o zaman ne kadar performans düşüşünü bekleyebilirim ve hangi faktörlere göre?
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.