[Sebelum dan Sesudah] Shutdown Database Oracle 12c


Sebelumnya laptop saya diinstal Oracle 11g Express Edition, tetapi karena saya merasa penasaran dengan Oracle 12c, saya memberanikan diri untuk beralih dari 11g ke 12c. Saya pun mendownload installernya dengan akun OTN saya, tidak tanggung-tanggung, 2.5GB ukuran installernya. Dengan memanfaatkan koneksi internet di kampus, proses downloadnya membutuhkan waktu sekitar 10 jam saja 😀

Dari beberapa opsi yang ditawarkan, saya memilih Enterprise Edition yang total ukuran file setelah instalasinya 6.8 GB (ngapain pilih yang Personal edition, nanggung, hahaha…). Proses instalasinya lumayan beda dengan 11g, dan membutuhkan waktu jauh lebih lama, sekitar 1.5 jam. Bagian terlamanya adalah saat initial configuration, sukses bikin saya dag dig dug. Alhamdulillah lancar, proses instalasi berhasil, tidak ada masalah.

Kemudian setelah beberapa kali restart komputer saya merasakan bahwa laptop saya sedikit kurang responsif ketimbang saat sebelum diinstal Oracle 12c. Kemudian saya iseng men-shutdown database Oracle 12c saya. Alhasil laptop saya kembali responsif seperti biasa. Sepertinya si Oracle 12c ini memang banyak menghabiskan resource di laptop saya, jadi saya buka task manager, saya buka tab performance, dan kemudian saya startup database Oracle 12c.

before shutdown

Wow! setelah startup maka terjadi lonjakan pengunaan resource. Utilitas CPU 22% dan penggunaan memory 3.55 GB, pantesan aja laptop saya jadi lemot. kemudian saya shutdown lagi database Oracle saya dan tampilan di task manager menjadi seperti ini:

after shutdown

Penggunaan resource nya turun drastis. Utilitas CPU 4% saja dan penggunaan memory pun hanya 1.98 GB, laptop saya pun gesit kembali 😀

Alhasil sejak saat itu, Oracle 12c di laptop saya selalu dalam keadaan shutdown, kecuali saat saya ingin menggunakannya barulah saya startup lagi 😀 Sama sekali gak ada niat untuk kembali ke 11g karena saya sangat pengen mempelajari Oracle 12c yang konon sarat fitur baru dan dioptimasi untuk cloud coumputing ini.

Jadi bagi yang masih ragu-ragu mau beralih ke 12c atau tidak, semoga tulisan saya ini bisa memberi gambaran tentang what’re you going to deal with, wakakak… Selamat belajar, semoga sukses 🙂

Iklan

Mengubah Nama Tabel dan Nama Kolom di Oracle


Saya pernah menemukan di kelas saya, seorang mahasiswa men-drop table nya dan meng-create table itu lagi dari awal hanya karena salah memberi nama tabelnya. Pernah juga seorang mahasiswa saya men-drop sebuah kolom kemudian meng-add kolom itu lagi dengan alasan yang kurang lebih sama; salah memberi nama. What a big effort.

Well, saya sih sebetulnya merasa bangga dengan kegigihan dan kreativitas mereka 😎 tapi bagaimana kalau tabel itu sudah punya banyak data? Artinya mereka selain melakukan drop dan create table, mereka juga harus insert data lagi dari awal bukan? Belum lagi constraint-constraintnya, bisa bikin pusing tujuh keliling.

Sebetulnya ada cara yang lebih efisien jika kita ingin mengubah (me-rename) nama tabel di Oracle tanpa harus membuat ulang dari awal, tanpa harus kehilangan data dan tanpa harus membuat ulang constraint-constraintnya. Gunakan saja perintah RENAME.

RENAME nama_lama TO nama_baru;

rename

Yes, it is that simple 😀 Yang paling saya suka dari perintah ini adalah semua integrity constraint yang sudah kita buat sebelumnya akan tetap terjaga. Tidak perlu membuat ulang foreign key dan kawan-kawannya 😎 Perlu diingat bahwa perintah RENAME ini tidak bisa di-rollback.

Adapun untuk mengubah nama kolom caranya agak sedikit lebih panjang yaitu dengan menggunakan perintah ALTER TABLE dan klausa RENAME COLUMN

ALTER TABLE nama_tabel
RENAME COLUMN nama_lama TO nama_baru;

rename column

