Tempat curhatnya anak-anak BASDAT


[Nitia] Pemrosesan Query pada Oracle 10g
Desember 13, 2007, 4:12 pm
Diarsipkan di bawah: Asistensi, Uncategorized

Query yang diberikan oleh user pada DBMS Oracle secara umum mengalami beberapa Proses. Pemrosesan query yang ada pada DBMS Oracle 10g tidak jauh berbeda dengan yang ada pada DBMS Oracle 9i.

Komponen Arsitektur Pemrosesan Query terdiri dari 4 bagian utama :

  1. Parser

Parser melakukan pemeriksaan terhadap kebenaran sintaks SQL yang telah diberikan okeh user. Serta memeriksa ebenaran semantik, yaitu objek basis data yang diberikan user benar.

  1. Optimizer

Optimizer merupakan unit yang melakukan optimasi query menggunakan aturan tertentu untuk menentukan cara yang paling efisien untuk mendapatkan hasil query. Output optimizer merupakan sebuah rencana/plan yang menggambarkan metode eksekusi yang optimal. Oracle menyediakan dua metode optimisasi: CBO (CostBased Optimizer) dan RBO (Rule Based Optimizer). Dan pada umumnya, Oracle menggunakan pendekatan cost untuk menghasilkan rencana yang tepat.

Berikut fitur-fitur yang menggunakan CBO:

- Partition tables and indexes

- Index-organized tables

- Reverse key indexes

- Function-based indexes

- SAMPLE clauses in a SELECT statement

- Parallel query and parallel DML

- Star tranformations and star joins

- Extensible optimizer

- Query rewrite with materialized views

- Enterprise Manager progress meter

- Hash joins

Cost-Based Optimizer (CBO) menentukan execution plan yang paling efisien dengan mempertimbangkan access path yang tersedia dan faktor informasi berdasarkan statistik skema objects (tabel ataupun index) yang diakses melalui suatu SQL statement.

CBO melakukan langkah-langkah optimasi sebagai berikut:

1. Optimizer menggenerate beberapa langkah plan yang potensial untuk memproses suatu SQL statement berdasarkan ketersediaan akses paths dan hints

2. Optimizer melakukan estimasi biaya dari setiap plan berdasarkan statistik pada data dictionary untuk distribusi data dan karakteristik penyimpanan tabel, index, dan partisi yang diakses oleh statement.

3. Optimizer membandingkan seluruh biaya dari plan dan kemudian memilih salah satu yang memiliki biaya yang paling rendah.

Tujuan dari CBO adalah throughout yang terbaik, sesedikit mungkin menggunakan resource untuk memproses semua baris yang diakses oleh statement SQL. Arsitektur dari CBO dapat digambarkan sebagai berikut.

Input dari query transformer adalah parsed query. Query transformer akan mempertimbangkan perubahan bentuk query untuk menentukan query plan yang lebih baik.

Ada empat transformasi query yang digunakan oleh query transformer yaitu view merging, predicate pushing, subquery unnesting, dan query rewrite using materialized views. Keempat transformasi tersebut juga bisa dikombinasikan. Estimator menghasilkan tiga tipe pengukuran yang berbeda yaitu selectivity, cardinality, dan cost. Selectivity merepresentasikan fraksi baris dari set baris bernilai antara 0,0 dan 1,0. Selectivity mengindikasikan berapa banyak baris dari set baris akan melalui test predikat. Cardinality merepresentasikan jumlah baris dalam set baris. Ada beberapa tipe tipe cardinality : effective, join, distinct, dan group cardinality. Cost merepresentasikan unit yang bekerja atau resource yang digunakan untuk melakukan operasi. CBO menggunakan disk I/O, CPU usage, dan memory usage sebagai unit kerja. Operasi dapat berupa scanning tabel, mengakses baris dari tabel menggunakan indeks, melakukan join dua tabel atau sorting tabel.

Pada Oracle 9i optimizer terdapat beberapa fitur ataupun teknik optimalisasi. Teknik tersebut diantaranya :

a. Dynamic Sampling

Pada invokasi pertama kursor mengandung variabel yang diikat, lalu optimizer akan melihat nilai yang diikat tersebut dan menggunakannya untuk mengoptimasi query. Nilai yang diikat pada invokasi oertama harus nilai yang representatif.

b. Bind Peeking

Permasalahan yang muncul ketika menggunakan dynamic sampling adalah statistik optimizer mungkin hilang atau tidak akurat. Untuk itu, statistik harus secara dinamik diikat selama optimasi query. Sebagai contoh :

- Predikat tabel selektif dan berkardinalitas

- Sampling digunakan untuk meminimalisir waktu yang dibutuhkan mengumpulkan statistik.

- Statistik dikumpulkan hanya untuk query yang tidak diakses dalam waktu yang lama.

c. Index Joins

