Mempertahankan SQL Server berperforma tinggi sangat penting tidak hanya untuk operasi organisasi Anda, tetapi juga untuk pelanggan Anda. Saat server Anda lambat merespons—atau tidak merespons sama sekali—Anda kehilangan bisnis. Berikut adalah tiga area utama yang harus dipantau dengan cermat untuk memastikan kinerja SQL Server Anda optimal dan cara untuk meningkatkan kinerja jika metrik Anda menunjukkan bahwa Anda memiliki masalah.
Indeks
Jika indeks Anda berfungsi dengan baik, mereka berkontribusi pada sistem yang berjalan cepat dan lancar. Namun, jika indeks Anda mengalami salah satu dari masalah umum ini, Anda mungkin mendapati kinerja SQL Server Anda terpengaruh secara negatif.
Metrik untuk dipantau:faktor pengisian
Fill factor adalah pengaturan di SQL Server yang menginstruksikan indeks untuk mengisi setiap halaman X persen. Tampaknya intuitif bahwa Anda ingin mengisi setiap halaman 100 persen, tetapi kenyataannya, halaman yang terlalu penuh dapat menyebabkan pemisahan halaman. Jika administrator menambahkan baris tambahan ke halaman penuh, baris baru mendorong sekitar setengah dari baris yang ada ke halaman baru dan baris baru ditambahkan ke bagian bawah halaman pertama.
Pemisahan halaman dapat menyebabkan masalah kinerja karena peningkatan jumlah operasi I/O dan potensi fragmentasi. Namun, terlalu banyak ruang pada halaman juga dapat merusak kinerja karena sumber daya dihabiskan secara tidak perlu.
Untuk mendapatkan hasil kinerja terbaik dari pengaturan faktor pengisian Anda, jangan tetapkan nilai di seluruh sistem. Lihat indeks Anda satu per satu dan atur faktor pengisian pada tingkat yang sesuai untuk masing-masing indeks. Misalnya, indeks yang sering terfragmentasi memerlukan nilai faktor pengisian yang berbeda dari indeks yang jarang digunakan.
Metrik untuk dipantau:fragmentasi
Fragmentasi indeks terjadi ketika pengguna menambah dan menghapus catatan. Memindahkan berbagai hal adalah bagian normal dari operasi database sehari-hari, tetapi seiring waktu, fragmentasi memengaruhi kinerja. Fragmentasi dapat menyebabkan beberapa masalah:
- Terlalu banyak ruang kosong pada terlalu banyak halaman memperlambat pemindaian dan menggunakan memori secara tidak perlu
- Halaman baru ditambahkan secara tidak berurutan sehingga server membutuhkan waktu lebih lama untuk menemukan data
Ketika fragmentasi mulai mempengaruhi kinerja, Anda harus menjalankan Rebuild atau Reorganize untuk membersihkan indeks yang terfragmentasi. Menjalankan Rebuild akan membuat indeks baru dan menghapus ruang kosong ekstra. Reorganize menempatkan halaman daun agar server dapat menemukan data dengan lebih mudah.
Tembolok Penyangga
Ketika SQL Server dapat membaca halaman dalam cache buffer, waktu respons Anda akan lebih cepat. Performa menurun ketika server harus pergi ke disk untuk menemukan halaman karena harus melalui serangkaian langkah sebelum menyimpan halaman ke buffer dan kemudian membacanya. Ada beberapa metrik yang dapat Anda lacak yang akan membantu menjaga cache buffer tetap berjalan pada kinerja puncak.
Metrik untuk dipantau:harapan hidup halaman
Harapan hidup halaman (PLE) adalah berapa lama halaman tetap berada di cache buffer tanpa dipanggil sebelum dikirim kembali ke disk. Meningkatkan PLE akan meningkatkan kinerja, tetapi juga menggunakan memori yang mungkin diperlukan untuk fungsi lain. Jika Anda akan menyesuaikan PLE, Anda perlu mencari tahu berapa banyak memori yang dapat Anda gunakan tanpa memengaruhi kinerja di tempat lain.
Metrik untuk dipantau:rasio hit cache buffer
Rasio hit cache buffer adalah persentase halaman yang terletak di kumpulan buffer versus semua permintaan halaman. Rasio hit cache buffer harus di atas 90 untuk kinerja terbaik (yaitu, SQL Server tidak harus membaca dari disk). Berhati-hatilah saat menganalisis data rasio hit cache buffer Anda. Penurunan kecil dalam rasio mungkin tidak menunjukkan masalah nyata. Analisis data bersama dengan PLE untuk menentukan apakah ada masalah kinerja yang sebenarnya.
Pengoptimalan Kueri
Kueri yang lambat dan berkinerja buruk adalah salah satu masalah kinerja SQL Server yang paling umum. Ada banyak kemungkinan alasan kueri Anda tidak berjalan dengan baik, jadi mungkin sulit untuk menentukan penyebab pastinya. Namun ada beberapa hal yang dapat Anda coba di awal penyelidikan yang dapat meningkatkan kinerja kueri dengan sedikit usaha.
Metrik untuk dipantau:pemindaian indeks
Memeriksa kesehatan SQL Server Anda harus menjadi bagian rutin dari tugas DBA Anda. Saat kueri berjalan lambat, luangkan sedikit waktu ekstra dengan pengoptimal kueri. Satu hal penting untuk diperiksa adalah apakah pemindaian indeks SQL Server memiliki masalah yang perlu Anda atasi.
Pembunuh kinerja potensial lainnya adalah pemindaian indeks yang berjalan lebih sering daripada yang seharusnya. Pemindaian indeks membutuhkan waktu jauh lebih lama daripada pencarian indeks karena kueri harus memindai setiap baris untuk mencari data yang berguna. Siapkan pengoptimal kueri Anda sehingga pengoptimal kueri mencari indeks lebih sering daripada memindainya.
Menulis ulang kueri yang bermasalah adalah cara lain untuk meningkatkan kinerja. Terkadang menyederhanakan kueri akan menghapus bagian yang menyebabkan kueri macet. Anda juga dapat mencoba menambahkan indeks untuk mempercepat kueri, tetapi ini berfungsi lebih baik dalam beberapa kasus daripada yang lain.
Menambahkan indeks adalah solusi yang baik untuk bidang yang terlibat dalam pencarian, pengelompokan, atau pengurutan; bidang yang sering diakses; dan bidang dengan nilai unik. Biasanya tidak efektif untuk menambahkan indeks pada bidang dengan nilai duplikat seperti ya/tidak atau untuk tabel kecil.
Pemantauan kinerja SQL Server sangat penting untuk menjaga database berkinerja tinggi. Menjaga SQL Server Anda berjalan dengan kecepatan tinggi hanya dapat dicapai melalui perhatian yang rajin pada metrik kinerja. Tambahkan metrik yang dibahas di atas ke daftar periksa pemeliharaan Anda untuk mengidentifikasi dan memperbaiki masalah kinerja SQL Server lebih awal.