DBA memainkan peran penting dalam sebuah organisasi. Sebagai pemelihara data, mereka bertanggung jawab untuk mengelola semua aspek kinerja basis data, termasuk ketersediaan tinggi, waktu pemrosesan kueri yang cepat, serta mitigasi risiko dan pemulihan bencana. Selain itu, DBA bertanggung jawab atas tujuan bisnis memelihara database organisasi dengan memperhatikan ROI dan penghematan biaya.
Dengan semua topi berbeda yang mereka kenakan, DBA harus bekerja secara efisien, dan manajemen waktu yang efektif adalah teman terbaik mereka. Cara terbaik untuk mencapai efisiensi adalah dengan fokus terlebih dahulu pada aktivitas utama yang akan membantu menjaga kinerja database tetap optimal.
Berikut adalah empat aktivitas pemantauan basis data yang harus menjadi yang teratas dalam daftar "wajib-tahu" setiap DBA.
Bagaimana (dan Mengapa) Menyesuaikan Pengaturan Default di SQL Server
Banyak DBA menjalankan SQL Server apa adanya, langsung dari kotak. Namun, konfigurasi default tidak selalu merupakan pilihan terbaik dari sudut pandang keamanan atau kinerja. Basis data setiap organisasi berbeda dan memenuhi kebutuhan bisnis yang berbeda, jadi masuk akal jika tidak setiap basis data dikonfigurasi dengan cara yang sama.
Bergantung pada kebutuhan dan preferensi basis data spesifik Anda, ada beberapa pengaturan SQL Server default yang mungkin ingin Anda ubah:
- Faktor isian:Jika Anda membuat indeks tanpa menentukan nilai faktor isian, nilai defaultnya adalah 0. Ini berarti bahwa halaman akan terisi penuh, dan penyisipan, penghapusan, atau pembaruan apa pun dapat menyebabkan pemisahan dan fragmentasi halaman yang berlebihan.
Tidak ada nilai faktor pengisian yang “benar” secara universal, tetapi 80-90 biasanya merupakan pilihan yang aman. Rentang nilai ini memungkinkan 80-90 persen halaman untuk diisi, menyisakan 10-20 persen gratis.
- Ambang biaya untuk paralelisme:Ambang biaya untuk paralelisme adalah nilai saat mesin SQL Server mulai menjalankan paket paralel untuk kueri Anda. Nilai defaultnya adalah lima detik, tetapi nilai ini cukup rendah dan dapat membuat banyak kueri rumit yang tidak perlu, yang akan berdampak negatif pada kinerja.
Mulailah dengan pengaturan 20 detik dan sesuaikan sesuai kebutuhan berdasarkan waktu tunggu CXPACKET dan penggunaan CPU.
- Database file autogrow:Autogrowth adalah proses yang terjadi saat mesin SQL Server meningkatkan ukuran file database saat kehabisan ruang. Berapa banyak file tumbuh diatur secara default ke 1 MB untuk file data dan 10 persen untuk file log transaksi.
Setiap database akan tumbuh pada tingkat yang berbeda, jadi perkirakan seberapa besar pertumbuhan database menurut Anda dan tetapkan nilainya.
- Model pemulihan basis data:Model pemulihan default adalah FULL di luar kotak, tetapi itu tidak efisien untuk semua basis data.
Ubah setelan ke SIMPLE untuk database yang tidak mission-critical dan biarkan pengaturan di FULL hanya untuk database produksi berisiko tinggi. - Memori server maksimum:Nilai defaultnya adalah 2 TB, yang berarti SQL Server mengalokasikan semua memori dari sistem operasi. Ini tidak meninggalkan memori apa pun untuk digunakan OS.
Sesuaikan pengaturan untuk memaksimalkan jumlah memori yang tersedia untuk proses SQL Server, tetapi sisakan sedikit agar OS dapat digunakan jika diperlukan. - Derajat paralelisme maksimum (MAXDOP):MAXDOP mengontrol berapa banyak prosesor yang digunakan untuk mengeksekusi kueri dalam rencana paralel. Standarnya adalah 0, yang berarti SQL Server dapat menentukan berapa banyak prosesor yang dapat digunakan. Jika Anda membiarkan biaya ambang untuk paralelisme pada nilai default 5, Anda mungkin akan menggunakan semua CPU untuk setiap kueri.
Pengaturan MAXDOP yang ideal akan bervariasi berdasarkan sistem spesifik Anda, tetapi Microsoft menawarkan beberapa saran di sini. - Kompresi cadangan:Pengaturan default untuk fitur ini adalah OFF. Namun, kompresi pencadangan mempercepat operasi pencadangan basis data dan membuat ukuran file cadangan lebih kecil, jadi Anda mungkin ingin mengaktifkannya.
Satu tip terakhir untuk menyesuaikan pengaturan SQL Server dari nilai default:Selalu uji sistem secara menyeluruh setelah mengubah pengaturan apa pun untuk memastikan tidak ada masalah yang muncul secara tidak sengaja.
Cara Menghilangkan Kemacetan SQL Server
Kemacetan SQL Server adalah sumber umum masalah kinerja, termasuk SQL Server memonopoli prosesor, waktu eksekusi kueri yang lama, I/O yang berlebihan, dan aktivitas ekstrem pada disk.
Ada banyak alasan non-bottleneck database Anda mungkin mengalami masalah kinerja ini, tetapi jika masalahnya berasal dari kemacetan SQL Server, ada tiga area utama yang mungkin terpengaruh:memori, I/O, dan CPU.
Kemacetan memori dihasilkan dari sumber daya memori yang tidak mencukupi atau aktivitas SQL Server yang menggunakan terlalu banyak memori yang tersedia. Perhatikan waktu eksekusi kueri yang lebih lama, I/O yang berlebihan, pesan kehabisan memori di log aplikasi, dan seringnya sistem mogok.
Kemacetan I/O terjadi ketika tidak tersedia cukup penyimpanan untuk mendukung operasi database reguler seperti tempDB. Perhatikan waktu respons yang lama, pelambatan aplikasi, dan waktu tunggu tugas yang sering.
Kemacetan CPU disebabkan oleh sumber daya perangkat keras yang tidak mencukupi. Perhatikan dalam pemantauan database Anda untuk data log yang menunjukkan SQL Server menggunakan CPU yang berlebihan.
Cara Mencegah Pertumbuhan tempDB
TempDB adalah ruang kerja sementara dalam contoh SQL Server yang digunakan untuk membuat dan menyimpan objek perantara dan sementara. TempDB adalah salah satu sumber daya paling aktif di lingkungan SQL Server, jadi penting untuk memantau dan mengontrol pertumbuhan tempDB yang berlebihan.
TempDB sering digunakan dalam sebuah instance karena digunakan untuk menyimpan objek pengguna, objek internal, dan penyimpanan versi. Pertumbuhan tempDB yang berlebihan dapat menyebabkan masalah kinerja, jadi penting untuk melacak kueri besar, tabel sementara, dan variabel tabel yang menggunakan ruang disk tempDB dalam jumlah besar.
Untuk mengoptimalkan ukuran dan pertumbuhan tempDB, Microsoft merekomendasikan praktik terbaik berikut:
- Setel model pemulihan tempDB ke SIMPLE
- Izinkan file tempDB tumbuh secara otomatis sesuai kebutuhan
- Setel peningkatan pertumbuhan file ke ukuran yang wajar untuk menghindari file database tempDB tumbuh dengan nilai yang terlalu kecil
- Alokasikan ruang sebelumnya untuk semua file tempDB dengan menyetel ukuran file ke nilai yang cukup besar untuk mengakomodasi beban kerja umum di lingkungan
- Buat setiap file data dengan ukuran yang sama
Anda dapat menyesuaikan ukuran dan parameter pertumbuhan file data tempDB menggunakan studio manajemen SQL Server.
Cara Menghitung Total Biaya Kepemilikan
Meskipun Anda mungkin tidak menghabiskan banyak waktu untuk memikirkan anggaran perusahaan Anda, Anda sebaiknya percaya bahwa CFO melakukannya. Saat tiba waktunya untuk meminta teknologi pemantauan kinerja baru, sebaiknya siapkan data keras untuk mencadangkan permintaan Anda.
Salah satu bagian paling berpengaruh dari data yang dapat Anda sajikan adalah potensi total biaya kepemilikan (TCO) dari teknologi baru versus solusi Anda saat ini. Selain biaya langsung, pastikan untuk mempertimbangkan biaya tidak langsung seperti infrastruktur dan biaya sumber daya seperti pemeliharaan.
Mengurangi TCO adalah tujuan umum bagi DBA yang ingin mengganti alat pemantauan kinerja database mereka saat ini, jadi ada beberapa faktor yang perlu dipertimbangkan. Seperti disebutkan di atas, penting untuk melihat tidak hanya biaya langsung seperti harga pembelian, tetapi juga biaya tidak langsung seperti penyimpanan dan biaya sumber daya seperti pelatihan.
Untuk menentukan TCO untuk alat baru, masukkan spesifikasi Anda ke kalkulator TCO dan lihat penghematan biayanya, jika ada.