Bagikan sekarang:
Daftar Isi menyembunyikan

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.

Pemantau Kinerja Windows (PerfMon)

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:

  1. Klik Start, Jenis perfmon di kotak pencarian, klik “Performand Monitor” di hasil pencarian:
    Cari dan jalankan PerfMon dari kotak pencarian Windows.
  2. Media Windows + R, Jenis perfmon, dan tekan Enter
    Jalankan PerfMon dari kotak dialog Windows.
  3. Navigasi ke Control Panel -> Sistem dan Keamanan -> Administrative Tools -> Monitor Kinerja
    Jalankan PerfMon dari Panel Kontrol -> Sistem dan Keamanan -> Alat Administratif -> 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:

  1. Buka Monitor Kinerja
  2. Lihat lebih lanjut Set Pengumpul Data
  3. Klik kanan Ditetapkan pengguna
  4. Pilih New -> Set Pengumpul Data
    Buat Set Pengumpul Data baru di PerfMon
  5. Masukkan nama deskriptif (misalnya, “SQL Server “Metrik Kinerja”)
  6. Pilih Buat secara manual (Lanjutan)
    Tetapkan nama deskripsi untuk Set Pengumpul Data
  7. Klik Selanjutnya
  8. Memeriksa Buat log data -> Penghitung Kinerja
    Pilih Buat log data -> Penghitung Kinerja di panduan Buat Set Pengumpul Data baru.
  9. Klik Selanjutnya
  10. Klik Add untuk memilih penghitung
  11. Add diinginkan SQL Server dan penghitung sistem.
    Tambahkan penghitung kinerja ke Set Pengumpul Data yang baru.
  12. 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.

    Tetapkan interval sampel dalam panduan Kumpulan Pengumpul Data yang baru.

  13. Klik Selanjutnya
  14. Pilih lokasi untuk menyimpan log
    Tetapkan lokasi untuk menyimpan data kinerja di panduan Kumpulan Pengumpul Data yang baru.
  15. Klik Finish, Kumpulan Pengumpul Data baru akan dibuat.
  16. 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
    Mulai Set Pengumpul Data baru di PerfMon.

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:

  1. Setelah membuat Data Collector Set, klik kanan dan pilih Properties
  2. klik Kondisi Berhenti tab
  3. Aktifkan Durasi keseluruhan
  4. Tetapkan durasi menjadi 1 hari (24 jam)
  5. Klik OK untuk menyimpan

Tetapkan kondisi berhenti untuk Set Pengumpul Data

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:

  1. Klik kanan Set Pengumpul Data Anda dan pilih Properties
  2. klik Susunan acara tab
  3. Klik Add untuk membuat jadwal baru
  4. Konfigurasi tanggal dan waktu mulai
  5. Tetapkan pola pengulangan (misalnya, harian)
  6. Klik OK untuk menyimpan jadwal

