Sebagai pengembang, saya sering menggunakan SQL Profiler. Ini alat debugging yang baik, baik untuk melacak apa yang dilakukan kode saya dan untuk menganalisis masalah kinerja.
Tapi saya selalu menggunakannya di lingkungan pengembangan saya , dan dengan cara yang sangat terkontrol.
- Mulai aplikasi saya, dan masuk ke keadaan tertentu
- Mulai jejak pada profiler
- Lakukan urutan tindakan tertentu pada aplikasi saya
- Hentikan jejak dan periksa hasilnya.
Dapatkah SQL Profiler secara praktis digunakan dalam lingkungan dalam produksi?
Kekhawatiran pertama saya adalah itu akan menurunkan kinerja.
Kekhawatiran kedua saya adalah bahwa, karena sedang dalam produksi, Anda tidak memicu tindakan yang menarik itu sendiri. Anda harus membiarkan profiler berjalan untuk waktu yang lama kemudian menganalisis hasilnya. Apakah hasil yang ditetapkan menjadi terlalu sulit? (Mengambil terlalu banyak ruang disk dan menjadi terlalu sulit untuk diminta).
Adakah yang menggunakan SQL Profiler dalam produksi?
sumber
Jawaban:
Menggunakan Sql Server Profiler (alat GUI) untuk melacak server produksi bukanlah ide yang baik. Tapi itu tergantung pada beban. Gunakan penelusuran sql sisi-server (lihat prosedur sp_trace_XXX ) sebagai ganti. Juga saya telah menemukan artikel:
Dampak Kinerja: Pelacakan Profiler vs. Pelacakan SQL Sisi Server ,
Mengotomatiskan Pelacakan Sisi Server di SQL Server
Hindari Menyebabkan Masalah dengan Profiler
mungkin itu akan tertarik dan bermanfaat.
Book Online mengatakan:
sumber
Saya menggunakan SQL Profiler terhadap produksi sepanjang waktu. Ketika dilakukan dengan benar (memfilter sehingga Anda mendapatkan kembali sejumlah kecil data) terhadap server, risikonya minimal. Menelusuri semuanya akan sia-sia.
sumber
Ya, tindakan pemantauan akan membutuhkan beberapa sumber daya. Menjalankannya pada server yang kelebihan beban bisa membunuhnya.
Anda akan benar-benar memonitor beban kehidupan nyata: tindakan Anda bisa hilang dalam kebisingan dari beban ini.
Terkadang kami menjalankannya pada produksi. Terutama dengan filter teks untuk kode tertentu, atau dengan filter CPU / durasi untuk menjebak pertanyaan yang berjalan lebih lama. Dan kami tidak mencoba menangkap rencana eksekusi XML atau semacamnya
Kuncinya adalah mengetahui apa yang Anda cari: kami tidak cenderung membiarkannya berjalan dan menjebak semuanya.
Dalam hal ini, jika Anda ingin melihat hasil dari beberapa tindakan dapat Anda lakukan di luar jam?
sumber
Profiler akan selalu memperkenalkan dampak kinerja.
Jika Anda menggunakan SQL Server 2008R2 + Anda dapat menggunakan acara yang diperpanjang. Ini memberikan banyak informasi yang Anda lihat di profiler dengan sebagian kecil dari hit kinerja.
Pengenalan buku online http://technet.microsoft.com/en-us/library/bb630354(v=sql.105).aspx
Fitur ini menerima pembaruan besar dalam SQL Server 2012 yang sekarang menyertakan GUI di SSMS.
sumber