1. Pengantar SQL Server Profil
1.1 Apa SQL Server Profiler dan Mengapa Kita Membutuhkannya?
SQL Server Profiler adalah alat antarmuka pengguna grafis untuk memantau dan menangkap peristiwa yang terjadi di dalam SQL ServerAlat diagnostik yang ampuh ini memungkinkan administrator dan pengembang basis data untuk mengamati aktivitas mesin basis data secara real-time, membantu mengidentifikasi hambatan kinerja, memecahkan masalah aplikasi, dan mengaudit peristiwa keamanan.
1.2 SQL Server Profiler pada tahun 2025: Status Saat Ini dan Alternatif
Microsoft sudah tidak berlaku lagi SQL Server Profiler dimulai dengan SQL Server 2016, merekomendasikan Acara yang Diperpanjang sebagai teknologi pengganti. Namun, alat ini masih tersedia di SQL Server versi termasuk SQL Server 2022 dan masih banyak digunakan oleh profesional basis data.
1.3 Siapa yang Harus Menggunakan Panduan Ini
- Panduan ini ditujukan bagi administrator basis data yang perlu memantau SQL Server contoh, mendiagnosis masalah kinerja, dan memastikan keandalan sistem. DBA akan menemukan panduan praktis untuk menangkap jejak, menganalisis peristiwa, dan menerapkan strategi pemantauan.
- Pengembang aplikasi mendapat manfaat dari memahami bagaimana kode mereka berinteraksi dengan SQL ServerSQL Profiler membantu pengembang mengidentifikasi kueri yang tidak efisien, memvalidasi perilaku aplikasi, dan men-debug kesalahan terkait basis data.
- Analis dan konsultan kinerja akan menemukan teknik-teknik canggih untuk analisis beban kerja, perencanaan kapasitas, dan optimasi sistem. Cakupan komprehensif konfigurasi jejak, pemfilteran, dan analisis memungkinkan penilaian kinerja basis data yang menyeluruh.
2. Paham SQL Server Dasar-Dasar Profiler
2.1 Bagaimana SQL Server Profiler Works
SQL Server Profiler beroperasi sebagai aplikasi klien yang terhubung ke mesin SQL Trace yang berjalan di dalam SQL ServerSaat Anda membuat jejak, mesin basis data memantau peristiwa tertentu dan mencatatnya sesuai konfigurasi Anda. Mesin jejak mengumpulkan data peristiwa dengan dampak minimal pada kinerja server jika dikonfigurasi dengan benar.
Infrastruktur SQL Trace yang mendasarinya menggunakan kait peristiwa ringan di seluruh mesin basis data. Ketika suatu peristiwa yang sesuai dengan definisi jejak Anda terjadi, mesin akan menangkap informasi yang relevan dan mengirimkannya ke antarmuka Profiler atau menyimpannya ke dalam berkas atau tabel. Arsitektur ini memungkinkan pengumpulan data yang fleksibel tanpa mengubah kode aplikasi.
2.2 Konsep dan Terminologi Utama
2.2.1 Acara
Peristiwa mewakili kejadian tertentu dalam SQL Server yang dapat ditangkap oleh mesin pelacak. Setiap peristiwa berkaitan dengan operasi basis data atau aktivitas sistem tertentu. SQL Server Profiler mengelompokkan kejadian ke dalam kategori logis untuk memudahkan konfigurasi.
Kategori peristiwa umum meliputi TSQL untuk eksekusi kueri, Prosedur Tersimpan untuk pemanggilan prosedur, Kunci untuk pemantauan konkurensi, dan Kesalahan dan Peringatan untuk pelacakan pengecualian. Pemilihan peristiwa yang tepat menentukan informasi apa yang ditangkap jejak Anda dan secara langsung memengaruhi kegunaan dan overhead kinerja jejak.
Memahami jenis peristiwa membantu Anda mengonfigurasi pelacakan yang efektif. Peristiwa RPC:Completed mencatat penyelesaian panggilan prosedur jarak jauh, peristiwa SQL:BatchCompleted melacak batch kueri ad-hoc, dan peristiwa Lock:Deadlock mengidentifikasi kejadian deadlock. Pilih peristiwa yang selaras dengan tujuan pemecahan masalah atau pemantauan spesifik Anda.
2.2.2 Kolom Data
Kolom data menentukan informasi apa yang ditangkap oleh jejak untuk setiap peristiwa. Kolom umum meliputi TextData untuk pernyataan SQL aktual, Duration untuk waktu eksekusi, CPU untuk penggunaan prosesor, Reads untuk pembacaan disk logis, dan Writes untuk penulisan disk logis.
Kolom-kolom penting bervariasi tergantung kasus penggunaan. Pemecahan masalah kinerja biasanya memerlukan kolom Durasi, CPU, Baca, dan Tulis. Audit keamanan memerlukan kolom NamaLogin, NamaDatabase, dan NamaObjek. Kolom NamaAplikasi, SPID, dan Kesalahan akan memberikan manfaat untuk debugging aplikasi.
Memilih hanya kolom yang diperlukan akan mengurangi overhead pelacakan dan menyederhanakan analisis. Hindari mengambil semua kolom yang tersedia kecuali diperlukan secara khusus. Setiap kolom tambahan akan meningkatkan jumlah data yang dikumpulkan dan diproses, yang berpotensi memengaruhi kinerja server.
Filter 2.2.3
Filter membatasi peristiwa yang ditangkap oleh jejak berdasarkan kriteria yang ditentukan. Filter yang dikonfigurasi dengan tepat secara drastis mengurangi volume jejak, membuat analisis lebih mudah dikelola dan meminimalkan dampak pada kinerja. Filter mengevaluasi data peristiwa sebelum penangkapan, mencegah pengumpulan data yang tidak perlu.
Kriteria filter umum meliputi DatabaseName untuk fokus pada basis data tertentu, ApplicationName untuk mengisolasi aplikasi tertentu, Duration untuk hanya menangkap operasi yang lambat, dan LoginName untuk melacak pengguna tertentu. Menggabungkan beberapa filter menghasilkan definisi jejak yang tepat dan menangkap apa yang Anda butuhkan.
Pemfilteran yang memperhatikan kinerja sangat penting untuk lingkungan produksi. Selalu filter berdasarkan DatabaseName atau ApplicationName untuk menghindari perekaman aktivitas sistem. Tetapkan ambang batas Durasi minimum untuk mengabaikan kueri yang dieksekusi cepat. Gunakan filter TextData dengan hati-hati karena memerlukan perbandingan string yang menambah overhead.
2.2.4 Templat Jejak
Templat jejak menyediakan pilihan peristiwa, kolom, dan filter yang telah dikonfigurasikan sebelumnya untuk skenario umum. SQL Server Profiler menyertakan beberapa templat bawaan yang berfungsi sebagai titik awal untuk pembuatan jejak. Templat khusus menyimpan konfigurasi Anda untuk digunakan kembali di beberapa sesi pelacakan.
Templat Standar menangkap serangkaian peristiwa umum yang sesuai untuk pemantauan dasar. Templat TSQL berfokus pada eksekusi kueri dengan overhead minimal. Templat Penyetelan mengumpulkan peristiwa khusus untuk analisis Database Engine Tuning Advisor. Setiap templat menyeimbangkan penangkapan informasi dengan dampaknya terhadap kinerja.
Membuat templat khusus menghemat waktu dan memastikan konsistensi di seluruh sesi pelacakan. Konfigurasikan pelacakan dengan peristiwa, kolom, dan filter pilihan Anda, lalu simpan sebagai templat. Templat khusus menjadi sangat berharga ketika Anda berulang kali memecahkan masalah serupa.
3. Memulai SQL Server Profil
3.1 Persyaratan dan Prasyarat Sistem
SQL Server Profiler disertakan dengan SQL Server Studio Manajemen dan mendukung semua yang saat ini dikelola SQL Server versi, dari SQL Server 2016 ke 2022.
Persyaratan izin menentukan siapa yang dapat membuat dan menjalankan jejak. Anggota peran server tetap sysadmin memiliki akses tak terbatas ke SQL Server Fungsionalitas profiler. Bagi pengguna non-sysadmin, izin ALTER TRACE memberikan kemampuan untuk membuat dan mengelola jejak.
Pertimbangan jaringan berlaku saat melacak server jarak jauh. Pelacakan sisi klien memerlukan konektivitas jaringan yang berkelanjutan antara stasiun kerja Anda dan server. SQL Server Misalnya. Koneksi yang terputus menghentikan pelacakan sisi klien, sehingga berpotensi kehilangan data yang ditangkap. Pelacakan sisi server menghindari batasan ini dengan berjalan sepenuhnya di server basis data.
3.2 Cara Meluncurkan SQL Server Profil
3.2.1 Dimulai dari SQL Server Studio Manajemen (SSMS)
Ikuti langkah-langkah berikut untuk meluncurkan SQL Server Profiler dari SSMS:
- Open SQL Server Studio Manajemen dan terhubung ke mana saja SQL Server contoh.
- klik Tools menu di bilah menu atas.
- Pilih SQL Server Profil dari menu tarik-turun.
- The SQL Server Aplikasi Profiler diluncurkan di jendela baru.
3.2.2 Memulai dari Menu Mulai Windows
Mengakses SQL Server Profiler langsung dari Windows menggunakan langkah-langkah berikut:
- Klik Windows Start .
- Tipe SQL Server Profil di kotak pencarian.
- Pilih SQL Server Profil dari hasil pencarian.
- Aplikasi diluncurkan tanpa koneksi aktif.
Atau, navigasikan melalui hierarki menu Mulai:
- Buka Start menu.
- cari Microsoft SQL Server Tools folder.
- Perluas folder dan klik SQL Server Profil.
3.2.3 Menghubungkan ke SQL Server Contoh
Setelah diluncurkan SQL Server Profiler, buat koneksi dengan mengikuti langkah-langkah berikut:
- Klik File di bilah menu.
- Pilih Jejak Baru dari menu tarik-turun.
- The Sambungkan ke server dialog muncul.
- Masukkan nama server Anda di Nama server lapangan.
- Pilih Jendela Authentication or SQL Server Otentikasi.
- Jika menggunakan SQL Server Autentikasi, masukkan kredensial login Anda.
- Klik Terhubung untuk membuat koneksi.
Untuk koneksi jarak jauh, tentukan nama server lengkap termasuk nama instance jika ada. Gunakan format SERVERNAME\INSTANCENAME untuk instance bernama. Verifikasi konektivitas jaringan dan pengaturan firewall jika upaya koneksi gagal.
4. Membuat dan Mengonfigurasi SQL Server Jejak
4.1 Membuat Jejak Pertama Anda Menggunakan Template
Buat jejak pertama Anda menggunakan langkah-langkah berikut:
- Launch SQL Server Profiler.
- Klik File -> Jejak Baru dan terhubung ke server target Anda.
- The Properti Jejak dialog muncul.
- Masukkan nama deskriptif di Nama jejak lapangan.
- Pilih template dari Gunakan template dropdown.
- Pilih Standar (bawaan) Templat untuk pemantauan umum. Atau templat lain untuk tujuan lain. Templat ini menyediakan peristiwa, kolom, dan filter yang telah dikonfigurasi sebelumnya untuk skenario umum.
- Klik Run untuk mulai merekam peristiwa dengan segera.
4.2 Sesuaikan Jejak Anda
Seringkali, templat tidak dapat memenuhi kebutuhan Anda. Dalam kasus seperti ini, Anda dapat menyesuaikan jejak Anda sepenuhnya:
- Dalam majalah Properti Jejak dialog.
- Pilih Kosong templat dari Gunakan template dropdown.
- klik Pemilihan Acara Tab ini sekarang memungkinkan Anda menyesuaikan semua peristiwa, kolom data, dan filter sesuai kebutuhan Anda. Kami akan membahasnya di bagian selanjutnya.
4.3 Memilih Peristiwa untuk Diabadikan
Anda dapat memilih acara di Pemilihan Acara tab:
- klik + ikon di samping kategori Acara untuk mengembangkannya.
- Klik kotak centang di samping acara untuk memilihnya.
4.3.1 Memahami Kategori Peristiwa
SQL Server Profiler mengorganisir peristiwa ke dalam kategori untuk pengelompokan logis. Kategori Prosedur Tersimpan mencakup peristiwa untuk eksekusi prosedur termasuk SP:Starting, SP:Completed, dan SP:StmtCompleted. Peristiwa-peristiwa ini melacak panggilan prosedur tersimpan dan eksekusi pernyataan individual di dalam prosedur.
Kategori TSQL mencatat eksekusi kueri ad-hoc dengan peristiwa seperti SQL:BatchStarting dan SQL:BatchCompleted. Peristiwa ini melacak kueri yang dikirimkan langsung ke SQL Server di luar prosedur tersimpan.
Kategori Kunci memantau peristiwa terkait konkurensi, termasuk Kunci:Diperoleh, Kunci:Dilepas, Kunci:Deadlock, dan Kunci:Waktu Habis. Gunakan peristiwa ini untuk mendiagnosis masalah pemblokiran dan deadlock yang memengaruhi kinerja aplikasi.
Kategori Kesalahan dan Peringatan mencatat kejadian pengecualian termasuk Pengecualian, Perhatian, dan Pesan Kesalahan Pengguna. Kejadian-kejadian ini membantu mengidentifikasi kesalahan aplikasi dan SQL Server peringatan selama sesi pelacakan.
4.3.2 Memilih Peristiwa yang Tepat untuk Skenario Anda
Pemantauan kinerja memerlukan peristiwa yang mencatat konsumsi sumber daya. Pilih RPC:Completed dan SQL:BatchCompleted untuk melacak eksekusi kueri. Sertakan kolom Durasi, CPU, Baca, dan Tulis untuk mengukur penggunaan sumber daya. Peristiwa ini menjadi dasar untuk mengidentifikasi hambatan kinerja.
Audit keamanan membutuhkan peristiwa yang melacak autentikasi dan otorisasi. Pilih Login Audit, Logout Audit, Login Audit Gagal, dan Objek:Dibuka untuk memantau akses basis data. Sertakan kolom LoginName, DatabaseName, dan ObjectName untuk mengidentifikasi siapa yang mengakses sumber daya apa.
Skenario debugging akan lebih mudah dengan menangkap peristiwa secara komprehensif. Sertakan peristiwa stored procedure, peristiwa batch SQL, dan peristiwa error untuk melacak alur eksekusi lengkap. Tangkap konteks tambahan dengan kolom SPID, ApplicationName, dan HostName untuk mengkorelasikan peristiwa dengan sesi tertentu.
4.4 Mengonfigurasi Kolom Data
Secara default, ketika Anda memilih suatu peristiwa, semua kolom datanya akan dipilih (dicentang). Anda dapat membatalkan pilihan kolom yang tidak diperlukan untuk mengurangi overhead dan menyederhanakan analisis:
Kolom-kolom penting untuk setiap pelacakan meliputi EventClass untuk mengidentifikasi jenis peristiwa, TextData untuk menangkap pernyataan SQL yang sebenarnya, LoginName untuk mengidentifikasi pengguna yang menjalankan perintah, dan StartTime untuk memberi cap waktu kapan peristiwa tersebut terjadi. Kolom-kolom ini memberikan konteks mendasar untuk setiap peristiwa yang ditangkap.
Kolom terkait performa mengukur konsumsi sumber daya. Durasi menunjukkan lamanya waktu yang dibutuhkan suatu peristiwa dalam mikrodetik. CPU menunjukkan waktu prosesor dalam milidetik. Baca menghitung jumlah pembacaan halaman logis. Tulis melacak jumlah penulisan halaman logis. Metrik ini mengidentifikasi operasi yang membutuhkan banyak sumber daya dan memerlukan optimasi.
Kolom keamanan dan audit melacak pola akses data. DatabaseName mengidentifikasi basis data mana yang diakses. ObjectName menentukan tabel atau objek yang terlibat. ApplicationName menunjukkan aplikasi mana yang memulai aktivitas. Bersama-sama, kolom-kolom ini menyediakan jejak audit yang komprehensif.
4.5 Menyiapkan Filter untuk Mengurangi Noise
4.5.1 Kriteria Filter Umum
Konfigurasikan filter menggunakan pendekatan berikut:
- Buka Properti Jejak dialog.
- klik Pemilihan Acara Tab.
- Klik Filter Kolom tombol di kanan bawah.
- Pilih kolom dari daftar di sebelah kiri.
- Konfigurasikan kriteria filter di panel sebelah kanan.
- Klik OK untuk menerapkan filter.
Filter nama aplikasi mengisolasi aktivitas dari aplikasi tertentu. Perluas kolom ApplicationName di dialog filter, masukkan nama aplikasi Anda di kolom Seperti lapangan, dan SQL Server Profiler hanya menangkap kejadian dari aplikasi tersebut. Filter ini terbukti sangat berguna saat memecahkan masalah spesifik aplikasi.
Filter nama basis data membatasi pengambilan data ke basis data tertentu. Filter berdasarkan NamaBasisData untuk mengecualikan aktivitas basis data sistem dan fokus pada basis data aplikasi Anda. Masukkan nama basis data di kolom Seperti or Sama bidang tergantung pada apakah Anda memerlukan pencocokan wildcard.
Filter durasi hanya menangkap operasi yang berjalan lambat. Tetapkan ambang batas minimum di Lebih besar dari atau sama kolom di bawah kolom Durasi. Misalnya, menetapkan Durasi >= 1000 hanya akan merekam peristiwa yang berlangsung lebih dari satu detik, sehingga kueri yang dieksekusi cepat tidak akan tersaring.
Filter nama pengguna melacak aktivitas pengguna tertentu. Filter berdasarkan LoginName untuk memantau pengguna basis data tertentu. Pendekatan ini membantu mengidentifikasi pengguna mana yang menjalankan kueri bermasalah atau mengakses data sensitif.
4.4.2 Praktik Terbaik Filter
Penyaringan yang efektif menyeimbangkan pengambilan data dengan dampak kinerja. Selalu terapkan setidaknya satu filter untuk mencegah pengambilan aktivitas sistem yang berlebihan. Filter DatabaseName dan ApplicationName harus menjadi titik awal Anda untuk sebagian besar pelacakan.
Hindari pelacakan yang terlalu luas di lingkungan produksi. Pelacakan tanpa filter menangkap volume data yang sangat besar, berpotensi menurunkan kinerja server dan membuat analisis menjadi tidak praktis. Tetapkan kriteria filter spesifik yang menargetkan tujuan pemecahan masalah Anda.
Uji filter sebelum menerapkannya ke produksi. Jalankan pelacakan terhadap lingkungan pengembangan atau pengujian terlebih dahulu untuk memastikan filter menangkap peristiwa yang diharapkan tanpa overhead yang berlebihan. Sesuaikan kriteria filter berdasarkan volume data yang ditangkap.
4.5 Bekerja dengan Template Jejak
4.5.1 Ikhtisar Template Bawaan
Templat Standar menyediakan perekaman peristiwa seimbang yang cocok untuk pemantauan umum. Templat ini mencakup peristiwa eksekusi kueri umum, panggilan prosedur tersimpan, dan pelacakan kesalahan dasar. Gunakan templat ini jika Anda membutuhkan visibilitas komprehensif tanpa mengetahui persis apa yang harus dicari.
Templat TSQL berfokus secara khusus pada eksekusi kueri dengan pemilihan peristiwa minimal. Templat ini menangkap peristiwa SQL:BatchCompleted dan RPC:Completed dengan kolom-kolom penting untuk analisis kinerja. Templat ini menawarkan overhead yang lebih rendah daripada templat Standar.
Templat Penyetelan mengoptimalkan pemilihan peristiwa untuk analisis Database Engine Tuning Advisor. Templat ini menangkap peristiwa dan kolom yang diperlukan untuk analisis beban kerja dan rekomendasi indeks. Gunakan templat ini saat mempersiapkan jejak untuk penyetelan kinerja otomatis.
Templat TSQL_Replay mencakup semua peristiwa dan kolom yang diperlukan untuk fungsionalitas pemutaran ulang jejak. Templat ini menangkap detail eksekusi yang komprehensif sehingga Anda dapat mereproduksi beban kerja yang direkam di lingkungan pengujian. Templat ini menghasilkan berkas jejak yang lebih besar karena pengumpulan data yang ekstensif.
4.5.2 Membuat Template Kustom
Buat templat khusus dengan mengikuti langkah-langkah berikut:
- Klik File -> template -> Templat Baru …
- Masukkan nama deskriptif di Nama templat baru lapangan.
- Opsional, centang Dasarkan template baru pada template yang sudah ada dan pilih templat yang ada jika Anda tidak ingin membangun dari awal:
- klik Pemilihan Acara Event tab, sesuaikan templat jejak dengan acara, kolom, dan filter yang Anda inginkan seperti Anda lakukan dengan jejak normal.
- Klik Simpan untuk menyimpan templat.
Ekspor templat untuk dibagikan dengan anggota tim atau tujuan pencadangan:
- Klik File -> template -> Templat Ekspor.
- Pilih templat yang ingin Anda ekspor.
- Arahkan ke lokasi penyimpanan yang Anda inginkan.
- Masukkan nama file dan klik Simpan.
- Bagikan file *.tdf (SQL Server File templat profiler) dengan yang lain SQL Server Pengguna profiler.
4.6 Menyimpan Keluaran Jejak
Secara default, SQL Server Profiler akan menampilkan peristiwa di jendela jejak, tetapi TIDAK akan menyimpannya. Anda dapat memilih untuk menyimpan data jejak ke dalam berkas atau tabel di Properti Jejak dialog saat Anda membuat jejak baru.
4.6.1 Simpan ke File
- Dalam majalah Properti Jejak dialog, periksa Simpan ke file.
- Klik ikon folder untuk membuka peramban berkas.
- Arahkan ke lokasi penyimpanan yang Anda inginkan.
- Masukkan nama file dengan ekstensi .trc.
- Klik Simpan.
- set Tetapkan ukuran file maksimum untuk membatasi ukuran file individual.
- Aktifkan Aktifkan pemindahan file untuk membuat banyak berkas.
- Aktifkan secara opsional Server memproses data jejak untuk jejak sisi server.
Manajemen ukuran berkas mencegah kehabisan ruang disk. Atur ukuran berkas maksimum ke nilai yang wajar, misalnya 500 MB atau 1 GB, berdasarkan ruang disk yang tersedia dan durasi pelacakan yang diharapkan. File rollover secara otomatis membuat berkas baru ketika batas ukuran tercapai, dengan menambahkan angka pada nama berkas.
4.6.2 Simpan ke Tabel
- Dalam majalah Properti Jejak dialog, periksa Simpan ke tabel.
- The Tabel Tujuan dialog muncul.
- Pilih server dari Server dropdown.
- Pilih database dari Basis Data dropdown.
- Pilih tabel yang sudah ada atau masukkan nama tabel baru di tabel lapangan.
- Klik OK untuk mengkonfirmasi.
- Ditetapkan secara opsional Tetapkan baris maksimum untuk membatasi ukuran tabel.
Pertimbangan kinerja berlaku saat menyimpan ke tabel. Penyimpanan tabel menimbulkan overhead tambahan dibandingkan dengan penyimpanan file karena SQL Server harus menulis data jejak melalui mesin penyimpanan. Gunakan penyimpanan tabel jika Anda perlu segera mengkueri data jejak dengan T-SQL.
Retensi data menjadi penting untuk pelacakan berbasis tabel. Tetapkan batas baris maksimum untuk mencegah tabel tumbuh terlalu besar. Arsipkan atau hapus data pelacakan lama secara berkala untuk menjaga kinerja. Pertimbangkan untuk mempartisi tabel pelacakan yang besar agar pengelolaannya lebih mudah.
5. Menjalankan dan Mengelola SQL Server Jejak
5.1 Memulai, Menjeda, dan Menghentikan Jejak
Kelola eksekusi jejak menggunakan tombol bilah alat:
- Hijau Start Tombol mulai merekam kejadian sesuai konfigurasi Anda.
- Klik Berhenti sebentar untuk menangguhkan pengumpulan data sementara tanpa kehilangan koneksi.
- Klik berhenti untuk mengakhiri jejak dan menutup koneksi.
Melalui item menu:
Melalui klik kanan pada entri mana saja di jendela jejak:
Manajemen siklus hidup jejak memengaruhi sumber daya server. Jejak aktif mengonsumsi memori dan daya pemrosesan sebanding dengan volume peristiwa yang direkam. Hentikan jejak selama periode ketika pemantauan tidak diperlukan untuk mengurangi overhead. Hentikan jejak sepenuhnya ketika analisis selesai untuk mengosongkan sumber daya.
Jejak sisi klien memerlukan koneksi Profiler yang aktif. Menutup SQL Server Jendela Profiler segera menghentikan jejak sisi klien. Minimalkan jendela Profiler, alih-alih menutupnya, agar jejak tetap berjalan saat bekerja di aplikasi lain.
5.2 Pemantauan Jejak Waktu Nyata
Pantau peristiwa yang terekam saat terjadi di jendela pelacakan utama. Setiap baris mewakili satu peristiwa dengan kolom yang menampilkan properti peristiwa. Kisi-kisi terus diperbarui selama pelacakan aktif, menampilkan peristiwa terbaru di bagian bawah secara default.
Identifikasi pola dan masalah dengan mengamati frekuensi dan karakteristik kejadian. Kejadian berdurasi tinggi mengindikasikan masalah kinerja. Kejadian kesalahan yang sering terjadi mengindikasikan masalah aplikasi. Aktivitas login yang tidak biasa dapat menandakan masalah keamanan. Pemantauan waktu nyata memungkinkan respons segera terhadap masalah yang muncul.
Gulir peristiwa yang direkam untuk memeriksa kejadian tertentu. Klik baris mana pun untuk memilih peristiwa dan melihat detail lengkapnya. Klik dua kali peristiwa untuk membuka dialog properti detail yang menampilkan semua nilai kolom. Gunakan fitur kunci gulir untuk mencegah pengguliran otomatis saat meninjau peristiwa historis.
5.3 Mengelola Beberapa Jejak Bersamaan
Menjalankan beberapa trace secara bersamaan memberikan fleksibilitas untuk skenario pemantauan yang kompleks. Buat trace terpisah untuk berbagai aspek aktivitas basis data, misalnya satu trace untuk pemantauan kinerja dan satu lagi untuk audit keamanan. Setiap trace berjalan secara independen dengan konfigurasinya sendiri.
Alokasi sumber daya menjadi krusial dengan banyaknya jejak. Setiap jejak yang aktif mengonsumsi memori, CPU, dan mungkin I/O disk. Batasi jumlah jejak yang bersamaan dan pastikan setiap jejak menggunakan filter yang sesuai untuk meminimalkan overhead. Pantau kinerja server saat menjalankan beberapa jejak.
Koordinasikan waktu pelacakan untuk mencegah pelacakan yang tumpang tindih dan membutuhkan banyak sumber daya. Jika memungkinkan, jalankan pelacakan yang membutuhkan banyak sumber daya selama periode aktivitas rendah. Jadwalkan pelacakan yang berbeda pada waktu yang berbeda, alih-alih menjalankan semuanya secara bersamaan.
5.4 Jejak Sisi Klien vs. Jejak Sisi Server
Secara default, jejak yang baru dibuat adalah jejak sisi klien, yang memerlukan koneksi aktif dari SQL Server Profiler terhubung ke server basis data. Pelacakan akan berhenti seketika jika koneksi terputus atau Profiler ditutup.
Anda juga dapat membuat jejak sisi server, yang berjalan sepenuhnya di SQL Server instans tanpa memerlukan koneksi Profiler aktif. Jejak sisi server tetap berjalan bahkan setelah ditutup SQL Server Profiler, menulis data ke lokasi file yang ditentukan.
Untuk membuat jejak sisi server:
- Klik File -> Jejak Baru …
- Dalam majalah Properti Jejak dialog, periksa Simpan ke file
- Tetapkan lokasi file dan pengaturan lainnya.
- Aktifkan Server memproses data jejak untuk membuat jejak sisi server.
Implikasi kinerja berbeda secara signifikan antar jenis jejak. Jejak sisi klien harus mengirimkan data melalui jaringan ke antarmuka Profiler, yang akan menambah latensi dan konsumsi bandwidth. Jejak sisi server menghasilkan overhead yang lebih rendah karena data ditulis langsung ke disk di server.
Gunakan pelacakan sisi klien untuk pemecahan masalah ad-hoc, sesi diagnostik cepat, dan situasi di mana umpan balik visual langsung sangat berharga. Pilih pelacakan sisi server untuk pemantauan produksi, pengambilan data jangka panjang, dan skenario yang memerlukan pengoperasian tanpa pengawasan.
6. Menganalisis SQL Server Data Profiler
6.1 Membuka dan Meninjau Jejak yang Tersimpan
Muat file jejak yang disimpan menggunakan langkah-langkah berikut:
- Launch SQL Server Profiler.
- Klik File -> Open -> Berkas Jejak.
- Arahkan ke lokasi berkas jejak.
- Pilih file .trc dan klik Open.
- Data jejak dimuat ke jendela utama.
Muat tabel jejak dengan mengikuti proses ini:
- Klik File -> Open -> Tabel Jejak.
- Hubungkan ke server yang menampung tabel pelacakan.
- Pilih database dari Basis Data dropdown.
- Pilih tabel dari tabel dropdown.
- Klik OK untuk memuat data.
6.2 Penyaringan dan Pencarian Data Jejak
6.2.1 Penyaringan Pasca-Pengambilan Data
Terapkan filter ke data jejak yang dimuat menggunakan langkah-langkah berikut:
- Klik Sunting -> Menemukan atau tekan Ctrl + F.
- Masukkan teks pencarian di Temukan apa lapangan.
- Pilih kolom untuk mencari dari Lihat kedalam dropdown.
- Klik Temukan Berikutnya untuk menemukan peristiwa yang cocok.
Pemfilteran berbasis kolom menyaring data yang ditampilkan tanpa menangkap ulang peristiwa. Klik kanan pada header kolom mana pun dan pilih opsi filter dari menu konteks. Masukkan kriteria filter untuk hanya menampilkan baris yang cocok. Pendekatan ini mempercepat analisis dengan menyembunyikan peristiwa yang tidak relevan.
6.2.2 Menemukan Peristiwa Tertentu
Fungsi pencarian membantu menemukan peristiwa tertentu dalam berkas jejak yang besar. Gunakan dialog Temukan untuk mencari berdasarkan konten teks, jenis peristiwa, atau nilai kolom. Ekspresi reguler memungkinkan pola pencarian yang kompleks bila diperlukan.
Tandai peristiwa penting untuk referensi cepat selama analisis. Klik kanan peristiwa menarik dan pilih opsi penanda untuk menandainya. Navigasi antar penanda menggunakan pintasan keyboard atau perintah menu, memudahkan perbandingan peristiwa terkait.
6.3 Pengelompokan dan Agregasi Peristiwa
Kelompokkan peristiwa berdasarkan nilai kolom untuk mengidentifikasi pola dan meringkas aktivitas. Klik kanan pada tajuk kolom mana pun dan pilih Kelompokkan berdasarkan kolom ini untuk mengatur acara. Tampilan yang dikelompokkan menyatukan acara-acara serupa, sehingga memudahkan untuk melihat pola keseluruhan.
Tampilan agregat menyediakan ringkasan statistik data jejak. Kelompokkan berdasarkan TextData untuk melihat berapa kali setiap kueri dieksekusi. Kelompokkan berdasarkan LoginName untuk melihat ringkasan aktivitas per pengguna. Agregasi mengungkapkan pola yang tidak langsung terlihat dalam daftar peristiwa terperinci.
Perluas dan ciutkan grup untuk menelusuri kategori spesifik. Klik ikon plus dan minus di samping judul grup untuk menampilkan atau menyembunyikan peristiwa yang dikelompokkan. Tampilan hierarkis ini memfasilitasi analisis dari atas ke bawah, dimulai dengan pola tingkat tinggi dan menyelami detailnya.
6.4 Mengekstrak Kueri SQL dari Jejak
Ekstrak kueri dari data jejak dengan mengikuti langkah-langkah berikut:
- Temukan kueri yang diminati di kisi jejak.
- Klik baris untuk memilih acara.
- Lihat teks pertanyaan lengkap di panel bawah.
- Media Ctrl + A untuk memilih semua teks kueri.
- Media Ctrl + C untuk menyalin teks kueri.
- Tempelkan kueri ke Management Studio untuk analisis lebih lanjut.
Identifikasi kueri bermasalah dengan mengurutkan berdasarkan kolom performa. Klik tajuk kolom Durasi untuk mengurutkan berdasarkan waktu eksekusi. Kueri yang paling lambat akan muncul di bagian atas atau bawah, tergantung arah pengurutan. Demikian pula, urutkan berdasarkan CPU, Baca, atau Tulis untuk mengidentifikasi operasi yang membutuhkan banyak sumber daya.
Ekspor kueri untuk pengujian dengan menyalinnya dari jendela pelacakan ke kueri. Ubah kueri yang diekstrak untuk menguji strategi optimasi. Bandingkan rencana eksekusi dan metrik kinerja antara versi asli dan versi yang dioptimalkan.
6.5 Mengkorelasikan Peristiwa dan Memahami Alur Eksekusi
Hubungan antar-kejadian induk menunjukkan hierarki eksekusi. Kejadian SQL:BatchStarting merupakan induk dari kejadian SQL:StmtStarting, yang selanjutnya merupakan induk dari kejadian eksekusi prosedur. Memahami hubungan ini membantu menelusuri jalur eksekusi lengkap melalui kode Anda.
Pelacakan transaksi menghubungkan peristiwa terkait lintas waktu. Gunakan kolom SPID untuk mengelompokkan peristiwa berdasarkan sesi. Dalam satu sesi, peristiwa terjadi secara kronologis, menunjukkan urutan operasi. Tampilan ini menunjukkan bagaimana berbagai operasi berinteraksi dalam transaksi.
Korelasikan peristiwa dengan memeriksa nilai kolom yang sama. Peristiwa dengan SPID identik terjadi dalam sesi yang sama. Peristiwa dengan ApplicationName yang sama berasal dari aplikasi yang sama. Gunakan korelasi ini untuk memahami skenario eksekusi yang kompleks.
7. Umum SQL Server Kasus Penggunaan Profiler
7.1 Pemecahan Masalah Kinerja
7.1.1 Mengidentifikasi Query yang Lambat
Tangkap kueri yang lambat menggunakan konfigurasi berikut:
- Buat jejak baru menggunakan TSQL Template.
- Dalam majalah Pemilihan Acara tab, verifikasi SQL:BatchSelesai ke RPC:Selesai dipilih.
- Klik Filter Kolom.
- Pilih Durasi dari daftar kolom.
- Masukkan 1000000 di Lebih besar dari atau sama lapangan untuk menangkap kueri yang memerlukan waktu lebih dari 1 detik.
- Klik OK dan mulailah penelusuran.
- Jalankan pelacakan selama periode penggunaan puncak.
- Hentikan pelacakan dan urutkan berdasarkan Durasi untuk mengidentifikasi kueri yang paling lambat.
Analisis berbasis durasi mengungkap pola waktu eksekusi. Urutkan peristiwa yang direkam berdasarkan kolom Durasi untuk melihat operasi yang berjalan paling lama terlebih dahulu. Periksa kolom TextData untuk peristiwa-peristiwa ini guna mengidentifikasi kueri aktual yang menyebabkan penundaan.
Kueri yang intensif CPU dan I/O memerlukan pendekatan optimasi yang berbeda. Urutkan berdasarkan kolom CPU untuk menemukan kueri yang terikat prosesor dan memerlukan peningkatan algoritma. Urutkan berdasarkan kolom Baca atau Tulis untuk mengidentifikasi kueri yang terikat I/O yang memerlukan pengindeksan atau penulisan ulang kueri.
7.1.2 Mendeteksi Pemblokiran dan Kebuntuan
Konfigurasikan deteksi pemblokiran dengan mengikuti langkah-langkah berikut:
- Buat jejak baru.
- Dalam majalah Pemilihan Acara tab, perluas Kunci.
- Pilih Kunci:Jalan buntu ke Kunci: Rantai Kunci Mati.
- Lihat lebih lanjut Kesalahan dan Peringatan.
- Pilih Laporan proses yang diblokir.
- Sertakan kolom: SPID, Data Teks, Nama Basis Data, Nama login.
- Mulai pelacakan dan pantau peristiwa penguncian.
Pemantauan peristiwa kunci mengungkap masalah konkurensi yang memengaruhi kinerja aplikasi. Kunci: Peristiwa kebuntuan menunjukkan kapan SQL Server Situasi deadlock yang terdeteksi dan teratasi. Peristiwa Lock:Deadlock Chain menunjukkan proses yang terlibat dalam deadlock.
Grafik deadlock menyediakan representasi visual dari skenario deadlock. Ketika suatu peristiwa deadlock terjadi, kolom TextData berisi XML yang menjelaskan deadlock tersebut. Salin XML ini dan buka di SQL Server Management Studio untuk melihat diagram kebuntuan grafis yang memperlihatkan proses mana yang saling memblokir.
7.1.3 Menemukan Indeks yang Hilang
Tangkap beban kerja untuk analisis indeks menggunakan langkah-langkah berikut:
- Buat jejak baru menggunakan Penyetelan Template.
- Konfigurasikan jejak untuk menyimpan ke berkas.
- Jalankan pelacakan selama periode beban kerja yang representatif.
- Kumpulkan setidaknya beberapa jam aktivitas.
- Hentikan penelusuran dan simpan berkas.
- Luncurkan Database Engine Tuning Advisor.
- Pilih berkas jejak sebagai sumber beban kerja.
- Jalankan analisis untuk menerima rekomendasi indeks.
Integrasi dengan Database Engine Tuning Advisor mengotomatiskan rekomendasi indeks. Tuning Advisor menganalisis beban kerja yang terekam dan menyarankan indeks yang akan meningkatkan kinerja. Tinjau rekomendasi dengan cermat sebelum implementasi, dengan mempertimbangkan biaya penyimpanan dan pemeliharaan.
7.2 Pemecahan Masalah Aplikasi
7.2.1 Men-debug Kesalahan Aplikasi
Lacak kesalahan aplikasi menggunakan konfigurasi ini:
- Buat jejak baru.
- Lihat lebih lanjut Kesalahan dan Peringatan di tab Pilihan Acara.
- Pilih Pengecualian, Pesan Kesalahan Pengguna, dan Perhatian.
- Sertakan kolom: error, Data Teks, NamaAplikasi, SPID.
- Saring berdasarkan NamaAplikasi untuk fokus pada aplikasi Anda.
- Mulai pelacakan dan reproduksi skenario kesalahan.
- Tinjau kejadian kesalahan yang terekam untuk mendapatkan informasi diagnostik.
Pelacakan kesalahan mengungkap detail pengecualian yang seringkali tersembunyi dari aplikasi. Kolom Kesalahan berisi SQL Server Nomor kesalahan. Kolom TextData menampilkan pesan kesalahan dan kueri yang menyebabkan kesalahan. Kolom Severity menunjukkan tingkat keparahan kesalahan.
Pemantauan pengecualian menangkap masalah runtime, termasuk pelanggaran batasan, kesalahan izin, dan peristiwa batas waktu. Korelasikan peristiwa kesalahan dengan peristiwa kueri sebelumnya untuk memahami pemicu pengecualian.
7.2.2 Menelusuri Komunikasi Aplikasi-ke-Database
Pantau aktivitas aplikasi dengan mengikuti langkah-langkah berikut:
- Buat jejak baru menggunakan Standar Template.
- Klik Filter Kolom.
- Pilih NamaAplikasi dan masukkan nama aplikasi Anda di Seperti lapangan.
- Filter opsional berdasarkan Nama Host untuk mengisolasi server tertentu.
- Mulai pelacakan selama operasi aplikasi.
- Tinjau peristiwa yang direkam untuk melihat semua interaksi basis data.
Pemfilteran nama aplikasi mengisolasi kueri dari aplikasi tertentu. SQL Server Menetapkan nama aplikasi dari string koneksi, sehingga memudahkan pelacakan aplikasi individual di lingkungan multi-aplikasi. Pastikan string koneksi Anda menyertakan parameter Nama Aplikasi untuk pemfilteran yang efektif.
Pelacakan koneksi menunjukkan siklus hidup sesi, termasuk peristiwa masuk, eksekusi kueri, dan keluar. Pantau tingkat pembuatan koneksi untuk mengidentifikasi masalah penggabungan koneksi. Perputaran koneksi yang berlebihan mengindikasikan potensi masalah konfigurasi aplikasi.
7.2.3 Memvalidasi Perilaku Aplikasi
Verifikasi perilaku aplikasi yang diharapkan menggunakan analisis jejak. Catat semua operasi basis data selama transaksi bisnis dan pastikan kueri yang benar dijalankan dalam urutan yang tepat. Bandingkan kueri aktual yang ditangkap dengan perilaku yang diharapkan untuk mengidentifikasi perbedaan.
Validasi parameter memastikan aplikasi meneruskan nilai yang benar ke prosedur tersimpan dan kueri berparameter. Periksa teks kueri yang ditangkap untuk memverifikasi bahwa nilai parameter sesuai dengan harapan. Parameter yang salah sering kali menyebabkan kesalahan logika yang bermanifestasi sebagai hasil bisnis yang salah.
7.3 Audit Keamanan
7.3.1 Memantau Upaya Login
Konfigurasikan pemantauan login menggunakan langkah-langkah berikut:
- Buat jejak baru.
- Lihat lebih lanjut Audit Keamanan di tab Pilihan Acara.
- Pilih Login Audit, Keluar dari Audit, dan Login Audit Gagal.
- Sertakan kolom: Nama login, Nama Host, NamaAplikasi, Waktu mulai.
- Mulai pelacakan untuk memantau aktivitas otentikasi.
- Tinjau peristiwa login yang gagal untuk mengetahui potensi masalah keamanan.
Login yang berhasil dan gagal menyediakan pelacakan autentikasi yang komprehensif. Peristiwa Audit Login mencatat upaya autentikasi yang berhasil dengan identitas pengguna dan informasi sumber. Peristiwa Audit Login Gagal menunjukkan upaya login yang gagal yang mungkin merupakan serangan atau masalah konfigurasi.
Pelacakan autentikasi mengungkap pola dalam akses basis data. Pantau frekuensi login untuk mendeteksi aktivitas yang tidak biasa. Beberapa kali percobaan login yang gagal, diikuti dengan login yang berhasil, mungkin mengindikasikan kredensial yang disusupi. Login yang gagal dari lokasi yang tidak terduga perlu diselidiki.
7.3.2 Pelacakan Akses dan Modifikasi Data
Pantau akses data menggunakan konfigurasi ini:
- Buat jejak baru.
- Lihat lebih lanjut Audit Keamanan.
- Pilih Akses Objek Basis Data Audit.
- Sertakan kolom: Nama Objek, Nama login, Data Teks, Nama Basis Data.
- Saring berdasarkan Nama Objek untuk memantau tabel sensitif tertentu.
- Mulai pelacakan untuk menangkap upaya akses.
Pelacakan SELECT, INSERT, UPDATE, DELETE menyediakan audit modifikasi data yang komprehensif. Tangkap peristiwa SQL:BatchCompleted dengan filter yang sesuai untuk memantau semua operasi akses data. Filter berdasarkan ObjectName atau TextData untuk fokus pada tabel sensitif.
Akses data sensitif memerlukan pemantauan yang cermat untuk memastikan kepatuhan terhadap kebijakan keamanan. Buat jejak khusus untuk tabel yang berisi informasi pribadi, data keuangan, atau informasi rahasia lainnya. Tinjau pola akses secara berkala untuk mengidentifikasi akses data yang tidak tepat.
Deteksi aktivitas mencurigakan dengan menganalisis pola kueri dalam jejak yang tertangkap. Cari kueri tidak biasa yang tidak sesuai dengan perilaku aplikasi normal. Pernyataan SELECT tanpa klausa WHERE yang mengambil seluruh tabel dapat mengindikasikan upaya eksfiltrasi data.
Upaya peningkatan hak istimewa muncul sebagai kesalahan izin atau upaya untuk menjalankan perintah administratif. Pantau kueri yang mencoba mengakses tabel sistem, mengubah konfigurasi server, atau membuat akun istimewa. Filter untuk peristiwa Kesalahan dan tinjau kolom TextData untuk aktivitas mencurigakan.
7.4 Perencanaan Kapasitas dan Analisis Beban Kerja
Tetapkan baseline dengan mencatat beban kerja representatif selama operasi normal. Jalankan trace selama jam kerja normal untuk memahami pola aktivitas standar. Simpan trace ini sebagai baseline kinerja untuk perbandingan di kemudian hari.
Identifikasi penggunaan puncak menunjukkan kapan sistem Anda mengalami beban maksimum. Catat jejak di berbagai periode waktu, termasuk jam kerja, periode pemrosesan batch, dan aktivitas di luar jam kerja. Analisis jumlah kejadian dan konsumsi sumber daya untuk mengidentifikasi periode puncak.
Pola pemanfaatan sumber daya muncul dari analisis beban kerja. Kelompokkan kejadian berdasarkan interval waktu untuk melihat distribusi aktivitas sepanjang hari. Hitung agregat CPU, I/O disk, dan metrik durasi untuk mengukur konsumsi sumber daya. Gunakan data ini untuk merencanakan peningkatan kapasitas atau mengidentifikasi peluang optimasi.
8. Maju SQL Server Teknik Profiler
8.1 Membuat Jejak Sisi Server dengan T-SQL
8.1.1 Menggunakan sp_trace_create dan Prosedur Terkait
Buat jejak sisi server secara terprogram menggunakan prosedur tersimpan T-SQL. Pendekatan ini memungkinkan pembuatan dan pengelolaan jejak otomatis tanpa memerlukan SQL Server Antarmuka grafis Profiler.
Tentukan jejak sisi server menggunakan kode contoh ini:
- Nyatakan variabel untuk ID jejak dan jalur berkas.
- Panggil sp_trace_create untuk membuat jejak baru.
- Gunakan sp_trace_setevent untuk menambahkan peristiwa dan kolom.
- Secara opsional gunakan sp_trace_setfilter untuk mengonfigurasi filter.
- Panggil sp_trace_setstatus untuk memulai pelacakan.
Prosedur sp_trace_create menginisialisasi definisi jejak baru. Tentukan jalur berkas keluaran, ukuran berkas maksimum, dan opsi rollover. Prosedur ini mengembalikan ID jejak yang digunakan dalam panggilan prosedur selanjutnya untuk mengonfigurasi jejak.
Tambahkan peristiwa menggunakan prosedur sp_trace_setevent. Tentukan ID jejak, ID peristiwa, dan ID kolom untuk setiap kombinasi peristiwa-kolom yang ingin Anda tangkap. Panggil prosedur ini beberapa kali untuk membangun konfigurasi jejak yang lengkap.
Konfigurasikan filter dengan prosedur sp_trace_setfilter. Tentukan ID jejak, ID kolom, operator logika, operator perbandingan, dan nilai filter. Beberapa panggilan filter digabungkan untuk membuat kriteria filter yang kompleks.
Mulai pelacakan dengan memanggil sp_trace_setstatus dengan nilai status 1. Hentikan pelacakan dengan memanggil prosedur yang sama dengan nilai status 0. Hapus definisi pelacakan dengan memanggil dengan nilai status 2.
8.1.2 Keuntungan Jejak Sisi Server
Pengurangan overhead klien menjadikan pelacakan sisi server ideal untuk pemantauan produksi. Server basis data menangani semua operasi pelacakan tanpa menghabiskan sumber daya mesin klien. Bandwidth jaringan tidak terpakai saat mentransmisikan peristiwa ke aplikasi klien.
Eksekusi otomatis memungkinkan pengumpulan jejak tanpa pengawasan. Jejak sisi server terus berjalan setelah pembuatan meskipun tidak ada koneksi klien. Jadwalkan pembuatan jejak melalui SQL Server Pekerjaan agen untuk pemantauan otomatis.
Dampak kinerja yang lebih rendah dihasilkan dari pemrosesan sisi server. Peristiwa ditulis langsung ke disk tanpa serialisasi tambahan atau transmisi jaringan. Manajemen buffer mengoptimalkan I/O disk untuk kinerja keseluruhan yang lebih baik.
8.2 Fungsionalitas Pemutaran Ulang Jejak
8.2.1 Menangkap Jejak untuk Diputar Ulang
Buat jejak yang siap diputar ulang dengan mengikuti langkah-langkah berikut:
- Buat jejak baru menggunakan TSQL_Putar Ulang Template.
- Verifikasi bahwa semua peristiwa dan kolom yang diperlukan telah dipilih.
- Konfigurasikan jejak untuk menyimpan ke berkas.
- Jalankan pelacakan selama periode beban kerja yang ingin Anda tangkap.
- Hentikan penelusuran dan simpan berkas.
Peristiwa dan kolom yang diperlukan memastikan pemutaran ulang jejak yang lengkap. Templat TSQL_Replay mencakup semua jenis peristiwa dan kolom data yang diperlukan. Elemen yang diperlukan yang hilang akan mencegah pemutaran ulang yang berhasil, jadi selalu gunakan templat ini saat merekam untuk tujuan pemutaran ulang.
8.2.2 Memutar Ulang Jejak
Putar ulang beban kerja yang ditangkap menggunakan langkah-langkah berikut:
- In SQL Server Profiler, klik File -> Open -> Berkas Jejak.
- Pilih berkas jejak yang siap diputar ulang.
- Klik Replay -> Start.
- Hubungkan ke server target di dialog pemutaran ulang.
- Konfigurasikan opsi pemutaran ulang termasuk urutan dan waktu pemutaran ulang.
- Klik OK untuk memulai pemutaran ulang.
- Pantau kemajuan tayangan ulang di jendela status.
Opsi konfigurasi pemutaran ulang mengontrol bagaimana SQL Server Profiler mereproduksi beban kerja yang direkam. Putar ulang peristiwa sesuai urutan perekamannya untuk mempertahankan hubungan temporal. Konfigurasikan apakah akan mempertahankan pengaturan waktu asli atau memutar ulang peristiwa secepat mungkin.
8.2.3 Kasus Penggunaan untuk Pemutaran Ulang Jejak
Pengujian beban memanfaatkan pemutaran jejak dengan mereproduksi beban kerja yang realistis. Tangkap jejak beban kerja produksi dan putar ulang pada sistem uji untuk memvalidasi kinerja dalam pola penggunaan nyata. Sesuaikan pengaturan konkurensi untuk mensimulasikan berbagai tingkat beban.
Validasi migrasi lingkungan memastikan sistem baru dapat menangani beban kerja yang ada. Tangkap jejak dari sistem produksi saat ini dan putar ulang pada perangkat keras baru atau yang diperbarui. SQL Server versi. Bandingkan metrik kinerja untuk memverifikasi bahwa migrasi tidak akan menurunkan kinerja.
Skenario pengujian mencakup pengujian regresi setelah perubahan kode, memvalidasi perubahan pengoptimal di seluruh SQL Server versi, dan pengujian stres konfigurasi perangkat keras. Replay menyediakan beban kerja yang konsisten dan berulang untuk pengujian yang andal.
8.3 Mengintegrasikan SQL Profiler dengan Database Engine Tuning Advisor
Buat berkas beban kerja untuk Database Engine Tuning Advisor dengan merekam jejak dengan peristiwa yang sesuai. Gunakan templat Tuning untuk memastikan semua informasi yang diperlukan direkam untuk analisis.
Luncurkan Database Engine Tuning Advisor dan pilih berkas jejak Anda sebagai sumber beban kerja. Advisor akan menganalisis kueri yang ditangkap dan merekomendasikan indeks, tampilan terindeks, atau strategi partisi yang dapat meningkatkan kinerja.
Alur kerja optimasi performa mengintegrasikan penangkapan jejak dengan analisis penyetelan. Tangkap beban kerja representatif selama operasi normal, analisis dengan Tuning Advisor, tinjau rekomendasi, uji perubahan yang disarankan dalam pengembangan, dan akhirnya terapkan perubahan yang disetujui dalam produksi.
8.4 Mengotomatiskan Pengumpulan Jejak
Jadwalkan jejak menggunakan SQL Server Tugas agen untuk mengumpulkan data secara otomatis. Buat skrip T-SQL yang menentukan pelacakan sisi server menggunakan prosedur sp_trace. Jadwalkan skrip ini untuk dijalankan pada waktu atau interval tertentu.
Otomatisasi PowerShell memungkinkan skenario manajemen jejak yang canggih. Tulis skrip PowerShell yang membuat jejak, memantau statusnya, dan memproses data yang dikumpulkan. Jadwalkan skrip PowerShell melalui Penjadwal Tugas atau SQL Server Agen.
SQL Server Tugas agen menyediakan eksekusi terjadwal yang andal. Buat tugas yang memulai pelacakan di awal periode pemantauan dan menghentikan pelacakan setelah pengumpulan data selesai. Konfigurasikan pemberitahuan tugas untuk memberi tahu administrator tentang kegagalan.
8.5 Menganalisis Jejak Secara Terprogram
Baca berkas jejak dengan T-SQL menggunakan fungsi fn_trace_gettable. Fungsi bernilai tabel ini mengurai berkas jejak dan mengembalikan data peristiwa sebagai set hasil. Kueri data ini menggunakan T-SQL standar untuk melakukan analisis khusus.
Skrip analisis khusus memungkinkan pemrosesan jejak otomatis. Tulis kueri yang menghitung statistik agregat, mengidentifikasi pola, atau menandai anomali. Jadwalkan skrip ini untuk berjalan secara otomatis setelah pengumpulan jejak selesai.
Buat laporan dengan mengkueri data jejak yang tersimpan dalam tabel. Buat tampilan yang menggabungkan peristiwa berdasarkan periode waktu, pengguna, atau aplikasi. Bangun solusi pelaporan yang memberikan wawasan berkala tentang aktivitas dan kinerja basis data.
9. SQL Server Praktik Terbaik Profiler
9.1 Praktik Terbaik Kinerja
9.1.1 Meminimalkan Overhead Jejak
Pilih hanya peristiwa yang diperlukan untuk mengurangi overhead pelacakan. Setiap jenis peristiwa tambahan akan meningkatkan jumlah data yang harus diproses oleh mesin pelacakan. Tinjau tujuan pemantauan Anda dan sertakan hanya peristiwa yang relevan langsung dengan tujuan tersebut.
Gunakan filter secara efektif untuk mencegah pengambilan data yang tidak relevan. Filter berdasarkan DatabaseName untuk mengecualikan basis data sistem. Filter berdasarkan Duration untuk hanya mengambil kueri yang lambat. Filter berdasarkan ApplicationName untuk fokus pada aplikasi tertentu. Pemfilteran yang tepat secara drastis mengurangi overhead pelacakan.
Pertimbangan sisi server versus sisi klien memengaruhi dampak kinerja. Jejak sisi server menulis data langsung ke disk dengan overhead minimal. Jejak sisi klien mengirimkan peristiwa melalui jaringan ke antarmuka Profiler, yang menambah latensi dan konsumsi bandwidth. Gunakan jejak sisi server untuk pemantauan produksi.
9.1.2 Mengoptimalkan Penyimpanan Jejak
Manajemen ukuran berkas mencegah kehabisan ruang disk. Tetapkan batas ukuran berkas maksimum yang sesuai dengan penyimpanan yang tersedia. Aktifkan rollover berkas untuk membuat beberapa berkas, alih-alih mengembangkan satu berkas tanpa batas. Pantau ruang disk selama eksekusi pelacakan.
Penyimpanan tabel versus penyimpanan berkas memiliki perbedaan kinerja yang signifikan. Penyimpanan berkas menawarkan kinerja yang lebih baik selama eksekusi jejak karena melewati mesin penyimpanan. Penyimpanan tabel memungkinkan kueri T-SQL terhadap data jejak tetapi menambah overhead penulisan. Pilih jenis penyimpanan berdasarkan kebutuhan analisis Anda.
9.2 Praktik Keamanan Terbaik
Manajemen izin mengontrol siapa yang dapat membuat dan menjalankan pelacakan. Berikan izin ALTER TRACE hanya kepada pengguna tepercaya yang membutuhkan kemampuan pelacakan. Anggota peran sysadmin memiliki akses pelacakan tanpa batas. Tinjau dan audit izin pelacakan secara berkala.
Perlindungan data sensitif memerlukan konfigurasi pelacakan yang cermat. Hindari pengambilan teks kueri lengkap saat menangani data sensitif. Pertimbangkan untuk memfilter atau mengenkripsi keluaran pelacakan yang berisi informasi rahasia. Simpan berkas pelacakan di lokasi yang aman dengan kontrol akses yang sesuai.
Keamanan berkas jejak mencegah akses tidak sah ke data yang ditangkap. Atur izin berkas untuk membatasi akses ke berkas jejak. Enkripsikan berkas jejak jika berisi informasi sensitif. Hapus berkas jejak setelah analisis selesai untuk meminimalkan risiko paparan.
9.3 Pertimbangan Lingkungan Produksi
9.3.1 Kapan Menggunakan Profiler dalam Produksi
Penilaian risiko menentukan kapan SQL Server Profiler cocok untuk penggunaan produksi. Profiler memperkenalkan overhead yang terukur dan meningkat seiring dengan cakupan pelacakan. Evaluasi apakah nilai diagnostik membenarkan dampak kinerja sebelum menjalankan pelacakan produksi.
Konfigurasi berdampak minimal memungkinkan pelacakan produksi yang lebih aman. Gunakan filter yang sangat selektif untuk hanya menangkap peristiwa penting. Tetapkan ambang batas Durasi untuk mengabaikan kueri yang dieksekusi cepat. Batasi durasi pelacakan ke periode singkat selama sesi pemecahan masalah. Konfigurasikan pelacakan sisi server untuk mengurangi overhead klien.
9.3.2 Alternatif untuk Pemantauan Produksi
Extended Events menyediakan overhead yang lebih rendah untuk pemantauan produksi. Teknologi modern ini menawarkan kinerja dan fleksibilitas yang lebih baik dibandingkan SQL Server Profiler. Migrasikan solusi pemantauan ke Extended Events untuk penggunaan produksi jangka panjang.
Query Store secara otomatis menangkap data performa kueri tanpa konfigurasi pelacakan manual. Aktifkan Query Store pada basis data produksi untuk melacak statistik eksekusi kueri dari waktu ke waktu. Query Store menyediakan sebagian besar kemampuan pemantauan performa tanpa beban tambahan dari pelacakan.
Tampilan Manajemen Dinamis menawarkan pemantauan ringan untuk skenario tertentu. DMV menyediakan informasi status terkini tanpa merekam peristiwa historis. Lakukan kueri DMV secara berkala untuk memantau kesehatan server tanpa beban pelacakan berkelanjutan.
9.4 Praktik Terbaik Manajemen Jejak
Konvensi penamaan memastikan berkas jejak dapat diidentifikasi dan terorganisir. Sertakan tanggal, waktu, nama server, dan tujuan dalam nama berkas jejak. Gunakan pola penamaan yang konsisten di seluruh jejak untuk memudahkan pengelolaan dan analisis.
Dokumentasi mencatat konfigurasi dan tujuan pelacakan. Dokumentasikan peristiwa yang Anda rekam, alasan Anda membuat pelacakan, dan apa yang Anda pelajari dari analisis. Simpan log pelacakan yang dijalankan pada sistem produksi untuk tujuan kepatuhan dan pemecahan masalah.
Kebijakan retensi mencegah akumulasi berkas jejak yang berlebihan. Tentukan lamanya berkas jejak harus disimpan berdasarkan kebutuhan bisnis dan kapasitas penyimpanan. Otomatiskan penghapusan berkas jejak lama untuk mengosongkan ruang disk. Arsipkan jejak penting ke penyimpanan jangka panjang sebelum dihapus.
9.5 Kesalahan Umum yang Harus Dihindari
Pelacakan berlebihan menyebabkan beban kinerja yang berlebihan dan menghasilkan volume data yang tidak terkendali. Hindari menangkap semua kejadian tanpa filter. Mulailah dengan pelacakan yang sempit dan terfokus, dan perluas cakupan hanya jika diperlukan. Lebih banyak data tidak selalu lebih baik untuk pemecahan masalah yang efektif.
Lupa menghentikan jejak akan membuang-buang sumber daya dan memenuhi ruang disk. Selalu hentikan jejak setelah pemantauan selesai. Tetapkan batas durasi jejak atau ukuran berkas maksimum untuk mencegah jejak yang tidak terkendali. Pantau jejak yang berjalan secara berkala dan hentikan jejak yang tidak aktif atau tidak diperlukan.
Mengabaikan optimasi filter akan menyebabkan kinerja yang buruk dan analisis yang sulit. Luangkan waktu untuk mengkonfigurasi filter yang efektif sebelum memulai penelusuran. Uji filter di lingkungan pengembangan untuk memverifikasi bahwa filter tersebut menangkap data yang diharapkan. Tinjau dan perbaiki filter berdasarkan hasil yang diperoleh.
10. Alternatif untuk SQL Server Profiler pada tahun 2025
10.1 Acara Lanjutan: Penggantian Modern
10.1.1 Apa itu Extended Events?
Acara yang Diperpanjang mewakili SQL ServerArsitektur penanganan acara modern. Microsoft merancang sistem ini secara khusus untuk mengatasi SQL Server Keterbatasan Profiler termasuk overhead kinerja dan fleksibilitas konfigurasi. Extended Events menyediakan kemampuan pemantauan yang komprehensif dengan konsumsi sumber daya yang jauh lebih rendah.
Arsitektur dan manfaatnya membedakan Extended Events dari teknologi pelacakan yang lebih lama. Mesin event terintegrasi secara mendalam ke dalam SQL ServerArsitektur intinya, menangkap peristiwa dengan overhead minimal. Buffering peristiwa asinkron mencegah pemantauan memblokir operasi basis data. Opsi penargetan yang fleksibel memungkinkan konfigurasi output yang beragam.
Keunggulan performa menjadikan Extended Events ideal untuk pemantauan produksi. Benchmark menunjukkan bahwa Extended Events menghasilkan overhead 50-90% lebih rendah dibandingkan dengan model serupa. SQL Server Jejak profiler. Arsitekturnya lebih skalabel dengan volume peristiwa tinggi dan mendukung lebih banyak sesi pemantauan bersamaan.
10.1.2 Migrasi dari Profiler ke Extended Events
Pemetaan acara menerjemahkan SQL Server Peristiwa Profiler ke peristiwa Extended Events yang setara. Sebagian besar peristiwa Profiler memiliki peristiwa Extended Events yang sesuai. Microsoft menyediakan dokumentasi yang memetakan peristiwa umum antara kedua sistem tersebut.
Pembuatan sesi di Extended Events memerlukan pembelajaran sintaksis dan konsep baru. Tentukan sesi acara menggunakan pernyataan T-SQL CREATE EVENT SESSION atau antarmuka grafis Extended Events di Management Studio. Sesi menentukan acara mana yang akan direkam, data apa yang akan dikumpulkan, dan di mana hasilnya akan disimpan.
10.1.3 Alat dan Antarmuka Acara yang Diperluas
Antarmuka Acara SSMS Extended menyediakan manajemen sesi grafis. Akses Acara Extended melalui folder Manajemen di Object Explorer. Buat, ubah, dan pantau sesi acara melalui antarmuka. Lihat data yang direkam dalam format grafis, termasuk kisi dan bagan.
Manajemen sesi T-SQL memungkinkan kontrol Extended Events terprogram. Tulis pernyataan CREATE EVENT SESSION untuk mendefinisikan sesi dalam kode. Gunakan ALTER EVENT SESSION untuk mengubah sesi yang sedang berjalan. Hapus sesi dengan DROP EVENT SESSION. Pendekatan ini memfasilitasi solusi pemantauan otomatis.
10.2 SQL Server Penyimpanan Kueri
Query Store secara otomatis merekam data performa kueri untuk database yang mengaktifkannya. Fitur ini melacak rencana kueri, statistik eksekusi, dan metrik performa dari waktu ke waktu tanpa konfigurasi pelacakan manual. Query Store menyimpan data historis yang memungkinkan analisis tren dan deteksi regresi.
Pemantauan kinerja kueri secara real-time melalui Query Store mengungkap perilaku sistem saat ini. Lihat kueri yang baru saja dieksekusi, rencana eksekusinya, dan konsumsi sumber daya. Identifikasi kueri dengan durasi yang meningkat atau rencana eksekusi yang berubah yang mungkin mengindikasikan masalah.
Analisis kueri historis memungkinkan perbandingan lintas periode waktu. Penyimpanan Kueri menyimpan data kinerja untuk periode retensi yang dapat dikonfigurasi. Bandingkan kinerja saat ini dengan baseline historis untuk mengidentifikasi regresi. Analisis tren kinerja untuk memprediksi kebutuhan kapasitas di masa mendatang.
Gunakan Query Store saat Anda membutuhkan pemantauan kinerja otomatis yang selalu aktif. Aktifkan Query Store di database produksi untuk terus melacak perilaku kueri. Query Store melengkapi pemecahan masalah berbasis pelacakan dengan menyediakan konteks historis untuk masalah kinerja.
10.3 Tampilan Manajemen Dinamis (DMV)
Pemantauan ringan melalui DMV memberikan informasi kondisi terkini tanpa merekam peristiwa historis. DMV mengekspos data internal SQL Server Statistik dan metadata melalui tampilan yang dapat dikueri. Kueri DMV menggunakan pernyataan SELECT T-SQL standar.
Kueri DMV umum untuk pemantauan kinerja meliputi sys.dm_exec_query_stats untuk statistik kinerja kueri, sys.dm_exec_requests untuk permintaan yang sedang dieksekusi, dan sys.dm_os_wait_stats untuk statistik tunggu. Tampilan ini memberikan wawasan terkini tentang kesehatan dan aktivitas server.
DMV melengkapi pemantauan berbasis jejak dengan menyediakan metrik waktu nyata. Gunakan DMV untuk pemeriksaan kesehatan cepat dan analisis kondisi terkini. Gabungkan kueri DMV dengan data jejak untuk pendekatan pemecahan masalah yang komprehensif.
10.4 Alat Pemantauan Pihak Ketiga
Alternatif komersial menawarkan kemampuan pemantauan yang lebih baik di luar SQL ServerAlat bawaan. Produk dari vendor seperti SolarWinds, Redgate, dan Quest menyediakan fitur pemantauan, peringatan, dan analisis yang komprehensif. Alat-alat ini sering kali menggabungkan berbagai sumber data termasuk jejak, DMV, dan penghitung kinerja.
Perbandingan fitur menunjukkan keunggulan berbagai pendekatan pemantauan. Alat pihak ketiga menyediakan antarmuka pengguna yang unggul, peringatan otomatis, dan tren historis. SQL ServerFitur bawaan yang ditawarkan tidak memerlukan biaya tambahan dan menawarkan integrasi yang lebih mendalam. Evaluasi fitur berdasarkan kebutuhan dan anggaran spesifik Anda.
10.5 Memilih Alat yang Tepat untuk Kebutuhan Anda
Matriks keputusan membantu memilih alat pemantauan yang tepat. Untuk pemecahan masalah ad-hoc, SQL Server Profiler tetap mudah diakses dan efektif. Untuk pemantauan produksi, Extended Events atau Query Store memberikan kinerja yang lebih baik. Untuk pemantauan perusahaan yang komprehensif, solusi pihak ketiga menawarkan fitur yang paling lengkap.
Kriteria pemilihan alat meliputi overhead kinerja, kemudahan penggunaan, persyaratan retensi data, dan kendala anggaran. Pertimbangkan keahlian tim Anda saat memilih alat. Alat yang familiar memungkinkan pemecahan masalah yang lebih cepat, meskipun alternatif yang lebih baru menawarkan fitur yang lebih baik.
Gabungkan beberapa alat untuk strategi pemantauan yang komprehensif. Gunakan Query Store untuk pelacakan kinerja berkelanjutan, Extended Events untuk investigasi masalah spesifik, dan DMV untuk pemeriksaan kesehatan secara real-time. Pendekatan berlapis ini memberikan pemantauan yang andal tanpa overhead yang berlebihan.
11. Penyelesaian masalah SQL Server Masalah Profiler
11.1 Masalah Koneksi Umum
Kegagalan otentikasi mencegah SQL Server Profiler mencegah koneksi ke server target. Verifikasi bahwa Anda menggunakan kredensial yang benar untuk metode autentikasi yang dipilih. Autentikasi Windows memerlukan akun Windows Anda memiliki kredensial yang sesuai. SQL Server izin. SQL Server Autentikasi memerlukan kredensial login SQL yang valid.
Masalah konektivitas jaringan bermanifestasi sebagai kesalahan batas waktu atau kegagalan koneksi. Verifikasi SQL Server mengizinkan koneksi jarak jauh dalam konfigurasinya. Periksa pengaturan firewall untuk mengizinkan lalu lintas di SQL ServerPort 's. Uji konektivitas dasar menggunakan ping dan telnet sebelum memecahkan masalah khusus Profiler.
11.2 Masalah Kinerja dengan Profiler
Eksekusi pelacakan yang lambat menunjukkan overhead yang berlebihan dari konfigurasi pelacakan. Tinjau peristiwa yang dipilih dan hilangkan yang tidak perlu. Tambahkan filter untuk mengurangi volume peristiwa yang ditangkap. Pertimbangkan untuk menggunakan pelacakan sisi server untuk mengurangi beban pemrosesan sisi klien.
Konsumsi sumber daya yang tinggi mempengaruhi keduanya SQL Server dan klien Profiler. Pantau CPU dan memori server selama eksekusi pelacakan. Jika sumber daya server terbatas, tingkatkan selektivitas filter atau kurangi durasi penangkapan. Masalah sumber daya klien mengharuskan penutupan aplikasi lain atau peningkatan perangkat keras klien.
11.3 Masalah File dan Tabel Jejak
File jejak yang rusak mencegah pembukaan di SQL Server Profiler. Korupsi biasanya terjadi akibat penghentian jejak yang tidak semestinya atau kesalahan disk. Coba buka berkas di editor teks untuk memastikan berkas tidak sepenuhnya rusak. Terkadang sebagian data dapat dipulihkan dengan mengimpornya ke dalam tabel menggunakan fn_trace_gettable.
Masalah akses tabel terjadi saat mencoba memuat jejak dari SQL Server tabel. Pastikan Anda memiliki izin SELECT pada tabel jejak. Pastikan tabel tersebut belum dihapus atau diganti namanya. Pastikan Anda terhubung ke server dan basis data yang benar yang berisi tabel jejak.
11.4 Peristiwa yang Hilang atau Data yang Tidak Lengkap
Kesalahan konfigurasi filter menyebabkan pelacakan melewatkan peristiwa yang diharapkan. Tinjau kriteria filter dengan cermat untuk memastikan kriteria tersebut tidak mengecualikan peristiwa yang diinginkan. Uji filter dengan menjalankan pelacakan singkat dan verifikasi data yang ditangkap sesuai dengan harapan. Hapus filter untuk sementara untuk menentukan apakah filter tersebut menyebabkan masalah.
Buffer overflow terjadi ketika SQL Server Tidak dapat menulis data jejak dengan cukup cepat untuk mengimbangi pembuatan peristiwa. Hal ini biasanya terjadi dengan jejak yang tidak difilter selama aktivitas tinggi. Gejalanya meliputi peristiwa yang hilang atau peringatan "Peristiwa tidak tertangkap". Atasi dengan menambahkan filter untuk mengurangi volume peristiwa atau meningkatkan kinerja I/O disk lokasi berkas jejak.
11.5 Profiler Crash dan Error
Pesan kesalahan umum antara lain "Tidak dapat membuat jejak" yang menunjukkan masalah izin atau keterbatasan sumber daya. Pesan "Jejak dihentikan" menunjukkan kegagalan jejak sisi server, kemungkinan karena disk penuh. Kesalahan "Definisi jejak tidak valid" menunjukkan masalah konfigurasi.
Strategi penyelesaian bergantung pada kesalahan spesifik. Kesalahan izin memerlukan pemberian izin ALTER TRACE kepada pengguna. Kesalahan sumber daya memerlukan ruang disk atau memori yang dibebaskan. Kesalahan konfigurasi memerlukan peninjauan dan koreksi pengaturan pelacakan. Mulai ulang SQL Server Profiler jika menjadi tidak responsif.
12. Praktis SQL Server Skenario dan Contoh Profiler
12.1 Skenario 1: Mengidentifikasi Kueri Paling Lambat di Database Anda
Panduan ini memperagakan cara menangkap dan menganalisis kueri yang lambat.
Konfigurasikan jejak dengan mengikuti langkah-langkah berikut:
- Launch SQL Server Gunakan profiler untuk terhubung ke server target Anda.
- Klik File -> Jejak Baru.
- Masukkan “Analisis Kueri Lambat” di Nama jejak lapangan.
- Pilih TSQL dari Gunakan template dropdown.
- Klik Pemilihan Acara Tab.
- Klik Filter Kolom.
- Pilih Durasi dan masukkan 1000000 di Lebih besar dari atau sama.
- Pilih Nama Basis Data dan masukkan nama database Anda di Seperti.
- Klik OK untuk menutup filter.
- Aktifkan Simpan ke file dan tentukan jalur berkas.
- Klik Run untuk mulai mengambil gambar.
Jalankan pelacakan selama jam sibuk setidaknya selama 30 menit untuk mendapatkan gambaran beban kerja yang representatif. Hentikan pelacakan setelah pengumpulan data mencukupi.
Analisis hasil dengan mengikuti proses ini:
- klik Durasi tajuk kolom untuk diurutkan berdasarkan waktu eksekusi.
- Identifikasi 10 kueri yang paling lama berjalan.
- Untuk setiap pertanyaan, periksa Data Teks kolom.
- Salin teks pertanyaan dan tempel ke Management Studio.
- penggunaan Tampilkan Perkiraan Rencana Eksekusi untuk menganalisis kueri.
- Cari pemindaian tabel, indeks yang hilang, atau gabungan yang tidak efisien.
- ULASAN CPU, Membaca, dan Menulis kolom untuk pola konsumsi sumber daya.
12.2 Skenario 2: Mendebug Masalah Kebuntuan
Contoh ini menunjukkan cara menangkap dan menganalisis kebuntuan.
Konfigurasikan pemantauan kebuntuan menggunakan langkah-langkah berikut:
- Buat jejak baru bernama “Investigasi Kebuntuan”.
- Klik Pemilihan Acara Tab.
- Klik Tampilkan semua acara.
- Lihat lebih lanjut Kunci kategori.
- Pilih Kunci:Jalan buntu.
- Pilih Kunci: Rantai Kunci Mati.
- Lihat lebih lanjut Kesalahan dan Peringatan kategori.
- Pilih Laporan proses yang diblokir.
- Memastikan Data Teks kolom dipilih.
- Klik Run untuk memulai pemantauan.
Bila kebuntuan terjadi selama eksekusi jejak, peristiwa Lock:Deadlock akan muncul di kisi jejak.
Interpretasikan informasi kebuntuan dengan mengikuti langkah-langkah berikut:
- klik Kunci:Jalan buntu baris acara.
- Lihat Data Teks kolom di panel bawah.
- Salin konten XML dari TextData.
- Buka Management Studio dan buat jendela kueri baru.
- Tempel XML ke jendela kueri.
- Simpan file dengan ekstensi .xdl.
- Buka file .xdl di Management Studio untuk melihat grafik kebuntuan.
- Grafik menunjukkan proses yang terlibat, sumber daya yang terkunci, dan korban yang dipilih.
- Tinjau pertanyaan dari kedua proses untuk memahami konfliknya.
Langkah-langkah resolusi biasanya melibatkan penataan ulang operasi dalam kode aplikasi untuk mengakses sumber daya dalam urutan yang konsisten, mengurangi ruang lingkup transaksi, atau menerapkan petunjuk penguncian yang tepat.
12.3 Skenario 3: Melacak Semua Permintaan dari Aplikasi Tertentu
Skenario ini menunjukkan pemantauan kueri spesifik aplikasi.
Konfigurasikan pelacakan khusus aplikasi menggunakan langkah-langkah berikut:
- Buat jejak baru bernama “Pelacakan Kueri Aplikasi”.
- Pilih Standar Template.
- Klik Pemilihan Acara Tab.
- Klik Filter Kolom.
- Pilih NamaAplikasi.
- Masukkan nama aplikasi Anda di Seperti lapangan.
- Jika aplikasi Anda menggunakan penggabungan koneksi, Anda mungkin memerlukan pencocokan wildcard.
- Klik OK untuk menerapkan filter.
- Aktifkan Simpan ke tabel untuk memudahkan penelusuran.
- Klik Run untuk mulai mengambil gambar.
Analisis pola kueri mengungkapkan bagaimana aplikasi Anda berinteraksi dengan SQL Server:
- Setelah mengumpulkan data, hentikan penelusuran.
- Buka Management Studio dan hubungkan ke server dengan tabel jejak.
- Menanyakan tabel jejak untuk menganalisis pola.
- Hitung kueri berdasarkan jenis untuk melihat campuran operasi.
- Identifikasi kueri yang paling sering dieksekusi.
- Cari kueri yang dapat di-cache atau dioptimalkan.
- Periksa pertanyaan identik yang berulang yang mengindikasikan hilangnya penggabungan koneksi.
12.4 Skenario 4: Audit Akses Data untuk Kepatuhan
Contoh ini menunjukkan pembuatan jejak audit keamanan.
Konfigurasikan audit keamanan dengan mengikuti langkah-langkah berikut:
- Buat jejak baru bernama “Jejak Audit Keamanan”.
- Klik Pemilihan Acara Tab.
- Klik Tampilkan semua acara.
- Lihat lebih lanjut Audit Keamanan kategori.
- Pilih Login Audit, Keluar dari Audit, Login Audit Gagal.
- Pilih Akses Objek Basis Data Audit.
- Lihat lebih lanjut TSQL kategori.
- Pilih SQL:BatchSelesai.
- Klik Filter Kolom.
- Saring berdasarkan Nama Objek untuk memantau tabel sensitif tertentu.
- Aktifkan Simpan ke tabel untuk retensi jangka panjang.
- Aktifkan pelacakan sisi server untuk operasi tanpa pengawasan.
- Klik Run untuk memulai audit.
Hasilkan laporan audit dengan menanyakan tabel jejak:
- Buat kueri yang meringkas akses berdasarkan pengguna dan periode waktu.
- Identifikasi pola akses yang tidak biasa atau aktivitas setelah jam kerja.
- Dokumentasikan upaya login yang gagal untuk tinjauan keamanan.
- Ekspor data audit ke sistem pelaporan untuk dokumentasi kepatuhan.
- Arsipkan jejak audit yang telah diselesaikan sesuai dengan kebijakan penyimpanan.
12.5 Skenario 5: Menangkap Beban Kerja untuk Pengujian Kinerja
Skenario ini menunjukkan penangkapan beban kerja untuk tujuan pengujian.
Buat jejak yang siap diputar ulang menggunakan langkah-langkah berikut:
- Buat jejak baru bernama “Workload Capture”.
- Pilih TSQL_Putar Ulang dari menu tarik-turun templat.
- Templat ini menyertakan semua peristiwa dan kolom yang diperlukan untuk pemutaran ulang.
- Klik Pemilihan Acara Tab.
- Terapkan filter jika Anda ingin menangkap segmen beban kerja tertentu.
- Aktifkan Simpan ke file.
- Tentukan jalur berkas dengan ruang disk yang memadai.
- Tetapkan batasan ukuran file yang sesuai dan aktifkan rollover.
- Klik Run untuk mulai mengambil gambar.
Perekaman selama operasi bisnis representatif. Untuk perekaman beban kerja yang komprehensif, jalankan pelacakan selama beberapa jam yang mencakup berbagai pola aktivitas. Hentikan pelacakan setelah mengumpulkan data yang memadai.
Analisis beban kerja mengungkapkan pola perilaku sistem:
- Buka file jejak yang ditangkap di SQL Server Profiler.
- Tinjau distribusi acara berdasarkan jenis dan waktu.
- Hitung metrik konsumsi sumber daya agregat.
- Mengidentifikasi periode aktivitas puncak dan hambatan sumber daya.
- Gunakan jejak untuk analisis Database Engine Tuning Advisor.
- Putar ulang jejak terhadap sistem pengujian untuk memvalidasi perubahan.
13. Deteksi Korupsi Basis Data dengan SQL Server Profil
13.1 Menggunakan SQL Server Profiler untuk Tanda-tanda Peringatan Korupsi Dini
Kerusakan basis data merupakan salah satu ancaman paling serius terhadap integritas data dan keandalan sistem. Sementara itu, SQL Server Profiler bukanlah alat deteksi korupsi khusus, ia dapat menangkap tanda-tanda peringatan kritis yang mengindikasikan potensi masalah korupsi yang memerlukan investigasi segera.
13.2 Peristiwa Kesalahan Kritis yang Menunjukkan Potensi Korupsi
- Kesalahan Tingkat Keparahan 24 (823, 824, 825): Kegagalan Perangkat Keras dan Media.
- Kesalahan 605: Upaya Pengambilan Halaman Gagal
- Kesalahan 8928 dan 8929: Korupsi Objek
13.3 Perilaku dan Pola Peringatan yang Mencurigakan pada Basis Data
- Batas Waktu Kueri Berulang pada Objek Tertentu
- Pelanggaran Akses dan Kerusakan Aplikasi
- Pengelompokan Kesalahan Tidak Biasa
13.4 Menjalankan DBCC CHECKDB Berdasarkan Temuan Profiler
If SQL Server Profiler menemukan kerusakan yang mencurigakan, Anda dapat menggunakan DBCC CHECKDB untuk melakukan pemeriksaan menyeluruh terhadap database. Kemudian, lakukan perbaikan jika kerusakan terkonfirmasi. Kami telah menulis panduan lengkap tentang cara melakukan tugas-tugas ini.
Jika DBCC CHECKDB gagal memperbaiki database, kerusakannya parah. Dalam kasus seperti ini, Anda dapat menggunakan alat pemulihan SQL pihak ketiga.
14. Tanya Jawab
T: Apakah SQL Server Profiler masih didukung di SQL Server 2022?
A: Ya, SQL Server Profiler masih disertakan dalam SQL Server 2022 dan SQL Server Studio Manajemen, meskipun sudah tidak digunakan lagi sejak SQL Server 2016. Microsoft terus mengirimkan alat ini dengan versi terbaru, tetapi merekomendasikan migrasi ke Extended Events untuk implementasi pemantauan baru. Alat ini tetap berfungsi dan banyak digunakan untuk pemecahan masalah dan analisis ad-hoc.
T: Apa perbedaan antara SQL Server Profiler dan SQL Trace?
A: SQL Server Profiler adalah alat antarmuka pengguna grafis yang terhubung ke mesin SQL Trace yang berjalan di dalam SQL ServerSQL Trace adalah teknologi dasar yang merekam peristiwa. Anda dapat membuat trace menggunakan antarmuka Profiler atau langsung melalui prosedur tersimpan T-SQL seperti sp_trace_create. Profiler menyediakan konfigurasi yang lebih mudah, sementara trace T-SQL menawarkan lebih banyak kemungkinan otomatisasi.
T: Berapa banyak overhead kinerja yang dilakukan SQL Server Profiler menambahkan?
J: Dampak kinerja bervariasi berdasarkan konfigurasi jejak. Jejak yang difilter dengan baik dan hanya menangkap peristiwa tertentu dapat menambah overhead 1-5%. Jejak yang dikonfigurasi dengan buruk tanpa filter dapat menambah overhead 20-50% atau lebih, terutama pada sistem yang sibuk. Jejak sisi server memiliki dampak yang lebih rendah daripada jejak sisi klien. Selalu gunakan filter untuk meminimalkan volume peristiwa dan uji jejak di lingkungan non-produksi terlebih dahulu.
T: Bisakah saya berlari? SQL Server Profiler di server produksi?
A: Kamu bisa lari SQL Server Profiler di server produksi, tetapi tetap berhati-hati. Gunakan filter yang sangat selektif, batasi durasi pelacakan, dan utamakan pelacakan sisi server untuk meminimalkan dampak. Jalankan pelacakan produksi selama periode aktivitas rendah jika memungkinkan. Untuk pemantauan produksi berkelanjutan, pertimbangkan Extended Events atau Query Store, karena keduanya menawarkan overhead yang lebih rendah.
T: Izin apa saja yang saya perlukan untuk menggunakannya? SQL Server Profiler?
J: Anda memerlukan izin ALTER TRACE untuk membuat dan menjalankan trace. Anggota peran server tetap sysadmin secara otomatis memiliki izin ini. Untuk pengguna non-sysadmin, berikan izin ALTER TRACE secara eksplisit. Selain itu, Anda memerlukan izin yang sesuai untuk menyimpan data trace ke dalam berkas atau tabel berdasarkan konfigurasi Anda.
T: Mengapa saya tidak dapat melihat semua kejadian dalam jejak saya?
A: Peristiwa yang hilang biasanya disebabkan oleh filter yang terlalu ketat atau luapan buffer. Tinjau konfigurasi filter Anda untuk memastikan filter tersebut tidak mengecualikan peristiwa yang diinginkan. Luapan buffer terjadi ketika SQL Server Tidak dapat menulis peristiwa dengan cukup cepat, biasanya dengan jejak yang tidak terfilter pada sistem yang sibuk. Tambahkan filter untuk mengurangi volume peristiwa atau meningkatkan kinerja I/O disk. Periksa pesan kesalahan yang menunjukkan peristiwa tidak direkam.
T: Bagaimana cara saya menangkap informasi kebuntuan dengan SQL Server Profiler?
A: Buat jejak yang menyertakan peristiwa Lock:Deadlock dan Lock:Deadlock Chain dari kategori Locks. Pastikan kolom TextData dipilih, karena berisi XML grafik deadlock. Ketika deadlock terjadi, salin XML dari kolom TextData, simpan dengan ekstensi .xdl, dan buka di SQL Server Management Studio untuk melihat diagram kebuntuan grafis.
T: Apa perbedaan antara menyimpan jejak ke file dan tabel?
A: File menawarkan kinerja yang lebih baik selama eksekusi jejak karena mereka melewati SQL Server Mesin penyimpanan. Jejak berkas menulis data langsung ke disk dengan overhead minimal. Jejak tabel menulis melalui mesin penyimpanan, menambahkan overhead tetapi memungkinkan kueri T-SQL langsung terhadap data jejak. Gunakan berkas untuk skenario dan tabel yang sensitif terhadap kinerja ketika Anda perlu mengkueri data segera selama atau setelah pengambilan.
T: Bisakah saya mengotomatiskan SQL Server Pengumpulan jejak profiler?
A: Ya, otomatisasi pengumpulan jejak menggunakan jejak sisi server yang dibuat dengan prosedur tersimpan T-SQL. Tulis skrip menggunakan sp_trace_create dan prosedur terkait, lalu jadwalkan melalui SQL Server Pekerjaan agen. Pendekatan ini memungkinkan pengumpulan jejak tanpa pengawasan pada jadwal yang ditentukan. Skrip PowerShell menyediakan opsi otomatisasi lain untuk skenario yang lebih kompleks.
T: Berapa lama saya harus menjalankan penelusuran?
J: Durasi pelacakan bergantung pada tujuan Anda. Untuk memecahkan masalah tertentu, jalankan pelacakan sambil mereproduksi masalah, biasanya 5-30 menit. Untuk analisis kinerja, catat setidaknya satu jam selama periode aktivitas puncak. Untuk analisis beban kerja atau perencanaan kapasitas, catat beberapa jam dalam periode waktu yang berbeda. Selalu hentikan pelacakan setelah pemantauan selesai untuk mengosongkan sumber daya.
T: Apa yang harus saya lakukan jika berkas jejak saya terlalu besar?
A: Aktifkan rollover file di properti trace untuk membuat beberapa file kecil, alih-alih satu file besar. Atur ukuran file maksimum yang sesuai dengan ruang disk dan kebutuhan analisis Anda. Gunakan filter untuk mengurangi volume kejadian yang terekam. Untuk trace besar, pertimbangkan untuk menganalisis data dalam segmen daripada memuat seluruh trace sekaligus. Arsipkan atau hapus file trace lama secara berkala untuk mengelola ruang disk.
T: Bagaimana cara menemukan kueri yang menyebabkan penggunaan CPU tinggi?
A: Buat jejak dengan peristiwa SQL:BatchCompleted dan RPC:Completed. Sertakan kolom CPU, Duration, dan TextData. Filter berdasarkan Duration untuk hanya menangkap kueri yang melebihi ambang batas seperti 1000 milidetik. Setelah mengumpulkan data, urutkan berdasarkan kolom CPU dalam urutan menurun. Kueri di bagian atas mengonsumsi waktu prosesor paling banyak. Periksa kueri ini untuk peluang pengoptimalan seperti indeks yang hilang atau logika yang tidak efisien.
Q: Bisa SQL Server Profiler menangkap rencana eksekusi kueri?
A: SQL Server Profiler dapat menangkap informasi rencana eksekusi melalui peristiwa Showplan XML dalam kategori Performa. Pilih peristiwa Showplan XML atau Profil Statistik Showplan XML untuk menangkap rencana eksekusi yang lengkap. Kolom TextData berisi data rencana XML. Namun, untuk analisis rencana eksekusi rutin, SQL Server Fitur rencana eksekusi grafis Management Studio atau Query Store menyediakan alternatif yang lebih mudah.
T: Template apa yang paling baik digunakan untuk memulai pemantauan umum?
A: Templat Standar menyediakan titik awal yang baik untuk pemantauan umum. Templat ini mencakup peristiwa eksekusi kueri umum, panggilan prosedur tersimpan, dan pelacakan kesalahan dengan beban kerja yang seimbang. Untuk pemantauan dengan dampak lebih rendah yang berfokus pada kinerja kueri, gunakan templat TSQL. Sesuaikan templat berdasarkan kebutuhan spesifik Anda dengan menambahkan filter dan menyesuaikan pemilihan peristiwa setelah memahami dasar-dasarnya.
T: Bagaimana cara melacak hanya aplikasi atau pengguna tertentu?
A: Gunakan filter kolom untuk mengisolasi aplikasi atau pengguna tertentu. Untuk aplikasi, filter berdasarkan kolom ApplicationName menggunakan nama yang ditentukan dalam string koneksi Anda. Untuk pengguna, filter berdasarkan kolom LoginName dengan SQL Server Nama login atau akun Windows. Gabungkan beberapa filter untuk mempersempit fokus lebih lanjut, seperti memfilter berdasarkan NamaAplikasi dan NamaDatabase untuk memantau aktivitas satu aplikasi dalam basis data tertentu.
15. Kesimpulan dan Langkah Selanjutnya
15.1 Poin Penting
SQL Server Meskipun statusnya sudah usang, Profiler tetap menjadi alat yang berharga untuk pemecahan masalah basis data ad-hoc. Antarmuka yang sederhana dan penangkapan peristiwa yang komprehensif menjadikannya ideal untuk sesi diagnostik cepat ketika Anda membutuhkan hasil segera. Gunakan Profiler untuk memecahkan masalah spesifik, menganalisis perilaku aplikasi, dan audit keamanan.
Praktik terbaik meliputi penggunaan filter secara agresif untuk meminimalkan dampak kinerja, mengutamakan pelacakan sisi server untuk lingkungan produksi, dan membatasi durasi pelacakan hanya pada periode yang diperlukan. Pilih hanya peristiwa dan kolom penting untuk mengurangi overhead. Simpan pelacakan ke dalam file, bukan tabel, untuk kinerja yang lebih baik selama perekaman.
15.2 Bergerak Maju: Merangkul Alat-alat Modern
Transisi dari SQL Server Profiler ke Extended Events untuk solusi pemantauan jangka panjang. Meskipun Profiler tetap berfungsi, meluangkan waktu untuk mempelajari Extended Events memposisikan Anda untuk masa depan. SQL Server versi. Mulailah dengan sesi Extended Events sederhana yang mereplikasi jejak Profiler umum Anda.
Aktifkan Query Store pada basis data produksi untuk mendapatkan pemantauan kinerja otomatis tanpa konfigurasi pelacakan manual. Query Store menangkap rencana kueri dan statistik eksekusi secara terus menerus, menyediakan data dasar untuk analisis kinerja. Gabungkan Query Store dengan sesi Extended Events yang ditargetkan untuk pemantauan komprehensif.
15.3 Sumber Daya Tambahan
Sumber daya berikut akan membantu Anda memperdalam pengetahuan Anda SQL Server Pengetahuan profiler dan tetap mengikuti perkembangan praktik terbaik pemantauan:
Dokumentasi Resmi Microsoft
- SQL Server Dokumentasi Profiler – Referensi lengkap untuk acara, kolom, dan prosedur
- Prosedur Tersimpan Sistem Jejak SQL – Referensi T-SQL untuk pembuatan jejak sisi server
- Dokumentasi Acara yang Diperpanjang – Panduan migrasi dan pendekatan pemantauan modern
- Dokumentasi Penyimpanan Kueri – Referensi pelacakan kinerja kueri otomatis
- Alat Pemantauan dan Penyetelan Kinerja – Ikhtisar semua SQL Server pilihan pemantauan
Komunitas Sumber Daya
- SQL Server Pusat – Artikel, forum, dan skrip untuk profesional basis data
- Stack Overflow SQL Server Tag – Tanya Jawab Komunitas untuk pertanyaan pemecahan masalah tertentu
- Reddit r/SQLServer – Forum diskusi untuk SQL Server topik dan saran
- Forum SQLServerCentral.com – Diskusi komunitas aktif tentang pembuatan profil dan kinerja
- MSDN SQL Server Forum – Forum dukungan komunitas yang dihosting oleh Microsoft
Blog dan Artikel Teknis
- SQL Server Monitor Kinerja – Konten pemantauan dan pengoptimalan kinerja khusus
- Blog Brent Ozar Unlimited – Praktik terbaik penyetelan dan pemantauan kinerja
- SQLSkills.com – Tingkat Ahli SQL Server konten dari para pemimpin industri
- Microsoft SQL Server Blog – Pembaruan produk resmi dan pengumuman fitur
- Obrolan Sederhana – Praktis SQL Server tutorial dan studi kasus
Pelatihan dan Sertifikasi
- Microsoft Belajar – Modul pelatihan online gratis untuk SQL Server
- Microsoft Certified: Rekan Administrator Basis Data Azure – Jalur sertifikasi resmi
- Pluralsight SQL Server Kursus – Pelatihan video tentang pembuatan profil dan penyetelan kinerja
- Belajar LinkedIn SQL Server Pelatihan – Kursus pengembangan profesional
- Udemy SQL Server Kursus Kinerja – Pilihan pelatihan praktis
Buku-buku
- SQL Server Penyetelan Performa Kueri – Panduan optimasi performa yang komprehensif
- per SQL Server Internal – Selami lebih dalam SQL Server arsitektur
- SQL Server Rencana Eksekusi – Memahami optimasi kueri
- Pengindeksan Kinerja Ahli untuk SQL Server – Desain dan optimasi indeks
- SQL Server Pemecahan Masalah Tingkat Lanjut dan Penyetelan Kinerja – Teknik diagnostik tingkat lanjut
Alat dan Utilitas
- SQL Server Studio Manajemen – Antarmuka utama untuk SQL Server Profil
- Studio Data Azure – Alat basis data lintas platform modern
- sp_WhoIsActive – Prosedur penyimpanan pemantauan buatan komunitas yang populer
- SQL Sentry Plan Explorer – Alat analisis rencana eksekusi gratis
- DBForge Studio – Pihak ketiga SQL Server alat pengembangan dan administrasi
tentang Penulis
Yuan Sheng adalah administrator basis data senior (DBA) dengan lebih dari 10 tahun pengalaman di SQL Server lingkungan dan manajemen basis data perusahaan. Ia telah berhasil menyelesaikan ratusan skenario pemulihan basis data di berbagai organisasi jasa keuangan, layanan kesehatan, dan manufaktur.
Yuan mengkhususkan diri dalam SQL Server pemulihan basis data, solusi ketersediaan tinggidan optimasi kinerja. Pengalaman praktisnya yang luas mencakup pengelolaan basis data multi-terabyte, implementasi Grup Ketersediaan Selalu Aktifserta mengembangkan strategi pencadangan dan pemulihan otomatis untuk sistem bisnis yang sangat penting.
Melalui keahlian teknis dan pendekatan praktisnya, Yuan berfokus pada pembuatan panduan komprehensif yang membantu administrator basis data dan profesional TI memecahkan masalah kompleks SQL Server tantangan secara efisien. Dia selalu mengikuti perkembangan terbaru SQL Server rilis dan teknologi basis data Microsoft yang terus berkembang, secara berkala menguji skenario pemulihan untuk memastikan rekomendasinya mencerminkan praktik terbaik di dunia nyata.
Memiliki pertanyaan tentang SQL Server pemulihan atau butuh panduan pemecahan masalah basis data tambahan? Yuan menyambut masukan dan saran untuk meningkatkan sumber daya teknis ini.























