Sabtu, 19 Juni 2010

Memasukkan Ratusan Ribu Data dalam Waktu Singkat

Beberapa waktu yang lalu,saat mengerjakan TA,aku pusing gara-gara mikirin harus masukin ribuan data dami (data contoh) ke database. aku coba-coba mulai dengan :

insert into pegawai values ('PJ001','YOGIEK KURNIAWAN','12-march-1988','Solo','Laki-Laki','Sukabirus A3','EmailPJ001@factory.com','085640661444','12-may-2000','LJ001','10000000','Bank Mandiri','1230007121-001','Belum Menikah');

Aje gile aja,yak! 1 data dah kaya gitu. gimana mau masukin puluhan ribu data.
akhirnya,otak licikku mulai mencari-cari Celah agar ga se-ribet itu.
Toh,cuman data contoh doank..

dan,dapatlah aku beberapa cara untuk memasukkan data contoh yang puluhan ribu data itu dalam waktu yang sangat singkat.

cara pertama : pake clementaine.
cara ini lumayan ribet,sih. jadi,buat datanya di excel.tinggal click dan drag,habis itu di-konversi ke .txt lewat clementaine itu.
tinggal copy paste dah ke lembar kerja SQL-nya.
INI RIBET!!!

cara kedua : import data.
cara ini tetep aja susah. harus bikin data di excel terus di-import ke database-nya.

cara ketiga : pake subquery.
Nah,cara ini yang saya anjurkan.
jadi,semisal kita buat table seperti ini :
create table coba(
id varchar2(10),
nama varchar2(25),
pekerjaan varchar2(35),
constraint pk_coba primary key(id)
);
Berhubung ada primary key yang tidak boleh sama,maka kita harus membuat Sequence dan Trigger untuk men-generate id terlebih dahulu.
kira-kira code-nya seperti ini :
create sequence add_coba
increment by 1
start with 101
maxvalue 999999
nocycle
nocache
order;

create or replace trigger bef_ins_coba
before insert on coba
for each row
begin
if(:new.id is null)then
select concat('C-',add_coba.nextval) into :new.id
from dual;
end if;
end;
/
Nah,kita coba insert 1 buah data :
insert into coba values ('','Yogiek','Mahasiswa');



setelah melakukan insert 1 buah data tersebut,tinggal melakukan subquery sebagai berikut :
insert into coba select null,nama,pekerjaan from coba;

Code seperti itu akan melakukan duplikasi dari isi data di table coba.
karena code tersebut akan memasukkan ke table coba dengan isi dari tabel coba sendiri.
Woooww,,
so simple.

tinggal masukkan code kaya gitu berulang kali,dan didapatlah data sampai ratusan ribu hanya dalam waktu kurang dari 5 menit..
^.^

Ini contohnya,saya mampu membuat 262.144 data dengan menduplikasi code tersebut sebanyak 18 kali.


Itu jika hanya ada 1 data.
jika ingin lebih bervariasi,tinggal masukkan 100-an data,dan duplikasi-kanlah.
sangat cepat,dan data dummy siap dipakai..

Selamat Mencoba..
^o^

5 komentar:

Anonimmengatakan...

lah,,cman id nya donk yg beda??

Yogiek Indra Kurniawan mengatakan...

Lah,namanya juga data contoh.
ini semisal untuk database yang ngitung performansi query atau penggunaan storage dengan data yang banyak,tapi males untuk insert-in datanya..

kalo untuk TA yang berkaitan dengan data mining,cara kaya gini,mah kaga bisa dipake!
harus minta data asli,lah..

suri mengatakan...

ini hanya bisa data dummy seperti di atas,ya??

Yogiek Indra Kurniawan mengatakan...

maksud pertanyaannya bagaimana,ya?
kurang ngerti..
:)

Dimas Achmad mengatakan...

mau nanya gan, itu perintah sequence nya kok error?

Posting Komentar