Untuk Oracle 10g terdapat tambahan fitur yaitu Automatic SQL Tuning. Automatic SQL Tuning merupakan fitur otomatis yang dimilki oleh oracle yang biasanya digunakan dalam menganalisa query yang sangat mahal, menentukan kardinalitas dari hasil sementara, dan menghasilkan koreksi terhadap query yang dieksekusi selanjutnya.



[Hendro-13505103] Tema posting
Desember 10, 2007, 11:29 am
Diarsipkan di bawah: Asistensi

Posting lg yuk

stlh dibicarakan dengan ogi, maka sepertinya tema postingan kita bakal dipindahin ke oracle biar smuanya sama2 dapat ilmu

soalnya kalo SBD kan 2004 da dpt. jd kurang seru

jadi sebagai permulaan, tema postingan kita minggu ini adalah

Oracle secara umum

posting ya

usahain jgn deadline. hehheheheh….

oh iya keknya tar bakal ada kelanjutan diadakan workshop yg akan menhadirkan kak Ivan. Ya smoga jd la. Jd posting bnr2 ya

PEACE ^o^



[Hendro-13505103] Aturan Posting
November 30, 2007, 12:14 pm
Diarsipkan di bawah: Asistensi

Judul : [Nama-NIM] Judul

Perhatikan kategori yang ada di sebelah kanan pada saat memposting. Sesuaikan kategorinya dengan kategori yang ada. Jika ingin menambah kategori baru, pilih link Kelola >> Kategori, kemudian Anda dapat menambah kategori baru.

Posting trus yak, biar rame blognya

hehhehehhe

sebenarnya sik aku pengen sering2 posting, tapi ga ada AI3 ni

hehheheheh….



Akhirnya praktikum IF1081 Algoritma Pemrograman berakhir….. (hix hix)
Mei 9, 2007, 2:15 am
Diarsipkan di bawah: Asistensi

Akhirnya……….. Yosh!

Setelah 10 pekan praktikum yang melelahkan (ceileee…. :p), akhirnya pertemuan dengan anak-anak PN 2005 (beberapa 2004 sampe ada 2002) berakhir (tinggal nunggu gaji deh :p, horeeee).. Banyak suka n duka yang udah dilewati bersama.. Mulai dari kesulitan nentuin jadwal praktikum (sana bentok, sini bentrok T.T) yang akhirnya praktikumnya dipecah -> jadi harus bangun pagi T.T -> trus ada soal yang salah gara-gara lom dicoba sebelomnya T.T -> kadang2 komputer lab bermasala -> update AVG rutin tiap jam 8 (bikin lemot) -> akhirnya ngasi penilaian (walopun kadang2 kejem ^.^)..

Kesan pertama sih, anaknya lucu-lucu (hueekkk :p) trus variatip, ada yang udah mahir paskal sampe ada yang kayak baru pertama kali megang komputer; ada yang logikanya cepet, ada yang logikanya agak2 (*sensored* :p); ada yang rajin nanya (asisten udah kayak kakak sendiri *terharu*), ada juga yang seperti takut sama asisten (padahal asistennya udah suntik jinak koq :p); ada yang kurang antusias sama praktikum, ada yang acuh tak acuh (sedihnya hatiku); ada yang ganteng, ada juga yang cantik ^^.. Paling asik liat ekspresi anak2 pas akhir pengumpulan, panik-panik ga jelas :D ..

Bagian pahitnya sekarang (hix hix).. Minta persetujuan bunda Christine buat soalnya itu susah banget trus kayaknya si bunda cuma ngeliatin kata2nya kurang melihat algoritma nya, jadi aja masi ada soal yang ga bisa diimplementasiin.. Trus kadang-kadang suka kurang suka sama anak-anak yang kurang mau berpikir n suka jalan pintas (nyontek red.) trus buktinya keliatan jelas sih di file kalian, so jangan salain kami ya (piss yo -_-’ V).. Trus meriksa praktikum kalian itu setengah mati banyaknya T_T walopun kadang2 seneng juga ngasi nilai 0 ke yang gagal compile :p.. Trus ngeliat jumlah anak2 yang makin lama makin dikit (rabu pagi), jadi bingung, kalian kemana ?? Kangen ………..

Akhir kata, sori kalo selama praktikum ada sesuatu yang menyakiti hati anak2 PN, ga ada yang disengaja koq, trus sori juga kalo soalnya kadang2 terlalu susa, trus lagi makasih ya udah jadi ‘korban’ asistensi pertama kami :D .. Thanx “kenangan yang terindah”..

Semoga UAS kalian sukses yak…….!!!!!!!!!!!!

Semoga semuanya dapet A (mungkin ga ya?? hmm.. ga ah :p)

Luv u all…

Asisten Basis Data 2004 :

Ratih Amelia, Dyah Saptanti P., Abigael Angela P., Nitia Rahmi, Rudianto, Syaugi

Pesan ini diedit oleh : Rudi..