Tetapkan jadwal untuk Set Pengumpul Data

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:

  1. Buka Monitor Kinerja
  2. Lihat lebih lanjut Log dan Peringatan Performa di panel kiri
  3. Klik kanan Log Penghitung
  4. Pilih Pengaturan Log Baru
  5. Beri nama log dengan nama server database Anda (misalnya, “ProductionSQL01”)
  6. 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:

  1. klik Tambahkan Penghitung tombol
  2. Ubah nama komputer untuk menunjuk ke komputer Anda SQL Server contoh
  3. Media Tab untuk memuat objek kinerja yang tersedia
  4. Pilih objek kinerja dari dropdown (misalnya, Memori)
  5. Pilih penghitung tertentu dari Daftar
  6. Pilih instance jika berlaku (misalnya, prosesor atau disk individual)
  7. Klik Add untuk memasukkan penghitung
  8. Ulangi untuk semua penghitung yang diinginkan
  9. 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:

  1. Di properti log penghitung, temukan Contoh data setiap
  2. Tetapkan interval (default adalah 15 detik)
  3. Untuk pemantauan dasar, gunakan interval 1 menit untuk pengumpulan harian
  4. Untuk pemecahan masalah, gunakan interval 15-30 detik untuk semburan pendek
  5. 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:

  1. klik File log tab di properti log penghitung
  2. Ubah jenis file log menjadi File Teks (Dibatasi koma) untuk impor Excel yang mudah
  3. Klik Konfigurasi
  4. Tetapkan jalur file ke lokasi khusus (misalnya, folder PerformanceLogs bersama)
  5. 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:

  1. Di properti log penghitung, temukan Jalankan Sebagai
  2. Masukkan nama pengguna domain Anda dalam format: DOMAIN\nama pengguna
  3. Klik Set Password
  4. Masukkan dan konfirmasi kata sandi Anda
  5. 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:

  1. Buka Monitor Kinerja
  2. Di panel kiri, klik Alat Pemantauan -> Monitor Kinerja.
  3. Klik kanan di mana saja di area grafik
  4. Pilih Properties
    Buka properti di PerfMon dengan mengklik kanan di mana saja di area grafik.
  5. klik sumber tab
  6. Pilih File log tombol radio
  7. Klik Add
  8. Navigasi ke file log Anda (.blg atau .csv)
  9. Pilih file dan klik Open
    Tetapkan berkas log sebagai sumber grafik di PerfMon.
  10. Gunakan Rentang waktu slider untuk memilih periode yang ingin Anda analisis
  11. Klik OK untuk menutup dialog Properti
  12. Klik ikon plus hijau untuk menambahkan penghitung dari file log
    Klik ikon plus hijau untuk menambahkan penghitung dari berkas log di PerfMon.
  13. Pilih penghitung yang diinginkan untuk ditampilkan
    Tambahkan penghitung yang diinginkan ke grafik di PerfMon.
  14. 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:

  1. Buka Monitor Kinerja dengan file log Anda yang dimuat
  2. Klik kanan di mana saja di area grafik
  3. Pilih Simpan Data Sebagai
  4. Pilih lokasi untuk file
  5. Pilih File Teks (Dibatasi koma) (.csv) dari tarik-turun
  6. Klik Simpan
  7. Buka file CSV di Excel

Ekspor data ke file di PerfMon.

Format data yang diekspor untuk analisis yang lebih baik:

  1. Hapus baris 2 yang setengah kosong dan bersihkan sel A1
  2. Format kolom A sebagai Tanggal/Waktu
  3. Format kolom numerik dengan nol desimal dan pemisah ribuan
  4. Temukan dan ganti nama server di header (misalnya, ganti “\\SERVERNAME” dengan kosong)
  5. Bersihkan nama objek di header (misalnya, “Memory”, “PhysicalDisk”, “Processor”)
  6. 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:

  1. Masukkan 7 baris kosong di bagian atas spreadsheet Anda
  2. Tambahkan label di kolom A: Rata-rata, Median, Min, Maks, Deviasi Standar
  3. Di sel B2, masukkan: =AVERAGE(B9:B100) (sesuaikan B100 dengan baris data terakhir Anda)
  4. Di sel B3, masukkan: =MEDIAN(B9:B100)
  5. Di sel B4, masukkan: =MIN(B9:B100)
  6. Di sel B5, masukkan: =MAX(B9:B100)
  7. Di sel B6, masukkan: =STDEV(B9:B100)
  8. Salin rumus di semua kolom penghitung
  9. 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 External Link

7.2 Menyiapkan PAL

Instal PAL dengan mengikuti langkah-langkah berikut:

  1. Unduh file pengaturan PAL dari GitHub
  2. Jalankan penginstal
  3. Klik Selanjutnya di layar selamat datang
  4. Tinjau dan terima direktori instalasi
  5. Klik Selanjutnya untuk melanjutkan
  6. Klik Install untuk memulai instalasi
  7. Tunggu sampai proses instalasi selesai
  8. Klik Finish

7.3 Memproses File Log dengan PAL

