Penyesuaian Kinerja SQL
Penyesuaian kinerja SQL adalah proses pengoptimalan kueri SQL untuk memastikannya dieksekusi secepat mungkin. Ada banyak faktor yang memengaruhi kinerja kueri SQL, seperti jumlah tabel yang diminta, ukuran dan jumlah kolom dalam tabel, dan indeks pada tabel.
SQL adalah komponen penting dari banyak sistem basis data dan merupakan bahasa terkenal untuk menanyakan, memperbarui, dan mengelola data.
Penyesuaian kinerja SQL adalah topik penting untuk dikuasai karena dapat membantu skalabilitas dan kecepatan kueri.
Pada bagian ini, kita akan membahas berbagai cara penyetelan SQL.
Kita semua selalu menginginkan respon yang cepat pada proses pengambilan data. Jadi kita perlu merancang database yang baik yang memberikan kinerja terbaik selama manipulasi data yang menghasilkan kinerja terbaik dari sebuah aplikasi.
Namun, tidak ada cara langsung untuk menentukan kinerja terbaik tetapi kita dapat memilih beberapa cara untuk meningkatkan kinerja kueri SQL, yang termasuk dalam berbagai kategori seperti pembuatan Indeks, penggunaan gabungan, dan penulisan ulang subkueri untuk menggunakan GABUNG, dll.
Sebagai pengembang, kami tahu kueri SQL apa pun dapat ditulis dalam berbagai cara, tetapi kami harus mengikuti praktik/teknik terbaik untuk mencapai kinerja kueri yang lebih baik. Beberapa dari mereka disorot di bawah ini:
- Gunakan EXISTS alih-alih IN untuk memeriksa keberadaan data.
2. Hindari * dalam pernyataan SELECT. Berikan nama kolom yang Anda butuhkan.
3. Pilih Jenis Data yang sesuai. Misalnya Untuk menyimpan string gunakan varchar sebagai pengganti tipe data teks. Gunakan tipe data teks, kapan pun Anda perlu menyimpan data besar (lebih dari 8000 karakter).
4. Hindari nchar dan nvarchar jika memungkinkan karena kedua tipe data hanya membutuhkan memori ganda sebagai char dan varchar.
5. Hindari NULL di bidang dengan panjang tetap. Dalam hal persyaratan NULL, gunakan bidang variabel-panjang (varchar) yang membutuhkan lebih sedikit ruang untuk NULL.
6. Hindari Memiliki Klausul. Memiliki klausa diperlukan jika Anda selanjutnya ingin memfilter hasil agregasi.
7. Buat Indeks Clustered dan Non-Clustered.
8. Pertahankan indeks berkerumun kecil karena bidang yang digunakan dalam indeks berkerumun juga dapat digunakan dalam indeks non-berkerumun.
9. Sebagian besar kolom selektif harus ditempatkan paling kiri di kunci indeks non-cluster.
10. Jatuhkan Indeks yang tidak terpakai.
11. Lebih baik membuat indeks pada kolom yang memiliki nilai integer daripada karakter. Nilai bilangan bulat menggunakan lebih sedikit overhead daripada nilai karakter.
12. Gunakan gabungan, bukan sub-kueri.
13. Gunakan ekspresi WHERE untuk membatasi ukuran tabel hasil yang dibuat dengan gabungan.
14. Gunakan TABLOCKX saat memasukkan ke dalam tabel dan TABLOCK saat menggabungkan.
15. Gunakan WITH (NOLOCK) saat menanyakan data dari tabel mana pun.
16. Gunakan SET NOCOUNT ON dan gunakan TRY- CATCH untuk menghindari kondisi deadlock.
17. Hindari Kursor karena kinerja kursor sangat lambat.
18. Gunakan variabel Tabel sebagai pengganti tabel Temp. Penggunaan tabel Temp membutuhkan interaksi dengan database TempDb yang merupakan tugas yang memakan waktu.
19. Gunakan UNION ALL sebagai pengganti UNION jika memungkinkan.
20. Gunakan nama Skema sebelum nama objek SQL.
21. Gunakan Prosedur Tersimpan untuk data yang sering digunakan dan kueri yang lebih kompleks.
22. Pertahankan transaksi sekecil mungkin karena transaksi mengunci data tabel pemrosesan dan dapat menyebabkan kebuntuan.
23. Hindari awalan "sp_" dengan nama prosedur tersimpan yang ditentukan pengguna karena SQL server pertama-tama mencari prosedur yang ditentukan pengguna di database master dan setelah itu di database sesi saat ini.
24. Hindari penggunaan Sub Query Scalar yang tidak berkorelasi. Gunakan kueri ini sebagai kueri terpisah alih-alih bagian dari kueri utama dan simpan hasilnya dalam variabel, yang dapat dirujuk ke kueri utama atau bagian selanjutnya dari kumpulan.
25. Hindari Multi-statement Table Valued Functions (TVFs). TVF multi-pernyataan lebih mahal daripada TVF inline.
Seperti yang telah kita lihat di atas, Di SQL Server, ada beberapa langkah yang dapat Anda ambil untuk meningkatkan kinerja kueri dan basis data Anda secara keseluruhan. Ada banyak langkah yang akan diterapkan untuk RDBMS lain seperti halnya ORACLE.
- Gunakan EXPLAIN PLAN atau AUTOTRACE untuk menganalisis rencana eksekusi kueri Anda dan mengidentifikasi masalah apa pun terkait cara eksekusinya.
- Gunakan petunjuk INDEX untuk menentukan indeks mana yang harus digunakan oleh pengoptimal untuk kueri tertentu.
- Pertimbangkan untuk menggunakan petunjuk seperti FULL atau INDEX_FFS untuk memaksa pengoptimal menggunakan pemindaian tabel lengkap atau pemindaian penuh cepat indeks.
- Gunakan petunjuk OPTIMIZER_MODE untuk menentukan mode pengoptimalan tertentu untuk kueri.
- Pertimbangkan untuk menggunakan tampilan terwujud untuk menghitung sebelumnya dan menyimpan data yang sering diakses, yang dapat meningkatkan kinerja kueri yang mengakses data tersebut.
- Gunakan paket DBMS_STATS untuk menganalisis dan mengumpulkan statistik tentang database Anda dan objeknya, yang dapat membantu pengoptimal membuat keputusan yang lebih tepat saat membuat rencana eksekusi.
- Pertimbangkan untuk menggunakan partisi untuk memecah tabel besar menjadi bagian yang lebih kecil dan lebih mudah dikelola, yang dapat meningkatkan kinerja kueri yang mengakses tabel tersebut.
- Gunakan SQL Tuning Advisor untuk mengidentifikasi dan memperbaiki potensi masalah kinerja dengan pernyataan SQL Anda.
- Ini hanya beberapa dari banyak teknik yang dapat Anda gunakan untuk meningkatkan kinerja query dan database Oracle SQL Anda. Penting untuk diingat bahwa langkah spesifik yang perlu Anda ambil akan bergantung pada database dan beban kerja spesifik Anda.
- Sebaiknya konsultasikan dengan administrator database atau pakar lainnya jika Anda mengalami masalah kinerja.
Banyak cara belajar GCP Gratis dengan Google Cloud selama liburan
Pengertian _
Perintah Linux untuk Cloud Learning
Selamat Membaca…..Selamat Belajar!

![Apa itu Linked List? [Bagian 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































