Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Tingkatkan penyetelan kinerja SQL Server dengan 3 tips ini

Seperti yang diketahui semua orang yang mengelola database, penyesuaian performa SQL Server adalah fungsi penting untuk memastikan performa yang optimal. Dengan kinerja yang bergantung pada berbagai faktor seperti memori, konfigurasi, desain kueri, dan penggunaan sumber daya, mengisolasi akar penyebab penurunan kinerja bukanlah hal yang mudah.

Daripada menunggu masalah kinerja terjadi, penyetelan SQL Server secara proaktif akan memastikan pernyataan SQL Anda berjalan seefisien mungkin dengan membantu SQL menemukan rute tercepat masuk dan keluar untuk memberikan hasil kueri Anda.

Jika Anda berjuang dengan kinerja yang lamban—atau Anda bukan orang yang hanya menunggu masalah muncul—berikut adalah tiga area utama untuk memfokuskan penyetelan kinerja SQL Server Anda untuk mencapai kinerja yang optimal dan sistem yang lebih sehat.

Kiat #1:Optimalkan TempDB Anda

TempDB yang tidak dikonfigurasi dengan benar adalah penyebab umum saat melihat penurunan performa. Jika Anda sering mengisi TempDB, inilah saatnya untuk melihat apa yang perlu diubah.

Pertama, periksa ukuran TempDB. Tidak ada aturan keras dan cepat tentang seberapa besar seharusnya, tetapi aturan praktis yang baik adalah menjaga TempDB pada 25 persen dari database terbesar Anda atau ukuran yang sama dengan indeks terbesar Anda. Ini mencegah keharusan meningkatkan TempDB selama pembangunan kembali.

Dengan TempDB, semakin cepat drive semakin baik. Saat TempDB ditempatkan pada drive yang lambat atau drive yang sama dengan OS, Anda pasti akan melihat masalah performa database. Jika memungkinkan, simpan TempDB pada SSD lokal khusus. Jika tidak memungkinkan, opsi terbaik Anda berikutnya adalah menyimpannya pada volume khusus sendiri dengan ruang disk yang telah dialokasikan sebelumnya.

Penting juga untuk memisahkan data dan file log dan menetapkan nilai tetap yang besar untuk pertumbuhan otomatis TempDB. Jika tidak, Anda akan terkena overhead yang tidak perlu setiap kali TempDB penuh.

Mengontrol jumlah file data TempDB berkontribusi pada pengoptimalan TempDB. Tetapi pertanyaan besarnya adalah, berapa banyak file data TempDB yang Anda butuhkan? Idealnya, Anda akan memiliki satu file data TempDB untuk setiap CPU logis, tetapi tidak lebih dari delapan total (dengan beberapa pengecualian). Misalnya, jika Anda memiliki empat CPU logis, Anda memerlukan empat file data TempDB. Jika Anda memiliki 12 CPU logis, Anda dapat memiliki delapan file data TempDB.

Kiat #2:Cegah kemacetan kinerja

Ada tiga jenis utama kemacetan performa SQL Server yang menyebabkan performa buruk:CPU, memori, dan I/O. Penyebab, gejala, dan diagnosisnya berbeda-beda menurut jenis kemacetannya, jadi inilah panduan sekilas tentang apa yang harus diwaspadai:

Kemacetan CPU

Penyebab: Sumber daya perangkat keras tidak mencukupi

Gejala: Penggunaan prosesor yang selalu tinggi

Metrik untuk dipantau:  % Waktu Prosesor, Permintaan Batch/Detik, Kompilasi SQL/Detik dan SQL Rekompilasi/Detik

Kemacetan Memori

Penyebab:  Keterbatasan dalam memori yang tersedia dan tekanan memori yang disebabkan oleh SQL Server, sistem, atau aktivitas aplikasi lainnya

Gejala:  Responsivitas aplikasi lambat, pelambatan sistem secara keseluruhan, dan aplikasi mogok

Metrik untuk dipantau:  Memori yang Tersedia (KB), Memori Server Total (KB), Memori Server Target (KB), Halaman/Detik, Halaman/Detik Pos Pemeriksaan, Penulisan/Detik Malas, dan Rasio Hit Cache Buffer

