PENGARUH JOIN ORDERING TERHADAP WAKTU RESPON
QUERY
Meyliani Tanjung
1)Wasino
2)Tony
3) 1) 2) 3) Sistem Informasi Universitas Tarumanagara Jalan Letjen S. Parman No. 1, Jakarta 11440 Indonesiaemail : 1) meylianitanjung@gmail.com, 2) wwasino@yahoo.com , 3)tony.b@fti.untar.ac.id
ABSTRACT
The process of retrieving data in a database is often done in an organization. In the process, sometimes we need a join query between one relation to another relation. The process of setting up of a join query is very difficult and confusing therefore, this study will present the effect of join ordering and the most optimal way to do join ordering.
The study was conducted on AdventureWorksLT Database (v2008) Samples RTM (x86) that has been given additional data using RedGate software. Comparison of the response time is measured through a join query. The results show that the best way to perform a join order is, by joining the large data with the small data first.
Key words
database, join,join ordering, response time
1. Pendahuluan
Perkembangan teknologi yang sangat cepat, menyebabkan proses adaptasi manusia terhadap perkembangan teknologi. Penggunaan basis data sebagai media penyimpanan untuk menggantikan media penyimpanan manual, semakin memudahkan manusia dalam proses pengambilan data. Dalam mengelola sebuah basis data, diperlukan sebuah Database
Management System (DBMS) seperti Microsoft Access,
Oracle, SQL Server, dan MySQL. Di dalam DBMS terdapat berbagai fungsi seperti memasukkan, mengubah, menghapus, dan memperoleh data dengan menggunakan sebuah Query Language.
Untuk memperoleh data yang diperlukan, digunakan sebuah query language yang merupakan bahasa yang digunakan dalam DBMS. Dalam proses pengambilan data, terkadang diperlukan penggabungan antara satu atau lebih tabel. Penggunaan klausa join dalam sebuah
query language, memungkinkan pengguna untuk
memperoleh data dari dua atau lebih tabel. Penggunaan klausa join sudah umum digunakan, tetapi dalam implementasinya klausa ini sulit untuk dilakukan karena rumit dan harus memperhatikan berbagai factor seperti proses join ordering, oleh karena itu pada penelitian ini
akan dibahas mengenai proses join ordering dan pengaruhnya terhadap waktu respon suatu query.
2. Dasar Teoritis
2.1 Operasi Join
Operasi join adalah sebuah operasi yang mendasar dalam aljabar relasional yang menggabungkan 2 buah relasi untuk membentuk sebuah relasi baru [1]. Menurut Harrington [3], bentuk-bentuk dari operasi join adalah: 1. Equi-join
Bentuk join ini mencari baris dengan nilai yang sama sehingga disebut sebagai equi-join (atau disebut juga
natural equi-join). Atau terkadang disebut juga
sebagai inner join. 2. Θ–Join (Theta–Join)
Sebuah theta join menggabungkan dua buah tabel pada kondisi yang sama, dimana dapat sama atau berbeda.
3. Outer Join
Outer join merupakan sebuah join yang meliputi baris
dalam tabel hasil meskipun mungkin saja tidak terdapat kesamaan antara baris dalam dua buah tabel yang sedang digabung. Ada 3 macam model outer
join, yaitu:
a. Left Outer Join
Left outer join meliputi setiap baris yang terdapat
pada tabel pertama pada operasi join. b. Right Outer Join
Right outer join merupakan kebalikan dari left outer join. Join ini meliputi semua baris pada
tabel yang berada di sebelah kanan dari operator
outer join.
c. Full Outer Join
Sebuah full outer join mencakup setiap baris pada kedua buah tabel apabila dibutuhkan. Apabila kedua tabel memiliki hubungan primary dan
foreign key maka hasilnya akan sama dengan left outer join saat primary key tabel terdapat pada
sebelah kiri operator atau right outer join dimana
primary key tabel berada pada sisi sebelah kanan
2.2 Structured Query Language (SQL)
Structured Query Language (SQL) adalah sebuah database manipulation language yang telah dipakai oleh
hampir setiap database management system (DBMS) yang ditujukan untuk beberapa pengguna, sebagian karena telah diterima oleh ANSI (American National
Standards Institute) dan ISO (International Standard Organization) sebagai bahasa query standar untuk basis
data relasional (Harrington, 2010).
SQL menggunakan istilah tabel, baris dan kolom sebagai model relasional. Perintah SQl yang paling utama dalam pendefinisian data adalah statement CREATE yang dapat digunakan untuk menciptakan skema, tabel (hubungan), dan domain (seperti views,
assertions, dan triggers).
2.3 Join Ordering
Menurut Korth [4], dalam suatu relasi n tabel dapat diperoleh sebanyak (2(n - 1))! / (n - 1)! join ordering. Berdasarkan perhitungan tersebut, maka untuk query join 3 tabel (R1 R2 R3) akan diperoleh 12 jenis join
ordering, seperti yang ditunjukkan oleh Gambar 1.
Gambar 1 Join Ordering untuk Query Join 3 Tabel
Tetapi menurut Korth terdapat suatu aturan kesetaraan (equivalence rules) yang menyatakan bahwa suatu bentuk ekspresi query dapat diganti dengan bentuk ekspresi query kedua atau sebaliknya. Salah satu dari aturan kesetaraan ini menyatakan bahwa untuk operasi
natural join berlaku sifat asosiatif yaitu: R1 (R2 R3) = (R1 R2) R3. Berdasarkan aturan tersebut, untuk suatu query join 3 tabel akan terdapat minimal 6 jenis
join order.
Faktor lain yang mempengaruhi banyaknya join order pada suatu query join adalah hubungan yang terdapat di antara tabel – tabel yang ingin digabungkan. Sebagai contoh, apabila kita ingin menghubungkan tabel SalesLT.Customer (C), SalesLT.CustomerAddress (CA) dan SalesLT.Address (A) maka hanya akan didapat 4 jenis join order. Hal ini terjadi karena tabel SalesLT.Address dan SalesLT.Customer tidak dapat diberikan operasi join tanpa adanya tabel SalesLT. CustomerAddress sebagai penghubung antara kedua tabel tersebut.
3. Metode Penelitian
Penelitian dilakukan dengan menggunakan SQL Server 2008 Enterprise Edition. Data yang digunakan dalam penelitian adalah basis data AdventureWorksLT Database (v2008) RTM Samples (x86) yang didapat dari situs www.wrox.com [6]. Basis data AdventureWorks ini memiliki format (.mdf) yang berukuran 7,188 Megabytes (MB). Basis data ini terdiri dari 12 tabel, yang memiliki hubungan antar tabel seperti yang ditunjukkan oleh Gambar 2
Pengujian dilakukan pada basis data AdventureWorks yang telah diberikan penambahan data dengan menggunakan RedGate software sebanyak 1.000.000 data. Tetapi dalam proses penambahan, tidak semua tabel dapat dilakukan penambahan sebanyak 1.000.000 data, sehingga jumlah data yang berhasil ditambahkan adalah sebagai berikut:
1. Tabel SalesLT.SalesOrderDetail tidak mengalami penambahan data.
2. Tabel SalesLT.Product mengalami penambahan 100.000 baris data.
3. Tabel ProductModel dan ProductCategory mengalami penambahan 209.300 baris data. 4. Tabel ProductModelProductDescription mengalami
penambahan 210.204 baris data.
5. Tabel Address, Customer, CustomerAddress, ProductDescription, SalesOrderHeader mengalami penambahan 1.000.000 baris data.
Penelitian menggunakan dua buah komputer sebagai bahan perbandingan waktu respon algoritma join pada spesifikasi komputer yang berbeda. Spesifikasi dari komputer 1 dapat dilihat pada tabel 1 dan spesifikasi dari komputer 2 dapat dilihat pada tabel 2.
Tabel 1 Spesifikasi Komputer I
Operating System Windows 7 Professional 32-bit Processor Intel® Core™ i5 2410M @2.30GHz Video Graphics Intel® HD Graphics 3000
RAM 2.00 GB DDR3
Hard Drives 640 GB SATA
Tabel 2 Spesifikasi Komputer II
Operating System Windows 7 Ultimate 32-bit Processor Intel® Core™ i3 CPU M380
@2.53GHz Video Graphics Intel® HD Graphics
RAM 2.00 GB DDR3
Hard Drives 500GB SATA
4. Hasil Percobaan
Pada penelitian ini, pengujian dilakukan pada 15
query yang terdiri dari query join 2 tabel, 3 tabel, 4 tabel
dan 5 tabel. Proses pengujian join ordering pada 15
query yang telah disediakan dilakukan pada dua buah
komputer. Secara ringkas, rata – rata dari hasil pengujian
join ordering pada dua buah komputer dengan hanya
memperhatikan waktu setelah proses clean buffer dapat dilihat pada Tabel 1.
Tabel 3 Ringkasan Hasil Pengujian Join Ordering pada Komputer I dan Komputer II
Query Rows
Return
Waktu Respon (dalam ms) Komputer I Komputer II 1 1013 21118.4 17562.5 2 19926.1 17373.4 3 1014 21684.5 19962.5 4 21213.7 19842.8 5 21276.6 19978.3 6 21344.9 20027.4 7 1013 27889.4 26224.0 8 27925.2 25975.1 9 27902.4 26160.8 10 27861.8 25589.0 11 27901.2 26023.2 12 27975.4 26155.9 13 112 204.5 138.0 14 185.0 114.0 15 185.9 166.1 Keterangan:
Menunjukkan hasil pengujian yang memiliki waktu respon paling optimal.
Berdasarkan hasil pengujian yang dilakukan untuk menentukan apakah join ordering mempengaruhi kinerja suatu query, maka dibuatlah beberapa grafik yang menampilkan waktu respon rata – rata dari hasil eksekusi setiap query join pada komputer I dan komputer II dalam bentuk diagram batang.
0 5000 10000 15000 20000 25000 Komputer I Komputer II Waktu (ms) Query 1 Query 2
Gambar 3 Grafik Perbandingan Waktu Respon Rata – Rata Query Join 2 Tabel pada Komputer I dan II
Gambar 3 menunjukkan hasil pengujian terhadap
query join 2 tabel pada komputer I dan komputer II.
Berdasarkan grafik yang ada, dapat disimpulkan bahwa
query 2 memiliki waktu respon yang paling optimal baik
pada komputer I dan komputer II dengan rata - rata waktu respon untuk query 2 sebesar 19.926,1 ms pada komputer I dan rata – rata waktu respon untuk query 2 sebesar 17.373,4 ms pada komputer II.
18500 19000 19500 20000 20500 21000 21500 22000 Komputer I Komputer II Waktu (ms)
Query 3 Query 4 Query 5 Query 6
Gambar 4 Grafik Perbandingan Waktu Respon Rata – Rata Query Join 3 Tabel pada Komputer I dan II
Gambar 4 menunjukkan hasil pengujian terhadap
query join 3 tabel pada komputer I dan komputer II.
Berdasarkan grafik yang ada, dapat disimpulkan bahwa
query 4 memiliki waktu respon yang paling optimal baik
pada komputer I dan komputer II dengan rata - rata waktu respon untuk query 4 sebesar 21.213,7 ms pada komputer I dan rata – rata waktu respon untuk query 4 sebesar 19.842,8 ms pada komputer II.
24000 25000 26000 27000 28000 29000 Komputer I Komputer II Waktu (ms)
Query 7 Query 8 Query 9
Query 10 Query 11 Query 12
Gambar 5 Grafik Perbandingan Waktu Respon Rata – Rata Query Join 4 Tabel pada Komputer I dan II
Gambar 5 menunjukkan hasil pengujian terhadap
query join 4 tabel pada komputer I dan komputer II.
Berdasarkan grafik yang ada, dapat disimpulkan bahwa
query 10 memiliki waktu respon yang paling optimal
baik pada komputer I dan komputer II dengan rata - rata waktu respon untuk query 10 sebesar 27.861,8 ms pada komputer I dan rata – rata waktu respon untuk query 10 sebesar 25.589 ms pada komputer II.
0 50 100 150 200 250 Komputer I Komputer II Waktu (ms)
Query 13 Query 14 Query 15
Gambar 6 Grafik Perbandingan Waktu Respon Rata – Rata Query Join 5 Tabel pada Komputer I dan II
Gambar 6 menunjukkan hasil pengujian terhadap
query join 5 tabel pada komputer I dan komputer II.
Berdasarkan grafik yang ada, dapat disimpulkan bahwa
query 14 memiliki waktu respon yang paling optimal
baik pada komputer I dan komputer II dengan rata - rata waktu respon untuk query 14 sebesar 185 ms pada komputer I dan rata – rata waktu respon untuk query 14 sebesar 114 ms pada komputer II.
5. Kesimpulan
Berdasarkan pengujian yang dilakukan, dapat ditarik kesimpulan bahwa proses join ordering dalam SQL Server, tidak hanya dipengaruhi oleh jumlah baris pada setiap tabel yang akan digabungkan tetapi pengaturan penggabungan dari tabel – tabel tersebut dapat mempengaruhi waktu respon dari query tersebut.
Berdasarkan hasil pengujian yang telah ada, maka proses join ordering yang baik dilakukan melalui tahapan sebagai berikut:
1. Menentukan tabel yang memiliki jumlah baris paling banyak dan jumlah baris paling sedikit.
2. Lakukan proses join terlebih dahulu terhadap kedua tabel tersebut agar jumlah baris yang di - scan mengalami pengurangan.
3. Hasil dari proses join tersebut digabungkan dengan tabel yang memiliki jumlah baris paling sedikit selanjutnya.
REFERENSI
[1] Connolly, Thomas M. & Carolyn E. Begg., 2010, “Database Systems: A Practical Approach to Design, Implementation, and Management 5th Ed.”, Pearson, USA. [2] Hundhausen, Richard., New, Simpler AdventureWorks
Sample Database.
blog.hundhausen.com/files/AdventureWorksLT. jpg, Tanggal akses 15 September 2012.
[4] Korth, Henry F, et.al., 2011. Database System Concepts 6th Ed., USA, McGrawHill.
[5] Red-gate.com. http://www.red-gate.com/products/sql-development/sql-data-generator/. Tanggal akses 10 September 2012.
[6] Wrox.com. www.wrox.com/WileyCDA/Section/id-322174.html . Tanggal akses 3 September 2012.
Meyliani Tanjung, mahasiswi semester VII Program Studi Sistem Informasi Fakultas Teknologi Informasi Universitas Tarumanagara, Jakarta.