Sama halnya dengan perintah RENAME, perintah ALTER TABLE RENAME COLUMN ini juga tidak akan mempengaruhi data yang sudah ada, tidak mengubah tipe data dan tidak akan mengganggu constraint-constraint yang sudah ditetapkan sebelumnya 😎 Hanya saja perlu diperhatikan bahwa klausa RENAME COLUMN ini tidak bisa digunakan bersama klausa lain dan hanya bisa digunakan untuk mengubah nama 1 kolom saja. Well, dengan sedikit modifikasi sebetulnya kita bisa juga sih mengubah nama beberapa kolom sekaligus dengan satu perintah ALTER TABLE. Caranya yaitu dengan menggunakan substitution variable.

ALTER TABLE nama_tabel
RENAME COLUMN &nama_kolom_lama TO &nama_kolom_baru;

Hasilnya nanti akan seperti ini:

multi-column rename

Mudah bukan? Selamat mempraktekkan dan semoga bermanfaat 🙂

Tiga Alternatif Multiple Insert pada Oracle


Misalkan kita memiliki sebuah tabel Mata_Kuliah di Oracle dengan struktur seperti berikut:

desc mk

Bagi yang sudah terbiasa dengan MySQL, jika ingin meng-insert beberapa baris data sekaligus pada MySQL maka dapat dengan mudah menggunakan tanda koma sebagai pemisah antar record seperti contoh berikut ini:

insert into Mata_Kuliah values
('MI1133', 'Perancangan Basis Data', 3),
('MI3322', 'Migrasi Data', 2),
('TK1064', 'Basis Data', 3);

Sayangnya untuk melakukan multiple insert (menginsert beberapa baris data sekaligus) di Oracle kita tidak bisa menggunakan tanda koma seperti contoh MySQL di atas. Kalaupun kita mencoba melakukannya di Oracle maka kita akan mendapatkan peran error “command not properly ended” seperti yang ditampilkan pada gambar berikut:

command not properly ended

Sebetulnya ada beberapa alternatif cara untuk meng-insert beberapa barus data di Oracle, yaitu sebagai berikut:

  1. Menggunakan Table DUAL dan Klausa UNION
    Sebetulnya kita memanfaatkan fakta bahwa Oracle bisa melakukan insert data dari hasil sebuah query dan hasil dari beberapa query bisa digabungkan dengan klausa UNION.

    insert into Mata_Kuliah(
    select 'MI1133', 'Perancangan Basis Data', 3 FROM DUAL
    UNION
    select 'MI3322', 'Migrasi Data', 2 FROM DUAL
    UNION
    select 'TK1064', 'Basis Data', 3 FROM DUAL
    );
    

    dan berikut ini adalah screenshot hasilnya, berhasil meng-insert 3 baris data dengan 1 perintah insert:
    insert dengan dual dan union

  2. Menggunakan Statement INSERT ALL
    Perintah INSERT ALL sebetulnya adalah perintah Multi-Table insert, artinya bisa meng-insert beberapa baris data ke beberapa tabel YANG BERBEDA sekaligus. Namun teknik ini juga bisa digunakan untuk meng-insert beberapa baris data ke SATU TABEL sekaligus.

    insert all
    INTO Mata_Kuliah VALUES ('MI1133', 'Perancangan Basis Data', 3)
    INTO Mata_Kuliah VALUES ('MI3322', 'Migrasi Data', 2)
    INTO Mata_Kuliah VALUES ('TK1064', 'Basis Data', 3)
    Select 1 from DUAL;
    

    Berikut saya tampilkan screenshotnya, berhasil meng-insert tiga baris data sekaligus dengan satu perintah insert
    insert dengan insert all dan select dual

  3. Menggunakan Substitution Variable
    Nah, kalau yang ini adalah teknik yang paling mudah dan paling sederhana, yaitu kita menggunakan substitution variable. Oracle akan meminta input untuk setiap values dalam perintah insert yang diawali dengan ampersand alias tanda tanya (&). Jadi kita tinggal menempelkan ampersand di awal tiap values yang ada di perintah insert.
    Yang perlu diingat adalah jika tipe data kolom yang akan diisi values tersebut bukan numerik maka kita perlu mengapit values tersebut dengan tanda kutip (single quote). Setelah itu kita ulangi terus perintah tersebut dengan tanda slash (/) dan menginputkan setiap values yang diminta

    insert into Mata_Kuliah values ('&KodeMK', '&NamaMK', &SKS);
    

    Berikut adalah screenshotnya:
    insert dengan substitution variable

Sebetulnya masih ada cara lain yaitu dengan menggunakan Oracle SQL Loader tapi cara itu relatif lebih rumit karena banyak parameter yang harus dimasukkan, jadi mungkin akan saya bahas di posting yang terpisah.

Demikian, semoga bermanfaat 🙂

