Optimalkan Jejak SQL

Berlaku untuk:SQL Server

Meskipun menjalankan SQL Trace menimbulkan biaya performa karena menggunakan sumber daya sistem untuk mengumpulkan data, Anda dapat melakukan banyak hal untuk meminimalkannya. Untuk meminimalkan biaya performa yang dikeluarkan oleh jejak, cobalah hal berikut:

  • Pertimbangkan untuk menggunakan prompt perintah untuk menjalankan jejak. Menggunakan antarmuka pengguna grafis menghambat performa. Untuk informasi selengkapnya, lihat sp_trace_create (Transact-SQL).

  • Hindari menyertakan peristiwa yang sering terjadi. Jika memungkinkan, persempit jejak Anda dengan menggunakan kelas dan filter peristiwa tertentu. Jika lebih sedikit peristiwa pelacakan yang dikumpulkan, lebih sedikit sumber daya sistem yang diperlukan untuk mendukung pelacakan.

  • Fokuskan jejak untuk mengumpulkan hanya peristiwa yang menyediakan data yang relevan. Misalnya, jika jejak Anda adalah mengidentifikasi kebuntuan, sertakan kelas peristiwa Lock:Deadlock , tetapi bukan kelas peristiwa Lock:Acquired . Jika Anda menyertakan kedua kelas peristiwa, jejak harus merespons setiap kunci yang diperoleh, dan biaya eksekusi Anda digandakan.

  • Hindari mengumpulkan data duplikat. Misalnya, jika Anda mengumpulkan SQL:BatchStarted dan SQL:BatchCompleted, Anda dapat meminimalkan ukuran hasil yang ditetapkan dengan mengumpulkan data teks hanya untuk kelas peristiwa SQL:BatchStarted .

  • Gunakan filter dalam definisi pelacakan. Misalnya, jika Anda tahu bahwa pengguna tertentu melaporkan performa lambat selama kueri ad hoc, buat filter di LoginName. Atur filter untuk hanya menyertakan peristiwa di mana LoginName cocok dengan nama pengguna tersebut.

Jika Anda perlu menjalankan jejak untuk peristiwa yang menciptakan dampak signifikan pada performa, pertimbangkan untuk membatasi dampak performa pada server dengan menggunakan salah satu metode berikut:

  • Jalankan jejak untuk jangka waktu yang lebih singkat. Anda dapat mengontrol lamanya waktu pelacakan berjalan dengan mengaktifkan waktu berhenti. Ini sangat penting jika Anda tidak dapat membatasi kelas peristiwa atau memfilter peristiwa. Mengaktifkan waktu berhenti memastikan bahwa performa yang dikeluarkan tidak berlangsung tanpa batas waktu.

  • Batasi ukuran hasil pelacakan. Anda dapat membatasi ukuran hasil pelacakan ke ukuran file maksimum. Strategi ini memastikan bahwa biaya performa berhenti ketika batas ukuran file tercapai (jika rollover file tidak diaktifkan).

  • Batasi jumlah peristiwa yang dikembalikan. Dengan SQL Server Profiler, Anda dapat membatasi jumlah peristiwa yang dikembalikan dengan menyimpan jejak ke tabel dan mengatur jumlah baris maksimum. Hasil pelacakan masih dikembalikan ke layar SQL Server Profiler setelah jumlah baris maksimum tercapai, tetapi biaya perekaman hasil ke tabel dihilangkan.

Lihat Juga

Memfilter Jejak