1. Pengantar SQL Server Monitor Kinerja
1.1 Apa SQL Server Monitor Kinerja?
SQL Server monitor kinerja adalah proses pelacakan, analisis, dan pengelolaan kinerja dan kesehatan Anda SQL Server basis data. Ini melibatkan pengumpulan dan interpretasi data tentang berbagai aspek sistem basis data Anda untuk memastikan kinerja optimal, mencegah masalah, dan menjaga kesehatan basis data.
Pemantauan kinerja mencakup pelacakan waktu eksekusi kueri, pemanfaatan sumber daya, kinerja indeks, pemblokiran dan kebuntuan, serta pola pertumbuhan basis data. Pengawasan berkelanjutan ini membantu administrator mengidentifikasi potensi masalah sebelum memengaruhi pengguna atau operasi bisnis.
1.2 Manfaat Utama Pemantauan Kinerja
Efektif SQL Server monitor kinerja memberikan beberapa keuntungan penting:
- Deteksi masalah proaktif: Mengidentifikasi dan mengatasi potensi masalah sebelum berdampak pada pengguna atau operasi bisnis
- Pengoptimalan kinerja: Tentukan hambatan dan inefisiensi untuk meningkatkan kinerja basis data secara keseluruhan
- Perencanaan kapasitas: Meramalkan kebutuhan sumber daya dan merencanakan pertumbuhan masa depan berdasarkan data historis
- Kepatuhan dan keamanan: Pastikan kepatuhan terhadap persyaratan peraturan dan mendeteksi aktivitas yang mencurigakan
1.3 Tantangan Kinerja Umum
Tanpa monitor kinerja basis data SQL yang tepat, organisasi menghadapi beberapa risiko:
- Waktu henti yang tidak terduga yang mengganggu operasi bisnis
- Performa aplikasi yang buruk memengaruhi pengalaman pengguna
- Kehilangan atau kerusakan data
- Pemanfaatan sumber daya yang tidak efisien menyebabkan biaya yang tidak perlu.
- Pengguna yang frustrasi dan potensi kehilangan pendapatan
Menurut studi IDC tahun 2023, 65% masalah kinerja basis data berasal dari praktik pemantauan atau pengoptimalan yang buruk.
2. Memahami Windows Performance Monitor (PerfMon)
2.1 Apa itu Windows Performance Monitor?
Windows Performance Monitor (PerfMon) adalah alat bawaan Windows yang memantau sumber daya sistem dan kinerja aplikasi. Untuk SQL Server administrator, PerfMon memberikan wawasan yang sangat berharga tentang sistem operasi dan SQL Server metrik, yang membuatnya penting untuk analisis kinerja yang komprehensif.
PerfMon mengukur statistik kinerja secara berkala dan menyimpan statistik tersebut dalam file untuk analisis selanjutnya. Administrator basis data dapat memilih interval waktu, format file, dan statistik mana yang akan dipantau. Alat ini tidak SQL Server-khususnya—administrator sistem menggunakannya untuk memantau Windows itu sendiri, Exchange, server file, dan aplikasi apa pun yang dapat mengalami kemacetan.
2.2 Meluncurkan Monitor Kinerja
Anda dapat meluncurkan Performance Monitor menggunakan beberapa metode:
- Klik Start, Jenis perfmon di kotak pencarian, klik “Performand Monitor” di hasil pencarian:
- Media Windows + R, Jenis perfmon, dan tekan Enter
- Navigasi ke Control Panel -> Sistem dan Keamanan -> Administrative Tools -> Monitor Kinerja
3. Esensi SQL Server Penghitung Kinerja
3.1 Penghitung Kinerja Memori
Penghitung memori sangat penting untuk pemantauan SQL Server kinerja karena menunjukkan apakah basis data Anda memiliki sumber daya memori yang cukup.
MByte yang tersedia
Penghitung ini menunjukkan jumlah memori fisik yang tersedia untuk alokasi. Jumlahnya harus tetap konstan dan idealnya tidak turun di bawah 4096 MB. Nilai yang rendah dapat mengindikasikan SQL Serverpengaturan memori maksimum dibiarkan pada default, atau tidakSQL Server aplikasi menghabiskan memori.
Halaman Harapan Hidup
Page Life Expectancy mengukur lamanya (dalam detik) sebuah halaman tetap berada di buffer pool tanpa direferensikan. Nilai normalnya adalah 300 detik atau lebih. Nilai yang lebih rendah menunjukkan tekanan memori dan pergantian buffer yang berlebihan, sehingga mengurangi efektivitas cache.
Rasio Hit Cache Buffer
Penghitung ini menunjukkan persentase permintaan data yang dijawab menggunakan cache buffer SQL (memori) alih-alih membaca dari disk. Umumnya mencapai atau melebihi 99%. Nilai yang lebih rendah menunjukkan bahwa SQL Server Membutuhkan lebih banyak memori atau masih dalam proses pemanasan setelah restart.
Hibah Memori Tertunda
Ini menunjukkan jumlah proses yang menunggu memori dalam SQL Server. Dalam kondisi normal, nilai ini harus selalu 0. Nilai yang lebih tinggi menunjukkan alokasi memori yang tidak mencukupi untuk SQL Server.
Memori Server Target vs Total Memori Server
Target Server Memory menunjukkan jumlah memori yang ideal. SQL Server ingin menggunakan. Total Memori Server menunjukkan apa SQL Server saat ini digunakan. Rasio antara nilai-nilai ini seharusnya sekitar 1. Perbedaan yang signifikan dapat mengindikasikan tekanan memori atau memori yang tersedia tidak mencukupi.
3.2 Penghitung Kinerja Prosesor
Penghitung CPU membantu mengidentifikasi hambatan prosesor dan memahami caranya SQL Server memanfaatkan sumber daya komputasi.
% Waktu Prosesor
Ini mengukur persentase waktu yang dihabiskan prosesor untuk mengeksekusi thread yang tidak menganggur. Pada server yang aktif, nilainya dapat melonjak hingga 100%, tetapi penggunaan berkelanjutan di atas 70-75% biasanya menunjukkan masalah kinerja bagi pengguna. Indeks yang hilang atau tidak memadai sering kali menyebabkan penggunaan CPU yang tinggi.
% Waktu Istimewa
Waktu prosesor terbagi menjadi pemrosesan mode Pengguna dan mode Istimewa (Kernel). Semua akses disk dan I/O terjadi dalam mode Kernel. Jika penghitung ini melebihi 25%, sistem kemungkinan melakukan terlalu banyak I/O. Nilai normal berkisar antara 5% dan 10%.
Panjang Antrean Prosesor
Penghitung ini menunjukkan utas yang menunggu sumber daya CPU. Nilainya selalu di atas 1 (kecuali selama SQL Server kompresi cadangan) menunjukkan tekanan CPU. Ini sering kali berarti aplikasi lain diinstal di SQL Server mesin, yang melanggar praktik terbaik.
Peralihan Konteks/detik
Ini mengukur seberapa sering prosesor beralih antar-utas. Peralihan konteks yang berlebihan dapat memengaruhi kinerja dan mengindikasikan beban sistem yang tinggi.
3.3 Penghitung Kinerja I/O Disk
Penghitung disk sangat penting untuk pemantauan kinerja SQL karena I/O disk sering kali menjadi hambatan utama dalam sistem basis data.
% Waktu Disk
Ini mencatat persentase waktu disk sibuk dengan operasi baca/tulis. Nilai yang konsisten di atas 85% menunjukkan adanya bottleneck I/O. Karena disk jauh lebih lambat daripada memori, mengurangi metrik ini akan meningkatkan kinerja.
Rata-rata Detik Disk/Baca dan Rata-rata Detik Disk/Tulis
Penghitung ini mengukur waktu rata-rata (dalam detik) untuk operasi baca dan tulis. Jika nilai rata-rata melebihi 10-20 ms, disk membutuhkan waktu terlalu lama untuk memproses data. Drive log transaksi membutuhkan kinerja tulis yang sangat cepat.
Panjang Antrean Disk
Ini menunjukkan permintaan baca/tulis ke disk yang belum terpenuhi. Nilai yang secara konsisten lebih tinggi dari 2 (atau 2 per disk untuk array RAID) menunjukkan disk tidak dapat memenuhi permintaan I/O.
Byte Disk/detik
Ini memantau laju transfer data ke/dari disk. Jika melebihi kapasitas terukur disk, data akan mulai menumpuk, yang ditandai dengan peningkatan Panjang Antrean Disk.
Transfer Disk/detik
Ini melacak jumlah operasi baca/tulis yang dilakukan pada disk. SQL Server Akses data biasanya acak, yang lebih lambat karena pergerakan kepala drive. Pastikan nilai ini tetap di bawah peringkat maksimum drive disk Anda (biasanya 100/detik untuk drive standar).
3.4 SQL Server Penghitung Spesifik
3.4.1 Penghitung Manajer Buffer
Monitor penghitung Buffer Manager SQL ServerOperasi buffer memori :
- Halaman dibaca/detik: Jumlah kumulatif pembacaan halaman basis data fisik
- Halaman ditulis/detik: Jumlah kumulatif penulisan halaman basis data fisik
- Penulisan malas/detik: Jumlah buffer yang ditulis oleh penulis malas untuk mengosongkan memori
- Halaman pos pemeriksaan/detik: Halaman yang dihapus oleh titik pemeriksaan atau operasi lain yang mengharuskan semua halaman kotor dihapus
3.4.2 Penghitung Statistik SQL
Penghitung ini memberikan wawasan tentang SQL Server pemrosesan kueri:
- Permintaan Batch/detik: Jumlah permintaan batch SQL yang diterima oleh server. Ini berfungsi sebagai tolok ukur aktivitas server.
- Kompilasi SQL/detik: Jumlah kompilasi SQL. Harus 10% atau kurang dari total Permintaan Batch/detik.
- Kompilasi Ulang SQL/detik: Jumlah kompilasi ulang SQL. Seharusnya juga 10% atau kurang dari total Permintaan Batch/detik.
3.4.3 Penghitung Statistik Umum
- Koneksi Pengguna: Jumlah pengguna yang terhubung ke sistem. Digunakan sebagai tolok ukur untuk melacak pertumbuhan koneksi dari waktu ke waktu.
- Proses yang Diblokir: Jumlah proses yang diblokir saat ini. Idealnya 0
3.4.4 Penghitung Manajer Memori
- Hibah Memori Tertunda: Jumlah total proses yang menunggu pemberian memori ruang kerja. Idealnya 0
4. Menyiapkan Monitor Kinerja untuk SQL Server(Windows Vista / Server 2008 dan yang lebih baru)
Pertama-tama, kita perlu membuat wadah untuk mengelola penghitung dengan lebih mudah:
- Untuk Windows Vista / Server 2008 dan versi yang lebih baru, Anda dapat membuat Set Pengumpul Data di bagian ini.
- Untuk Windows XP / Server 2003 dan versi sebelumnya, Anda dapat membuat Log Penghitung di bagian berikutnya.
4.1 Apa itu Set Pengumpul Data?
Set Pengumpul Data mengelola penghitung kinerja, data jejak peristiwa, dan informasi konfigurasi sistem ke dalam satu unit pengumpulan. Set ini memberikan fleksibilitas lebih dibandingkan log penghitung sederhana dan memungkinkan pengumpulan data terjadwal dan otomatis untuk pemantauan kinerja basis data SQL yang komprehensif.
4.2 Membuat Set Pengumpul Data
Buat Set Pengumpul Data khusus untuk memantau SQL Server penghitung kinerja:
- Buka Monitor Kinerja
- Lihat lebih lanjut Set Pengumpul Data
- Klik kanan Ditetapkan pengguna
- Pilih New -> Set Pengumpul Data
- Masukkan nama deskriptif (misalnya, “SQL Server “Metrik Kinerja”)
- Pilih Buat secara manual (Lanjutan)
- Klik Selanjutnya
- Memeriksa Buat log data -> Penghitung Kinerja
- Klik Selanjutnya
- Klik Add untuk memilih penghitung
- Add diinginkan SQL Server dan penghitung sistem.
- set Interval sampel
- Untuk pemantauan rutin, gunakan 1 menit (60 detik)
- Untuk pemecahan masalah aktif, gunakan 15-30 detik
- Hindari menjalankan perekaman frekuensi tinggi dalam jangka panjang, karena dapat memengaruhi kinerja dan menghasilkan data berlebihan.
- Klik Selanjutnya
- Pilih lokasi untuk menyimpan log
- Klik Finish, Kumpulan Pengumpul Data baru akan dibuat.
- Secara default, Set Pengumpul Data baru akan JANGAN akan dimulai secara otomatis. Anda perlu menemukannya di panel sebelah kiri, di bawah Performance -> Set Pengumpul Data -> Ditetapkan pengguna -> Kolektor Data Anda, klik kanan dan pilih Start
4.3 Penghitung Kunci untuk Ditambahkan
- Memori -> MBytes yang Tersedia
- Disk Fisik -> Rata-rata Disk detik/Baca (semua contoh kecuali _Total)
- Disk Fisik -> Rata-rata Disk detik/Tulis (semua contoh kecuali _Total)
- Disk Fisik -> Pembacaan Disk/detik (semua contoh kecuali _Total)
- Disk Fisik -> Penulisan Disk/detik (semua contoh kecuali _Total)
- Prosesor -> % Waktu Prosesor (semua contoh kecuali _Total)
- SQLServer: Statistik Umum -> Koneksi Pengguna
- SQLServer: Manajer Memori -> Pemberian Memori Tertunda
- SQLServer: Statistik SQL -> Permintaan Batch/detik
- SQLServer: Statistik SQL -> Kompilasi SQL/detik
- SQLServer: Statistik SQL -> Kompilasi Ulang SQL/detik
- Sistem -> Panjang Antrean Prosesor
4.4 Menetapkan Kondisi Berhenti
Konfigurasikan kondisi berhenti untuk mencegah pertumbuhan data tak terbatas:
- Setelah membuat Data Collector Set, klik kanan dan pilih Properties
- klik Kondisi Berhenti tab
- Aktifkan Durasi keseluruhan
- Tetapkan durasi menjadi 1 hari (24 jam)
- Klik OK untuk menyimpan
Ini memastikan log tidak menjadi terlalu besar dan secara otomatis dimulai ulang jika dijadwalkan.
4.5 Penjadwalan Pengumpulan Data
Otomatiskan pengumpulan data untuk memastikan pemantauan yang konsisten:
- Klik kanan Set Pengumpul Data Anda dan pilih Properties
- klik Susunan acara tab
- Klik Add untuk membuat jadwal baru
- Konfigurasi tanggal dan waktu mulai
- Tetapkan pola pengulangan (misalnya, harian)
- Klik OK untuk menyimpan jadwal
Untuk memulai secara otomatis, konfigurasikan Data Collector Set agar berjalan saat server dinyalakan dengan membuat pemicu startup di Penjadwal Tugas Windows.
5. Menyiapkan Monitor Kinerja untuk SQL Server(Windows XP / Server 2003 dan sebelumnya)
Untuk Windows XP/Server 2003 dan versi sebelumnya, Anda dapat membuat Log Penghitung, yang memungkinkan Anda memilih sekumpulan penghitung kinerja dan mencatatnya ke dalam berkas secara berkala.
5.1 Membuat Log Penghitung
Ikuti langkah-langkah berikut untuk membuat log penghitung baru:
- Buka Monitor Kinerja
- Lihat lebih lanjut Log dan Peringatan Performa di panel kiri
- Klik kanan Log Penghitung
- Pilih Pengaturan Log Baru
- Beri nama log dengan nama server database Anda (misalnya, “ProductionSQL01”)
- Klik OK untuk memulai konfigurasi
Membuat log penghitung terpisah untuk setiap server memungkinkan Anda menguji kinerja pada server individual tanpa mengumpulkan data untuk semua server secara bersamaan.
5.2 Menambahkan Penghitung Kinerja
Setelah membuat log penghitung, tambahkan penghitung kinerja spesifik yang ingin Anda pantau:
- klik Tambahkan Penghitung tombol
- Ubah nama komputer untuk menunjuk ke komputer Anda SQL Server contoh
- Media Tab untuk memuat objek kinerja yang tersedia
- Pilih objek kinerja dari dropdown (misalnya, Memori)
- Pilih penghitung tertentu dari Daftar
- Pilih instance jika berlaku (misalnya, prosesor atau disk individual)
- Klik Add untuk memasukkan penghitung
- Ulangi untuk semua penghitung yang diinginkan
- Klik Penyelesaian saat selesai
5.3 Mengonfigurasi Interval Sampel
Interval sampel menentukan seberapa sering Performance Monitor mengumpulkan data. Konfigurasikan interval yang sesuai berdasarkan kebutuhan pemantauan Anda:
- Di properti log penghitung, temukan Contoh data setiap
- Tetapkan interval (default adalah 15 detik)
- Untuk pemantauan dasar, gunakan interval 1 menit untuk pengumpulan harian
- Untuk pemecahan masalah, gunakan interval 15-30 detik untuk semburan pendek
- Klik OK untuk mendaftar
Ingatlah bahwa interval yang lebih kecil menghasilkan lebih banyak data, yang dapat lebih sulit dirender dan dianalisis. Interval yang lebih besar mungkin melewatkan lonjakan penting. Seimbangkan granularitas data dengan kebutuhan penyimpanan dan analisis.
5.4 Mengonfigurasi File Log
Konfigurasi berkas log yang tepat memastikan data disimpan secara efisien dan mudah diakses:
- klik File log tab di properti log penghitung
- Ubah jenis file log menjadi File Teks (Dibatasi koma) untuk impor Excel yang mudah
- Klik Konfigurasi
- Tetapkan jalur file ke lokasi khusus (misalnya, folder PerformanceLogs bersama)
- Klik OK untuk mengkonfirmasi
Gunakan berbagi yang dapat diakses jaringan untuk penyimpanan log sehingga Anda dapat mengakses file dari jarak jauh dan membaginya dengan pengguna lain.
5.5 Menyiapkan Kredensial
Konfigurasikan kredensial yang sesuai sehingga Monitor Kinerja dapat mengakses jarak jauh SQL Server contoh:
- Di properti log penghitung, temukan Jalankan Sebagai
- Masukkan nama pengguna domain Anda dalam format: DOMAIN\nama pengguna
- Klik Set Password
- Masukkan dan konfirmasi kata sandi Anda
- Klik OK untuk menyimpan
Hal ini memungkinkan layanan PerfMon untuk mengumpulkan statistik menggunakan izin domain Anda dan bukan kredensialnya sendiri.
6. Menganalisis Data Monitor Kinerja
6.1 Melihat File Log di Monitor Kinerja
Monitor Kinerja dapat menampilkan data historis dari file log yang disimpan:
- Buka Monitor Kinerja
- Di panel kiri, klik Alat Pemantauan -> Monitor Kinerja.
- Klik kanan di mana saja di area grafik
- Pilih Properties
- klik sumber tab
- Pilih File log tombol radio
- Klik Add
- Navigasi ke file log Anda (.blg atau .csv)
- Pilih file dan klik Open
- Gunakan Rentang waktu slider untuk memilih periode yang ingin Anda analisis
- Klik OK untuk menutup dialog Properti
- Klik ikon plus hijau untuk menambahkan penghitung dari file log
- Pilih penghitung yang diinginkan untuk ditampilkan
- Klik OK
Grafik sekarang akan menampilkan data historis dari berkas log. Gunakan penggeser Rentang Waktu di Properti untuk mempersempit periode waktu tertentu untuk analisis mendetail.
6.2 Mengekspor Data ke Excel
Excel menyediakan kemampuan analisis yang kuat untuk data penghitung kinerja:
- Buka Monitor Kinerja dengan file log Anda yang dimuat
- Klik kanan di mana saja di area grafik
- Pilih Simpan Data Sebagai
- Pilih lokasi untuk file
- Pilih File Teks (Dibatasi koma) (.csv) dari tarik-turun
- Klik Simpan
- Buka file CSV di Excel
Format data yang diekspor untuk analisis yang lebih baik:
- Hapus baris 2 yang setengah kosong dan bersihkan sel A1
- Format kolom A sebagai Tanggal/Waktu
- Format kolom numerik dengan nol desimal dan pemisah ribuan
- Temukan dan ganti nama server di header (misalnya, ganti “\\SERVERNAME” dengan kosong)
- Bersihkan nama objek di header (misalnya, “Memory”, “PhysicalDisk”, “Processor”)
- Kurangi ukuran font header menjadi 8 poin untuk visibilitas yang lebih baik
6.3 Menafsirkan Nilai Penghitung
6.3.1 Analisis Penghitung Memori
Saat menganalisis penghitung memori, carilah indikator berikut:
- MByte yang tersedia: Harus tetap di atas 4096 MB secara konsisten
- Harapan Hidup Halaman: Nilai di atas 300 detik menunjukkan memori yang sehat. Nilai yang lebih rendah menunjukkan tekanan memori.
- Rasio Hit Cache Buffer: Harus memenuhi atau melebihi 99%. Nilai yang lebih rendah menunjukkan pembacaan disk yang berlebihan
- Hibah Memori Tertunda: Seharusnya selalu 0. Nilai positif apa pun menunjukkan kekurangan memori.
6.3.2 Analisis Penghitung CPU
Indikator kinerja CPU meliputi:
- % Waktu Prosesor: Penggunaan berkelanjutan di atas 75% menunjukkan masalah kinerja. Lonjakan hingga 100% adalah normal, tetapi seharusnya tidak berlanjut.
- Panjang Antrean Prosesor: Nilai di atas 1 menunjukkan tekanan CPU. Periksa Pengelola Tugas untuk mengidentifikasi proses mana yang mengonsumsi CPU.
- % Waktu Istimewa: Harus tetap berada di antara 5-10%. Nilai di atas 25% menunjukkan operasi I/O yang berlebihan.
6.3.3 Analisis Penghitung Disk
Ambang batas kinerja disk:
- Rata-rata detik disk/Baca dan Tulis: Nilainya harus tetap di bawah 10-20 ms. Nilai yang lebih tinggi menunjukkan subsistem disk yang lambat.
- Panjang Antrean Disk: Nilai yang konsisten di atas 2 (atau 2 per disk dalam RAID) menunjukkan adanya hambatan I/O
- % Waktu Disk: Nilai berkelanjutan di atas 85% menunjukkan saturasi disk
6.4 Menggunakan Rumus dan Statistik
Tambahkan rumus statistik ke Excel untuk analisis cepat:
- Masukkan 7 baris kosong di bagian atas spreadsheet Anda
- Tambahkan label di kolom A: Rata-rata, Median, Min, Maks, Deviasi Standar
- Di sel B2, masukkan: =AVERAGE(B9:B100) (sesuaikan B100 dengan baris data terakhir Anda)
- Di sel B3, masukkan: =MEDIAN(B9:B100)
- Di sel B4, masukkan: =MIN(B9:B100)
- Di sel B5, masukkan: =MAX(B9:B100)
- Di sel B6, masukkan: =STDEV(B9:B100)
- Salin rumus di semua kolom penghitung
- Pilih sel B9 dan tekan Alt+W+F+Enter untuk membekukan panel
Statistik ini membantu mengidentifikasi tren, outlier, dan rentang operasi normal untuk setiap penghitung.
7. Alat Analisis Kinerja untuk Log (PAL)
7.1 Pengantar PAL
Analisis Kinerja untuk Log (PAL) adalah alat gratis yang dikembangkan oleh Clint Huffman yang menganalisis log Monitor Kinerja dan menghasilkan laporan HTML dengan analisis ambang batas. PAL membandingkan data kinerja Anda dengan ambang batas yang diketahui dan memberikan rekomendasi terperinci untuk SQL Server optimasi kinerja.
Unduh PAL dari repositori GitHub: https://github.com/clinthuffman/PAL
7.2 Menyiapkan PAL
Instal PAL dengan mengikuti langkah-langkah berikut:
- Unduh file pengaturan PAL dari GitHub
- Jalankan penginstal
- Klik Selanjutnya di layar selamat datang
- Tinjau dan terima direktori instalasi
- Klik Selanjutnya untuk melanjutkan
- Klik Install untuk memulai instalasi
- Tunggu sampai proses instalasi selesai
- Klik Finish
7.3 Memproses File Log dengan PAL
Analisis log Monitor Kinerja Anda menggunakan PAL:
- Luncurkan PAL dari menu Mulai atau direktori instalasi.
- klik Log Penghitung tab
- Klik Browse untuk memilih file .blg Anda
- Navigasi ke file log Monitor Kinerja Anda
- Klik Open
- klik Berkas Ambang Batas tab
- Pilih file ambang batas dari dropdown (misalnya, “SQL Server 2016 ")
- klik Pertanyaan tab
- Jawab pertanyaan tentang konfigurasi sistem Anda
- Tentukan apakah Anda SQL Server apa itu OLTP atau Data Warehouse
- Masukkan total RAM yang tersedia
- klik Opsi Keluaran tab
- Pilih direktori keluaran untuk laporan HTML
- Memeriksa HTML format output
- klik Eksekusi tab
- Tinjau pilihan Anda
- Memeriksa Mulai eksekusi sekarang
- Klik Finish
7.4 Menganalisis Laporan PAL
Setelah PAL menyelesaikan analisis, ia menghasilkan laporan HTML yang berisi:
- Ringkasan eksekutif masalah kinerja
- Analisis penghitung terperinci dengan grafik
- Pelanggaran ambang batas disorot dengan warna
- Rekomendasi spesifik untuk setiap masalah
- Tren dan pola historis
Laporan ini menggunakan kode warna untuk menunjukkan tingkat keparahan: merah untuk masalah kritis, kuning untuk peringatan, dan hijau untuk metrik yang sehat. Tinjau setiap bagian untuk memahami hambatan kinerja dan ikuti rekomendasi PAL untuk pengoptimalan.
8. Alternatif SQL Server Alat Pemantauan
8.1 bawaan SQL Server Tools
8.1.1 SQL Server Activity Monitor
SQL Server Activity Monitor menampilkan informasi waktu nyata tentang SQL Server proses dan kinerja:
- Open SQL Server Management Studio (SSMS) dan terhubung ke instans server Anda
- Klik kanan nama server di Object Explorer
- Pilih Activity Monitor
Activity Monitor menampilkan proses, waktu tunggu sumber daya, I/O berkas data, dan kueri mahal terkini. Activity Monitor memberikan wawasan cepat tentang aktivitas basis data saat ini, tetapi tidak menyimpan data historis.
8.1.2 SQL Server Dasbor Kinerja
SQL Server Management Studio menyertakan laporan kinerja bawaan:
- In SQL Server Management Studio(SSMS), klik kanan SQL Server contoh di Object Explorer
- Pilih Laporan -> Laporan Standar
- Pilih dari laporan yang tersedia seperti Dasbor Kinerja
Dashboard Kinerja memberikan wawasan visual tentang SQL Server Performa instans, termasuk penggunaan CPU sistem, permintaan tunggu saat ini, dan metrik performa. Akses melalui menu Laporan Standar.
8.1.3 SQL Server Profil
SQL Server Profil menangkap dan menganalisis SQL Server peristiwa seperti eksekusi kueri, operasi transaksi, dan aktivitas login.
Untuk memulai SQL Server pembuat profil:
- In SQL Server Studio Manajemen, klik Tools -> SQL Server Profil
Profiler menimbulkan beban kinerja yang signifikan, jadi gunakanlah dengan bijak dan sebaiknya di luar jam sibuk. Untuk sebagian besar skenario, Extended Events memberikan kinerja yang lebih baik dengan dampak yang lebih kecil.
8.1.4 Acara yang Diperpanjang
Acara yang Diperpanjang adalah sistem pemantauan kinerja ringan yang dibangun ke dalam SQL ServerIni menggantikan SQL Server Profiler dengan kinerja lebih baik dan overhead lebih rendah.
Fitur utama termasuk:
- Pemantauan terperinci terhadap peristiwa tertentu
- Dampak kinerja minimal
- Sesi acara yang dapat disesuaikan
- Integrasi dengan SSMS dan alat lainnya
- Dukungan untuk penyaringan dan agregasi yang kompleks
Buat sesi Acara Diperpanjang melalui SSMS:
- In Penjelajah Objek, perluas server Anda dan buka Manajemen -> Acara Lanjutan -> Sesi
- Klik kanan pada Sesi Dan pilihlah Panduan Sesi Baru
- Ikuti petunjuk untuk memulai sesi baru.
8.1.5 Tampilan Manajemen Dinamis (DMV)
DMV menampilkan informasi status server yang detail untuk memantau kesehatan, mendiagnosis masalah, dan menyesuaikan kinerja. DMV utama meliputi:
- sys.dm_exec_query_stats: Statistik kinerja kueri
- sys.dm_os_wait_stats: Jenis tunggu yang memengaruhi kinerja server
- sys.dm_os_performance_counters: SQL Server data penghitung kinerja
- sys.dm_exec_permintaan: Saat ini sedang menjalankan permintaan
- sys.dm_exec_sessions: Sesi pengguna aktif
Kueri tampilan ini menggunakan T-SQL untuk mengakses data kinerja waktu nyata dan metrik historis.
Penggunaan Dasar
-- See all active connections
SELECT * FROM sys.dm_exec_connections;
-- View current sessions
SELECT * FROM sys.dm_exec_sessions;
-- Check database file stats
SELECT * FROM sys.dm_io_virtual_file_stats(NULL, NULL);
8.2 Solusi Pemantauan Pihak Ketiga
Pemantau SQL Gerbang Merah
Redgate SQL Monitor mengkhususkan diri dalam pemantauan SQL Server dan lingkungan Azure SQL Database. Platform ini menyediakan pemantauan di seluruh aset, peringatan dan dasbor yang dapat disesuaikan, kemampuan pelaporan yang terperinci, dan integrasi dengan perangkat Redgate lainnya.
SuryaAngin SQL Server Alat Pemantau
Angin Surya SQL Server Alat Pemantauan, juga dikenal sebagai SQL Sentry, dirancang untuk mendiagnosis, memecahkan, dan mencegah masalah kinerja yang serius SQL Server.
milik IDERA SQL Server Alat Pemantauan Kinerja
IDERA SQL Diagnostic Manager adalah perangkat lunak yang ampuh. SQL Server Alat pemantauan kinerja yang dirancang untuk membantu pemantauan kinerja, diagnostik, dan penyetelan secara proaktif.
Pemantauan SQL Manajer Aplikasi
Manajer Aplikasi menawarkan Microsoft SQL Server Alat pemantauan yang memberikan solusi TI yang berguna. Ini dirancang untuk mengawasi kinerja database SQL, sekaligus mengidentifikasi bug dan menyelesaikan masalah yang dapat menyebabkan terhentinya operasi organisasi.
8.3 Alat Pemantauan Sumber Terbuka
DBA Dash
DBA Dash adalah alat pemantauan sumber terbuka gratis yang memberikan wawasan tentang SQL Server Kesehatan, kinerja, dan aktivitas. Sangat berguna untuk lingkungan kecil hingga menengah dan mencakup pemeriksaan DBA harian, pemantauan kinerja, dan pelacakan konfigurasi.
SQLWATCH
SQLWATCH menawarkan layanan terdesentralisasi, hampir real-time SQL Server Pemantauan dengan granularitas 5 detik untuk mencatat lonjakan beban kerja. Mendukung Grafana untuk dasbor real-time dan Power BI untuk analisis mendalam. Alat ini menyediakan opsi konfigurasi yang luas, tanpa persyaratan pemeliharaan, dan skalabilitas tanpa batas.
Opserver
Dikembangkan oleh Stack Exchange, Opserver memantau beberapa sistem termasuk SQL Server, Redis, dan Elasticsearch. Platform ini menyediakan tampilan "semua server" untuk statistik CPU, memori, jaringan, dan perangkat keras di seluruh infrastruktur Anda.
sp_SiapaYangAktif
sp_WhoIsActive adalah prosedur tersimpan pemantauan aktivitas komprehensif yang dibuat oleh Adam Machanic. Prosedur ini berfungsi dengan semua SQL Server versi dari tahun 2005 hingga rilis saat ini dan digunakan secara luas oleh SQL Server DBA untuk pemantauan aktivitas waktu nyata.
Untuk menggunakan sp_WhoIsActive, unduh dari http://whoisactive.com/, instal di basis data Anda, dan jalankan:
EXEC sp_WhoIsActive
Prosedur ini menampilkan kueri yang sedang dijalankan, informasi tunggu, detail pemblokiran, dan konsumsi sumber daya.
9. Praktik Terbaik untuk SQL Server Monitor Kinerja
9.1 Menetapkan Dasar Kinerja
Baseline kinerja menetapkan parameter operasi normal untuk Anda SQL Server lingkungan. Tanpa baseline, Anda tidak dapat menentukan apakah metrik saat ini menunjukkan masalah atau mewakili perilaku umum.
Buat garis dasar dengan:
- Mengumpulkan data kinerja selama operasi normal setidaknya selama satu minggu
- Menangkap metrik selama jam sibuk dan di luar jam sibuk
- Mendokumentasikan nilai-nilai umum untuk penghitung kunci
- Mencatat variasi musiman jika berlaku.
- Menyimpan data dasar untuk perbandingan dengan metrik masa depan
Perbarui garis dasar setiap triwulan atau setelah perubahan infrastruktur yang signifikan, pembaruan aplikasi, atau modifikasi basis data.
9.2 Menetapkan Ambang Batas Peringatan yang Tepat
Konfigurasikan ambang batas cerdas untuk menerima peringatan yang berarti tanpa membebani diri Anda dengan notifikasi:
- Pemberian Memori Tertunda > 0 menunjukkan tekanan memori
- Panjang Antrean Prosesor > 2 per inti menunjukkan adanya hambatan CPU
- Disk sec/Baca atau Tulis > 20ms menunjukkan I/O lambat
- Proses yang Diblokir > 5 menandakan masalah pertikaian
- Harapan Hidup Halaman < 300 detik menunjukkan tekanan memori
Sesuaikan ambang batas berdasarkan data dasar dan karakteristik beban kerja spesifik Anda. Gunakan ambang batas adaptif yang memperhitungkan variasi normal di lingkungan Anda.
9.3 Tinjauan dan Analisis Data Berkala
Jadwalkan tinjauan kinerja rutin untuk mengidentifikasi tren dan masalah yang muncul:
- Harian: Tinjau metrik tingkat tinggi dan peringatan terkini
- Mingguan: Melakukan analisis mendalam terhadap tren kinerja
- Bulanan: Hasilkan laporan komprehensif dan bandingkan dengan baseline
- Triwulanan: Meninjau perencanaan kapasitas dan tren jangka panjang
Dokumentasikan temuan dan lacak peningkatan kinerja dari waktu ke waktu.
9.4 Menyeimbangkan Overhead Pemantauan
Pemantauan itu sendiri menghabiskan sumber daya, jadi seimbangkan pengumpulan data dengan dampak kinerja:
- Gunakan interval 30-60 detik untuk pemantauan berkelanjutan
- Gunakan interval 15 detik hanya untuk pemecahan masalah aktif
- Batasi Pengumpul Data Tetapkan durasi untuk menghindari data yang berlebihan
- Simpan log pada drive terpisah dari file database
- Arsipkan data kinerja lama untuk mempertahankan ukuran file yang dapat dikelola
Performance Monitor menambahkan overhead minimal bila dikonfigurasikan dengan benar, biasanya di bawah 2% dari sumber daya sistem.
9.5 Retensi Data Jangka Panjang
Simpan data kinerja untuk analisis tren yang bermakna dan perencanaan kapasitas:
- Simpan setidaknya 1-2 tahun data kinerja
- Arsipkan data ke penyimpanan terpisah setelah 3-6 bulan
- Kompres file log lama untuk menghemat ruang
- Dokumentasikan setiap peristiwa atau perubahan signifikan yang memengaruhi kinerja
Mengingat ukuran data penghitung kinerja yang relatif kecil, menyimpannya tanpa batas waktu sering kali layak dan berharga untuk analisis jangka panjang.
9.6 Integrasi dengan Praktik DevOps
Gabungkan pemantauan kinerja basis data ke dalam jalur CI/CD:
- Sertakan metrik kinerja basis data dalam validasi penerapan
- Otomatiskan pengujian kinerja untuk rilis baru
- Validasi bahwa perubahan kode tidak berdampak negatif pada kinerja
- Buat tolok ukur kinerja untuk setiap rilis
- Integrasikan peringatan pemantauan dengan sistem manajemen insiden
10. Pemecahan Masalah Kinerja Umum
10.1 Mengidentifikasi Hambatan CPU
Hambatan CPU bermanifestasi sebagai waktu respons kueri yang lambat dan utilisasi prosesor yang tinggi. Gunakan langkah-langkah berikut untuk mendiagnosis masalah CPU:
- Periksa penghitung Panjang Antrean Prosesor. Nilai di atas 2 per inti menunjukkan tekanan CPU.
- Tinjau % Waktu Prosesor. Nilai berkelanjutan di atas 75% menunjukkan adanya kemacetan CPU.
- Desktop jarak jauh ke SQL Server
- Buka Pengelola Tugas (Ctrl+Shift+Esc)
- klik proses tab
- Memeriksa Tampilkan proses dari semua pengguna
- klik CPU tajuk kolom untuk mengurutkan berdasarkan penggunaan CPU
- Identifikasi proses mana yang menghabiskan sumber daya CPU
Jika tidak-SQL Server Aplikasi yang mengonsumsi CPU dalam jumlah besar, hapus dari server basis data. Jika sqlservr.exe menggunakan CPU yang tinggi, selidiki menggunakan metode berikut:
- Periksa Kompilasi SQL/detik dan Kompilasi Ulang SQL/detik. Nilai di atas 10% dari Permintaan Batch/detik menunjukkan kompilasi yang berlebihan.
- Kueri sys.dm_exec_query_stats untuk mengidentifikasi kueri yang menggunakan CPU secara intensif
- Tinjau rencana pelaksanaan untuk indeks yang hilang atau operasi yang tidak efisien
- Pertimbangkan untuk menambahkan indeks untuk mengurangi pemindaian tabel
10.2 Mendiagnosis Masalah Memori
Masalah memori berdampak signifikan SQL Server kinerja. Diagnosis masalah memori menggunakan indikator berikut:
Penurunan Memori yang Tersedia
Jika Available MBytes turun di bawah 100 MB secara konsisten, sistem operasi akan mengalami kekurangan memori. Windows mungkin akan melakukan page out. SQL Server memori ke disk, yang menyebabkan penurunan kinerja.
Harapan Hidup Halaman Rendah
Page Life Expectancy di bawah 300 detik menunjukkan pergantian cache buffer yang tinggi. Hal ini menunjukkan alokasi memori yang tidak memadai atau tekanan memori yang berlebihan dari kueri.
Rasio Hit Cache Buffer Rendah
Rasio Buffer Cache Hit di bawah 99% berarti SQL Server sering membaca data dari disk, bukan dari memori. Hal ini terjadi ketika kumpulan buffer terlalu kecil atau SQL Server Masih dalam proses pemanasan setelah dihidupkan ulang.
Hibah Memori Tertunda
Nilai apa pun di atas 0 untuk Pemberian Memori Tertunda menunjukkan kueri sedang menunggu pemberian memori. Ini menunjukkan kekurangan memori kritis yang membutuhkan perhatian segera.
Untuk mengatasi masalah memori:
- Konfigurasi SQL Server pengaturan memori maksimum untuk menyisakan RAM yang cukup untuk sistem operasi (biasanya 4-8 GB tergantung pada ukuran server)
- Aktifkan izin “Kunci Halaman dalam Memori” untuk SQL Server akun layanan
- Tambahkan lebih banyak RAM fisik ke server jika tekanan memori terus berlanjut
- Mengidentifikasi dan mengoptimalkan kueri yang membutuhkan banyak memori
10.3 Menyelesaikan Masalah I/O Disk
I/O disk sering kali menjadi hambatan kinerja utama dalam sistem basis data. Diagnosis masalah disk menggunakan metode berikut:
Panjang Antrean Disk Tinggi
Panjang Antrean Disk yang konsisten di atas 2 (atau 2 per disk untuk RAID) menunjukkan subsistem disk tidak dapat memenuhi permintaan I/O. Hal ini menyebabkan penumpukan operasi yang tertunda.
Latensi Disk Berlebihan
Nilai Rata-rata Disk detik/Baca dan Rata-rata Disk detik/Tulis di atas 10-20 ms menunjukkan respons disk yang lambat. Drive log transaksi memerlukan kinerja yang sangat cepat, idealnya di bawah 5 ms untuk penulisan.
Persentase Waktu Disk Tinggi
Persentase waktu disk yang berkelanjutan di atas 85% menunjukkan saturasi disk. Disk menghabiskan sebagian besar waktunya untuk memproses permintaan I/O dengan sedikit kapasitas menganggur yang tersisa.
Sebelum mengatasi masalah disk, pastikan bahwa masalah tersebut bukan gejala masalah memori. Kekuatan memori yang tidak memadai SQL Server untuk membaca lebih banyak data dari disk, sehingga meningkatkan metrik disk secara artifisial.
Untuk mengatasi masalah I/O disk yang sebenarnya:
- Tingkatkan ke disk yang lebih cepat (SSD, bukan HDD)
- Terapkan konfigurasi RAID untuk kinerja yang lebih baik
- Pisahkan file database, log transaksi, dan tempdb ke drive fisik yang berbeda
- Tambahkan lebih banyak memori untuk mengurangi pembacaan disk
- Optimalkan indeks untuk mengurangi I/O yang tidak diperlukan
- Tinjau dan optimalkan kueri yang berkinerja buruk
10.4 Mengatasi Pemblokiran dan Kebuntuan
Pemblokiran terjadi ketika satu sesi terkunci sehingga mencegah sesi lain melanjutkan. Pantau penghitung ini untuk mengidentifikasi masalah pemblokiran:
- Proses yang Diblokir: Idealnya harus 0
- Kunci Tunggu/detik: Jumlah permintaan kunci yang memerlukan waktu tunggu
- Waktu Tunggu Rata-rata: Rata-rata durasi menunggu kunci
Untuk menyelidiki pemblokiran:
- Buka Monitor Aktivitas di SSMS
- Pilih proses bagian
- Cari proses dengan nilai bukan nol Diblokir Oleh nilai-nilai
- Identifikasi ID sesi pemblokiran
- Tinjau kueri yang menyebabkan pemblokiran
Gunakan sp_WhoIsActive untuk analisis pemblokiran yang lebih detail. Entri wait_info yang berlebihan sering kali mengindikasikan adanya pertentangan tempdb atau masalah pemblokiran.
Untuk mengurangi pemblokiran:
- Minimalkan durasi transaksi
- Gunakan tingkat isolasi yang sesuai
- Tambahkan indeks untuk mengurangi durasi penguncian
- Pertimbangkan isolasi READ_COMMITTED_SNAPSHOT
- Tinjau dan optimalkan kueri yang berjalan lama
10.5 Masalah Kinerja Kueri
Mengidentifikasi kueri yang mahal sangat penting untuk pemantauan kinerja SQL. Gunakan metode berikut untuk menemukan kueri yang bermasalah:
Menggunakan Monitor Aktivitas
- Di SSMS, klik kanan nama server
- Pilih Activity Monitor
- Lihat lebih lanjut Pertanyaan Mahal Terbaru
- Tinjau kueri dengan CPU, durasi, atau pembacaan logis yang tinggi
Menggunakan DMV
Kueri sys.dm_exec_query_stats untuk mengidentifikasi kueri yang membutuhkan banyak sumber daya:
SELECT TOP 50
total_worker_time/execution_count AS avg_cpu_time,
total_logical_reads/execution_count AS avg_logical_reads,
execution_count,
SUBSTRING(qt.text, (qs.statement_start_offset/2)+1,
((CASE qs.statement_end_offset
WHEN -1 THEN DATALENGTH(qt.text)
ELSE qs.statement_end_offset
END - qs.statement_start_offset)/2) + 1) AS query_text
FROM sys.dm_exec_query_stats qs
CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) qt
ORDER BY total_worker_time DESC
Menganalisis Rencana Eksekusi
- Di SSMS, buka jendela kueri baru
- Klik Tampilkan Perkiraan Rencana Eksekusi (Ctrl+L) atau Sertakan Rencana Eksekusi Aktual (Ctrl+M)
- Jalankan kueri Anda
- Tinjau rencana eksekusi untuk operasi yang mahal
- Carilah pemindaian tabel, pemindaian indeks, atau operasi berbiaya tinggi.
Optimalkan kueri dengan:
- Menambahkan indeks yang sesuai
- Menulis ulang kueri untuk menghindari operasi yang mahal
- Memperbarui statistik
- Menggunakan nama kolom tertentu, bukan SELECT *
- Menghindari klausa DISTINCT atau ORDER BY yang tidak diperlukan
10.6 Mendeteksi dan Memperbaiki Database yang Rusak
Kerusakan basis data dapat menyebabkan penurunan kinerja, kehilangan data, dan kegagalan sistem. Mendeteksi dan mengatasi kerusakan dengan cepat sangat penting untuk menjaga kesehatan basis data.
Indikator Korupsi Basis Data
Waspadai tanda-tanda potensi korupsi berikut ini:
- Pesan kesalahan di SQL Server log kesalahan (kesalahan 823, 824, atau 825)
- Kesalahan aplikasi yang tidak terduga saat mengakses tabel tertentu
- Performa kueri yang lambat pada kueri yang sebelumnya cepat
- SQL Server kerusakan atau restart yang tidak terduga
- Halaman yang mencurigakan muncul di tabel msdb.dbo.suspect_pages
Menggunakan DBCC CHECKDB untuk Deteksi
DBCC CHECKDB adalah alat utama untuk mendeteksi kerusakan basis data. Jalankan secara berkala untuk mendeteksi masalah sejak dini.
Memantau Halaman Tersangka
SQL Server secara otomatis mencatat halaman yang mencurigakan dalam database msdb:
SELECT
database_id,
file_id,
page_id,
event_type,
error_count,
last_update_date
FROM msdb.dbo.suspect_pages
WHERE event_type IN (1,2,3)
Setiap baris yang dikembalikan menunjukkan masalah korupsi yang memerlukan perhatian segera.
Strategi Pencegahan Korupsi
- Aktifkan verifikasi halaman dengan opsi CHECKSUM
- Pertahankan pencadangan basis data secara teratur
- Gunakan perangkat keras yang andal dengan koreksi kesalahan
- Pantau kesehatan disk menggunakan alat pabrikan
- Jadwalkan eksekusi DBCC CHECKDB secara rutin
- Menjaga SQL Server diperbarui dengan patch terbaru
Opsi Pemulihan dan Perbaikan
Jika terdeteksi adanya kerusakan, Anda dapat mencoba alat bawaan DBCC CHECKDB untuk memperbaikinya. Jika gagal, gunakan alat pihak ketiga seperti DataNumen SQL Recovery yang dapat menangani korupsi yang parah.
11. Teknik Pemantauan Lanjutan
11.1 Pemantauan Penyimpanan Kueri
Query Store, diperkenalkan di SQL Server 2016, menangkap data kinerja kueri secara otomatis. Data ini memberikan wawasan berharga tentang perilaku kueri, rencana eksekusi, dan tren kinerja.
Mengaktifkan Penyimpanan Kueri
- Di SSMS Object Explorer, klik kanan database
- Pilih Properties
- klik Penyimpanan Kueri halaman
- In Mode Operasi (Diminta), pilih Baca tulis
- Konfigurasikan pengaturan tambahan sesuai kebutuhan
- Klik OK
Memantau Kinerja Kueri
Akses laporan Query Store melalui Object Explorer:
- Perluas database di Object Explorer
- Lihat lebih lanjut Penyimpanan Kueri
- Pilih dari laporan yang tersedia:
- Kueri yang Diregresikan
- Konsumsi Sumber Daya Secara Keseluruhan
- Kueri yang Paling Banyak Memakan Sumber Daya
- Kueri dengan Rencana yang Dipaksa
- Kueri yang Dilacak
Deteksi Regresi Rencana
Penyimpanan Kueri secara otomatis mendeteksi ketika rencana eksekusi kueri berubah dan kinerja menurun. Tinjau laporan Kueri yang Diregresikan untuk mengidentifikasi kueri yang terpengaruh oleh perubahan rencana.
Manajemen Rencana Paksa
Ketika Query Store mengidentifikasi rencana eksekusi yang lebih baik, paksa SQL Server untuk menggunakannya:
- Buka kueri di Query Store
- Klik kanan paket yang diinginkan
- Pilih Rencana Kekuatan
Ini segera meningkatkan kinerja tanpa memerlukan perubahan kode.
11.2 Pemantauan Pemeliharaan Indeks
Fragmentasi indeks menurunkan kinerja kueri seiring waktu. Pantau dan kelola indeks secara berkala untuk memastikan kinerja optimal.
Pemeriksaan Fragmentasi
Gunakan kueri ini untuk memeriksa fragmentasi indeks:
SELECT
OBJECT_NAME(i.object_id) AS table_name,
i.name AS index_name,
ps.avg_fragmentation_in_percent,
ps.page_count
FROM sys.dm_db_index_physical_stats(DB_ID(), NULL, NULL, NULL, 'SAMPLED') ps
INNER JOIN sys.indexes i ON ps.object_id = i.object_id
AND ps.index_id = i.index_id
WHERE ps.avg_fragmentation_in_percent > 10
AND ps.page_count > 1000
ORDER BY ps.avg_fragmentation_in_percent DESC
Jalankan kueri ini di luar jam sibuk karena dapat menghabiskan banyak sumber daya.
Analisis Kepadatan Halaman
Kepadatan halaman menunjukkan seberapa penuh halaman indeks. Kepadatan yang rendah membuang-buang ruang dan mengurangi kinerja:
SELECT
OBJECT_NAME(i.object_id) AS table_name,
i.name AS index_name,
ps.avg_page_space_used_in_percent
FROM sys.dm_db_index_physical_stats(DB_ID(), NULL, NULL, NULL, 'SAMPLED') ps
INNER JOIN sys.indexes i ON ps.object_id = i.object_id
AND ps.index_id = i.index_id
WHERE ps.avg_page_space_used_in_percent < 75
Keputusan Reorganisasi vs. Membangun Kembali
Pilih operasi pemeliharaan indeks berdasarkan tingkat fragmentasi:
- Fragmentasi 10-30%: Gunakan ALTER INDEX REORGANIZE
- Fragmentasi > 30%: Gunakan ALTER INDEX REBUILD
- Fragmentasi < 10%: Tidak perlu tindakan
Operasi reorganisasi membutuhkan lebih sedikit sumber daya dan dapat dijalankan secara daring. Operasi pembangunan kembali lebih menyeluruh tetapi menghabiskan sumber daya yang signifikan.
11.3 Pembaruan Statistik Basis Data
Bantuan statistik basis data SQL ServerPengoptimal kueri menciptakan rencana eksekusi yang efisien. Statistik yang ketinggalan zaman menyebabkan kinerja kueri yang buruk.
Membangun Kembali Statistik Otomatis
Aktifkan pembaruan statistik otomatis:
ALTER DATABASE DatabaseName SET AUTO_UPDATE_STATISTICS ON ALTER DATABASE DatabaseName SET AUTO_CREATE_STATISTICS ON
Pemantauan Statistik Kesehatan
Periksa kapan statistik terakhir diperbarui:
SELECT
OBJECT_NAME(s.object_id) AS TableName,
s.name AS StatisticsName,
STATS_DATE(s.object_id, s.stats_id) AS LastUpdated,
sp.rows,
sp.modification_counter
FROM sys.stats s
CROSS APPLY sys.dm_db_stats_properties(s.object_id, s.stats_id) sp
WHERE STATS_DATE(s.object_id, s.stats_id) < DATEADD(DAY, -7, GETDATE())
ORDER BY LastUpdated
Perbarui statistik secara manual bila diperlukan:
UPDATE STATISTICS TableName WITH FULLSCAN
11.4 Mengumpulkan Data Kinerja Kustom
Buat solusi pemantauan kinerja khusus dengan menanyakan sys.dm_os_performance_counters secara langsung dan menyimpan hasilnya dalam tabel.
Membuat Skrip Koleksi Kustom
Bangun prosedur tersimpan untuk mengumpulkan data penghitung kinerja:
CREATE PROCEDURE dbo.CollectPerformanceCounters
AS
BEGIN
INSERT INTO dbo.PerformanceHistory (
SampleTime,
CounterName,
CounterValue
)
SELECT
GETDATE(),
counter_name,
cntr_value
FROM sys.dm_os_performance_counters
WHERE counter_name IN (
'Page life expectancy',
'Batch Requests/sec',
'Buffer cache hit ratio'
)
END
Menggunakan sys.dm_os_performance_counters
Kueri penghitung kinerja secara langsung:
SELECT
object_name,
counter_name,
instance_name,
cntr_value,
cntr_type
FROM sys.dm_os_performance_counters
WHERE object_name LIKE '%Buffer Manager%'
ORDER BY counter_name
Menyimpan Data Historis
Buat tabel untuk menyimpan metrik kinerja dari waktu ke waktu:
CREATE TABLE dbo.PerformanceHistory (
ID INT IDENTITY PRIMARY KEY,
SampleTime DATETIME2 NOT NULL,
PageLifeExpectancy BIGINT,
BatchRequestsPerSec DECIMAL(18,4),
BufferCacheHitRatio DECIMAL(5,2)
)
CREATE CLUSTERED COLUMNSTORE INDEX CCI_PerformanceHistory
ON dbo.PerformanceHistory
Metode Penyimpanan Data Berputar
Simpan data dalam format pivot dengan satu baris per waktu sampel dan satu kolom per penghitung. Hal ini mengurangi ruang penyimpanan dan meningkatkan kinerja kueri dibandingkan dengan menyimpan satu baris per penghitung per sampel.
11.5 Pemantauan Multi-Server
Untuk lingkungan dengan beberapa SQL Server contoh, terapkan pemantauan terpusat.
Pendekatan Pemantauan Terpusat
- Buat database pemantauan khusus di server terpisah
- Kumpulkan data dari semua server ke repositori pusat
- penggunaan SQL Server Pekerjaan agen untuk menjalankan skrip koleksi
- Terapkan pengumpulan penghitung kinerja yang dapat diakses jaringan
Pemantauan Server Jarak Jauh
Konfigurasikan Monitor Kinerja untuk mengumpulkan data dari server jarak jauh dengan menentukan nama server saat menambahkan penghitung. Pastikan aturan firewall mengizinkan lalu lintas Monitor Kinerja.
Pelaporan Lintas-Server
Buat laporan yang membandingkan kinerja di beberapa server untuk mengidentifikasi outlier dan ketidakseimbangan kapasitas.
12. Pemantauan SQL Server di Lingkungan Cloud
12.1 Pemantauan Basis Data Azure SQL
Azure SQL Database menyediakan kemampuan pemantauan bawaan yang berbeda dari lokal SQL Server.
Integrasi Azure Monitor
Azure Monitor secara otomatis mengumpulkan metrik dari Azure SQL Database termasuk:
- Pemanfaatan DTU atau vCore
- Penggunaan Penyimpanan
- Statistik koneksi
- Kebuntuan dan batas waktu
Akses metrik ini melalui Portal Azure atau API Azure Monitor.
Fitur Pemantauan Terintegrasi
Azure SQL Database mencakup:
- Rekomendasi penyetelan otomatis
- Wawasan Performa Kueri
- Wawasan Cerdas untuk deteksi anomali
- Sistem peringatan dan diagnostik bawaan
Wawasan Performa Kueri
Fitur ini menyediakan visualisasi kueri yang paling banyak mengonsumsi sumber daya, analisis durasi kueri, dan tren performa historis. Akses melalui Portal Azure di bawah sumber daya Database SQL Anda.
12.2 Alat Pemantauan Cloud-Native
Platform cloud menawarkan solusi pemantauan asli yang dioptimalkan untuk lingkungannya:
- Azure Monitor dan Application Insights untuk Azure SQL Database
- AWS CloudWatch untuk RDS SQL Server
- Pemantauan Google Cloud untuk Cloud SQL Server
Alat-alat ini terintegrasi secara mulus dengan infrastruktur cloud dan menyediakan pemantauan terpadu di seluruh sumber daya cloud.
Pemantauan Lingkungan Hibrida
Untuk penerapan hibrid yang mencakup lokal dan cloud, gunakan alat yang mendukung kedua lingkungan seperti Redgate SQL Monitor, SolarWinds DPA, atau solusi khusus yang menggunakan pengumpulan data terpusat.
12.3 Perbedaan Performa di Cloud
awan SQL Server Lingkungan memiliki karakteristik unik:
Model Alokasi Sumber Daya
Penyedia cloud menggunakan berbagai metode alokasi sumber daya (DTU, vCore, tanpa server) yang memengaruhi cara Anda menginterpretasikan metrik kinerja. Pahami batasan dan karakteristik tingkat layanan Anda.
Pertimbangan Skala
Lingkungan cloud menawarkan kemampuan penskalaan dinamis. Pantau pemanfaatan sumber daya untuk menentukan kapan perlu meningkatkan atau menurunkan skala. Banyak platform cloud menyediakan penskalaan otomatis berdasarkan ambang batas kinerja.
13. Mengotomatiskan Pemantauan Kinerja
13.1 SQL Server Pekerjaan Agen
Otomatiskan pengumpulan data menggunakan SQL Server Pekerjaan agen untuk pemantauan yang konsisten tanpa intervensi manual.
Pengumpulan Data Terjadwal
- Di SSMS, perluas SQL Server Agen
- Klik kanan Jobs dan pilih Pekerjaan Baru
- Beri nama pekerjaan (misalnya, “Kumpulkan Metrik Kinerja”)
- Klik Tangga dan tambahkan langkah baru
- Atur Jenis ke Skrip Transact-SQL
- Masukkan skrip pengumpulan data Anda
- Klik Jadwal dan menambahkan jadwal
- Konfigurasikan frekuensi (misalnya, setiap 5 menit)
- Klik OK untuk menciptakan pekerjaan
Pelaporan Otomatis
Buat pekerjaan yang menghasilkan dan mengirim laporan kinerja melalui email:
- Buat prosedur tersimpan yang menghasilkan laporan
- Gunakan Database Mail untuk mengirim laporan melalui email
- Jadwalkan pekerjaan untuk dijalankan setiap hari atau setiap minggu
13.2 Otomatisasi PowerShell
PowerShell menyediakan kemampuan otomatisasi yang kuat untuk SQL Server pemantau kinerja.
Skrip Pengumpulan Penghitung Performa
$counters = @(
'\Processor(_Total)\% Processor Time',
'\Memory\Available MBytes',
'\PhysicalDisk(_Total)\Avg. Disk sec/Read'
)
$data = Get-Counter -Counter $counters -ComputerName 'SQLServer01'
$data.CounterSamples | Export-Csv 'C:\PerfLogs\counters.csv' -Append
Kueri WMI
Gunakan WMI untuk mengumpulkan data kinerja dari server jarak jauh:
$cpu = Get-WmiObject Win32_Processor -ComputerName 'SQLServer01' $memory = Get-WmiObject Win32_OperatingSystem -ComputerName 'SQLServer01' Write-Host "CPU Usage: $($cpu.LoadPercentage)%" Write-Host "Available Memory: $([math]::Round($memory.FreePhysicalMemory/1MB,2)) GB"
Peringatan Otomatis
Buat skrip PowerShell yang memeriksa metrik dan mengirimkan peringatan saat ambang batas dilanggar:
$cpuThreshold = 80
$cpu = (Get-Counter '\Processor(_Total)\% Processor Time').CounterSamples.CookedValue
if ($cpu -gt $cpuThreshold) {
Send-MailMessage -To 'dba@company.com' -Subject 'High CPU Alert' `
-Body "CPU usage is $cpu%" -SmtpServer 'smtp.company.com'
}
13.3 Membuat Dasbor Pemantauan
Visualisasikan data kinerja dengan dasbor interaktif untuk wawasan yang lebih baik.
Integrasi Power BI
- Hubungkan Power BI ke tabel data kinerja Anda
- Buat visualisasi untuk metrik utama
- Tambahkan pemotong untuk rentang waktu dan pemilihan server
- Publikasikan dasbor ke Layanan Power BI
- Konfigurasikan jadwal penyegaran otomatis
Pembuatan Dasbor Waktu Nyata
Gunakan alat seperti Grafana atau aplikasi web khusus untuk membuat dasbor waktu nyata yang menanyakan DMV dan penghitung kinerja secara langsung.
Visualisasi Tren Historis
Buat diagram garis yang menunjukkan tren dari waktu ke waktu untuk:
- Utilisasi CPU
- Penggunaan memori
- Disk I / O
- Performa kueri
- Jumlah koneksi
14. Studi Kasus dan Contoh Praktis
14.1 Studi Kasus: Mengatasi Tekanan Memori
Identifikasi Gejala
Sebuah produksi SQL Server mengalami waktu respons kueri yang lambat selama jam sibuk. Pengguna mengeluhkan waktu tunggu aplikasi yang lama dan penurunan kinerja.
Analisis Tandingan
Data Monitor Kinerja mengungkapkan:
- Harapan Hidup Halaman turun menjadi 50 detik (normal: >300)
- Rasio Buffer Cache Hit turun menjadi 85% (normal: >99%)
- Pemberian Memori Tertunda sering kali menunjukkan nilai 5-10
- Pembacaan Disk Fisik/detik meningkat secara signifikan
Langkah-Langkah Penyelesaian
- Diperiksa SQL Server pengaturan memori maksimum – ditemukan bahwa itu diatur ke default (tidak terbatas)
- Meninjau Total Memori Server vs Memori Server Target – menunjukkan kesenjangan yang signifikan
- Mengonfigurasi memori server maksimum untuk menyisakan 8 GB untuk sistem operasi
- Mengaktifkan izin “Kunci Halaman dalam Memori” untuk SQL Server akun layanan
- Menambahkan 32 GB RAM tambahan ke server
- Kinerja yang dipantau selama satu minggu – Harapan Hidup Halaman stabil di atas 500 detik
Hasil: Waktu respons kueri meningkat 60%, keluhan pengguna berhenti, dan kinerja aplikasi kembali normal.
14.2 Studi Kasus: Optimasi Kinerja CPU
Identifikasi Gejala
A SQL Server secara konsisten menunjukkan penggunaan CPU di atas 90% selama jam kerja, menyebabkan kinerja aplikasi lambat dan frustrasi pengguna.
Analisis Tandingan
Pemantauan kinerja mengungkapkan:
- % Waktu Prosesor rata-rata 92% dengan lonjakan sering hingga 100%
- Panjang Antrean Prosesor secara konsisten di atas 4 (server memiliki 8 inti)
- Kompilasi SQL/detik adalah 25% dari Permintaan Batch/detik (seharusnya <10%)
- Kompilasi Ulang SQL/detik adalah 15% dari Permintaan Batch/detik
Langkah-Langkah Penyelesaian
- Menggunakan DMV untuk mengidentifikasi kueri yang paling banyak mengonsumsi CPU
- Menganalisis rencana eksekusi untuk pertanyaan yang teridentifikasi
- Menemukan beberapa pemindaian tabel pada tabel besar karena indeks yang hilang
- Membuat indeks yang sesuai berdasarkan rekomendasi rencana eksekusi
- Mengidentifikasi SQL dinamis yang menyebabkan kompilasi berlebihan
- Kode aplikasi yang dimodifikasi untuk menggunakan kueri berparameter
- Panduan rencana yang diterapkan untuk prosedur tersimpan yang bermasalah
- Statistik terbaru pada tabel yang banyak digunakan
Hasil: Pemanfaatan CPU turun hingga rata-rata 45% selama jam kerja. Waktu eksekusi kueri meningkat hingga 70%. Responsivitas aplikasi meningkat secara signifikan.
14.3 Studi Kasus: Resolusi Hambatan I/O Disk
Identifikasi Gejala
Pengguna melaporkan respons aplikasi yang sangat lambat selama operasi pemuatan data dan pemrosesan batch malam hari.
Analisis Tandingan
Data kinerja menunjukkan:
- Rata-rata Disk detik/Tulis melebihi 45 ms pada drive log transaksi
- Panjang Antrean Disk rata-rata 12 pada drive file data
- % Waktu Disk tetap di atas 95% selama berjam-jam selama pekerjaan batch
- Page Writes/detik sangat tinggi
Langkah-Langkah Penyelesaian
- Pengaturan memori yang diverifikasi sesuai – tidak menemukan masalah memori
- Menganalisis konfigurasi disk – menemukan semua file pada set spindel yang sama
- Log transaksi terpisah ke drive SSD cepat khusus
- Memindahkan tempdb ke drive SSD terpisah
- Menerapkan beberapa file data tempdb (satu per inti)
- Peningkatan drive file data ke konfigurasi RAID 10 SSD
- Pekerjaan batch yang dioptimalkan untuk menggunakan batch transaksi yang lebih kecil
- Menambahkan indeks untuk mengurangi pemindaian tabel yang tidak perlu selama operasi batch
Hasil: Rata-rata Disk sec/Write turun menjadi 3 ms. Panjang Antrean Disk rata-rata di bawah 1. Waktu penyelesaian pekerjaan batch berkurang hingga 75%.
15. Tren Masa Depan di SQL Server Pemantauan
15.1 Integrasi AI dan Pembelajaran Mesin
Kecerdasan buatan dan pembelajaran mesin sedang melakukan transformasi SQL Server pemantau kinerja.
Predictive Analytics
Model pembelajaran mesin memprediksi kebutuhan sumber daya di masa mendatang berdasarkan data historis. Sistem ini dapat memperkirakan:
- Ketika kapasitas penyimpanan akan habis
- Perkiraan kebutuhan CPU dan memori selama periode puncak
- Penurunan kinerja kueri sebelum memengaruhi pengguna
- Waktu optimal untuk operasi pemeliharaan
Deteksi Anomali
Alat berbasis AI secara otomatis mendeteksi pola yang tidak biasa dalam metrik kinerja. Alat ini mengidentifikasi anomali yang mungkin terlewatkan oleh administrator manusia dan membedakan antara variasi normal dan masalah yang sebenarnya.
Remediasi Otomatis
Sistem penyembuhan mandiri secara otomatis mengatasi masalah umum saat terdeteksi:
- Mulai ulang layanan yang telah berhenti
- Alokasikan kembali sumber daya selama beban puncak
- Terapkan perbaikan terbaru untuk masalah yang diketahui
- Membangun kembali indeks yang terfragmentasi secara otomatis
15.2 Evolusi Pemantauan Berbasis Cloud
Pemantauan cloud terus berkembang dengan kemampuan baru.
Platform Pemantauan Terpadu
Platform modern menyediakan visibilitas satu panel kaca di:
- Di tempat SQL Server contoh
- Basis data yang dihosting di cloud
- Lingkungan hibrida
- Kinerja aplikasi
- Metrik infrastruktur
Tren Observabilitas
Pergeseran dari pemantauan ke observabilitas menekankan:
- Memahami perilaku sistem dari keluaran
- Mengkorelasikan metrik, log, dan jejak
- Wawasan mendalam tentang sistem terdistribusi
- Diagnosis masalah secara real-time
15.3 Sistem Basis Data Penyembuhan Mandiri
Masa depan SQL Server versi akan menyertakan kemampuan yang lebih otonom.
Optimasi Otomatis
Basis data akan terus mengoptimalkan dirinya sendiri dengan:
- Membuat dan menghapus indeks secara otomatis berdasarkan beban kerja
- Menyesuaikan pengaturan konfigurasi untuk kinerja optimal
- Menulis ulang kueri yang tidak efisien secara transparan
- Mengelola alokasi sumber daya secara dinamis
Penyetelan Cerdas
Sistem tingkat lanjut akan belajar dari pola kinerja dan menerapkan rekomendasi penyetelan secara otomatis, sehingga mengurangi kebutuhan intervensi DBA manual.
16. Kesimpulan dan Poin Penting
16.1 Ringkasan Praktik Pemantauan Esensial
Efektif SQL Server monitor kinerja memerlukan pendekatan komprehensif yang menggabungkan alat, teknik, dan praktik terbaik.
Rekap Penghitung Kritis
Fokuskan upaya pemantauan pada penghitung penting berikut:
- Memori: Harapan Hidup Halaman, Rasio Ketercapaian Cache Buffer, Pemberian Memori Tertunda
- CPU: % Waktu Prosesor, Panjang Antrean Prosesor
- Disk: Rata-rata detik Disk/Baca dan Tulis, Panjang Antrean Disk
- SQL Server: Permintaan Batch/detik, Kompilasi/detik, Koneksi Pengguna
Ringkasan Praktik Terbaik
- Tetapkan garis dasar selama operasi normal
- Tetapkan ambang batas peringatan cerdas berdasarkan garis dasar
- Tinjau data kinerja secara berkala
- Seimbangkan overhead pemantauan dengan granularitas data
- Simpan data jangka panjang untuk analisis tren
- Gunakan alat yang sesuai untuk setiap skenario pemantauan
16.2 Pendekatan Peningkatan Berkelanjutan
SQL Server pemantauan kinerja bukanlah kegiatan satu kali melainkan proses berkelanjutan yang memerlukan penyempurnaan berkelanjutan.
Siklus Tinjauan Reguler
- Harian: Periksa peringatan dan kinerja terkini
- Mingguan: Meninjau tren dan mengidentifikasi masalah yang muncul
- Bulanan: Menganalisis pola jangka panjang dan kebutuhan kapasitas
- Triwulanan: Perbarui baseline dan tinjau efektivitas pemantauan
Tetap Terkini dengan Alat
Selalu perbarui alat dan teknik pemantauan:
- Mengevaluasi fitur pemantauan baru di SQL Server update
- Uji alat pihak ketiga yang baru muncul
- Menghadiri pelatihan dan konferensi
- Berpartisipasi dalam SQL Server Forum Komunitas
- Berbagi pengetahuan dengan anggota tim
16.3 Langkah Berikutnya
Implementasi VE SQL Server memantau kinerja secara sistematis:
Peta Jalan Implementasi
- Minggu 1: Siapkan Monitor Kinerja dengan penghitung penting
- Minggu 2: Buat Set Pengumpul Data untuk pengumpulan otomatis
- Minggu 3: Tetapkan garis dasar selama operasi normal
- Minggu 4: Konfigurasikan peringatan untuk ambang batas kritis
- Bulan 2: Terapkan alat pemantauan tambahan (DMV, Extended Events)
- Bulan 3: Mengembangkan dasbor dan laporan khusus
- Sedang berlangsung: Memperbaiki pemantauan berdasarkan pengalaman dan perubahan persyaratan
Sumber Tambahan
Terus belajar tentang SQL Server Monitor kinerja melalui dokumentasi Microsoft, blog komunitas, dan praktik langsung. Bereksperimenlah dengan berbagai alat dan teknik untuk menemukan yang paling sesuai untuk lingkungan Anda.
17. Pertanyaan yang Sering Diajukan (FAQ)
17.1 Apa yang paling penting? SQL Server penghitung kinerja untuk dipantau?
Yang paling kritis SQL Server penghitung kinerja meliputi:
- Memori: Harapan Hidup Halaman (harus >300 detik) dan Rasio Hit Cache Buffer (harus >99%)
- CPU: % Waktu Prosesor (nilai berkelanjutan <75%) dan Panjang Antrean Prosesor (harus <2 per inti)
- Disk: Rata-rata detik disk/Baca dan Tulis (harus <10-20ms) dan Panjang Antrean Disk (harus <2 per disk)
- SQL Server: Permintaan Batch/detik, Kompilasi SQL/detik, dan Pemberian Memori Tertunda (seharusnya 0)
Penghitung ini memberikan wawasan menyeluruh terhadap kesehatan sistem dan membantu mengidentifikasi kemacetan dengan cepat.
17.2 Seberapa sering saya harus mengumpulkan data kinerja?
Frekuensi pengumpulan bergantung pada tujuan pemantauan Anda:
- Pemantauan dasar: Setiap 1 menit (60 detik)
- Pemecahan masalah aktif: Setiap 15-30 detik untuk periode singkat
- Tren jangka panjang: Setiap 5 menit
Hindari menjalankan pengumpulan data frekuensi tinggi secara terus-menerus karena dapat memengaruhi kinerja dan menghasilkan data yang berlebihan. Gunakan interval yang lebih panjang untuk pemantauan rutin dan interval yang lebih pendek hanya untuk menyelidiki masalah tertentu.
17.3 Apa perbedaan antara Monitor Kinerja dan SQL Server Profiler?
Monitor Kinerja dan SQL Server Profiler memiliki tujuan yang berbeda:
Monitor Kinerja:
- Memantau sistem dan SQL Server penghitung kinerja
- Melacak pemanfaatan sumber daya (CPU, memori, disk)
- Overhead rendah, cocok untuk pemantauan berkelanjutan
- Menyediakan metrik agregat dari waktu ke waktu
SQL Server pembuat profil:
- Jejak individu SQL Server acara dan pertanyaan
- Menangkap informasi eksekusi kueri yang terperinci
- Overhead lebih tinggi, tidak direkomendasikan untuk penggunaan terus-menerus
- Terbaik untuk memecahkan masalah kueri tertentu
- Dihentikan demi Acara yang Diperpanjang
Gunakan Performance Monitor untuk pemantauan sistem secara keseluruhan dan Extended Events (bukan Profiler) untuk analisis tingkat kueri yang terperinci.
17.4 Dapatkah Monitor Kinerja Berdampak SQL Server pertunjukan?
Jika dikonfigurasi dengan benar, Performance Monitor memiliki dampak minimal pada SQL Server kinerja, biasanya overhead kurang dari 2%. Namun, pemantauan yang berlebihan dapat menyebabkan masalah:
- Terlalu banyak penghitung meningkatkan overhead
- Interval sampel yang sangat pendek (di bawah 15 detik) membebani sumber daya
- Pengumpulan frekuensi tinggi yang berkelanjutan menghasilkan file log yang besar
Untuk meminimalkan dampak:
- Pantau hanya penghitung yang diperlukan
- Gunakan interval sampel yang sesuai (60 detik untuk pemantauan rutin)
- Simpan log pada drive yang terpisah dari file database
- Jadwalkan pemantauan yang membutuhkan banyak sumber daya di luar jam sibuk
17.5 Berapa lama saya harus menyimpan data pemantauan kinerja?
Retensi bergantung pada kebutuhan analisis dan kapasitas penyimpanan Anda:
- Minimum: 3 bulan untuk memecahkan masalah terkini
- Rekomendasi: 1-2 tahun untuk perencanaan kapasitas dan analisis tren
- Terbaik: Tanpa batas waktu jika penyimpanan memungkinkan, karena data historis menjadi lebih berharga seiring berjalannya waktu
Data penghitung kinerja terkompresi dengan baik dan relatif hemat ruang. Pertimbangkan untuk mengarsipkan data lama ke penyimpanan terpisah daripada menghapusnya. Banyak organisasi menemukan bahwa data historis selama bertahun-tahun terbukti sangat berharga untuk perencanaan kapasitas dan mengidentifikasi tren jangka panjang.
17.6 Berapakah nilai ambang batas yang baik untuk penghitung kinerja utama?
Nilai ambang batas yang direkomendasikan untuk peringatan:
- Hibah Memori Tertunda: Peringatan saat > 0
- Harapan Hidup Halaman: Peringatan saat < 300 detik
- % Waktu Prosesor: Peringatan saat > 80% selama 5 menit
- Panjang Antrean Prosesor: Peringatan ketika > 2 per inti
- Rata-rata Disk detik/Baca atau Tulis: Peringatan saat > 20 ms
- Panjang Antrean Disk: Peringatan ketika > 2 per disk
- Proses yang Diblokir: Peringatan ketika > 5
Sesuaikan ambang batas ini berdasarkan data dasar dan karakteristik beban kerja spesifik Anda. Apa yang normal untuk satu lingkungan mungkin mengindikasikan masalah di lingkungan lain.
17.7 Bagaimana cara saya memantau SQL Server kinerja jarak jauh?
Monitor jarak jauh SQL Server contoh menggunakan metode berikut:
- Monitor Kinerja: Tentukan nama komputer jarak jauh saat menambahkan penghitung
- PowerShell: Gunakan parameter -ComputerName dengan Get-Counter
- Kendaraan Bermotor (DMV): Hubungkan ke server jarak jauh melalui SSMS dan tanyakan DMV
- Alat pihak ketiga: Sebagian besar alat pemantauan mendukung pemantauan server jarak jauh.
Pastikan aturan firewall mengizinkan lalu lintas Monitor Kinerja dan Anda memiliki izin yang sesuai di server jarak jauh. Untuk beberapa server, pertimbangkan untuk menerapkan pemantauan terpusat dengan server pemantauan dan basis data khusus.
17.8 Apa alat gratis terbaik untuk SQL Server monitor kinerja?
Beberapa alat gratis yang bagus tersedia untuk pemantauan SQL Server kinerja:
- Pemantau Kinerja Windows: Terintegrasi, komprehensif, dan andal
- Pemantau Aktivitas SSMS: Pemantauan waktu nyata tanpa instalasi tambahan
- Acara yang Diperpanjang: Pemantauan acara ringan yang terintegrasi SQL Server
- sp_SiapaYangAktif: Prosedur tersimpan gratis yang populer untuk pemantauan aktivitas terperinci
- DBA Dash: Alat pemantauan sumber terbuka dengan fitur komprehensif
- SQLWATCH: Sumber terbuka dengan kemampuan pemantauan hampir waktu nyata
Bagi sebagian besar organisasi, Performance Monitor yang dikombinasikan dengan alat SSMS dan sp_WhoIsActive memberikan kemampuan pemantauan yang sangat baik tanpa biaya tambahan.
17.9 Bagaimana cara mengekspor data PerfMon untuk analisis?
Ekspor data Monitor Kinerja menggunakan metode berikut:
Ekspor ke CSV:
- Buka Monitor Kinerja dengan file log Anda yang dimuat
- Klik kanan grafik dan pilih Simpan Data Sebagai
- Pilih File Teks (Dibatasi koma) (.csv)
- Pilih lokasi dan simpan
- Buka di Excel untuk analisis
Gunakan Perintah Relog:
relog input.blg -f csv -o output.csv
Utilitas baris perintah ini mengonversi berkas log biner (.blg) ke format CSV untuk memudahkan analisis dalam aplikasi lembar kerja.
17.10 Kapan saya harus menggunakan alat pemantauan pihak ketiga, bukan opsi bawaan?
Pertimbangkan alat pihak ketiga saat:
- Mengelola sejumlah besar SQL Server contoh (10+)
- Memerlukan pemantauan terpusat di beberapa pusat data
- Membutuhkan fitur-fitur canggih seperti analitik prediktif atau deteksi anomali
- Ingin peringatan terintegrasi dengan sistem manajemen insiden
- Memerlukan pelaporan kepatuhan dan analisis historis
- Kekurangan sumber daya DBA untuk membangun dan memelihara solusi khusus
- Pemantauan lingkungan basis data heterogen (SQL Server(Oracle, MySQL, dll.)
Alat bawaan berfungsi dengan baik untuk lingkungan yang lebih kecil atau ketika Anda memiliki DBA terampil yang dapat mengembangkan solusi pemantauan khusus. Alat pihak ketiga memberikan nilai tambah melalui penghematan waktu, fitur-fitur canggih, dan dukungan profesional.
18. Sumber Daya Tambahan
18.1 Dokumentasi Resmi
Microsoft menyediakan dokumentasi yang luas untuk SQL Server monitor kinerja:
- SQL Server Dokumentasi Monitor Kinerja: https://learn.microsoft.com/en-us/sql/relational-databases/performance-monitor/
- Tampilan Manajemen Dinamis: https://learn.microsoft.com/en-us/sql/relational-databases/system-dynamic-management-views/
- Acara yang Diperpanjang: https://learn.microsoft.com/en-us/sql/relational-databases/extended-events/
- Toko Kueri: https://learn.microsoft.com/en-us/sql/relational-databases/performance/monitoring-performance-by-using-the-query-store
- Penyetelan dan pemantauan kinerja: https://learn.microsoft.com/en-us/sql/relational-databases/performance/
18.2 Alat dan Unduhan yang Direkomendasikan
Alat penting untuk SQL Server monitor kinerja:
- Alat PAL: https://github.com/clinthuffman/PAL
- sp_SiapaYangAktif: http://whoisactive.com/
- DBA Dash: https://dbadash.com/
- SQLWATCH: https://github.com/marcingminski/sqlwatch
- Perlengkapan Penanggap Pertama (Brent Ozar): https://www.brentozar.com/first-aid/
- SQL Server Studio Manajemen: https://learn.microsoft.com/en-us/sql/ssms/download-sql-server-management-studio-ssms
18.3 Sumber Daya Komunitas
Belajar dari SQL Server masyarakat:
- SQL Server Pusat: https://www.sqlservercentral.com/
- Blog Brent Ozar: https://www.brentozar.com/blog/
- SQL Shack: https://www.sqlshack.com/
- Tips MSSQL: https://www.mssqltips.com/
- Reddit r/SQLServer: https://www.reddit.com/r/SQLServer/
- Stack Overflow SQL Server menandai: https://stackoverflow.com/questions/tagged/sql-server
Sumber daya ini menyediakan tutorial, saran pemecahan masalah, dan praktik terbaik dari para profesional berpengalaman. SQL Server profesional. Berpartisipasi dalam forum komunitas membantu Anda belajar dari pengalaman orang lain dan berbagi pengetahuan Anda sendiri.
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.





























