1. Pengenalan kepada SQL Server Monitor Prestasi
1.1 Apa itu SQL Server Pemantau Prestasi?
SQL Server monitor prestasi ialah proses menjejak, menganalisis dan mengurus prestasi dan kesihatan anda SQL Server pangkalan data. Ia melibatkan pengumpulan dan tafsiran data tentang pelbagai aspek sistem pangkalan data anda untuk memastikan prestasi optimum, mencegah isu dan mengekalkan kesihatan pangkalan data.
Pemantauan prestasi merangkumi penjejakan masa pelaksanaan pertanyaan, penggunaan sumber, prestasi indeks, penyekatan dan kebuntuan, dan corak pertumbuhan pangkalan data. Pengawasan berterusan ini membantu pentadbir mengenal pasti masalah yang berpotensi sebelum ia memberi kesan kepada pengguna atau operasi perniagaan.
1.2 Faedah Utama Pemantauan Prestasi
Berkesan SQL Server monitor prestasi memberikan beberapa kelebihan kritikal:
- Pengesanan isu proaktif: Kenal pasti dan atasi masalah yang berpotensi sebelum ia memberi kesan kepada pengguna atau operasi perniagaan
- Pengoptimuman prestasi: Tentukan kesesakan dan ketidakcekapan untuk meningkatkan prestasi pangkalan data keseluruhan
- Perancangan kapasiti: Ramalan keperluan sumber dan rancang untuk pertumbuhan masa depan berdasarkan data sejarah
- Pematuhan dan keselamatan: Pastikan pematuhan kepada keperluan kawal selia dan mengesan aktiviti yang mencurigakan
1.3 Cabaran Prestasi Biasa
Tanpa pemantauan prestasi pangkalan data SQL yang betul, organisasi menghadapi beberapa risiko:
- Masa henti yang tidak dijangka yang mengganggu operasi perniagaan
- Prestasi aplikasi yang lemah menjejaskan pengalaman pengguna
- Kehilangan data atau rasuah
- Penggunaan sumber yang tidak cekap menyebabkan kos yang tidak perlu
- Pengguna yang kecewa dan potensi kehilangan hasil
Menurut kajian IDC 2023, 65% isu prestasi pangkalan data berpunca daripada amalan pemantauan atau pengoptimuman yang lemah.
2. Memahami Monitor Prestasi Windows (PerfMon)
2.1 Apakah itu Windows Performance Monitor?
Windows Performance Monitor (PerfMon) ialah alat Windows terbina dalam yang memantau sumber sistem dan prestasi aplikasi. Untuk SQL Server pentadbir, PerfMon memberikan pandangan yang tidak ternilai kepada kedua-dua sistem pengendalian dan SQL Server metrik, menjadikannya penting untuk analisis prestasi komprehensif.
PerfMon mengukur statistik prestasi pada selang masa yang tetap dan menyimpan statistik tersebut dalam fail untuk analisis kemudian. Pentadbir pangkalan data boleh memilih selang masa, format fail dan statistik yang hendak dipantau. Alat itu tidak SQL Server-khusus—pentadbir sistem menggunakannya untuk memantau Windows sendiri, Exchange, pelayan fail dan sebarang aplikasi yang boleh mengalami kesesakan.
2.2 Melancarkan Monitor Prestasi
Anda boleh melancarkan Performance Monitor menggunakan beberapa kaedah:
- Klik Start, jenis perfmon dalam kotak carian, klik "Performand Monitor" dalam hasil carian:
- Keratan Akhbar Windows + R, jenis perfmon, dan tekan Masukkan
- Navigasi ke Panel Kawalan -> Sistem dan keselamatan -> Alat pentadbiran -> Monitor Prestasi
3. Essential SQL Server Kaunter Prestasi
3.1 Pembilang Prestasi Memori
Pembilang ingatan adalah penting untuk pemantauan SQL Server prestasi kerana ia menunjukkan sama ada pangkalan data anda mempunyai sumber memori yang mencukupi.
MBytes tersedia
Kaunter ini menunjukkan jumlah memori fizikal yang tersedia serta-merta untuk peruntukan. Ia harus kekal agak malar dan idealnya tidak jatuh di bawah 4096 MB. Nilai rendah mungkin menunjukkan bahawa SQL Servertetapan memori maksimum dibiarkan secara lalai, atau tidakSQL Server aplikasi memakan memori.
Jangka Hayat Halaman
Jangka Hayat Halaman mengukur berapa lama (dalam saat) halaman kekal dalam kumpulan penimbal tanpa dirujuk. Nilai normal ialah 300 saat atau lebih. Nilai yang lebih rendah menunjukkan tekanan memori dan pusing ganti penimbal yang berlebihan, mengurangkan keberkesanan cache.
Nisbah Hit Cache Penampan
Kaunter ini menunjukkan peratusan permintaan data yang dijawab menggunakan cache penimbal SQL (memori) dan bukannya membaca daripada cakera. Ia biasanya memenuhi atau melebihi 99%. Nilai yang lebih rendah mencadangkan bahawa SQL Server memerlukan lebih banyak memori atau masih dalam proses pemanasan selepas dimulakan semula.
Pemberian Memori Belum Selesai
Ini menunjukkan bilangan proses menunggu memori di dalamnya SQL Server. Di bawah keadaan biasa, nilai ini mestilah 0 secara konsisten. Nilai yang lebih tinggi menunjukkan peruntukan memori yang tidak mencukupi untuk SQL Server.
Memori Pelayan Sasaran vs Memori Pelayan Keseluruhan
Memori Pelayan Sasaran menunjukkan jumlah memori yang ideal SQL Server nak guna. Jumlah Memori Pelayan menunjukkan apa SQL Server sedang digunakan. Nisbah antara nilai ini hendaklah lebih kurang 1. Perbezaan yang ketara mungkin menunjukkan tekanan memori atau ingatan yang tersedia tidak mencukupi.
3.2 Kaunter Prestasi Pemproses
Kaunter CPU membantu mengenal pasti kesesakan pemproses dan memahami caranya SQL Server menggunakan sumber pengkomputeran.
% Masa Pemproses
Ini mengukur peratusan masa berlalu yang dibelanjakan oleh pemproses untuk melaksanakan benang tidak terbiar. Pada pelayan aktif, nilai boleh meningkat kepada 100%, tetapi penggunaan berterusan melebihi 70-75% biasanya menunjukkan isu prestasi untuk pengguna. Indeks yang hilang atau tidak mencukupi selalunya menyebabkan penggunaan CPU yang tinggi.
% Masa Istimewa
Masa pemproses dibahagikan kepada mod Pengguna dan pemprosesan mod Privileged (Kernel). Semua akses cakera dan I/O berlaku di bawah mod Kernel. Jika kaunter ini melebihi 25%, sistem berkemungkinan melakukan terlalu banyak I/O. Nilai normal berkisar antara 5% dan 10%.
Panjang Gilir Pemproses
Kaunter ini menunjukkan urutan menunggu sumber CPU. Nilai secara konsisten melebihi 1 (kecuali semasa SQL Server mampatan sandaran) menunjukkan tekanan CPU. Ini selalunya bermakna aplikasi lain dipasang pada SQL Server mesin, yang melanggar amalan terbaik.
Tukar Konteks/saat
Ini mengukur kekerapan pemproses bertukar antara benang. Penukaran konteks yang berlebihan boleh menjejaskan prestasi dan menunjukkan beban sistem yang tinggi.
3.3 Pembilang Prestasi I/O Cakera
Kaunter cakera adalah penting untuk pemantauan prestasi SQL kerana cakera I/O sering menjadi kesesakan utama dalam sistem pangkalan data.
% Masa Cakera
Ini merekodkan peratusan masa cakera sibuk dengan operasi baca/tulis. Nilai yang konsisten melebihi 85% menunjukkan kesesakan I/O. Memandangkan cakera jauh lebih perlahan daripada memori, mengurangkan metrik ini meningkatkan prestasi.
Purata Saat cakera/Baca dan Purata. Cakera saat/Tulis
Pembilang ini mengukur masa purata (dalam saat) untuk operasi baca dan tulis. Jika nilai purata melebihi 10-20ms, cakera mengambil masa terlalu lama untuk memproses data. Pemacu log transaksi memerlukan prestasi tulis yang sangat pantas.
Panjang Baris Cakera
Ini menunjukkan permintaan yang luar biasa untuk membaca/menulis ke cakera. Nilai yang konsisten lebih tinggi daripada 2 (atau 2 setiap cakera untuk tatasusunan RAID) menunjukkan cakera tidak dapat bersaing dengan permintaan I/O.
Bait Cakera/saat
Ini memantau kadar pemindahan data ke/dari cakera. Jika ini melebihi kapasiti undian cakera, data mula tertunggak, seperti yang ditunjukkan dengan meningkatkan Panjang Gilir Cakera.
Pemindahan Cakera/saat
Ini menjejaki bilangan operasi baca/tulis yang dilakukan pada cakera. SQL Server capaian data biasanya rawak, yang lebih perlahan disebabkan oleh pergerakan kepala yang memandu. Pastikan nilai ini kekal di bawah penilaian maksimum pemacu cakera anda (biasanya 100/saat untuk pemacu standard).
3.4 SQL Server Kaunter Tertentu
3.4.1 Kaunter Pengurus Penampan
Pemantau kaunter Pengurus Penampan SQL Serveroperasi penimbal memori:
- Halaman dibaca/saat: Kiraan kumulatif bacaan halaman pangkalan data fizikal
- Halaman menulis/saat: Kiraan kumulatif penulisan halaman pangkalan data fizikal
- Malas menulis/saat: Bilangan penimbal yang ditulis oleh penulis malas untuk membebaskan memori
- Halaman pusat pemeriksaan/saat: Halaman yang disiram oleh pusat pemeriksaan atau operasi lain yang memerlukan semua halaman yang kotor disiram
3.4.2 Kaunter Statistik SQL
Kaunter ini memberikan pandangan tentang SQL Server pemprosesan pertanyaan:
- Permintaan Kelompok/saat: Bilangan permintaan kumpulan SQL yang diterima oleh pelayan. Ini berfungsi sebagai penanda aras untuk aktiviti pelayan
- Kompilasi SQL/saat: Bilangan kompilasi SQL. Seharusnya 10% atau kurang daripada jumlah Permintaan Kelompok/saat
- Penyusunan Semula SQL/saat: Bilangan penyusunan semula SQL. Juga hendaklah 10% atau kurang daripada jumlah Permintaan Kelompok/saat
3.4.3 Kaunter Perangkaan Am
- Sambungan Pengguna: Bilangan pengguna yang disambungkan ke sistem. Digunakan sebagai penanda aras untuk menjejaki pertumbuhan sambungan dari semasa ke semasa
- Proses Disekat: Kiraan semasa proses yang disekat. Sebaik-baiknya hendaklah 0
3.4.4 Kaunter Pengurus Memori
- Pemberian Memori Belum Selesai: Jumlah bilangan proses menunggu pemberian memori ruang kerja. Sebaik-baiknya adalah 0
4. Menyediakan Monitor Prestasi untuk SQL Server(Windows Vista / Server 2008 dan lebih baru)
Pertama sekali, kita perlu mencipta bekas untuk menguruskan kaunter dengan lebih mudah:
- Untuk Windows Vista / Server 2008 dan versi yang lebih baru, anda boleh mencipta Set Pengumpul Data dalam bahagian ini.
- Untuk Windows XP / Server 2003 dan versi terdahulu, anda boleh mencipta Log Masuk Balas bahagian seterusnya.
4.1 Apakah Set Pengumpul Data?
Set Pengumpul Data mengatur pembilang prestasi, data surih peristiwa dan maklumat konfigurasi sistem ke dalam unit pengumpulan tunggal. Mereka menyediakan lebih fleksibiliti daripada log balas ringkas dan membolehkan pengumpulan data berjadual automatik untuk pemantauan prestasi pangkalan data SQL yang komprehensif.
4.2 Mencipta Set Pengumpul Data
Buat Set Pengumpul Data tersuai untuk dipantau SQL Server kaunter prestasi:
- Buka Monitor Prestasi
- Mengembangkan Set Pengumpul Data
- Klik kanan Pengguna Ditentukan
- pilih Baru -> Set Pengumpul Data
- Masukkan nama deskriptif (cth, “SQL Server Metrik Prestasi”)
- pilih Buat secara manual (Lanjutan)
- Klik Seterusnya
- daftar Cipta log data -> Kaunter Prestasi
- Klik Seterusnya
- Klik Tambah untuk memilih kaunter
- Tambah dikehendaki SQL Server dan kaunter sistem.
- Tetapkan Selang sampel
- Untuk pemantauan rutin, gunakan 1 minit (60 saat)
- Untuk penyelesaian masalah aktif, gunakan 15-30 saat
- Elakkan daripada menjalankan tangkapan frekuensi tinggi jangka panjang, kerana ia boleh memberi kesan kepada prestasi dan menjana data yang berlebihan.
- Klik Seterusnya
- Pilih lokasi untuk menyimpan log
- Klik Selesai, Set Pengumpul Data baharu akan dibuat.
- Secara lalai, Set Pengumpul Data baharu akan TIDAK dimulakan secara automatik. Anda perlu mencarinya di panel kiri, di bawah prestasi -> Set Pengumpul Data -> Pengguna Ditentukan -> Pengumpul Data anda, klik kanan padanya dan pilih Start
4.3 Kaunter Utama untuk Ditambah
- Memori -> MBytes Tersedia
- Cakera Fizikal -> Purata. Cakera saat/Baca (semua kejadian kecuali _Jumlah)
- Cakera Fizikal -> Purata. Cakera saat/Tulis (semua kejadian kecuali _Jumlah)
- Cakera Fizikal -> Bacaan Cakera/saat (semua kejadian kecuali _Jumlah)
- Cakera Fizikal -> Tulisan Cakera/saat (semua kejadian kecuali _Jumlah)
- Pemproses -> % Masa Pemproses (semua kejadian kecuali _Jumlah)
- SQLServer: Statistik Umum -> Sambungan Pengguna
- SQLServer: Pengurus Memori -> Pemberian Memori Belum Selesai
- SQLServer: Statistik SQL -> Permintaan Kelompok/saat
- SQLServer: Statistik SQL -> Kompilasi SQL/saat
- SQLServer: Statistik SQL -> Penyusunan Semula SQL/saat
- Sistem -> Panjang Gilir Pemproses
4.4 Menetapkan Syarat Berhenti
Konfigurasikan keadaan berhenti untuk menghalang pertumbuhan data tanpa had:
- Selepas mencipta Set Pengumpul Data, klik kanan padanya dan pilih Hartanah
- Klik Keadaan Berhenti tab
- enable Tempoh keseluruhan
- Tetapkan tempoh kepada 1 hari (24 jam)
- Klik OK untuk menyelamatkan
Ini memastikan log tidak menjadi terlalu besar dan dimulakan semula secara automatik jika dijadualkan.
4.5 Menjadualkan Pengumpulan Data
Automasi pengumpulan data untuk memastikan pemantauan yang konsisten:
- Klik kanan Set Pengumpul Data anda dan pilih Hartanah
- Klik Jadual tab
- Klik Tambah untuk membuat jadual baru
- Konfigurasikan tarikh dan masa mula
- Tetapkan corak berulang (cth, setiap hari)
- Klik OK untuk menyimpan jadual
Untuk permulaan automatik, konfigurasikan Set Pengumpul Data untuk bermula apabila pelayan but dengan mencipta pencetus permulaan dalam Penjadual Tugas Windows.
5. Menyediakan Monitor Prestasi untuk SQL Server(Windows XP / Server 2003 dan lebih awal)
Untuk Windows XP / Server 2003 dan versi terdahulu, anda boleh mencipta Log Balas, yang membolehkan anda memilih satu set pembilang prestasi dan log mereka ke fail secara berkala.
5.1 Mencipta Log Kaunter
Ikuti langkah ini untuk membuat log balas baharu:
- Buka Monitor Prestasi
- Mengembangkan Log Prestasi dan Makluman di panel kiri
- Klik kanan Log Kaunter
- pilih Tetapan Log Baharu
- Namakan log dengan nama pelayan pangkalan data anda (cth, “ProductionSQL01”)
- Klik OK untuk memulakan konfigurasi
Mencipta log kaunter berasingan untuk setiap pelayan membolehkan anda menguji prestasi pada pelayan individu tanpa mengumpul data untuk semua pelayan secara serentak.
5.2 Menambah Kaunter Prestasi
Selepas membuat log pembilang, tambahkan pembilang prestasi khusus yang anda mahu pantau:
- Klik Tambah Kaunter butang
- Tukar nama komputer untuk menunjuk kepada anda SQL Server contohnya
- Keratan Akhbar Tab untuk memuatkan objek prestasi yang tersedia
- Pilih objek prestasi daripada menu lungsur (cth, Memori)
- Pilih kaunter khusus daripada senarai
- Pilih contoh jika berkenaan (cth., pemproses atau cakera individu)
- Klik Tambah untuk memasukkan kaunter
- Ulang untuk semua kaunter yang dikehendaki
- Klik Tutup apabila selesai
5.3 Mengkonfigurasi Selang Sampel
Selang sampel menentukan kekerapan Monitor Prestasi mengumpul data. Konfigurasikan selang yang sesuai berdasarkan keperluan pemantauan anda:
- Dalam sifat log kaunter, cari Sampel data setiap
- Tetapkan selang (lalai ialah 15 saat)
- Untuk pemantauan garis dasar, gunakan selang 1 minit untuk pengumpulan harian
- Untuk penyelesaian masalah, gunakan selang 15-30 saat untuk letusan pendek
- Klik OK untuk memohon
Ingat bahawa selang yang lebih kecil menjana lebih banyak data, yang boleh menjadi lebih sukar untuk dibuat dan dianalisis. Selang yang lebih besar mungkin terlepas pancang penting. Seimbangkan kebutiran data dengan keperluan penyimpanan dan analisis.
5.4 Mengkonfigurasi Fail Log
Konfigurasi fail log yang betul memastikan data disimpan dengan cekap dan boleh diakses:
- Klik Fail Log tab dalam sifat log kaunter
- Tukar jenis fail log kepada Fail Teks (dibataskan koma) untuk pengimportan Excel yang mudah
- Klik Konfigurasi
- Tetapkan laluan fail ke lokasi khusus (cth, folder PerformanceLogs kongsi)
- Klik OK untuk mengesahkan
Gunakan bahagian yang boleh diakses rangkaian untuk storan log supaya anda boleh mengakses fail dari jauh dan berkongsinya dengan pengguna lain.
5.5 Menyediakan Bukti Kelayakan
Konfigurasikan bukti kelayakan yang sesuai supaya Monitor Prestasi boleh mengakses jauh SQL Server contoh:
- Dalam sifat log kaunter, cari Jalankan Sebagai
- Masukkan nama pengguna domain anda dalam format: DOMAIN\nama pengguna
- Klik Set Kata laluan
- Masukkan dan sahkan kata laluan anda
- Klik OK untuk menyelamatkan
Ini membolehkan perkhidmatan PerfMon mengumpulkan statistik menggunakan kebenaran domain anda dan bukannya bukti kelayakannya sendiri.
6. Menganalisis Data Pemantau Prestasi
6.1 Melihat Fail Log dalam Monitor Prestasi
Performance Monitor boleh memaparkan data sejarah daripada fail log yang disimpan:
- Buka Monitor Prestasi
- Di panel kiri, klik Alat Pemantauan -> Monitor Prestasi.
- Klik kanan di mana-mana dalam kawasan graf
- pilih Hartanah
- Klik Source tab
- pilih Log fail butang radio
- Klik Tambah
- Navigasi ke fail log anda (.blg atau .csv)
- Pilih fail dan klik Buka
- Menggunakan Julat Masa peluncur untuk memilih tempoh yang anda ingin analisis
- Klik OK untuk menutup dialog Properties
- Klik ikon tambah hijau untuk menambah pembilang daripada fail log
- Pilih pembilang yang dikehendaki untuk dipaparkan
- Klik OK
Graf kini akan memaparkan data sejarah daripada fail log. Gunakan peluncur Julat Masa dalam Properties untuk mengecilkan tempoh masa tertentu untuk analisis terperinci.
6.2 Mengeksport Data ke Excel
Excel menyediakan keupayaan analisis yang berkuasa untuk data kaunter prestasi:
- Buka Monitor Prestasi dengan fail log anda dimuatkan
- Klik kanan di mana-mana dalam kawasan graf
- pilih Simpan Data Sebagai
- Pilih lokasi untuk fail
- pilih Fail Teks (dibataskan koma) (.csv) daripada dropdown
- Klik Jimat
- Buka fail CSV dalam Excel
Formatkan data yang dieksport untuk analisis yang lebih baik:
- Padamkan baris separuh kosong 2 dan kosongkan sel A1
- Format lajur A sebagai Tarikh/Masa
- Format lajur berangka dengan sifar perpuluhan dan pemisah beribu-ribu
- Cari dan gantikan nama pelayan dalam pengepala (cth, gantikan “\\SERVERNAME” dengan kosong)
- Bersihkan nama objek dalam pengepala (cth, “Memori”, “PhysicalDisk”, “Pemproses”)
- Kurangkan saiz fon pengepala kepada 8 mata untuk keterlihatan yang lebih baik
6.3 Mentafsir Nilai Kaunter
6.3.1 Analisis Kaunter Ingatan
Apabila menganalisis pembilang memori, cari penunjuk ini:
- MBytes tersedia: Harus kekal melebihi 4096 MB secara konsisten
- Jangka Hayat Halaman: Nilai melebihi 300 saat menunjukkan ingatan yang sihat. Nilai yang lebih rendah mencadangkan tekanan ingatan
- Nisbah Hit Cache Penampan: Harus memenuhi atau melebihi 99%. Nilai yang lebih rendah menunjukkan bacaan cakera yang berlebihan
- Pemberian Memori Belum Selesai: Sentiasa 0. Sebarang nilai positif menunjukkan kebuluran memori
6.3.2 Analisis Kaunter CPU
Penunjuk prestasi CPU termasuk:
- % Masa Pemproses: Penggunaan berterusan melebihi 75% menunjukkan masalah prestasi. Lonjakan hingga 100% adalah perkara biasa tetapi tidak sepatutnya berterusan
- Panjang Gilir Pemproses: Nilai di atas 1 menunjukkan tekanan CPU. Semak Pengurus Tugas untuk mengenal pasti proses yang menggunakan CPU
- % Masa Keistimewaan: Harus kekal antara 5-10%. Nilai melebihi 25% mencadangkan operasi I/O yang berlebihan
6.3.3 Analisis Kaunter Cakera
Ambang prestasi cakera:
- Purata Saat cakera/Baca dan Tulis: Harus kekal di bawah 10-20ms. Nilai yang lebih tinggi menunjukkan subsistem cakera perlahan
- Panjang Baris Cakera: Nilai yang konsisten melebihi 2 (atau 2 setiap cakera dalam RAID) menunjukkan kesesakan I/O
- % Masa Cakera: Nilai berkekalan melebihi 85% menunjukkan ketepuan cakera
6.4 Menggunakan Formula dan Statistik
Tambahkan formula statistik pada Excel untuk analisis pantas:
- Sisipkan 7 baris kosong di bahagian atas hamparan anda
- Tambahkan label dalam lajur A: Purata, Median, Min, Maks, Sisihan Std
- Dalam sel B2, masukkan: =AVERAGE(B9:B100) (laraskan B100 kepada baris data terakhir anda)
- Dalam sel B3, masukkan: =MEDIAN(B9:B100)
- Dalam sel B4, masukkan: =MIN(B9:B100)
- Dalam sel B5, masukkan: =MAX(B9:B100)
- Dalam sel B6, masukkan: =STDEV(B9:B100)
- Salin formula merentas semua lajur pembilang
- Pilih sel B9 dan tekan Alt+W+F+Enter untuk membekukan anak tetingkap
Statistik ini membantu mengenal pasti arah aliran, outlier dan julat operasi biasa untuk setiap kaunter.
7. Alat Analisis Prestasi untuk Log (PAL).
7.1 Pengenalan kepada PAL
Analisis Prestasi untuk Log (PAL) ialah alat percuma yang dibangunkan oleh Clint Huffman yang menganalisis log Monitor Prestasi dan menjana laporan HTML dengan analisis ambang. PAL membandingkan data prestasi anda dengan ambang yang diketahui dan memberikan pengesyoran terperinci untuk SQL Server pengoptimuman prestasi.
Muat turun PAL dari repositori GitHub: https://github.com/clinthuffman/PAL
7.2 Menubuhkan PAL
Pasang PAL dengan mengikuti langkah berikut:
- Muat turun fail persediaan PAL daripada GitHub
- Jalankan pemasang
- Klik Seterusnya pada skrin alu-aluan
- Semak dan terima direktori pemasangan
- Klik Seterusnya untuk meneruskan
- Klik memasang untuk memulakan pemasangan
- Tunggu pemasangan selesai
- Klik Selesai
7.3 Memproses Fail Log dengan PAL
Analisis log Monitor Prestasi anda menggunakan PAL:
- Lancarkan PAL dari menu Mula atau direktori pemasangan
- Klik Log Kaunter tab
- Klik Kategori untuk memilih fail .blg anda
- Navigasi ke fail log Monitor Prestasi anda
- Klik Buka
- Klik Fail Ambang tab
- Pilih fail ambang daripada menu lungsur (cth, “SQL Server 2016 ")
- Klik Sering Ditanya tab
- Jawab soalan tentang konfigurasi sistem anda
- Nyatakan sama ada anda SQL Server ialah OLTP atau Gudang Data
- Masukkan jumlah RAM yang tersedia
- Klik Pilihan Output tab
- Pilih direktori output untuk laporan HTML
- daftar HTML format output
- Klik Melaksanakan tab
- Semak pilihan anda
- daftar Mulakan pelaksanaan sekarang
- Klik Selesai
7.4 Menganalisis Laporan PAL
Selepas PAL melengkapkan analisis, ia menghasilkan laporan HTML yang mengandungi:
- Ringkasan eksekutif isu prestasi
- Analisis kaunter terperinci dengan carta
- Pelanggaran ambang diserlahkan dalam warna
- Cadangan khusus untuk setiap isu
- Trend dan corak sejarah
Laporan menggunakan pengekodan warna untuk menunjukkan keterukan: merah untuk isu kritikal, kuning untuk amaran dan hijau untuk metrik yang sihat. Semak setiap bahagian untuk memahami kesesakan prestasi dan ikut cadangan PAL untuk pengoptimuman.
8. Alternatif SQL Server Alat Pemantauan
8.1 Terbina dalam SQL Server Alatan
8.1.1 SQL Server Memantau aktiviti
SQL Server Memantau aktiviti memaparkan maklumat masa nyata tentang SQL Server proses dan prestasi:
- Buka SQL Server Management Studio(SSMS) dan sambungkan ke contoh pelayan anda
- Klik kanan nama pelayan dalam Object Explorer
- pilih Memantau aktiviti
Monitor Aktiviti menunjukkan proses, menunggu sumber, I/O fail data dan pertanyaan mahal baru-baru ini. Ia memberikan pandangan pantas ke dalam aktiviti pangkalan data semasa tetapi tidak menyimpan data sejarah.
8.1.2 SQL Server Papan Pemuka Prestasi
SQL Server Studio Pengurusan termasuk laporan prestasi terbina dalam:
- In SQL Server Management Studio(SSMS), klik kanan pada SQL Server contoh dalam Object Explorer
- pilih Laporan -> Laporan Standard
- Pilih daripada laporan yang tersedia seperti Papan Pemuka Prestasi
Papan Pemuka Prestasi menyediakan cerapan visual SQL Server prestasi contoh, termasuk penggunaan CPU sistem, permintaan menunggu semasa dan metrik prestasi. Aksesnya melalui menu Laporan Standard.
8.1.3 SQL Server Profil
SQL Server Profil menangkap dan menganalisis SQL Server peristiwa seperti pelaksanaan pertanyaan, operasi transaksi dan aktiviti log masuk.
Untuk mula SQL Server profiler:
- In SQL Server Studio Pengurusan, klik Alatan -> SQL Server Profil
Profiler menghasilkan overhed prestasi yang ketara, jadi gunakannya dengan bijak dan sebaik-baiknya semasa waktu luar puncak. Bagi kebanyakan senario, Acara Lanjutan memberikan prestasi yang lebih baik dengan impak yang kurang.
8.1.4 Acara Lanjutan
Acara Lanjutan ialah sistem pemantauan prestasi ringan terbina dalam SQL Server. Ia menggantikan SQL Server Profiler dengan prestasi yang lebih baik dan overhed yang lebih rendah.
Ciri-ciri utama termasuk:
- Pemantauan terperinci acara tertentu
- Impak prestasi minimum
- Sesi acara yang boleh disesuaikan
- Integrasi dengan SSMS dan alatan lain
- Sokongan untuk penapisan dan pengagregatan kompleks
Buat sesi Acara Lanjutan melalui SSMS:
- In Penjelajah Objek, kembangkan pelayan anda dan pergi ke Pengurusan -> Acara Lanjutan -> Sesi
- Klik kanan pada Sesyen Dan pilih Wizard Sesi Baharu
- Ikut arahan untuk memulakan sesi baharu.
8.1.5 Pandangan Pengurusan Dinamik (DMV)
DMV mendedahkan maklumat keadaan pelayan terperinci untuk memantau kesihatan, mendiagnosis isu dan prestasi penalaan. DMV utama termasuk:
- sys.dm_exec_query_stats: Statistik prestasi pertanyaan
- sys.dm_os_wait_stats: Jenis tunggu yang mempengaruhi prestasi pelayan
- sys.dm_os_performance_counters: SQL Server data kaunter prestasi
- sys.dm_exec_requests: Sedang melaksanakan permintaan
- sys.dm_exec_sessions: Sesi pengguna aktif
Tanya pandangan ini menggunakan T-SQL untuk mengakses data prestasi masa nyata dan metrik sejarah.
Penggunaan Asas
-- 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 Penyelesaian Pemantauan Pihak Ketiga
Redgate SQL Monitor
Redgate SQL Monitor pakar dalam pemantauan SQL Server dan persekitaran Pangkalan Data Azure SQL. Ia menyediakan pemantauan seluruh estet, makluman dan papan pemuka yang boleh disesuaikan, keupayaan pelaporan terperinci dan penyepaduan dengan alatan Redgate yang lain.
SolarWinds SQL Server Alat Pemantauan
The SolarWinds SQL Server Alat Pemantauan, juga dikenali sebagai SQL Sentry, direka untuk mendiagnosis, menyelesaikan dan mencegah isu prestasi yang serius dengan SQL Server.
IDERA SQL Server Alat Pemantauan Prestasi
Pengurus Diagnostik SQL IDERA ialah perisian yang berkuasa SQL Server alat pemantauan prestasi yang direka untuk membantu pemantauan prestasi proaktif, diagnostik dan penalaan.
Pemantauan SQL Pengurus Aplikasi
Pengurus Aplikasi menawarkan Microsoft SQL Server Alat pemantauan yang menyediakan penyelesaian IT yang berguna. Ia direka bentuk untuk mengawasi prestasi pangkalan data SQL, pada masa yang sama mengenal pasti pepijat dan menyelesaikan isu yang boleh menyebabkan penghentian dalam operasi organisasi.
8.3 Alat Pemantauan Sumber Terbuka
DBA Dash
DBA Dash ialah alat pemantauan sumber terbuka percuma yang memberikan cerapan SQL Server kesihatan, prestasi dan aktiviti. Ia amat berguna untuk persekitaran kecil hingga sederhana dan termasuk semakan DBA harian, pemantauan prestasi dan penjejakan konfigurasi.
SQLWATCH
SQLWATCH menawarkan terdesentralisasi, berhampiran masa nyata SQL Server pemantauan dengan butiran 5 saat untuk menangkap lonjakan beban kerja. Ia menyokong Grafana untuk papan pemuka masa nyata dan Power BI untuk analisis mendalam. Alat ini menyediakan pilihan konfigurasi yang luas, keperluan penyelenggaraan sifar, dan kebolehskalaan tanpa had.
Pelayan
Dibangunkan oleh Stack Exchange, Opserver memantau pelbagai sistem termasuk SQL Server, Redis dan Elasticsearch. Ia menyediakan paparan "semua pelayan" untuk statistik CPU, memori, rangkaian dan perkakasan merentas infrastruktur anda.
sp_WhoIsActive
sp_WhoIsActive ialah prosedur tersimpan pemantauan aktiviti komprehensif yang dicipta oleh Adam Machanic. Ia berfungsi dengan semua SQL Server versi dari 2005 melalui keluaran semasa dan digunakan secara meluas oleh SQL Server DBA untuk pemantauan aktiviti masa nyata.
Untuk menggunakan sp_WhoIsActive, muat turun dari http://whoisactive.com/, pasang dalam pangkalan data anda dan laksanakan:
EXEC sp_WhoIsActive
Prosedur menunjukkan sedang melaksanakan pertanyaan, menunggu maklumat, menyekat butiran dan penggunaan sumber.
9. Amalan Terbaik untuk SQL Server Monitor Prestasi
9.1 Mewujudkan Garis Asas Prestasi
Garis dasar prestasi menetapkan parameter operasi biasa untuk anda SQL Server persekitaran. Tanpa garis dasar, anda tidak boleh menentukan sama ada metrik semasa menunjukkan masalah atau mewakili tingkah laku biasa.
Buat garis dasar dengan:
- Mengumpul data prestasi semasa operasi biasa selama sekurang-kurangnya satu minggu
- Menangkap metrik semasa waktu puncak dan waktu luar sibuk
- Mendokumentasikan nilai biasa untuk pembilang kunci
- Merekod variasi bermusim jika berkenaan
- Menyimpan data garis dasar untuk perbandingan dengan metrik masa hadapan
Kemas kini garis dasar setiap suku tahun atau selepas perubahan infrastruktur yang ketara, kemas kini aplikasi atau pengubahsuaian pangkalan data.
9.2 Menetapkan Ambang Makluman yang Sesuai
Konfigurasikan ambang pintar untuk menerima makluman yang bermakna tanpa membebankan diri anda dengan pemberitahuan:
- Pemberian Memori Belum Selesai > 0 menunjukkan tekanan memori
- Panjang Gilir Pemproses > 2 setiap teras mencadangkan kesesakan CPU
- Cakera saat/Baca atau Tulis > 20ms menunjukkan I/O perlahan
- Proses Disekat > 5 isyarat isu perbalahan
- Jangka Hayat Halaman < 300 saat menunjukkan tekanan ingatan
Laraskan ambang berdasarkan data garis dasar anda dan ciri beban kerja khusus. Gunakan ambang penyesuaian yang menyumbang kepada variasi biasa dalam persekitaran anda.
9.3 Semakan dan Analisis Data Berkala
Jadualkan semakan prestasi biasa untuk mengenal pasti arah aliran dan isu yang muncul:
- Harian: Semak metrik peringkat tinggi dan makluman terkini
- Mingguan: Menjalankan analisis mendalam tentang arah aliran prestasi
- Bulanan: Hasilkan laporan komprehensif dan bandingkan dengan garis dasar
- Suku Tahunan: Semak perancangan kapasiti dan arah aliran jangka panjang
Dokumen penemuan dan jejaki peningkatan prestasi dari semasa ke semasa.
9.4 Mengimbangi Overhed Pemantauan
Pemantauan itu sendiri menggunakan sumber, jadi seimbangkan pengumpulan data dengan kesan prestasi:
- Gunakan selang 30-60 saat untuk pemantauan berterusan
- Gunakan selang 15 saat sahaja untuk penyelesaian masalah aktif
- Hadkan tempoh Set Pengumpul Data untuk mengelakkan data berlebihan
- Simpan log pada pemacu berasingan daripada fail pangkalan data
- Arkibkan data prestasi lama untuk mengekalkan saiz fail yang boleh diurus
Performance Monitor menambah overhed minimum apabila dikonfigurasikan dengan betul, biasanya di bawah 2% daripada sumber sistem.
9.5 Pengekalan Data Jangka Panjang
Kekalkan data prestasi untuk analisis trend yang bermakna dan perancangan kapasiti:
- Simpan sekurang-kurangnya 1-2 tahun data prestasi
- Arkibkan data untuk memisahkan storan selepas 3-6 bulan
- Mampatkan fail log lama untuk menjimatkan ruang
- Dokumentasikan sebarang peristiwa atau perubahan penting yang menjejaskan prestasi
Memandangkan saiz data kaunter prestasi yang agak kecil, mengekalkannya selama-lamanya selalunya boleh dilaksanakan dan bernilai untuk analisis jangka panjang.
9.6 Mengintegrasikan dengan Amalan DevOps
Menggabungkan pemantauan prestasi pangkalan data ke dalam saluran paip CI/CD:
- Sertakan metrik prestasi pangkalan data dalam pengesahan penggunaan
- Automatikkan ujian prestasi untuk keluaran baharu
- Sahkan bahawa perubahan kod tidak menjejaskan prestasi secara negatif
- Buat penanda aras prestasi untuk setiap keluaran
- Mengintegrasikan amaran pemantauan dengan sistem pengurusan insiden
10. Menyelesaikan Masalah Isu Prestasi Biasa
10.1 Mengenalpasti Bottleneck CPU
Kesesakan CPU nyata sebagai masa tindak balas pertanyaan yang perlahan dan penggunaan pemproses yang tinggi. Gunakan langkah ini untuk mendiagnosis isu CPU:
- Semak Kaunter Panjang Baris Pemproses. Nilai melebihi 2 setiap teras menunjukkan tekanan CPU
- Semakan % Masa Pemproses. Nilai berkekalan melebihi 75% mencadangkan kesesakan CPU
- Desktop jauh ke SQL Server
- Buka Pengurus Tugas (Ctrl+Shift+Esc)
- Klik Proses tab
- daftar Tunjukkan proses daripada semua pengguna
- Klik CPU pengepala lajur untuk mengisih mengikut penggunaan CPU
- Kenal pasti proses yang menggunakan sumber CPU
Jika bukanSQL Server aplikasi menggunakan CPU yang ketara, keluarkannya daripada pelayan pangkalan data. Jika sqlservr.exe menggunakan CPU tinggi, siasat menggunakan kaedah ini:
- Semak Kompilasi SQL/saat dan Penyusunan Semula SQL/saat. Nilai melebihi 10% daripada Permintaan Kelompok/saat menunjukkan kompilasi yang berlebihan
- Pertanyaan sys.dm_exec_query_stats untuk mengenal pasti pertanyaan intensif CPU
- Semak pelan pelaksanaan untuk indeks yang hilang atau operasi yang tidak cekap
- Pertimbangkan untuk menambah indeks untuk mengurangkan imbasan jadual
10.2 Mendiagnosis Masalah Ingatan
Isu ingatan memberi impak yang ketara SQL Server prestasi. Diagnosis masalah ingatan menggunakan penunjuk ini:
Titisan Memori Tersedia
Jika MByte yang Tersedia jatuh di bawah 100 MB secara konsisten, sistem pengendalian menghadapi kebuluran memori. Windows mungkin keluar halaman SQL Server memori ke cakera, menyebabkan kemerosotan prestasi.
Jangka Hayat Halaman Rendah
Jangka Hayat Halaman di bawah 300 saat menunjukkan perolehan cache penimbal yang tinggi. Ini menunjukkan sama ada peruntukan memori tidak mencukupi atau tekanan memori yang berlebihan daripada pertanyaan.
Nisbah Hit Cache Penampan Rendah
Nisbah Hit Cache Penampan di bawah 99% bermakna SQL Server kerap membaca data daripada cakera dan bukannya memori. Ini berlaku apabila kolam penampan terlalu kecil atau SQL Server masih memanaskan badan selepas dimulakan semula.
Pemberian Memori Belum Selesai
Sebarang nilai di atas 0 untuk Pemberian Memori Belum Selesai menunjukkan pertanyaan sedang menunggu pemberian memori. Ini mewakili kekurangan ingatan kritikal yang memerlukan perhatian segera.
Untuk menyelesaikan masalah ingatan:
- Konfigurasi SQL Server tetapan memori maks untuk meninggalkan RAM yang mencukupi untuk sistem pengendalian (biasanya 4-8 GB bergantung pada saiz pelayan)
- Dayakan kebenaran "Kunci Halaman dalam Memori" untuk SQL Server akaun perkhidmatan
- Tambahkan lebih banyak RAM fizikal ke pelayan jika tekanan memori berterusan
- Kenal pasti dan optimumkan pertanyaan intensif memori
10.3 Menyelesaikan Isu I/O Cakera
Cakera I/O kerap menjadi kesesakan prestasi utama dalam sistem pangkalan data. Diagnosis isu cakera menggunakan kaedah ini:
Panjang Baris Cakera Tinggi
Panjang Gilir Cakera secara konsisten melebihi 2 (atau 2 setiap cakera untuk RAID) menunjukkan subsistem cakera tidak dapat mengikuti permintaan I/O. Ini mewujudkan tunggakan operasi yang belum selesai.
Kependaman Cakera Berlebihan
Purata Saat cakera/Baca dan Purata. Nilai saat cakera/Tulis melebihi 10-20ms menunjukkan tindak balas cakera perlahan. Pemacu log transaksi memerlukan prestasi yang sangat pantas, idealnya di bawah 5ms untuk penulisan.
Masa Cakera % Tinggi
% Masa Cakera yang berterusan melebihi 85% menunjukkan ketepuan cakera. Cakera menghabiskan sebahagian besar masanya memproses permintaan I/O dengan baki kapasiti melahu yang sedikit.
Sebelum menangani isu cakera, sahkan ia bukan gejala masalah ingatan. Daya ingatan yang tidak mencukupi SQL Server untuk membaca lebih banyak data daripada cakera, mengembungkan metrik cakera secara buatan.
Untuk menyelesaikan isu I/O cakera tulen:
- Naik taraf kepada cakera yang lebih pantas (SSD dan bukannya HDD)
- Laksanakan konfigurasi RAID untuk prestasi yang lebih baik
- Asingkan fail pangkalan data, log transaksi dan tempdb ke pemacu fizikal yang berbeza
- Tambahkan lebih banyak memori untuk mengurangkan bacaan cakera
- Optimumkan indeks untuk mengurangkan I/O yang tidak perlu
- Semak dan optimumkan pertanyaan yang berprestasi buruk
10.4 Menangani Penyekatan dan Kebuntuan
Penyekatan berlaku apabila satu sesi memegang kunci yang menghalang sesi lain daripada meneruskan. Pantau kaunter ini untuk mengenal pasti isu penyekatan:
- Proses Disekat: Sebaik-baiknya adalah 0
- Kunci Tunggu/saat: Bilangan permintaan kunci yang memerlukan menunggu
- Purata Masa Menunggu: Purata tempoh menunggu kunci
Untuk menyiasat penyekatan:
- Buka Monitor Aktiviti dalam SSMS
- Mengembangkan Proses seksyen
- Cari proses dengan bukan sifar Disekat Oleh nilai
- Kenal pasti ID sesi menyekat
- Semak pertanyaan yang menyebabkan penyekatan
Gunakan sp_WhoIsActive untuk analisis penyekatan yang lebih terperinci. Entri wait_info yang berlebihan sering menunjukkan perbalahan tempdb atau isu penyekatan.
Untuk mengurangkan penyekatan:
- Minimumkan tempoh transaksi
- Gunakan tahap pengasingan yang sesuai
- Tambahkan indeks untuk mengurangkan tempoh kunci
- Pertimbangkan pengasingan READ_COMMITTED_SNAPSHOT
- Semak dan optimumkan pertanyaan jangka panjang
10.5 Isu Prestasi Pertanyaan
Mengenal pasti pertanyaan mahal adalah penting untuk pemantauan prestasi SQL. Gunakan kaedah ini untuk mencari pertanyaan bermasalah:
Menggunakan Monitor Aktiviti
- Dalam SSMS, klik kanan nama pelayan
- pilih Memantau aktiviti
- Mengembangkan Pertanyaan Mahal Terkini
- Semak pertanyaan dengan CPU, tempoh atau bacaan logik yang tinggi
Menggunakan DMV
Pertanyaan sys.dm_exec_query_stats untuk mengenal pasti pertanyaan intensif sumber:
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 Rancangan Pelaksanaan
- Dalam SSMS, buka tetingkap pertanyaan baharu
- Klik Paparkan Anggaran Pelan Perlaksanaan (Ctrl+L) atau Sertakan Pelan Pelaksanaan Sebenar (Ctrl+M)
- Laksanakan pertanyaan anda
- Semak pelan pelaksanaan untuk operasi yang mahal
- Cari imbasan jadual, imbasan indeks atau operasi berkos tinggi
Optimumkan pertanyaan dengan:
- Menambah indeks yang sesuai
- Menulis semula pertanyaan untuk mengelakkan operasi yang mahal
- Mengemas kini statistik
- Menggunakan nama lajur tertentu dan bukannya SELECT *
- Mengelakkan klausa DISTINCT atau ORDER BY yang tidak perlu
10.6 Mengesan dan Membetulkan Pangkalan Data Rasuah
Rasuah pangkalan data boleh menyebabkan kemerosotan prestasi, kehilangan data dan kegagalan sistem. Mengesan dan menangani rasuah dengan cepat adalah penting untuk mengekalkan kesihatan pangkalan data.
Petunjuk Rasuah Pangkalan Data
Perhatikan tanda-tanda kemungkinan rasuah ini:
- Mesej ralat masuk SQL Server log ralat (ralat 823, 824, atau 825)
- Ralat aplikasi yang tidak dijangka semasa mengakses jadual tertentu
- Prestasi pertanyaan perlahan pada pertanyaan cepat sebelum ini
- SQL Server ranap atau mula semula yang tidak dijangka
- Halaman yang disyaki muncul dalam jadual msdb.dbo.suspect_pages
Menggunakan DBCC CHECKDB untuk Pengesanan
DBCC CHECKDB ialah alat utama untuk mengesan rasuah pangkalan data. Jalankannya dengan kerap untuk mengetahui isu lebih awal.
Memantau Halaman Suspek
SQL Server merekodkan halaman yang disyaki secara automatik dalam pangkalan data 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)
Sebarang baris yang dikembalikan menunjukkan isu rasuah yang memerlukan perhatian segera.
Strategi Pencegahan Rasuah
- Dayakan pengesahan halaman dengan pilihan CHECKSUM
- Mengekalkan sandaran pangkalan data biasa
- Gunakan perkakasan yang boleh dipercayai dengan pembetulan ralat
- Pantau kesihatan cakera menggunakan alat pengilang
- Jadualkan larian DBCC CHECKDB biasa
- menjaga SQL Server dikemas kini dengan patch terkini
Pilihan Pemulihan dan Pembaikan
Jika rasuah dikesan, anda boleh mencuba alat terbina dalam DBCC CHECKDB untuk membetulkannya. Jika gagal, gunakan alat pihak ketiga seperti DataNumen SQL Recovery yang boleh menangani rasuah yang teruk.
11. Teknik Pemantauan Lanjutan
11.1 Pemantauan Stor Pertanyaan
Kedai Pertanyaan, diperkenalkan dalam SQL Server 2016, menangkap data prestasi pertanyaan secara automatik. Ia memberikan cerapan berharga tentang tingkah laku pertanyaan, rancangan pelaksanaan dan aliran prestasi.
Mendayakan Kedai Pertanyaan
- Dalam SSMS Object Explorer, klik kanan pangkalan data
- pilih Hartanah
- Klik Kedai Pertanyaan halaman
- In Mod Operasi (Diminta), pilih Baca tulis
- Konfigurasikan tetapan tambahan seperti yang diperlukan
- Klik OK
Memantau Prestasi Pertanyaan
Akses laporan Gedung Pertanyaan melalui Penjelajah Objek:
- Kembangkan pangkalan data dalam Object Explorer
- Mengembangkan Kedai Pertanyaan
- Pilih daripada laporan yang tersedia:
- Pertanyaan Terundur
- Penggunaan Sumber Keseluruhan
- Pertanyaan Penggunaan Sumber Teratas
- Pertanyaan Dengan Rancangan Paksa
- Pertanyaan Dijejaki
Pengesanan Regresi Rancangan
Kedai Pertanyaan mengesan secara automatik apabila rancangan pelaksanaan pertanyaan berubah dan prestasi merosot. Semak laporan Pertanyaan Terundur untuk mengenal pasti pertanyaan yang dipengaruhi oleh perubahan rancangan.
Pengurusan Rancangan Paksa
Apabila Query Store mengenal pasti pelan pelaksanaan yang lebih baik, paksa SQL Server untuk menggunakannya:
- Buka pertanyaan dalam Kedai Pertanyaan
- Klik kanan pelan yang dikehendaki
- pilih Rancangan Paksa
Ini serta-merta meningkatkan prestasi tanpa memerlukan perubahan kod.
11.2 Pemantauan Penyelenggaraan Indeks
Pemecahan indeks merendahkan prestasi pertanyaan dari semasa ke semasa. Pantau dan kekalkan indeks dengan kerap untuk memastikan prestasi optimum.
Pemeriksaan Pecahan
Gunakan pertanyaan ini untuk menyemak pemecahan 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 pertanyaan ini semasa waktu luar sibuk kerana ia boleh intensif sumber.
Analisis Ketumpatan Halaman
Ketumpatan halaman menunjukkan bagaimana halaman indeks penuh. Ketumpatan rendah membuang ruang dan mengurangkan prestasi:
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
Susun Semula vs Bina Semula Keputusan
Pilih operasi penyelenggaraan indeks berdasarkan tahap pemecahan:
- Pecahan 10-30%: Gunakan ALTER INDEX REORGANIZE
- Pecahan > 30%: Gunakan ALTER INDEX REBUILD
- Pecahan < 10%: Tiada tindakan diperlukan
Susun semula operasi memerlukan lebih sedikit sumber dan boleh dijalankan dalam talian. Operasi bina semula adalah lebih teliti tetapi menggunakan sumber yang besar.
11.3 Kemas Kini Statistik Pangkalan Data
Statistik pangkalan data membantu SQL ServerPengoptimum pertanyaan mencipta rancangan pelaksanaan yang cekap. Statistik lapuk membawa kepada prestasi pertanyaan yang lemah.
Pembinaan Semula Statistik Automatik
Dayakan kemas kini statistik automatik:
ALTER DATABASE DatabaseName SET AUTO_UPDATE_STATISTICS ON ALTER DATABASE DatabaseName SET AUTO_CREATE_STATISTICS ON
Memantau Kesihatan Statistik
Semak bila terakhir statistik dikemas kini:
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
Kemas kini statistik secara manual apabila diperlukan:
UPDATE STATISTICS TableName WITH FULLSCAN
11.4 Mengumpul Data Prestasi Tersuai
Buat penyelesaian pemantauan prestasi tersuai dengan menanyakan sys.dm_os_performance_counters secara terus dan menyimpan hasil dalam jadual.
Mencipta Skrip Koleksi Tersuai
Bina prosedur tersimpan untuk mengumpul data kaunter prestasi:
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
Kaunter prestasi pertanyaan 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 Sejarah
Buat jadual untuk menyimpan metrik prestasi dari semasa ke semasa:
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
Kaedah Penyimpanan Data Berpangsi
Simpan data dalam format terpangsi dengan satu baris setiap masa sampel dan satu lajur setiap pembilang. Ini mengurangkan ruang storan dan meningkatkan prestasi pertanyaan berbanding dengan menyimpan satu baris setiap kaunter setiap sampel.
11.5 Pemantauan Berbilang Pelayan
Untuk persekitaran dengan pelbagai SQL Server contoh, melaksanakan pemantauan berpusat.
Pendekatan Pemantauan Berpusat
- Cipta pangkalan data pemantauan khusus pada pelayan yang berasingan
- Kumpul data daripada semua pelayan ke dalam repositori pusat
- Penggunaan SQL Server Tugas ejen untuk menjalankan skrip koleksi
- Laksanakan pengumpulan kaunter prestasi yang boleh diakses oleh rangkaian
Pemantauan Pelayan Jauh
Konfigurasikan Pemantau Prestasi untuk mengumpul data daripada pelayan jauh dengan menyatakan nama pelayan apabila menambah pembilang. Pastikan peraturan firewall membenarkan trafik Performance Monitor.
Pelaporan Merentas Pelayan
Bina laporan yang membandingkan prestasi merentas berbilang pelayan untuk mengenal pasti kelebihan dan ketidakseimbangan kapasiti.
12. Pemantauan SQL Server dalam Persekitaran Awan
12.1 Pemantauan Pangkalan Data SQL Azure
Pangkalan Data SQL Azure menyediakan keupayaan pemantauan terbina dalam yang berbeza daripada di premis SQL Server.
Integrasi Monitor Azure
Azure Monitor secara automatik mengumpul metrik daripada Pangkalan Data Azure SQL termasuk:
- Penggunaan DTU atau vCore
- Penggunaan storan
- Statistik sambungan
- Kebuntuan dan tamat masa
Akses metrik ini melalui Azure Portal atau Azure Monitor API.
Ciri Pemantauan Terbina dalam
Pangkalan Data Azure SQL termasuk:
- Cadangan penalaan automatik
- Wawasan Prestasi Pertanyaan
- Cerapan Pintar untuk pengesanan anomali
- Amaran dan diagnostik terbina dalam
Wawasan Prestasi Pertanyaan
Ciri ini menyediakan visualisasi pertanyaan yang memakan sumber teratas, analisis tempoh pertanyaan dan arah aliran prestasi sejarah. Aksesnya melalui Portal Azure di bawah sumber Pangkalan Data SQL anda.
12.2 Alat Pemantauan Asli Awan
Platform awan menawarkan penyelesaian pemantauan asli yang dioptimumkan untuk persekitarannya:
- Azure Monitor dan Application Insights untuk Pangkalan Data Azure SQL
- AWS CloudWatch untuk RDS SQL Server
- Pemantauan Awan Google untuk Awan SQL Server
Alat ini disepadukan dengan lancar dengan infrastruktur awan dan menyediakan pemantauan bersepadu merentas semua sumber awan.
Pemantauan Persekitaran Hibrid
Untuk penempatan hibrid yang merangkumi di premis dan awan, gunakan alatan yang menyokong kedua-dua persekitaran seperti Redgate SQL Monitor, SolarWinds DPA atau penyelesaian tersuai menggunakan pengumpulan data terpusat.
12.3 Perbezaan Prestasi dalam Awan
Awan SQL Server persekitaran mempunyai ciri-ciri unik:
Model Peruntukan Sumber
Pembekal awan menggunakan kaedah peruntukan sumber yang berbeza (DTU, vCores, tanpa pelayan) yang mempengaruhi cara anda mentafsir metrik prestasi. Fahami batasan dan ciri peringkat perkhidmatan anda.
Pertimbangan Skala
Persekitaran awan menawarkan keupayaan penskalaan dinamik. Pantau penggunaan sumber untuk menentukan masa untuk meningkatkan atau menurunkan. Banyak platform awan menyediakan penskalaan automatik berdasarkan ambang prestasi.
13. Mengautomasikan Pemantauan Prestasi
13.1 SQL Server Pekerjaan Ejen
Automasi pengumpulan data menggunakan SQL Server Pekerjaan ejen untuk pemantauan yang konsisten tanpa campur tangan manual.
Pengumpulan Data Berjadual
- Dalam SSMS, kembangkan SQL Server Agent
- Klik kanan Jawatan Kosong dan pilih Pekerjaan baru
- Namakan kerja (cth, "Kumpulkan Metrik Prestasi")
- Klik Langkah dan tambah langkah baharu
- Tetapkan Jenis kepada Skrip Transact-SQL
- Masukkan skrip pengumpulan data anda
- Klik Jadual dan tambah jadual
- Konfigurasikan kekerapan (cth, setiap 5 minit)
- Klik OK untuk mencipta pekerjaan
Pelaporan Automatik
Cipta kerja yang menjana dan e-mel laporan prestasi:
- Buat prosedur tersimpan yang menjana laporan
- Gunakan Mel Pangkalan Data untuk menghantar laporan melalui e-mel
- Jadualkan kerja untuk dijalankan setiap hari atau mingguan
13.2 Automasi PowerShell
PowerShell menyediakan keupayaan automasi yang berkuasa untuk SQL Server pemantau prestasi.
Skrip Pengumpulan Kaunter Prestasi
$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
Pertanyaan WMI
Gunakan WMI untuk mengumpul data prestasi daripada pelayan 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"
Makluman Automatik
Buat skrip PowerShell yang menyemak metrik dan menghantar makluman apabila ambang 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 Mencipta Papan Pemuka Pemantauan
Visualisasikan data prestasi dengan papan pemuka interaktif untuk mendapatkan cerapan yang lebih baik.
Integrasi Power BI
- Sambungkan Power BI ke jadual data prestasi anda
- Buat visualisasi untuk metrik utama
- Tambah penghiris untuk julat masa dan pemilihan pelayan
- Terbitkan papan pemuka ke Perkhidmatan Power BI
- Konfigurasikan jadual muat semula automatik
Penciptaan Papan Pemuka masa nyata
Gunakan alatan seperti Grafana atau aplikasi web tersuai untuk mencipta papan pemuka masa nyata yang menanyakan DMV dan kaunter prestasi secara langsung.
Visualisasi Trend Sejarah
Bina carta garis yang menunjukkan arah aliran dari semasa ke semasa untuk:
- Penggunaan CPU
- Penggunaan memori
- Cakera I/O
- Prestasi pertanyaan
- Sambungan dikira
14. Kajian Kes dan Contoh Praktikal
14.1 Kajian Kes: Menyelesaikan Tekanan Ingatan
Pengenalpastian Gejala
Sebuah pengeluaran SQL Server mengalami masa tindak balas pertanyaan yang perlahan semasa waktu puncak. Pengguna mengadu tentang tamat masa aplikasi dan prestasi yang merosot.
Analisis Kaunter
Data Monitor Prestasi didedahkan:
- Jangka Hayat Halaman menurun kepada 50 saat (biasa: >300)
- Nisbah Hit Cache Penampan jatuh kepada 85% (biasa: >99%)
- Pemberian Memori Belum Selesai kerap menunjukkan nilai 5-10
- Bacaan Cakera Fizikal/saat meningkat dengan ketara
Langkah-langkah Penyelesaian
- Diperiksa SQL Server tetapan memori maks – mendapati ia telah ditetapkan kepada lalai (tanpa had)
- Menyemak Jumlah Memori Pelayan vs Memori Pelayan Sasaran – menunjukkan jurang yang ketara
- Memori pelayan maks dikonfigurasikan untuk meninggalkan 8 GB untuk sistem pengendalian
- Didayakan kebenaran "Kunci Halaman dalam Memori" untuk SQL Server akaun perkhidmatan
- Menambahkan 32 GB RAM tambahan pada pelayan
- Prestasi yang dipantau selama satu minggu – Jangka Hayat Halaman stabil melebihi 500 saat
keputusan: Masa respons pertanyaan bertambah baik sebanyak 60%, aduan pengguna dihentikan dan prestasi aplikasi kembali normal.
14.2 Kajian Kes: Pengoptimuman Prestasi CPU
Pengenalpastian Gejala
A SQL Server secara konsisten menunjukkan penggunaan CPU melebihi 90% semasa waktu perniagaan, menyebabkan prestasi aplikasi yang perlahan dan kekecewaan pengguna.
Analisis Kaunter
Pemantauan prestasi didedahkan:
- % Masa Pemproses purata 92% dengan lonjakan kerap hingga 100%
- Panjang Gilir Pemproses secara konsisten melebihi 4 (pelayan mempunyai 8 teras)
- Kompilasi SQL/saat ialah 25% daripada Permintaan Kelompok/saat (sepatutnya <10%)
- Penyusunan Semula SQL/saat ialah 15% daripada Permintaan Kelompok/saat
Langkah-langkah Penyelesaian
- DMV yang digunakan untuk mengenal pasti pertanyaan teratas yang memakan CPU
- Pelan pelaksanaan yang dianalisis untuk pertanyaan yang dikenal pasti
- Menemui berbilang imbasan jadual pada jadual besar kerana indeks yang hilang
- Mencipta indeks yang sesuai berdasarkan cadangan pelan pelaksanaan
- SQL dinamik yang dikenal pasti menyebabkan kompilasi berlebihan
- Kod aplikasi yang diubah suai untuk menggunakan pertanyaan berparameter
- Panduan pelan yang dilaksanakan untuk prosedur tersimpan yang bermasalah
- Statistik dikemas kini pada jadual yang banyak digunakan
keputusan: Penggunaan CPU menurun kepada purata 45% semasa waktu perniagaan. Masa pelaksanaan pertanyaan bertambah baik sebanyak 70%. Responsif aplikasi bertambah baik dengan ketara.
14.3 Kajian Kes: Penyelesaian Bottleneck I/O Cakera
Pengenalpastian Gejala
Pengguna melaporkan tindak balas aplikasi yang sangat perlahan semasa operasi pemuatan data dan pemprosesan kelompok malam.
Analisis Kaunter
Data prestasi menunjukkan:
- Purata Cakera saat/Tulis melebihi 45ms pada pemacu log transaksi
- Panjang Baris Cakera purata 12 pada pemacu fail data
- % Masa Cakera kekal melebihi 95% selama berjam-jam semasa kerja kelompok
- Page Writes/sec sangat tinggi
Langkah-langkah Penyelesaian
- Tetapan memori yang disahkan adalah sesuai – tidak menemui masalah ingatan
- Konfigurasi cakera yang dianalisis – menemui semua fail pada set gelendong yang sama
- Log transaksi yang diasingkan ke pemacu SSD pantas khusus
- Mengalihkan tempdb untuk memisahkan pemacu SSD
- Melaksanakan berbilang fail data tempdb (satu setiap teras)
- Pemacu fail data ditingkatkan kepada konfigurasi SSD RAID 10
- Kerja kelompok yang dioptimumkan untuk menggunakan kelompok transaksi yang lebih kecil
- Menambahkan indeks untuk mengurangkan imbasan jadual yang tidak perlu semasa operasi kelompok
keputusan: Purata Cakera saat/Tulis menurun kepada 3ms. Panjang Gilir Cakera dipuratakan di bawah 1. Masa penyiapan kerja kelompok dikurangkan sebanyak 75%.
15. Trend Masa Depan dalam SQL Server Pemantauan
15.1 AI dan Integrasi Pembelajaran Mesin
Kecerdasan buatan dan pembelajaran mesin sedang berubah SQL Server pemantau prestasi.
Analisis ramalan
Model pembelajaran mesin meramalkan keperluan sumber masa hadapan berdasarkan data sejarah. Sistem ini boleh meramalkan:
- Apabila kapasiti penyimpanan akan habis
- Keperluan CPU dan memori yang dijangkakan semasa tempoh puncak
- Tanya kemerosotan prestasi sebelum ia memberi kesan kepada pengguna
- Masa optimum untuk operasi penyelenggaraan
Pengesanan Anomali
Alat dipacu AI secara automatik mengesan corak luar biasa dalam metrik prestasi. Mereka mengenal pasti anomali yang mungkin terlepas oleh pentadbir manusia dan membezakan antara variasi biasa dan isu tulen.
Pemulihan Automatik
Sistem penyembuhan diri secara automatik menyelesaikan isu biasa apabila dikesan:
- Mulakan semula perkhidmatan yang telah dihentikan
- Agihkan semula sumber semasa beban puncak
- Gunakan pembaikan terkini untuk isu yang diketahui
- Bina semula indeks berpecah-belah secara automatik
15.2 Evolusi Pemantauan Berasaskan Awan
Pemantauan awan terus berkembang dengan keupayaan baharu.
Platform Pemantauan Bersatu
Platform moden menyediakan keterlihatan satu anak tetingkap kaca merentas:
- Di tempat SQL Server contoh
- Pangkalan data yang dihoskan oleh awan
- Persekitaran hibrid
- Prestasi aplikasi
- Metrik infrastruktur
Trend Kebolehmerhatian
Peralihan daripada pemantauan kepada pemerhatian menekankan:
- Memahami tingkah laku sistem daripada output
- Menghubungkaitkan metrik, log dan kesan
- Pandangan mendalam tentang sistem teragih
- Diagnosis masalah masa nyata
15.3 Sistem Pangkalan Data Penyembuhan Sendiri
Masa depan SQL Server versi akan merangkumi lebih banyak keupayaan autonomi.
Pengoptimuman Automatik
Pangkalan data akan terus mengoptimumkan diri mereka sendiri dengan:
- Membuat dan menjatuhkan indeks secara automatik berdasarkan beban kerja
- Melaraskan tetapan konfigurasi untuk prestasi optimum
- Menulis semula pertanyaan yang tidak cekap secara telus
- Menguruskan peruntukan sumber secara dinamik
Penalaan Pintar
Sistem lanjutan akan belajar daripada corak prestasi dan menggunakan pengesyoran penalaan secara automatik, mengurangkan keperluan untuk campur tangan DBA manual.
16. Kesimpulan dan Pengambilan Utama
16.1 Ringkasan Amalan Pemantauan Penting
Berkesan SQL Server monitor prestasi memerlukan pendekatan komprehensif yang menggabungkan alat, teknik dan amalan terbaik.
Rekap Kaunter Kritikal
Tumpukan usaha pemantauan pada kaunter penting ini:
- Memori: Jangka Hayat Halaman, Nisbah Hit Cache Penampan, Pemberian Memori Belum Selesai
- CPU: % Masa Pemproses, Panjang Gilir Pemproses
- Cakera: Purata. Saat cakera/Baca dan Tulis, Panjang Gilir Cakera
- SQL Server: Permintaan Kelompok/saat, Kompilasi/saat, Sambungan Pengguna
Ringkasan Amalan Terbaik
- Wujudkan garis dasar semasa operasi biasa
- Tetapkan ambang amaran pintar berdasarkan garis dasar
- Semak data prestasi dengan kerap
- Seimbangkan overhed pemantauan dengan butiran data
- Kekalkan data jangka panjang untuk analisis arah aliran
- Gunakan alat yang sesuai untuk setiap senario pemantauan
16.2 Pendekatan Penambahbaikan Berterusan
SQL Server pemantau prestasi bukanlah aktiviti sekali sahaja tetapi proses berterusan yang memerlukan pemurnian berterusan.
Kitaran Semakan Biasa
- Harian: Semak makluman dan prestasi semasa
- Mingguan: Semak arah aliran dan kenal pasti isu yang muncul
- Bulanan: Menganalisis corak jangka panjang dan keperluan kapasiti
- Suku Tahunan: Kemas kini garis dasar dan semak keberkesanan pemantauan
Kekal Semasa dengan Alat
Pastikan alat dan teknik pemantauan dikemas kini:
- Nilaikan ciri pemantauan baharu dalam SQL Server update
- Uji alat pihak ketiga yang baru muncul
- Menghadiri latihan dan persidangan
- Mengambil bahagian dalam SQL Server forum komuniti
- Berkongsi pengetahuan dengan ahli pasukan
16.3 Langkah Seterusnya
Melaksanakan SQL Server memantau prestasi secara sistematik:
Hala Tuju Pelaksanaan
- Minggu 1: Sediakan Monitor Prestasi dengan kaunter penting
- Minggu 2: Cipta Set Pengumpul Data untuk pengumpulan automatik
- Minggu 3: Wujudkan garis dasar semasa operasi biasa
- Minggu 4: Konfigurasikan makluman untuk ambang kritikal
- Bulan 2: Laksanakan alat pemantauan tambahan (DMV, Acara Lanjutan)
- Bulan 3: Membangunkan papan pemuka tersuai dan laporan
- Sedang berlangsung: Perhalusi pemantauan berdasarkan pengalaman dan keperluan yang berubah
Sumber tambahan
Teruskan belajar tentang SQL Server pemantauan prestasi melalui dokumentasi Microsoft, blog komuniti, dan latihan praktikal. Eksperimen dengan alat dan teknik yang berbeza untuk mencari perkara yang paling sesuai untuk persekitaran anda.
17. Soalan Lazim (FAQ)
17.1 Apakah yang paling penting SQL Server kaunter prestasi untuk dipantau?
Yang paling kritikal SQL Server kaunter prestasi termasuk:
- Memori: Jangka Hayat Halaman (sepatutnya >300 saat) dan Nisbah Hit Cache Buffer (sepatutnya >99%)
- CPU: % Masa Pemproses (nilai berkekalan <75%) dan Panjang Gilir Pemproses (sepatutnya <2 setiap teras)
- Cakera: Purata. Saat cakera/Baca dan Tulis (sepatutnya <10-20ms) dan Panjang Gilir Cakera (sepatutnya <2 setiap cakera)
- SQL Server: Permintaan Kelompok/saat, Kompilasi SQL/saat, dan Pemberian Memori Belum Selesai (sepatutnya 0)
Kaunter ini memberikan pandangan menyeluruh tentang kesihatan sistem dan membantu mengenal pasti kesesakan dengan cepat.
17.2 Berapa kerapkah saya perlu mengumpul data prestasi?
Kekerapan pengumpulan bergantung pada objektif pemantauan anda:
- Pemantauan garis dasar: Setiap 1 minit (60 saat)
- Penyelesaian masalah aktif: Setiap 15-30 saat untuk tempoh yang singkat
- Arah aliran jangka panjang: Setiap 5 minit
Elakkan menjalankan pengumpulan frekuensi tinggi secara berterusan kerana ia boleh memberi kesan kepada prestasi dan menjana data yang berlebihan. Gunakan selang yang lebih panjang untuk pemantauan rutin dan selang yang lebih pendek hanya apabila menyiasat isu tertentu.
17.3 Apakah perbezaan antara Monitor Prestasi dan SQL Server Profiler?
Pemantau Prestasi dan SQL Server Profiler mempunyai tujuan yang berbeza:
Pemantau Prestasi:
- Sistem pemantauan dan SQL Server kaunter prestasi
- Menjejaki penggunaan sumber (CPU, memori, cakera)
- Overhed rendah, sesuai untuk pemantauan berterusan
- Menyediakan metrik agregat dari semasa ke semasa
SQL Server profiler:
- Jejak individu SQL Server peristiwa dan pertanyaan
- Menangkap maklumat pelaksanaan pertanyaan terperinci
- Overhed yang lebih tinggi, tidak disyorkan untuk penggunaan berterusan
- Terbaik untuk menyelesaikan masalah pertanyaan khusus
- Ditamatkan untuk memihak kepada Acara Lanjutan
Gunakan Pemantau Prestasi untuk pemantauan keseluruhan sistem dan Peristiwa Lanjutan (bukan Profiler) untuk analisis peringkat pertanyaan terperinci.
17.4 Boleh Memantau Prestasi kesan SQL Server prestasi?
Apabila dikonfigurasikan dengan betul, Performance Monitor mempunyai kesan yang minimum SQL Server prestasi, biasanya kurang daripada 2% overhed. Walau bagaimanapun, pemantauan yang berlebihan boleh menyebabkan masalah:
- Terlalu banyak kaunter meningkatkan overhed
- Selang sampel yang sangat singkat (di bawah 15 saat) sumber terikan
- Pengumpulan frekuensi tinggi berterusan menghasilkan fail log yang besar
Untuk meminimumkan kesan:
- Pantau hanya kaunter yang diperlukan
- Gunakan selang sampel yang sesuai (60 saat untuk pemantauan rutin)
- Simpan log pada pemacu berasingan daripada fail pangkalan data
- Jadualkan pemantauan intensif sumber semasa waktu luar puncak
17.5 Berapa lama saya harus menyimpan data pemantauan prestasi?
Pengekalan bergantung pada keperluan analisis dan kapasiti storan anda:
- Minimum: 3 bulan untuk menyelesaikan masalah terkini
- Lawatan: 1-2 tahun untuk perancangan kapasiti dan analisis trend
- Optimum: Selama-lamanya jika storan membenarkan, kerana data sejarah menjadi lebih berharga dari semasa ke semasa
Data kaunter prestasi memampatkan dengan baik dan menggunakan ruang yang agak sedikit. Pertimbangkan untuk mengarkibkan data lama untuk memisahkan storan dan bukannya memadamkannya. Banyak organisasi mendapati bahawa data sejarah bertahun-tahun terbukti tidak ternilai untuk perancangan kapasiti dan mengenal pasti arah aliran jangka panjang.
17.6 Apakah nilai ambang yang baik untuk kaunter prestasi utama?
Nilai ambang yang disyorkan untuk memberi amaran:
- Pemberian Memori Belum Selesai: Makluman apabila > 0
- Jangka Hayat Halaman: Makluman apabila < 300 saat
- % Masa Pemproses: Makluman apabila > 80% selama 5 minit
- Panjang Gilir Pemproses: Makluman apabila > 2 setiap teras
- Purata Saat cakera/Baca atau Tulis: Makluman apabila > 20ms
- Panjang Baris Cakera: Makluman apabila > 2 setiap cakera
- Proses Disekat: Makluman apabila > 5
Laraskan ambang ini berdasarkan data garis dasar anda dan ciri beban kerja khusus. Perkara biasa untuk satu persekitaran mungkin menunjukkan masalah dalam persekitaran yang lain.
17.7 Bagaimanakah saya memantau SQL Server prestasi dari jauh?
Pantau jauh SQL Server contoh menggunakan kaedah ini:
- Pemantau Prestasi: Nyatakan nama komputer jauh apabila menambah pembilang
- PowerShell: Gunakan parameter -ComputerName dengan Get-Counter
- DMV: Sambung ke pelayan jauh melalui SSMS dan pertanyaan DMV
- Alat pihak ketiga: Kebanyakan alat pemantauan menyokong pemantauan pelayan jauh
Pastikan peraturan tembok api membenarkan trafik Monitor Prestasi dan anda mempunyai kebenaran yang sesuai pada pelayan jauh. Untuk berbilang pelayan, pertimbangkan untuk melaksanakan pemantauan berpusat dengan pelayan dan pangkalan data pemantauan khusus.
17.8 Apakah alat percuma terbaik untuknya SQL Server monitor prestasi?
Beberapa alat percuma yang sangat baik tersedia untuk pemantauan SQL Server prestasi:
- Pemantau Prestasi Windows: Terbina dalam, komprehensif dan boleh dipercayai
- Pemantau Aktiviti SSMS: Pemantauan masa nyata tanpa pemasangan tambahan
- Acara Lanjutan: Pemantauan acara ringan terbina dalam SQL Server
- sp_WhoIsActive: Prosedur tersimpan percuma yang popular untuk pemantauan aktiviti terperinci
- DBA Dash: Alat pemantauan sumber terbuka dengan ciri komprehensif
- SQLWATCH: Sumber terbuka dengan keupayaan pemantauan hampir masa nyata
Bagi kebanyakan organisasi, Performance Monitor yang digabungkan dengan alatan SSMS dan sp_WhoIsActive menyediakan keupayaan pemantauan yang sangat baik tanpa sebarang kos tambahan.
17.9 Bagaimanakah cara saya mengeksport data PerfMon untuk analisis?
Eksport data Monitor Prestasi menggunakan kaedah ini:
Eksport ke CSV:
- Buka Monitor Prestasi dengan fail log anda dimuatkan
- Klik kanan graf dan pilih Simpan Data Sebagai
- Pilih Fail Teks (dibataskan koma) (.csv)
- Pilih lokasi dan simpan
- Buka dalam Excel untuk analisis
Gunakan Perintah Relog:
relog input.blg -f csv -o output.csv
Utiliti baris arahan ini menukar fail log binari (.blg) kepada format CSV untuk analisis yang lebih mudah dalam aplikasi hamparan.
17.10 Bilakah saya harus menggunakan alat pemantauan pihak ketiga dan bukannya pilihan terbina dalam?
Pertimbangkan alat pihak ketiga apabila:
- Menguruskan sejumlah besar SQL Server contoh (10+)
- Memerlukan pemantauan berpusat merentas berbilang pusat data
- Memerlukan ciri lanjutan seperti analisis ramalan atau pengesanan anomali
- Ingin amaran bersepadu dengan sistem pengurusan insiden
- Memerlukan laporan pematuhan dan analisis sejarah
- Kekurangan sumber DBA untuk membina dan mengekalkan penyelesaian tersuai
- Memantau persekitaran pangkalan data heterogen (SQL Server, Oracle, MySQL, dll.)
Alat terbina dalam berfungsi dengan baik untuk persekitaran yang lebih kecil atau apabila anda mempunyai DBA mahir yang boleh membangunkan penyelesaian pemantauan tersuai. Alat pihak ketiga memberikan nilai melalui penjimatan masa, ciri lanjutan dan sokongan profesional.
18. Sumber Tambahan
18.1 Dokumentasi Rasmi
Microsoft menyediakan dokumentasi yang luas untuk SQL Server monitor prestasi:
- SQL Server Dokumentasi Monitor Prestasi: https://learn.microsoft.com/en-us/sql/relational-databases/performance-monitor/
- Pandangan Pengurusan Dinamik: https://learn.microsoft.com/en-us/sql/relational-databases/system-dynamic-management-views/
- Acara Lanjutan: https://learn.microsoft.com/en-us/sql/relational-databases/extended-events/
- Kedai Pertanyaan: https://learn.microsoft.com/en-us/sql/relational-databases/performance/monitoring-performance-by-using-the-query-store
- Penalaan dan pemantauan prestasi: https://learn.microsoft.com/en-us/sql/relational-databases/performance/
18.2 Alat dan Muat Turun Disyorkan
Alat penting untuk SQL Server monitor prestasi:
- Alat PAL: https://github.com/clinthuffman/PAL
- sp_WhoIsActive: http://whoisactive.com/
- DBA Dash: https://dbadash.com/
- SQLWATCH: https://github.com/marcingminski/sqlwatch
- Kit Responder Pertama (Brent Ozar): https://www.brentozar.com/first-aid/
- SQL Server Studio Pengurusan: https://learn.microsoft.com/en-us/sql/ssms/download-sql-server-management-studio-ssms
18.3 Sumber Komuniti
Belajar dari SQL Server komuniti:
- SQL Server Pusat: https://www.sqlservercentral.com/
- Blog Brent Ozar: https://www.brentozar.com/blog/
- SQL Shack: https://www.sqlshack.com/
- Petua MSSQLT: https://www.mssqltips.com/
- Reddit r/SQLServer: https://www.reddit.com/r/SQLServer/
- Stack Overflow SQL Server teg: https://stackoverflow.com/questions/tagged/sql-server
Sumber ini menyediakan tutorial, nasihat penyelesaian masalah dan amalan terbaik daripada berpengalaman SQL Server profesional. Mengambil bahagian dalam forum komuniti membantu anda belajar daripada pengalaman orang lain dan berkongsi pengetahuan anda sendiri.
Mengenai Penulis
Yuan Sheng ialah pentadbir pangkalan data kanan (DBA) dengan lebih 10 tahun pengalaman dalam SQL Server persekitaran dan pengurusan pangkalan data perusahaan. Beliau telah berjaya menyelesaikan ratusan senario pemulihan pangkalan data merentas perkhidmatan kewangan, penjagaan kesihatan dan organisasi pembuatan.
Yuan pakar dalam SQL Server pemulihan pangkalan data, penyelesaian ketersediaan tinggi, dan pengoptimuman prestasi. Pengalaman amali beliau yang luas termasuk mengurus pangkalan data berbilang terabait, melaksanakan Sentiasa Mengenai Kumpulan Ketersediaan, dan membangunkan strategi sandaran dan pemulihan automatik untuk sistem perniagaan yang kritikal.
Melalui kepakaran teknikal dan pendekatan praktikalnya, Yuan menumpukan pada mencipta panduan komprehensif yang membantu pentadbir pangkalan data dan profesional IT menyelesaikan kompleks SQL Server cabaran dengan cekap. Dia kekal terkini dengan yang terkini SQL Server keluaran dan teknologi pangkalan data Microsoft yang sedang berkembang, menguji senario pemulihan secara kerap untuk memastikan cadangannya mencerminkan amalan terbaik dunia sebenar.
Ada soalan tentang SQL Server pemulihan atau memerlukan panduan penyelesaian masalah pangkalan data tambahan? Yuan mengalu-alukan maklum balas dan cadangan untuk menambah baik sumber teknikal ini.





