Kemacetan I/O

Penyebab:  Membaca dan menulis halaman database secara berlebihan dari dan ke disk

Gejala: Waktu respons yang lama, pelambatan aplikasi, dan waktu tunggu tugas

Metrik untuk dipantau:  Panjang Antrian Disk Rata-Rata, Rata-Rata Detik/Baca Disk, Rata-rata Disk Sec/Detik, %Waktu Disk, Rata-rata Disk Dibaca/Detik dan Rata-rata Disk Write/Detik

Kiat #3:Pastikan indeks dirancang dengan benar

Indeks adalah cara yang bagus untuk mempercepat operasi SQL Server tertentu, tetapi hanya jika dirancang dengan baik. Indeks yang dirancang dengan buruk memiliki efek sebaliknya dan merupakan cara yang pasti untuk mematikan kinerja SQL Server Anda.

Menyiapkan keempat area ini dengan benar dapat membantu memastikan indeks dirancang dengan benar dan membantu daripada merusak kinerja SQL Server.

Ukuran tabel

Tidak setiap tabel adalah kandidat yang baik untuk pengindeksan. Faktanya, jika tabel terlalu kecil, SQL Server akan lebih efisien untuk mencari seluruh tabel dibandingkan harus mencari melalui indeks. Tentu saja, kebalikannya berlaku untuk tabel besar, jadi Anda perlu mempertimbangkan potensi overhead saat memutuskan tabel mana yang akan mendapat manfaat dari indeks.

Jenis indeks

Secara teknis, setiap tabel database dapat memiliki satu indeks berkerumun dan indeks non-pengelompokan dalam jumlah tak terbatas, tetapi Anda tahu apa yang mereka katakan tentang “Hanya karena Anda dapat melakukan sesuatu”…

Terlalu banyak indeks non-clustered dapat secara signifikan memperlambat operasi Sisipkan dan Perbarui, jadi tetap berpegang pada satu indeks clustered dan jumlah minimum indeks non-clustered yang benar-benar penting adalah pilihan desain yang jauh lebih baik.

Penyimpanan indeks

Selama fase desain, memilih kriteria penyimpanan yang tepat untuk indeks sangat penting untuk kinerja I/O. Indeks berkerumun yang dipartisi dan indeks yang tidak berkerumun dapat disimpan pada grup file yang sama dengan tabel utama, atau dapat disimpan pada grup file yang berbeda. Menyimpan indeks non-cluster dalam filegroup yang terletak di drive disk yang berbeda dapat meningkatkan kinerja kueri yang menggunakannya, karena tidak terpengaruh oleh pembacaan data dan halaman indeks SQL secara bersamaan yang terjadi pada drive disk yang berbeda.

FAKTOR PENGISI

FILLFACTOR menentukan persentase ruang yang akan diisi pada setiap halaman data saat membuat indeks. Nilai FILLFACTOR dapat berkisar dari 0 persen (tidak ada halaman data yang terisi) hingga 100 persen (halaman data terisi penuh). Saat mendesain indeks Anda, pilih nilai FILLFACTOR yang akan mengoptimalkan penggunaan halaman sekaligus meminimalkan risiko fragmentasi indeks yang berlebihan.

Menjadikan penyesuaian performa SQL Server sebagai bagian dari rutinitas standar Anda adalah cara terbaik untuk memastikan database Anda berjalan pada performa puncak. Memasukkan tiga langkah sederhana ini ke dalam rencana pemeliharaan SQL Server reguler Anda akan meningkatkan kecepatan dan kinerja pengguna Anda secara nyata.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Atur susunan basis data dalam Entity Framework Code-First Initializer

  2. Antarmuka Jaringan SQL, kesalahan:50 - Terjadi kesalahan Runtime Database Lokal. Tidak dapat membuat instans otomatis

  3. Tipe data untuk menyimpan alamat ip di SQL Server

  4. Cara Membuat Prosedur Tersimpan di SQL Server

  5. Kesalahan nama kolom yang ambigu pada satu server tertentu