Selasa, 08 Januari 2013

OPTIMASI QUERY

Lagi-lagi kita akan membahas masalah tentang query namun pada kesempatan kali ini kita akan lebih mendalam materi tentang OPTIMASI QUERY.

 
Optimasi pada perintah SQL

         Index pada database digunakan untuk meningkatkan kecepatan akses data. Pada saat query dijalankan, index mencari data dan menentukan nilai ROWID yang membantu menemukan lokasi data secara fisik di disk. Akan tetapi penggunaan index yang tidak tepat, tidak akan meningkatkan unjuk kerja dalam hal ini kecepatan akses data.

        Misal digunakan index yang melibatkan tiga buah kolom yang mengurutkan kolom menurut kota, propinsi dan kode pos dari tabel karyawan, sebagai berikut :

CREATE INDEX Idx_kota_prop_kodepos
ON karyawan(kota, propinsi,kode_pos)
TABLESPACE INDX ;
 

         Kemudian user melakukan query sebagai berikut :
SELECT*FROM karyawan WHERE propinsi="jawa tengah";

        Pada saat melakukan query ini, index tidak akan digunakan karena kolom pertama (kota) tidak digunakan dalam klausa WHERE. Jika user sering melakukan query ini, maka kolom index harus diurutkan menurut propinsi. Selain itu, proses pencarian data akan lebih cepat jika data terletak pada block tabel yang berdekatan daripada harus mencari di beberapa datafile yang terletak pada block yang berbeda.
Misal pada perintah SQL berikut ini :

SELECT * FROM mahasiswa
WHERE id BETWEEN 1010 AND 2010

Query ini akan melakukan “scan” terhadap sedikit data block jika tabel karyawan diatas diurutkan berdasarkan kolom id. Untuk mengurutkan berdasarkan kolom yang berbeda-beda maka tabel disimpan dalam flat file, kemudian tabel diekspor dan diurutkan sesuai kebutuhan.

QUERY LANJUTAN

Pada bab ini kita akan lebih membahas masalah query lanjutan dari postingan sebelumnya.


SUBQUERY 
statement SELECT yang dilampirkan sebagai klausa dalam SQL. Istilahnya itu ‘query dalam query’ atau disebut juga ‘nested query’. Subquery juga biasa dikatakan dengan unknown kondisi, yaitu suatu kondisi dimana kondisi tersebut belum diketahui.

Subquery dapat diisikan didalam suatu query dengan statement: • SELECT
• SELECT … INTO
• INSERT …  INTO
• DELETE
• UPDATE
 
 
Ada 2 macam Subquery, yaitu :
a    Single Row Subquery : merupakan subquery yang mengembalikan nilai hanya satu baris saja. 
      Multiple Row Singular : merupakan subquery yang mengembalikan nilai lebih dari 2 baris.
c.   Multiple column : merupakan subquery yang mengembalikan nilai pada kolom

 
Syntax(cara penulisan) subquery :
 
SELECT select_list;
FROM table
WHERE expr operator
(SELECT select_list FROM table);
 
 
3 (tiga) variasi akan penggunaan Subquery :

Variasi Subquery 1  Sintaknya: Comparison [ANY | SOME | ALL] (SQLStatement)

Contoh :
SELECT Title, Price
FROM BOOKS
WHERE Price > (SELECT Max(Price) FROM BOOKS2);
 

Variasi Subquery 2  Sintaknya: Expression [NOT] IN (SQLStatement) 

Contoh:
SELECT Title
FROM BOOKS
WHERE Title NOT IN (SELECT Title FROM BOOKS2);

Variasi Subquery 3  Sintaknya: [NOT] EXISTS (SQLStatement)


Contoh:
SELECT PubName
FROM PUBLISHERS
WHERE NOT EXISTS
(SELECT * FROM BOOKS WHERE BOOKS.PubID =
PUBLISHERS.PubID);

Struktured Query Language (SQL)

Pada BAB ini kita coba membahas tentang apa yang dinamakan dengan Struktured Query Language(SQL). Apa sebenarnya SQL dan bagaimana cara kerja singkatnya mari kita bahas bersama.

Struktured Query Language(SQL)
        Merupakan suatu bahasa  (language) yang digunakan untuk mengakses database. SQL dikenalkan pertama kali oleh IBM pada tahun 1970 dan sebuah standar ISO dan ANSII di tetapkan untuk SQL.

       Terdapat 2 (dua) jenis perintah SQL, yaitu :
1. DDL atau Data Definition Language
    DDL merupakan perintah SQL yang berhubungan dengan pendefinisian suatu strukur database,    dalam hal ini database dan table. beberapa perintah dasar yang termasuk DDL ini antara lain :
a. CREATE  : Menciptakan atau membuat ataupun database
b. ALTER : Merubah struktur table
c. RENAME : Mengubah nama sebuah nama tabel, kolom atau index
d. DROP : Menghapus database, table, index dan view.

2. DML atau Data Manipulation Language
    DML merupakan perintah SQL yang berhubungan dengan manipulasi atau pengolahan data atau record dalam table. perintah SQL yang termasuk dalam DML antara lain :
a. SELECT : Untuk menampilkan data
b. INSERT : Menambah data dalam table
c. UPDATE : Memodifikasi data dalam table
d. DELETE : Menghapus baris pada table

Membuat, Menampilkan, Membuka dan Menghapus Database
1. Membuat database
    sintaks umum SQL untuk membuat suatu database adalah sebagai berikut :
CREATE DATABASE [IF NOT EXISTS]  nama _database;

2. Melihat database yang telah di buat :
SHOW DATABASE;

3. Menghapus isi tabel
DELETE from sbd where name="fendi";