Apa yang dimaksud dengan OPTIMASI QUERY dan SQL TUNNING

Pengertian Query

Pengertian query secara umum adalah bahasa standar dalam database untuk mengelola database secara langsung. Dengan query database dapat diakses secara cepat dan mudah dimengerti oleh pengguna atau end – user, query memiliki banyak fungsi yang berkaitan dengan database dan ada beberapa contoh kode yang berbeda – beda dalam tiap kasus yang ada . Dalam tulisan berikut kami akan menjelaskan mengenai pengertian query, beserta fungsi dan contohnya dalam poin berikut.

Fungsi Query

Pengertian query sudah kami dijelaskan seperti pada poin sebelumnya, query memiliki beberapa fungsi penting yang berguna bagi pengelolaan dan operasi database. Fungsi query ada banyak, namun kami rangkum dalam poin berikut :
  1. Melakukan akses langsung pada basis data
  2. Query dalam bentuk bahasa SQL (Subquery language) memiliki fungsi membuat basis data baru maupun menghapus yang sudah ada
  3. Query memiliki fungsi menentukan struktur dari database yang ada, baik itu jumlah tabel, kolom, dan lainnya
  4. Query Fungsinya juga dapat melakukan manipulasi data dari database yang sudah dapat dibuat
  5. Fungsi Query dapat untuk mengeksekusi perintah – perintah untuk mengambil, menambah, menghapus, data serta operasi lainnya di dalam basis data
  6. Membuat fungsi – fungsi tertentu (store procedure) yang digunakan dalam basisdata
Dari poin di atas dapat disimpulkan bahwa fungsi query adalah melakukan operasi di dalam database agar database dapat digunakan oleh pengguna

Jenis Query

Dalam database dikenal beberapa jenis query, mengingat database termasuk cukup luas untuk dikelola dan banyak perintah yang berbeda tiap kodenya. Secara umum jenis query dapat dibagi dalam beberapa tipe berikut ini
  1. DDL (Data Definition Language)

Adalah jenis query (SQL) yang berfungsi untuk melakukan pendefinisian, perubahan, dan penghapusan dari struktur dan definisi dari objek database. Bila anda baru pertama kali membuat database atau tabel terlebih dahulu menggunakan DDL untuk operasi awal DBMS. Contoh adalah create database, create table, alter table.
  1. DML (Database Manipulation Language)

DML adalah jenis query yang berguna untuk melakukan perubahan, manipulasi, dan mengambil data pada database. Apabila database sudah terbentuk dari DDL dan siap digunakan perlu menggunakan DML untuk mengaksesnya. Contoh perintah DML adalah SELECT, UPDATE, INSERT INTO.

Apa Itu SQL Tuning?

Bagian terpenting pada tuning performansi database system adalah Tuning SQL statements. Adapun pada tuning SQL terdapat tiga langkah dasar :
  1. Identifikasi SQL statements yang memegang andil besar pada sharing workload aplikasi dan system resources, dengan me-review history SQL execution yang telah lampau yang tersedia pada system.
  2. Verifikasi bahwa execution plans yang diproduksi oleh query optimizer untuk statement-statement ini berjalan dengan baik.
  3. Mengimplementasi corrective actions untuk men-generate execution plans pada peformansi SQL statement yang buruk sehingga menjadi lebih baik.

Ketiga langkah di atas diulang sampai performansi system mencapai tingkat kepuasan atau tidak ada lagi statement yang dapat di-tuning

Tujuan
Tujuan dari tuning sistem adalah untuk mengurangi waktu respon sistem terhadap end user, atau untuk mengurangi resource yang digunakan untuk memproses pekerjaan yang sama. Kita dapat memenuhi kedua tujuan ini dalam beberapa cara:
  • Mengurangi Beban Kerja (Reduce the Workload)
  • Menyeimbangkan Beban Kerja (Balance the Workload)
  • Memparalelkan Beban Kerja (Parallelize the Workload)
a.   Mengurangi Beban Kerja (Reduce the Workload)
SQL Tuning secara umum melibatkan pencarian cara yang lebih efisien untuk memproses beban kerja yang sama. SQL tuning memungkinkan untuk mengubah rencana eksekusi dari suatu statement tanpa mengubah fungsionalitas untuk mengurangi pemakaian resource.Dua contoh bagaimana penggunaan resource dapat dikurangi:
  1. Jika suatu query yang biasa dieksekusi perlu untuk mengakses suatu persentase kecil dari data dalam tabel, maka query tersebut dapat dieksekusi dengan lebih efisien dengan menggunakan indeks. Dengan membuat indeks, kita dapat mengurangi jumlah pemakaian resource.
  2. Jika seorang user mencari dua puluh baris pertama dari 10000 baris yang diberikan oleh perintah pengurutan yang spesifik, dan jika query (dan perintah pengurutan) dapat dipenuhi oleh indeks, maka user tidak perlu untuk mengakses dan mengurutkan 10000 baris untuk melihat dua puluh baris.

b.  Menyeimbangkan Beban Kerja (Balance the Workload)
Sistem cenderung memiliki penggunaan penuh pada siang hari ketika user yang sebenarnya terhubung ke sistem dan penggunaan yang sedikit di malam hari. Jika noncritical report dan batch job dapat dijadwalkan untuk berjalan pada malam hari dan penggunaan sistem pada siang hari dikurangi, maka hal tersebut dapat membebaskan resource agar dapat digunakan pada program-program yang lebih penting pada siang hari.

c.   Memparalelkan Beban Kerja (Parallelize the Workload)
Query-query yang mengakses sejumlah besar data (typical data warehouse queries) sering dapat diparalelkan. Hal ini sangat berguna untuk mengurangi waktu respon dalam data warehouse yang rendah konkurensinya. Akan tetapi, untuk lingkungan OLTP, yang cenderung tingggi konkurensinya, hal ini dapat merugikan user-user lain dengan meningkatkan penggunaan resource secara keseluruhan pada program.

EXPLAIN PLAN
Explain plan adalah suatu perintah yang digunakan untuk menampilkan perintah eksekusi suatu query.
Query yang dioperasikan yang didukukng oleh explain plan adalah :
  • SELECT
  • INSERT
  • UPDATE
  • DELETE
Dengan memanfaatkan explain plan kita bisa melihat langkah eksekusi yang diambil oleh oracle, sehingga kita bisa meningkatkan performansi query kita.
Optimizer mengambil informasi tentang obyek dan tipe dari query yang dijalankan, kemudian memberikan keputusan bagaimana suatu query akan dieksekusi.

ANALYZE
Selalu jalankan command ANALYZE pada table anda untuk memberikan kepastian kalau optimizer akan memperoleh informasi tentang data tersebut. Anda dapat melakukan ANALYZE sebuah table, index, dan bahkan cluster. Ketika anda melakukan analyze suatu table maka oracle akan mengambil informasi berupa data dari obyek tersebut dan informasi untuk memferifikasi blok. Ini adalah perintah yang sangat berguna bukan Cuma untuk memproteksi data, tetapi juga untuk meningkatkan performansi.

Komentar

Postingan Populer