Pemantauan kinerja SQL Server dianggap oleh banyak administrator basis data sebagai tanggung jawab terpenting mereka. Mengingat bahwa server berperforma buruk dapat berdampak negatif tidak hanya pada operasi internal tetapi juga aplikasi yang dihadapi pelanggan, pelacakan kinerja SQL dan mitigasi masalah dengan cepat sangat penting untuk kesuksesan dan profitabilitas perusahaan.
Karena semakin banyak organisasi beralih ke SQL Server, DBA semakin mencari sumber daya untuk membantu mereka menerapkan strategi pemantauan kinerja yang solid. Ada banyak dokumentasi yang tersedia untuk membantu DBA memulai pemantauan kinerja SQL Server mereka, tetapi ada beberapa pertanyaan universal yang hampir setiap DBA menginginkan jawaban cepat. Berikut adalah jawaban atas 10 pertanyaan pemantauan kinerja SQL Server yang paling sering diajukan.
Apa itu pemantauan kinerja SQL Server?
Tujuan utama dari pemantauan kinerja SQL Server adalah untuk memastikan kinerja yang konsisten dan ketersediaan tinggi dari contoh SQL Server. Pemantauan kinerja adalah proses dua bagian, dan kedua bagian itu penting untuk menjaga sistem Anda tetap aktif dan berjalan secara optimal:
-
Pemantauan: Lacak berbagai metrik kinerja terhadap ambang batas yang telah ditetapkan untuk mengidentifikasi perilaku anomali dan menyediakan mekanisme untuk menginformasikan DBA dengan alarm yang khusus untuk masalah dan memberikan konteks yang cukup untuk memulai proses diagnostik.
-
Diagnostik: Alur kerja dan alat yang diperlukan untuk menetapkan sumber masalah kinerja dan data yang diperlukan untuk memulihkan masalah segera.
-
Analisis Akar Penyebab: Wawasan untuk melihat melampaui gejala dan mengidentifikasi masalah mendasar yang memicu masalah dan dapat menyebabkannya muncul kembali.
-
Analisis Tren: Lihatlah kinerja selama periode waktu yang lama. Gunakan analisis tren untuk mengidentifikasi masalah sebelum terjadi, jadi bedakan antara masalah sekali dan berulang atau untuk memeriksa batas beban kerja dari waktu ke waktu. Yang terakhir dapat digunakan untuk memprediksi kebutuhan infrastruktur masa depan, menginformasikan upaya konsolidasi atau ukuran yang tepat untuk migrasi cloud yang direncanakan.
Alat pemantauan kinerja database mana yang terbaik?
Jumlah database yang menjadi tanggung jawab DBA membuat pemantauan manual dan diagnostik menjadi tidak praktis—bahkan mungkin tidak mungkin. Untungnya, solusi perangkat lunak pemantauan kinerja terbaru dilengkapi dengan banyak fitur untuk membuat pemantauan kinerja dapat dikelola, bahkan dalam skala besar:
-
Pengelolaan alarm yang efektif: Memprioritaskan alarm berarti Anda dapat mengatasi masalah besar terlebih dahulu dan mengabaikan alarm palsu.
-
Diagnostik komprehensif: Alat pemantauan kinerja terbaik memungkinkan Anda menyelami diagnostik. Mengetahui ada masalah hampir tidak membantu seperti mengetahui cara memperbaikinya.
-
Waktu yang cepat untuk menilai: Setiap instans mengumpulkan ratusan metrik, dan menyimpannya di tempat akan menjadi mahal dengan cepat. Pertimbangkan salah satu solusi pemantauan kinerja SaaS untuk penghematan biaya dan skalabilitas.
-
Analitik: Analitik yang kuat adalah pembeda utama antara alat pemantauan kinerja. Untuk dampak maksimal pada kinerja, pilih alat yang menyediakan metrik ekstensif untuk beban kerja, rencana kueri, akar penyebab alarm, dan pemblokiran.
-
Pelacakan data historis: Cari alat pemantauan kinerja yang menyimpan data historis. Ini akan mempercepat pemecahan masalah karena Anda akan tahu jika masalah berulang dan bagaimana masalah dilacak dari waktu ke waktu.
-
Penyetelan dan pengoptimalan rencana kueri: Alat dengan kecerdasan buatan bawaan akan memungkinkan Anda menyempurnakan kueri dan mengoptimalkannya untuk instance tertentu.
-
Pemeriksaan kesehatan: Pemeriksaan kesehatan memantau tanda-tanda vital SQL Server untuk memberi tahu Anda bahwa Anda mungkin memiliki masalah—terkadang bahkan sebelum masalah itu muncul.
Jika Anda menginginkan alat dengan semua fitur yang dibahas di atas, Anda perlu melihat salah satu solusi pemantauan kinerja SQL Server berbasis cloud. Tak tertandingi dalam skalabilitas, fleksibilitas, dan harga, alat pemantauan ini menyediakan platform pemantauan kinerja yang aman untuk memenuhi setiap kebutuhan.
Apa cara terbaik untuk mengoptimalkan pemantauan kinerja basis data?
Salah satu cara terbaik untuk mengoptimalkan pemantauan kinerja adalah otomatisasi. Mengotomatiskan tugas-tugas umum—seperti memantau ruang disk, memeriksa log kesalahan, dan memverifikasi cadangan basis data—akan memastikan tugas-tugas ini diselesaikan, yang memberi DBA lebih banyak waktu untuk melakukan pekerjaan yang bernilai lebih tinggi.
Selain itu, Anda dapat menerapkan hal berikut untuk mengoptimalkan pemantauan kinerja SQL Server Anda:
-
Pemantauan seluler: Pemantauan seluler tersedia dari perangkat Android dan iOS Anda. Menyediakan peta panas, alarm pintar, dan daftar alarm, pemantauan kinerja seluler memungkinkan Anda mendiagnosis masalah dan memulai triase dari mana saja.
-
Penyetelan dan pengoptimalan kueri: Penyesuaian kinerja memungkinkan Anda untuk memvisualisasikan, menganalisis, dan mengoptimalkan kueri SQL dan rencana eksekusi dengan menyoroti operator berbiaya tertinggi, menawarkan perbaikan yang disarankan untuk masalah, dan menulis ulang/mengoptimalkan kueri dan rencana kueri Anda.
-
Pemeriksaan kesehatan: Pemeriksaan kesehatan membantu Anda mengoptimalkan pemantauan kinerja dengan menunjukkan masalah kesehatan dalam setiap instans SQL Server, termasuk waktu tunggu yang lama dan latensi I/O. Pemeriksaan kesehatan juga menyediakan data historis, sehingga Anda dapat melacak masalah kinerja dari waktu ke waktu.
Bagaimana saya harus memilih alat pemantauan SQL Server?
Ada dua pertimbangan utama saat memutuskan alat pemantauan kinerja SQL Server.
Alat seperti apa yang Anda cari?
Ada tiga jenis utama alat pemantauan kinerja yang perlu dipertimbangkan:
-
Kustom/buatan sendiri: Dalam hal ini, ingatlah bahwa hanya karena Anda dapat melakukan sesuatu tidak selalu berarti Anda harus melakukannya. Ya, Anda dapat mengumpulkan alat pemantauan kinerja internal untuk mengumpulkan metrik menggunakan PerfMon, pelacakan, DMV, dan XEvents. Tapi kontra jauh lebih besar daripada pro mengambil rute ini. Ini tidak dapat diskalakan, sehingga saat instans Anda meningkat, kemampuan pemantauan kinerja Anda menurun. Selain itu, tidak mungkin untuk memantau semua hal yang perlu Anda perhatikan untuk memastikan kinerja SQL Server yang optimal. Setelah Anda mulai mengumpulkan data, Anda harus menyimpannya di suatu tempat agar berguna, dan itu bisa menjadi mahal. Intinya - apakah lebih berharga bagi Anda untuk menghabiskan waktu berharga Anda membangun dan memelihara alat pemantauan kinerja atau menghabiskannya memperbaiki dan menyetel beban kerja misi kritis.
-
Gratis/sumber terbuka: Ini berpotensi menjadi pilihan yang lebih baik daripada membuat solusi pemantauan kinerja Anda sendiri, tetapi masih ada batasan. Meskipun Anda mendapatkan sedikit penyesuaian, Anda masih kekurangan cakupan dan peringatan yang telah dikonfigurasi sebelumnya. Anda juga masih perlu menyediakan ruang penyimpanan data Anda sendiri. Ini adalah proses kompleks untuk membangun alat yang dapat secara efektif menangkap sejumlah besar data kinerja tanpa memengaruhi server yang dipantau, menetapkan ambang batas yang sesuai untuk ratusan metrik, mengelola volume besar data yang dikumpulkan, dan kemudian memperbaruinya dari satu versi SQL server ke yang berikutnya. Fokuskan waktu Anda untuk memecahkan masalah dan bukan membangun sistem pemantauan kinerja. Jika Anda bergantung pada pembaruan komunitas, dukungan untuk versi baru dari platform basis data mungkin tertinggal dari rilisnya.
-
Komersial: Alat pemantauan kinerja SQL komersial menawarkan berbagai fitur dan tingkat penyesuaian, dan banyak yang sangat terjangkau. Alat komersial memfasilitasi pemantauan kinerja dengan opsi seperti health check, manajemen alarm, diagnostik kinerja, dan kemampuan pemantauan seluler—fitur yang tidak akan Anda dapatkan dari alat gratis atau yang dibuat sendiri.
Apa kebutuhan Anda untuk lingkungan spesifik Anda?
Sebelum memilih alat pemantauan kinerja, tanyakan pada diri Anda pertanyaan berikut untuk membantu Anda menentukan alat yang memenuhi kebutuhan spesifik Anda:
-
Berapa banyak kejadian yang ingin Anda pantau?
-
Apakah mereka terkolokasi atau tersebar?
-
Apakah mereka di tempat atau di awan (atau keduanya)?
-
Dapatkah Anda membayar pembayaran sekaligus untuk infrastruktur dan perizinan, atau apakah Anda perlu membagi biayanya?
-
Apakah Anda memiliki infrastruktur dan instans database yang tersedia untuk digunakan sebagai alat pemantauan?
-
Apakah Anda memiliki waktu atau sumber daya secara internal untuk membangun dan memelihara infrastruktur pemantauan?
-
Apakah alat ini memiliki kemampuan untuk membedah beban kerja pada berbagai dimensi secara instan, untuk menghemat waktu Anda dalam pembuatan skrip?
-
Apakah ada kemampuan cerdas untuk mengurai data dan membantu Anda mengidentifikasi masalah tertentu?
-
Apakah alat ini menyediakan diagnostik instan, praktik terbaik, atau diagnosis untuk penelusuran yang relevan?
Apa cara terbaik untuk memantau kesehatan kinerja basis data?
Ada beberapa tanda SQL Server Anda tidak sehat, antara lain:
-
Perlambatan beban kerja umum
-
Waktu tunggu koneksi/kueri
-
Penggunaan CPU yang berlebihan
-
Tekanan memori
-
Latensi baca/tulis I/O yang berlebihan
-
Log transaksi atau ukuran TempDB yang berlebihan
Jika Anda melihat salah satu dari gejala ini, saatnya untuk menyiapkan pemeriksaan kesehatan untuk mengembalikan sistem Anda ke kinerja puncak. Beberapa langkah awal yang dapat Anda ambil untuk mengidentifikasi penyebab masalah kinerja meliputi:
-
Menetapkan dasar kinerja dan mengukurnya
-
Memverifikasi cadangan
-
Memeriksa indeks yang hilang
-
Menentukan persentase beban kerja dari kueri ad hoc
Apa metrik terbaik untuk pemantauan kinerja SQL Server?
Ada ratusan metrik yang dapat Anda ukur untuk membantu Anda melacak dan meningkatkan kinerja, tetapi ada beberapa yang menonjol yang harus menjadi bagian dari setiap rencana pemeliharaan SQL Server. Berikut adalah beberapa area utama yang harus dipantau dan metrik yang perlu Anda perhatikan:
-
Indeks. Indeks sering menjadi sumber masalah kinerja karena database selalu berubah. Data ditambahkan dan dihapus, dan indeks diubah dan dihapus, semuanya berkontribusi pada kinerja yang buruk. Ini adalah metrik yang harus diperhatikan:
- Faktor pengisian
- I/O
- Fragmentasi
-
Tembolok penyangga. Sangat penting untuk mengonfigurasi cache buffer untuk mengoptimalkan lama waktu halaman tetap di sana tanpa berlebihan dan memonopoli memori yang diperlukan di tempat lain. Ini adalah metrik yang harus diperhatikan:
- Harapan hidup halaman
- Rasio hit cache buffer
-
T-SQL. Alih-alih menjalankan pernyataan SQL ad hoc, SQL Server mengelompokkannya, mengompilasinya ke dalam rencana eksekusi, dan menyimpannya dalam cache, mengompilasi ulang pernyataan sesuai kebutuhan. Kompilasi dan kompilasi ulang yang berlebihan dapat menurunkan kinerja. Ini adalah metrik yang harus diperhatikan:
- Kompilasi SQL
- kompilasi ulang SQL
-
Metrik lain yang harus diperhatikan:
- Mengunci waktu tunggu dan memblokir proses
- Penggunaan CPU
Apa masalah umum dalam pemantauan kinerja database?
Hambatan kinerja
Kemacetan kinerja bermanifestasi sebagai database yang lambat atau tidak responsif. Kemacetan bisa sulit ditemukan karena mungkin terkait dengan memori, penyimpanan, atau prosesor. Namun, ada beberapa tempat Anda harus mencari masalah terlebih dahulu:
- Waktu tunggu WRITELOG
- GABUNG LOOP BERSATU
- Pertentangan TempDB
Harapan hidup halaman rendah (PLE)
PLE yang rendah mengganggu kinerja karena SQL Server harus pergi ke disk lebih sering untuk menemukan file data, yang membutuhkan waktu jauh lebih lama daripada membacanya dari cache buffer.
Fragmentasi
Periksa indeks Anda untuk fragmentasi yang berlebihan. Kinerja SQL Server menurun ketika harus mencari halaman yang tersebar dan terisi sebagian untuk menemukan data.
Bagaimana saya harus menyiapkan sistem pemantauan kinerja database saya?
Setelah Anda memutuskan solusi pemantauan kinerja SQL Server, saatnya untuk menjalankannya. Meskipun Anda mungkin ingin langsung masuk ke semua fitur baru yang mengkilap, mengambil langkah mundur dan mendekati proses secara metodis akan membantu memastikan Anda mendapatkan hasil maksimal dari sistem Anda. Berikut ini beberapa kiat untuk mengaktifkan alat manajemen kinerja baru Anda:
-
Putuskan contoh mana yang paling membutuhkan perhatian Anda
-
Jalankan melalui prasyarat
-
Ketahui persyaratan sistem Anda
-
Unduh penginstal
-
Tambahkan koneksi
Kueri apa yang dapat saya gunakan untuk pemantauan kinerja server SQL?
Kueri yang Anda gunakan untuk pemantauan kinerja akan bervariasi berdasarkan metrik yang Anda lacak. Namun, mendeteksi masalah memori, menilai defragmentasi indeks, dan mengidentifikasi waktu tunggu yang tidak dapat diterima kemungkinan berada di bagian atas daftar periksa pemantauan kinerja setiap DBA. Dokumentasi SQL Server Microsoft memberikan detail untuk sejumlah kueri untuk membantu Anda menerapkan rencana pemantauan kinerja Anda:
-
Penggunaan memori
-
Defragmentasi indeks
-
Statistik tunggu
Apa praktik terbaik pemantauan kinerja basis data?
Beberapa orang tidak setuju dengan istilah “praktik terbaik”, tetapi ketika berbicara tentang pemantauan kinerja SQL Server, tidak ada alasan bahwa ada hal-hal tertentu yang harus dilakukan DBA untuk menjaga sistem tetap sehat dan pengguna senang.
Jadikan pemeliharaan indeks sebagai prioritas
Mengabaikan indeks Anda adalah cara yang pasti untuk menghasilkan masalah kinerja. Indeks adalah sumber pembunuh kinerja umum, termasuk fragmentasi dan pemisahan halaman.
Ketahui beban kerja Anda
Sulit untuk mengetahui kapan Anda memiliki masalah jika Anda tidak tahu seperti apa "normal" itu. Luangkan waktu untuk mengetahui beban kerja Anda dengan mengajukan pertanyaan seperti:
-
Kapan instance ini menjadi yang tersibuk?
-
Aplikasi apa yang menggunakan instans ini?
-
Kapan pencadangan terakhir?
-
Apakah instance ini memiliki tantangan kinerja yang diketahui?
Pilih alat pemantauan kinerja yang memenuhi kebutuhan spesifik Anda
Sebelum Anda berkomitmen ke alat pemantauan kinerja SQL Server, Anda harus terlebih dahulu menentukan kebutuhan Anda. Setelah Anda memahami apa yang ingin Anda capai dengan alat pemantauan kinerja, Anda dapat dengan percaya diri mencari solusi dengan fitur yang memenuhi kebutuhan Anda.
Temukan dan perbaiki kemacetan kinerja
Gejala yang jelas dari kemacetan kinerja termasuk menggunakan terlalu banyak memori, waktu tunggu yang lama, fragmentasi indeks, dan terlalu banyak atau terlalu sedikit indeks. Menemukan dan memperbaiki kemacetan ini dengan cepat adalah salah satu tanggung jawab utama DBA. Cara terbaik untuk menjaga kinerja database pada kondisi puncaknya adalah dengan menerapkan alat pemantauan kinerja yang membantu Anda dengan mudah menemukan dan memulihkan kemacetan kinerja dan sumber penurunan kinerja lainnya.