Rabu, 08 Januari 2014

Pengganti Left and Right Join Pada Oracle dan Syntax Union dan Union All

Hai...Thanks for read my blog..gua rasa biar nggak BETE gua buat lebih singkat, padat dan Jelas karena kita generasi nggak banyak baca sedikit ngerti tapi sedikit baca banyak ngertinya:

1. Left dan Right Join Syntax di Oracle Bisa di ganti dengan tanda (+).

Left Join:: Apabila ingin menampilkan semua data di tabel kiri yang memiliki atau tidak memiliki pasangan. Penentuan Left Outer Joinmaka tanda (+) diletakkan disisi kanan tanda pembanding.
Right Join :: Apabila ingin menampilkan semua data di tabel kanan yang memiliki atau tidak memiliki pasangan. Penentuan Right Outer Joinmaka tanda (+) diletakkan disisi kiri tanda pembanding.

Tanda (+) pada oracle adalah right atau left join...tergantung dari penempatan
!!! Ingat untuk right dan left join selalu table yang paling banyak record mengikuti yang sedikit record.
Example :
Case 1 Right Join ::
t_A.Emp_id (+) = t_B.Emp_id
Case 2 Left Join ::
t_A.Emp_id = t_B.Emp_id(+)

Bonus ::
tanda | | di oracle itu sama dengan ++ kalo untuk di sql server  ||''|| tanda petik dalam Pipe itu memberi spasi dalam gabungan.
Kapan sih bisa di gunain tanda | | pada oracle??
Mungkin kamu pernah membuat suatu design table ex: T_data
field nya adalah : nama_depan , nama_tengah, nama_belakang
Nah kalo kamu mau menampilkan full_name kamu nggak perlu membuat 1 field table untuk itu karena hanya membuang Space dari Memori Server atau Laptop Kamu.....
Kita akan menggabungkan ke 3 field tersebut sehingga menjadi nama panjang atau full name ::
Select  nama_depan |''| nama_tengah |''| nama_belakang as full_name from T_data  <--- Oracle
Kalo Sql Server
Select  nama_depan + + nama_tengah  + + nama_belakang as full_name from T_data <---Sql Server
** Untuk Sql Server beri Spasi di antara tanda +


2.Union Dan Union All

Union :: menggabungkan isi dari 2 (dua) tabel atau lebih dan nilai yang sama hanya akan di ambil 1 sample aja.
Union All :: menggabungkan keseluruhan data walaupun data tersebut mempunyai nilai yang sama
!! field table yang di cari harus lah sama...
contoh::
t_A.A1 = {‘1001’, ‘1002’, ‘1003’, ‘1004’, ‘1005’}
t_B.B1 = {‘1002’,’1005’,’1006’,’1007’}
Union : (SELECT * FROM t_A)as t_a UNION (SELECT * FROM t_B) as t_b | hasil {‘1001’, ‘1002’, ‘1003’, ‘1004’, ‘1005’, ’1006’,’1007’}
Union All :: (SELECT * FROM t_A)as t_a UNION All (SELECT * FROM t_B) as t_b | hasil  {‘1001’, ‘1002’, ‘1003’, ‘1004’, ‘1005’, ‘1002’,’1005’,’1006’,’1007’}



TerimaKasih,
Sutan Muhammad Awalludin Koto.

Rabu, 01 Januari 2014

Trik And Tips Syntax in Oracle And SQL Server

Hai...Teman-Teman...
TerimaKasih saya ucapkan, telah mampir di blog saya...saya disini akan membagikan berberapa tips bagaimana sih mengoptimize query yang dalam execute nya terlalu lama :

1.Misalkan dalam satu table Ex : Table A memiliki 10000(record) dan Table B memiliki 150000(record),
Struktur Table A :
Emp_Id, Emp_name, Emp_add, Emp_phone
Struktur Table B :
Emp_id, E_Knowled, E_Skill, E_Sallary, E_Experience

2.Pada Case Ini Kita hanya mengeluarkan Nama, alamat, pengalaman. Kebanyakan orang awam selalu menggunakan cara yang salah sehingga membuat query terexecute terlalu lama...

Tips dan Trik :
1. Jangan gunakan select on select karena merupakan joinan table yang memiliki record yang banyak dan untuk joinan yang banyak jangan pernah gunain subquery kecuali Untuk one field dan juga select mini atau kecil... tanya kenapa??
baik.. saya akan ilustrasiin ::

Select T_A.Emp_name,T_A.Emp_add,T_B.E_Experience
From T_A, T_B
Where T_B.E_Experience = (select * from T_B where E_Experience (experesi))
And T_A.Emp_Id = T_B.Emp_Id


sebenar nya query di atas di larang karena kita melakukan execute berulang...setelah kita mengexecute query besar kita juga mengexecute masing" query besar, kalau mau menggunakan hal tersebut bisa saja tetapi alangkah lebih baik query sub hanya mengambil field" tertentu, Contoh :

Select T_A.Emp_name,T_A.Emp_add,T_B.E_Experience
From T_A, T_B
Where T_B.E_Experience = (select E_Experience from T_B where E_Experience = "1 Tahun")
And T_A.Emp_Id = T_B.Emp_Id


jadi dalam sub query juga executenya jauh lebih ringan.

2. Trik dalam query :

1- Hindari Select * from Name_Table
2- Ambil Field Table yang hanya di perlukan saja.
3- Pastikan Joinan Table Memiliki Field Yang sama.
4- Gunakan Sedikit Kodisi OR.
5- Hindari Select On Select atau SubQuery
6- Perhatikan Proses Server dalam Log.
7- Gunakan Query yang irit (Union,Trigger),Tidak disarankan Query" kecil dalam execute secara bersamaan.

Total Tayangan Halaman