Minggu, 30 Desember 2012

Optimasi Query

Data yang tersimpan dalam database semakin lama akan semakin besar ukuran atau voluenya. kalau tidak didukung dengan kecepatan akses yang memadai maka akan menurun untuk kerjanya. Ukuran untuk kerja dalam hal ini  kecepatan akses data dipengaruhi oleh banyak faktor. 

  • Optimasi Pada Perintah SQL

 Desain aplikasi saja tidak cukup untuk meningkatkan untuk kerja harus didukung dengan optimasi dari perintah SQL yang digunakan pada aplikasi tersebut. Dalam desain database untuk menampilkan hasil query dibutuhkan pencarian melibatkan struktur fisik penyimpanan data.
Inti dari optimasi query adalah meminialkan jalur pencarian untuk meneukan data yang disimpan dari lokasi fisik.

  • Perencanan Eksekusi 

Pada database oracle ,informasi ini dapat dilihat dengan menggunakan perintah explain plan, yang akan memberi informasi tentang rencana eksekusi suatu query. Informasi ini disimpan dalam tabel PLAN tabel yang terdapat pada schema user yang mengeksekusi perintah tersebut.

  • Faktor Lain yang Berpengaruh Terhadap Kecepatan Akses Data

faktor yang berpengaruh terhadap kecepatan akses data tidak hanya pada optimasi perintah SQL,tapi terhadap hal-hal lain yang berpengaruh . Diantaranya adalah optimasi aplikasi dan penggunaan cluster index.

  • Optimasi Aplikasi

Dalam pebuatan aplikasi ,yang perlu mendapat perhatian adalah apakah akses terhadap data sudah efisien,yang dapat mendukung kecepatan akses seperti index dan cluster. Apakah desain database .sudah elakukan normalisasi data secara tepat.

  • Cluster dan Index

Cluster adalah suatu segment yang menyimpan data dari tabel yang berbeda dala suatu struktur fisik disk yang berdekatan. Konfigurasi ini bermanfaat untuk akses data dari beberapa tabel yang sering di query. Penggunaan cluster secara tepat dilaksanakan setelah menganalisa tabel-tabel ana saja yang sering di query secara bersamaan menggunakan perintah SQL.
Jika aplikasi sering melakukan query dengan menggunakan suatu kolom yang berada pada klausa WHERE, aka harus digunakan index  yang melibatkan kolom tersebut. Penggunaan index yang bergantung pada jenis nilai yang melibatkan kolom tersebut. Penggunaan index yang tepat bergantung pada jenis nilai yang terdpat dalam kolom yang akan diindex. Dalam RDMS Oracle, index B-Tree digunakan untuk kolom yang mengandung nilai yang cukup bervarriasi sedangkan untuk nilai yang tidak memiliki cukup variasi ,lebih baik menggunakan index bitmap.


SubQuery

  • Subquery adalah statement SELECT yang dilampirkan sebagai klausa dalam SQL statement yang lain. Subquery digunakan untuk mengembalikna nilai ke main query. Subquery digunakan untuk menyelesaikan persoalan dimana terdapat suatu nilai yang tidak diketahui .
  • Pada subquery banyak kolom, tiap baris dari main query dibandingkan dengan nilai dari subquery multiple row dan multiple column.Pembandingan kolom dalam subquery banyak kolom dapat berupa  Pembandingan berpasangan (Pairwise Comparison SubQuery) dan Pembandingan tidak berpasangan (NonPairwise Comparison SubQuery)
  • Query bisa diletakkan di dalam klausa FROM untuk membentuk tabel teporer. Query seperti ini dikenal dengan istilah inline view, karena tidak membentuk object database.
  •  Korelasi SubQuery digunakan untuk pemrosesan baris per baris. Tiap-tiapsubquery dijalankan sekali untuk setiap baris dari outer query.
  • Proses korelasi dimulai dengan mengambil baris dari outer query, kemudian inner query dijalankan dengan menggunakan nilai baris kandidat, kemudian nilai dari inner query digunakan untuk melakukan kualifikasi atau mendiskualifikasi baris kandidat.
  • Dengan menggunakan klausa WITH, kita dapat menggunakan blok query yang sama dalam statement SELECT pada saat terjadi lebih dari sekali dalam complex query.Klausa WITH mendapatkan hasil dari blok query dan menyimpannya dalam tablespace temporer kepunyaan user. Klausa WITH dapat meningkatkan performansi. 

Sabtu, 29 Desember 2012

Structured Query Language (SQL)


  • Pengenalan SQL
SQL pertama kali diterapkan pada sistem R (sebuah proyek riset pada laboratorium riset San Jose, IBM). Kini SQL juga dijumpai pada berbagai platform, dari mikrokomputer hingga mainframe. SQL dapat digunakan baik secara berdiri sendiri maupun dilekatkan pada bahasa-bahasa lain seperti C dan Delphi. SQL juga telah menjadi bagian dari sejumlah DBMS, seperti Oracle, Sybase, MySQL dan Informix

  • Elemen dasar SQL

Elemen dasar SQL mencakup pernyataan, nama, tipe data, konstanta, ekspresi, dan fungsi bawaan
1. Pernyataan 
    adalah perintah SQL yang meminta sesuatu tindakan kepada DBMS. SQL memiliki kira-kira 30 pernyataan.  diantaranya adalah
ALTER      : mengubah struktur tabel
 COMMIT   : mengakgiri sebuah eksekusi transaksi
  CREATE    : menciptakan tabel, indeks atau pandangan
     DELETE    : menghapus baris pada tabel
     DROP        : menghapus tabel, index, atau pandangan
2. Nama
    Nama digunakan sebagai identitas bagi objek-objek pada DBMS. Contoh objek pada DBMS adalah tabel  kolom dan pengguna
3. Tipe Data
Setiap data memiliki tipe data.Berikut adalah tipe data dalam My SQL. Tipe data numerik diantaranya adlah TINYINT(nilai integer yang sangat kecil),SMALLINT(nilai integer yang kecil), MEDIUMINT(intege dengan nilai medium).
4. Konstanta
Konstanta menyatakan nilai yang tetap5. Ekspresi Segala sesuatu yang menghasilkan nilai ekspresi digunakan untuk menghitung nilai
.6. Fungsi Agregat
adalah fungsi standar di dalam SQL, suatu fungsi yang digunakan untuk melakukan summary, fungsi statik standar yang dikenakan pada suatu tabel  atau query.

  • Kelompok Pernyataan SQL

Pernyataan SQL dapat dikelompokkan menjadi 3 kelompokk yaitu DDL,DML dan DCL.
1. DDL(Data Definition Language)
merupakan kelompok perintah yang berfungsi untuk mendefinisikan atribut-atribut basis data,tabel, atribut kolom ,dll.Yang termasuk dalam DDL dalah CRETE ,ALTER,DROP.
2. DML (Data Manipulation Language)
adalah kelompok perintah yang berfungsi untuk memanipulasi data dalam basis data misalnya untuk pengambilan,penyisipan ,pengubahan , dan penghapusan data. Perintah yang termasuk dala DML adalah INSERT, DELETE, UPDATE,SELECT.