Copy Table vs Migrate Database


Misalkan kita memiliki sebuah database di MySQL yang ingin kita pindahkan ke Oracle maka dengan menggunakan tool Oracle SQLDeveloper, kita dapat menggunakan fitur Copy Table atau fitur Migrate Database. Masing-masing fitur memiliki kelebihan dan kekurangannya. Oleh karena itu pemilihan fitur yang digunakan harus disesuaikan dengan kebutuhan.

Copy Table adalah fitur di SQL Developer untuk menyalin sebuah tabel pada database MySQL ke database Oracle. untuk melakukan Copy Table cukup dengan membuat koneksi ke MySQL dengan menggunakan Oracle SQL Developer, kemudian klik kanan pada tabel yang akan dicopy, lalu pilih “Copy Table”

Ada beberapa hal yang perlu dikonfigurasi pada fitur Copy Table: Baca lebih lanjut

Error yang Umum Saat Logon ke Oracle


Sudah bukan sekali ini saya dibuat gemas oleh mahasiswa di kelas saya yang hobinya menginstal ulang Oracle. Kadang saat saya sedang menerangkan di kelas, beberapa mahasiswa malah sibuk menginstal ulang Oraclenya. Usut punya usut ternyata mereka mengalami kesulitan saat akan logon ke Oracle dan karena malas mencari tau penyebabnya, maka mereka mengambil jalan pintas: instal ulang. Wow!

Jika kita menemukan kesulitan atau eror saat logon ke Oracle, jangan buru-buru mengambil kesimpulan bahwa Oracle nya sudah tidak bisa dipakai lagi lalu memutuskan untuk menginstal ulang Oracle. Tidak semua eror di Oracle harus ditangani dengan cara instal ulang, malah kebanyakan eror saat logon penyebabnya cukup sederhana dan dapat ditangani dengan mudah. Jangan panik, cobalah perhatikan baik-baik pesan eror yang muncul, pahami maksudnya, cari tau penyebabnya lalu ambil tindakan sesuai dengan penyebabnya.

Berikut ini adalah beberapa pesan eror yang cukup sering saya temui di kelas yang sebetulnya cukup mudah ditangani tanpa harus menginstal ulang Oracle: Baca lebih lanjut

Mengakses Database MySQL dengan Menggunakan Oracle SQLDeveloper


Oracle SQLDeveloper adalah salah satu tool yang sangat sering saya gunakan sebagai substitusi Toad yang belakangan sudah mulai saya tinggalkan karena sudah mulai susah nyari versi gratisnya 😛 Biasanya saya menggunakan SQLDeveloper untuk coding PL/SQL, ngolah data atau sekedar browsing isi schema dengan lebih detail (klo lagi males pake SQLPlus, hihihi…). Tool ini juga  saya ajarkan ke mahasiswa saya di kuliah Migrasi Data karena menurut saya tool ini cukup mudah digunakan, tidak perlu instalasi yang ribet dan tentu saja yang paling penting adalah GRATIS 😆

Secara default saat menginstal Oracle SQLDeveloper, kita hanya bisa membuat koneksi ke database Oracle atau Microsoft Access. Perhatikan form untuk membuat koneksi ke database berikut ini:

Perhatikan bahwa fitur untuk koneksi ke MySQL belum tersedia. Untuk menambahkan fitur agar Oracle SQLDeveloper dapat melakukan koneksi ke database MySQL kita dapat menggunakan MySQL JDBC Connector. Adapun langkah-langkah nya adalah sebagai berikut: Baca lebih lanjut

Manfaat dan Cara Menggunakan Perintah Explain Plan


Perintah explain plan pada Oracle SQLPlus adalah perintah yang sangat berguna dalam proses optimasi query. Explain plan berguna untuk:

  1. Memperkirakan “biaya” query (query cost), baik dari sisi kebutuhan memory (dalam satuan bytes) maupun kebutuhan tenaga komputasi (dalam satuan I/O Unit dan persentase penggunaan CPU)
  2. Menampilkan urutan langkah Oracle dalam memproses sebuah query
  3. Memperkirakan waktu yang dibutuhkan untuk mengeksekusi sebuah query

Cara menggunakan perintah explain plan cukup mudah, yaitu dengan menambahkan klausa EXPLAIN PLAN FOR di awal query

Contohnya

Setelah itu, untuk melihat plan table hasil dari perintah explain plan dapat digunakan perintah berikut ini

 Select * from table(dbms_xplan.display); 

Perhatikan plan table yang dihasilkan pada screenshot berikut ini:

Cara membaca plan table dapat dilihat pada Baca lebih lanjut