Mempertahankan instans SQL Server berperforma tinggi adalah sebagian besar tanggung jawab pekerjaan DBA. Kegagalan untuk mendeteksi dan memperbaiki aktivitas yang tidak biasa dapat mempengaruhi operasi internal serta merugikan keuntungan bisnis.
Jika Anda melihat perubahan aktivitas puncak atau anomali dalam contoh SQL Server, berikut adalah tiga tempat untuk memulai pencarian jawaban Anda.
Harapan Hidup Halaman
Harapan hidup halaman (PLE) instans harus mempertahankan rentang nilai yang cukup konsisten. Jika nilai tersebut turun dan tetap rendah, itu pertanda buffer pool mengalami peningkatan permintaan.
Sebelum Anda kehabisan dan kehabisan memori, lihat aktivitas beban kerja. Jika beban kerja meningkat, itu akan memperhitungkan tekanan tambahan pada buffer pool. Tetapi jika beban kerja tidak berubah, Anda perlu melihat lebih dekat untuk mengidentifikasi apa yang menggunakan memori ekstra.
Kemungkinan alasan penurunan PLE termasuk menjalankan tugas pemeliharaan secara aktif, pembuatan ulang indeks atau pembaruan statistik, operasi DBCC, dan perubahan pada rencana kueri.
Jika Anda melihat penurunan PLE yang tidak terkait dengan peningkatan beban kerja, ada beberapa hal yang dapat Anda coba untuk meningkatkan PLE instans:
- Lepaskan indeks yang tidak digunakan
- Gabungkan indeks duplikat
- Perhatikan pertanyaan besar
- Defrag
- Hapus data
Waktu Tunggu WRITELOG
Ketika waktu tunggu WRITELOG terlalu besar dalam proporsi total waktu tunggu, Anda mungkin mengalami hambatan pada instance SQL Server Anda. Kemacetan kemungkinan disebabkan oleh masalah pada disk tempat log transaksi disimpan atau oleh data yang dilakukan secara tidak efisien.
Untuk menentukan jenis kemacetan yang Anda hadapi, mulailah dengan menganalisis jumlah pernyataan SQL yang menunggu acara WRITELOG. Jika ada banyak pernyataan yang menunggu, Anda mengalami kemacetan disk. Jika hanya ada beberapa pernyataan yang menunggu, data mungkin terlalu sering di-commit.
Ada beberapa cara untuk mengatasi waktu tunggu WRITELOG yang tinggi setelah Anda mengetahui apakah kemacetan Anda terkait disk atau terkait komit:
- Tambahkan bandwidth I/O ke disk tempat log transaksi disimpan
- Pindahkan I/O log non-transaksi dari disk
- Pindahkan log transaksi ke disk yang tidak terlalu sibuk
- Kurangi ukuran log transaksi
- Pastikan pernyataan COMMIT ditempatkan dalam kode agar data tidak terlalu sering dicommit
TempDB
TempDB adalah ruang kerja sementara di SQL Server yang menyimpan objek sementara. Karena objek yang disimpan di TempDB bersifat sementara, instance SQL Server membuat ulang TempDB setiap kali dimulai ulang. Ini menjadikan pengoptimalan TempDB penting untuk mempertahankan kinerja dan menghindari kemacetan operasional.
Pertikaian TempDB adalah salah satu penyebab utama penurunan kinerja. Pertikaian terjadi ketika banyak sumber daya memerlukan akses ke TempDB tetapi hanya ada satu file data TempDB. Hal ini menyebabkan kemacetan karena proses tidak dapat mengakses TempDB dengan cukup cepat, yang menyebabkan waktu koneksi habis dan proses dibatalkan alokasinya.
Untungnya, kemacetan TempDB dapat diselesaikan dengan cukup mudah dengan menyesuaikan jumlah dan ukuran file TempDB. Setelah instalasi, default SQL Server adalah satu file data TempDB. Jika Anda melihat pertikaian terjadi, Anda disarankan untuk menambahkan delapan file data baru dan menentukan apakah itu memperbaiki masalah. Jika masalah tidak teratasi, coba tambahkan file data tambahan dalam kelipatan empat hingga kinerja pulih.
Meskipun mengetahui di mana harus mulai mencari ketika Anda mengalami masalah kinerja, setiap masalah di atas dan kemacetan yang diakibatkannya dapat dikurangi atau dihindari sama sekali dengan menerapkan satu aturan keras dan cepat:Memantau metrik kinerja bukanlah opsional. Berikut adalah beberapa contoh metrik utama untuk dilacak:
Harapan hidup halaman:Lacak PLE dengan pemantauan berkelanjutan dan proaktif saat turun dan tetap di bawah nilai tipikal untuk contoh SQL Server tertentu.
Waktu tunggu WRITELOG:Memantau metrik seperti pertumbuhan log, penyusutan log, persentase log yang digunakan, dan log flush menunggu/dtk.
Inefisiensi TempDB:Pantau apa yang dialokasikan ke objek pengguna, penyimpanan versi, atau objek internal. Lacak trennya dari waktu ke waktu, lalu tentukan sesi apa yang menggunakan TempDB dan berapa banyak.
Ada beberapa alat pemantauan kinerja SQL Server yang kaya fitur dan terjangkau di pasaran yang dapat membantu Anda tetap berada di depan masalah penurunan kinerja. Jadikan diri Anda sebagai MVP DBA perusahaan dengan secara proaktif meneliti solusi yang menjaga operasi yang menghadap ke dalam dan layanan bisnis yang menghadap ke luar berjalan pada kinerja puncak.