Analisis log Monitor Kinerja Anda menggunakan PAL:

  1. Luncurkan PAL dari menu Mulai atau direktori instalasi.
  2. klik Log Penghitung tab
  3. Klik Browse untuk memilih file .blg Anda
  4. Navigasi ke file log Monitor Kinerja Anda
  5. Klik Open
  6. klik Berkas Ambang Batas tab
  7. Pilih file ambang batas dari dropdown (misalnya, “SQL Server 2016 ")
  8. klik Pertanyaan tab
  9. Jawab pertanyaan tentang konfigurasi sistem Anda
  10. Tentukan apakah Anda SQL Server apa itu OLTP atau Data Warehouse
  11. Masukkan total RAM yang tersedia
  12. klik Opsi Keluaran tab
  13. Pilih direktori keluaran untuk laporan HTML
  14. Memeriksa HTML format output
  15. klik Eksekusi tab
  16. Tinjau pilihan Anda
  17. Memeriksa Mulai eksekusi sekarang
  18. 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:

  1. Open SQL Server Management Studio (SSMS) dan terhubung ke instans server Anda
  2. Klik kanan nama server di Object Explorer
  3. Pilih Activity Monitor
    Mulai Monitor Aktivitas di SQL Server Studio Manajemen.

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.

Monitor Aktivitas di SQL Server

8.1.2 SQL Server Dasbor Kinerja

SQL Server Management Studio menyertakan laporan kinerja bawaan:

  1. In SQL Server Management Studio(SSMS), klik kanan SQL Server contoh di Object Explorer
  2. Pilih Laporan -> Laporan Standar
  3. Pilih dari laporan yang tersedia seperti Dasbor Kinerja
    Buka Dasbor Kinerja di SQL Server Studio Manajemen.

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.

Dasbor Kinerja di SQL Server Studio Manajemen

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:

  1. In SQL Server Studio Manajemen, klik Tools -> SQL Server Profil
    Start SQL Server Profiler di SQL Server Studio Manajemen.

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.

SQL Server Profil

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:

  1. In Penjelajah Objek, perluas server Anda dan buka Manajemen -> Acara Lanjutan -> Sesi
  2. Klik kanan pada Sesi Dan pilihlah Panduan Sesi Baru
    Mulai sesi baru Extended Events di SQL Server Studio Manajemen.
  3. 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.

Gerbang merah SQL Server Memantau

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.

SuryaAngin SQL Server Alat Pemantau

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.

milik IDERA SQL Server Alat Pemantauan Kinerja

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.

Pemantauan SQL Manajer Aplikasi

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:

  1. Mengumpulkan data kinerja selama operasi normal setidaknya selama satu minggu
  2. Menangkap metrik selama jam sibuk dan di luar jam sibuk
  3. Mendokumentasikan nilai-nilai umum untuk penghitung kunci
  4. Mencatat variasi musiman jika berlaku.
  5. 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:

  1. Periksa penghitung Panjang Antrean Prosesor. Nilai di atas 2 per inti menunjukkan tekanan CPU.
  2. Tinjau % Waktu Prosesor. Nilai berkelanjutan di atas 75% menunjukkan adanya kemacetan CPU.
  3. Desktop jarak jauh ke SQL Server
  4. Buka Pengelola Tugas (Ctrl+Shift+Esc)
  5. klik proses tab
  6. Memeriksa Tampilkan proses dari semua pengguna
  7. klik CPU tajuk kolom untuk mengurutkan berdasarkan penggunaan CPU
  8. 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:

  1. Konfigurasi SQL Server pengaturan memori maksimum untuk menyisakan RAM yang cukup untuk sistem operasi (biasanya 4-8 GB tergantung pada ukuran server)
  2. Aktifkan izin “Kunci Halaman dalam Memori” untuk SQL Server akun layanan
  3. Tambahkan lebih banyak RAM fisik ke server jika tekanan memori terus berlanjut
  4. 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:

  1. Buka Monitor Aktivitas di SSMS
  2. Pilih proses bagian
  3. Cari proses dengan nilai bukan nol Diblokir Oleh nilai-nilai
  4. Identifikasi ID sesi pemblokiran
  5. 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

  1. Di SSMS, klik kanan nama server
  2. Pilih Activity Monitor
  3. Lihat lebih lanjut Pertanyaan Mahal Terbaru
  4. 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

  1. Di SSMS, buka jendela kueri baru
  2. Klik Tampilkan Perkiraan Rencana Eksekusi (Ctrl+L) atau Sertakan Rencana Eksekusi Aktual (Ctrl+M)
  3. Jalankan kueri Anda
  4. Tinjau rencana eksekusi untuk operasi yang mahal
  5. 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

  1. Di SSMS Object Explorer, klik kanan database
  2. Pilih Properties
  3. klik Penyimpanan Kueri halaman
  4. In Mode Operasi (Diminta), pilih Baca tulis
  5. Konfigurasikan pengaturan tambahan sesuai kebutuhan
  6. Klik OK

Memantau Kinerja Kueri

Akses laporan Query Store melalui Object Explorer:

  1. Perluas database di Object Explorer
  2. Lihat lebih lanjut Penyimpanan Kueri
  3. 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:

  1. Buka kueri di Query Store
  2. Klik kanan paket yang diinginkan
  3. 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

  1. Di SSMS, perluas SQL Server Agen
  2. Klik kanan Jobs dan pilih Pekerjaan Baru
  3. Beri nama pekerjaan (misalnya, “Kumpulkan Metrik Kinerja”)
  4. Klik Tangga dan tambahkan langkah baru
  5. Atur Jenis ke Skrip Transact-SQL
  6. Masukkan skrip pengumpulan data Anda
  7. Klik Jadwal dan menambahkan jadwal
  8. Konfigurasikan frekuensi (misalnya, setiap 5 menit)
  9. Klik OK untuk menciptakan pekerjaan

Pelaporan Otomatis

Buat pekerjaan yang menghasilkan dan mengirim laporan kinerja melalui email:

  1. Buat prosedur tersimpan yang menghasilkan laporan
  2. Gunakan Database Mail untuk mengirim laporan melalui email
  3. 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

  1. Hubungkan Power BI ke tabel data kinerja Anda
  2. Buat visualisasi untuk metrik utama
  3. Tambahkan pemotong untuk rentang waktu dan pemilihan server
  4. Publikasikan dasbor ke Layanan Power BI
  5. 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

  1. Diperiksa SQL Server pengaturan memori maksimum – ditemukan bahwa itu diatur ke default (tidak terbatas)
  2. Meninjau Total Memori Server vs Memori Server Target – menunjukkan kesenjangan yang signifikan
  3. Mengonfigurasi memori server maksimum untuk menyisakan 8 GB untuk sistem operasi
  4. Mengaktifkan izin “Kunci Halaman dalam Memori” untuk SQL Server akun layanan
  5. Menambahkan 32 GB RAM tambahan ke server
  6. 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

  1. Menggunakan DMV untuk mengidentifikasi kueri yang paling banyak mengonsumsi CPU
  2. Menganalisis rencana eksekusi untuk pertanyaan yang teridentifikasi
  3. Menemukan beberapa pemindaian tabel pada tabel besar karena indeks yang hilang
  4. Membuat indeks yang sesuai berdasarkan rekomendasi rencana eksekusi
  5. Mengidentifikasi SQL dinamis yang menyebabkan kompilasi berlebihan
  6. Kode aplikasi yang dimodifikasi untuk menggunakan kueri berparameter
  7. Panduan rencana yang diterapkan untuk prosedur tersimpan yang bermasalah
  8. 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

  1. Pengaturan memori yang diverifikasi sesuai – tidak menemukan masalah memori
  2. Menganalisis konfigurasi disk – menemukan semua file pada set spindel yang sama
  3. Log transaksi terpisah ke drive SSD cepat khusus
  4. Memindahkan tempdb ke drive SSD terpisah
  5. Menerapkan beberapa file data tempdb (satu per inti)
  6. Peningkatan drive file data ke konfigurasi RAID 10 SSD
  7. Pekerjaan batch yang dioptimalkan untuk menggunakan batch transaksi yang lebih kecil
  8. 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

  1. Minggu 1: Siapkan Monitor Kinerja dengan penghitung penting
  2. Minggu 2: Buat Set Pengumpul Data untuk pengumpulan otomatis
  3. Minggu 3: Tetapkan garis dasar selama operasi normal
  4. Minggu 4: Konfigurasikan peringatan untuk ambang batas kritis
  5. Bulan 2: Terapkan alat pemantauan tambahan (DMV, Extended Events)
  6. Bulan 3: Mengembangkan dasbor dan laporan khusus
  7. 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:

  1. Monitor Kinerja: Tentukan nama komputer jarak jauh saat menambahkan penghitung
  2. PowerShell: Gunakan parameter -ComputerName dengan Get-Counter
  3. Kendaraan Bermotor (DMV): Hubungkan ke server jarak jauh melalui SSMS dan tanyakan DMV
  4. 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:

  1. Buka Monitor Kinerja dengan file log Anda yang dimuat
  2. Klik kanan grafik dan pilih Simpan Data Sebagai
  3. Pilih File Teks (Dibatasi koma) (.csv)
  4. Pilih lokasi dan simpan
  5. 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:

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.

Bagikan sekarang: