Anda di halaman 1dari 5

Jurnal Ilmu Komputer dan Sistem Informasi

PERBANDINGAN OPTIMASI QUERY


DENGAN VIEW DAN INDEXED VIEW
Kristina 1) Wasino 2) Tony 3)
1) 2)
Program Studi Sistem Informasi Universitas Tarumanagara
Jl. Letjen S. Parman No. 1, Jakarta 11440 Indonesia
3)
email : 1) tin_xtina@yahoo.com , 2) wwasino@yahoo.com, tony.b@fti.untar.ac.id

ABSTRACT View dapat menjadi alat yang efektif untuk


Processing of complex queries involving join mempercepat dan menyederhanakan query kompleks.
operation on large database will require long response Bahkan, menggunakan view untuk beberapa tujuan
time, particularly if the query returns large amounts of penggunaan dapat membantu mengoptimalkan query.
data. Therefore, it is necessary to do query optimization. Namun, menggunakan view yang mengembalikan hasil
View can be an effective tool to simplify a complex dalam jumlah besar dan melibatkan operasi kompleks
query. However, using view which returns large result dapat memberikan kinerja yang buruk. Oleh karena itu,
sets can lead to bad performance. SQL Server has the penggunaan view untuk proses yang lebih mengutamakan
ability to make a special kind of view called indexed pada kinerja tidaklah efisien, namun berbeda apabila
view. Indexed view or also known as materialized view is menggunakan materialized view (MV) [11].
a view that has a unique clustered index. When unique Penggunaan MV untuk mempercepat pemrosesan
clustered index created on the view, the view results will query merupakan ide yang telah ada sejak lama [8].
be stored in the database. Query performance can be Konsep MV pertama kali diperkenalkan pada Oracle
improved significantly by creating an indexed view Database 8i. Microsoft telah mendukung fitur ini pada
which involves a complex process with a large amounts SQL Server 2000. Pada SQL Server, MV disebut dengan
of data, such as aggregation and join. indexed view karena MV dapat di-index dengan berbagai
The research aims to prove performance benefits cara [4]. View dimaterialisasi dengan menciptakan
resulting from query optimization using indexed view. unique clustered index pada view.
The experiments were conducted by testing and MV sangatlah bermanfaat dalam meningkatkan
measuring response time for three types of query then kinerja query [7]. MV dapat memberikan peningkatan
compare the results. Queries that will be compared are waktu pemrosesan query yang signifikan, terutama untuk
query with view and query with indexed view. agregasi terhadap tabel dalam jumlah besar. Oleh karena
Experimental results proved that indexed view perform itu, pada penelitian ini akan dibahas pengoptimasian
very well by improving response time when processing query dengan menggunakan indexed view sebagai upaya
the query as compared to views. untuk meningkatkan kinerja dan waktu respon query
terhadap basis data yang berskala besar. Dalam
Key words penelitian ini dilakukan sejumlah pengujian dengan
Query optimization, indexed view, materialized view membandingkan waktu respon query yang
mereferensikan langsung pada view dan indexed view,
untuk mengetahui seberapa besar manfaat kinerja yang
1. Pendahuluan dihasilkan query dengan menggunakan indexed view.

Dalam basis data relasional sering dilakukan


pengaksesan data terhadap beberapa tabel sekaligus. 2. Kajian Pustaka
Proses pengaksesan dan pengolahan data yang berskala
besar serta melibatkan banyak operasi join akan
membutuhkan waktu yang cukup lama sehingga 2.1 Optimasi Query
menyebabkan kinerja menjadi tidak efektif dan efisien.
Optimasi query memberikan pemecahan untuk Suatu aktivitas dalam memilih strategi eksekusi yang
menangani masalah tersebut dengan cara efisien untuk memproses query disebut sebagai Optimasi
menggabungkan sejumlah besar teknik – teknik dan query [1]. Optimasi query merupakan aspek penting dari
strategi, yang meliputi transformasi logika dari query – query processing. Optimasi query bertujuan untuk
query untuk mengoptimisasi akses dan penyimpanan data memilih query yang meminimalkan penggunaan sumber
terutama pada basis data yang berskala besar. daya.

113
Jurnal Ilmu Komputer dan Sistem Informasi

2.2 Index memberikan manfaat kinerja tambahan yang tidak dapat


diperoleh dengan menggunakan index standar. Indexed
Index adalah struktur data fisik yang terpisah yang view dapat meningkatkan kinerja query dalam cara – cara
memungkinkan query untuk mengakses satu atau lebih berikut [6]:
baris data dengan cepat [9]. Index dapat memberikan 1. Agregasi dapat dipre-komputasi dan disimpan dalam
manfaat dalam meningkatkan kinerja query secara index untuk meminimalkan komputasi tinggi selama
signifikan. Clustered index menentukan urutan fisik dari eksekusi query.
data yang berada dalam tabel [2]. Clustered index 2. Tabel dapat dipre-join dan data yang dihasilkan
menyimpan baris-baris data dalam tabel berdasarkan disimpan.
pada nilai key. Sedangkan, nonclustered index tidak 3. Kombinasi dari join atau agregasi dapat disimpan
menyimpan data tabel. Nonclustered index menyimpan
Agregasi dan join yang sering dilakukan merupakan
pointer terhadap data tabel sebagai bagian dari key
kandidat yang tepat untuk indexed view. Sebuah query
index.
dapat menjadi kandidat dari indexed view jika
memerlukan waktu yang signifikan dan jumlah data besar
2.3 Index untuk mendapatkan hasil query dengan cepat. Indexed
view akan bekerja sangat baik ketika data relatif statik
View merupakan tabel virtual yang tidak harus ada atau jarang diperbaharui. Sedangkan lingkungan
dalam basis data, tetapi dapat dihasilkan berdasarkan transaksional tidak cocok untuk indexed view. Beberapa
permintaan dari pengguna tertentu pada saat yang aplikasi yang tepat untuk pengimplementasian indexed
diinginkan [1]. View adalah hasil dinamik dari satu atau view yaitu : decision support workloads, data marts,
lebih operasi relasional yang dilakukan pada tabel data warehouses, basis data Online analytical
dasarnya untuk menghasilkan tabel yang lain. View processing (OLAP), data mining workloads [6].
bersifat dinamis, artinya jika tabel dasarnya mengalami
perubahan, maka view akan langsung menunjukkan
perubahan tersebut. Tujuan dari penggunaan view antara 3. Metode Penelitian
lain :
1. Menyediakan mekanisme keamanan yang fleksibel Pada penelitian ini, dilakukan pengujian dan
dan baik dengan menyembunyikan bagian basis data pengukuran waktu respon terhadap tiga jenis query untuk
dari pengguna tertentu. kemudian dibandingkan waktu responnya. Jenis query
2. Memungkinkan pengguna untuk mengakses data yang akan dibandingkan adalah query dengan view dan
dengan cara yang disesuaikan dengan kebutuhan, query dengan indexed view.
sehingga data yang sama dapat dilihat oleh pengguna
yang berbeda dengan cara yang berbeda pada saat
yang sama. 3.1 Data Penelitian
3. Menyederhanakan operasi yang rumit pada tabel
Pengujian terhadap sejumlah query dilakukan pada
dasar.
basis data AdventureWorksLT, menggunakan DBMS
View memberikan beberapa manfaat, seperti SQL Server 2008 Enterprise Edition. Serta menggunakan
meningkatkan keamanan dengan membatasi akses software Redgate SQL Data Generator, yang digunakan
terhadap data dan mengurangi kompleksitas query. untuk melaksanakan proses generate data atau
Namun, di sisi lain view juga memiliki kelemahan, salah penambahan data, sebesar 1 juta baris data pada setiap
satunya ialah dapat menurunkan kinerja apabila tabel dalam basis data AdventureWorksLT. Proses
pendefinisian dilakukan dengan query yang kompleks generate ini berhasil menambahkan 1 juta baris data pada
dan melibatkan banyak tabel. Tetapi, view memberikan 5 buah tabel, ratusan baris data terhadap 4 buah tabel,
manfaat dengan mengurangi kompleksitas dan dan 1 buah tabel yang gagal mengalami penambahan
meningkatkan kinerja ketika diciptakan sebagai data. Basis data AdventureWorks yang semula berukuran
Materialized View. 7,188MB setelah dilakukan proses generate data,
Materialized view (MV) adalah view yang isinya mengalami penambahan ukuran menjadi 2,25GB.
dikomputasikan dan disimpan [10]. MV seperti cache,
yaitu salinan data yang dapat diakses dengan cepat [5].
Microsoft telah mendukung fitur MV pada SQL Server 3.2 Metode dan Teknik Indexed View
2000, dan disebut sebagai indexed view. View ini
dimaterialiasi dengan menciptakan unique clustered Sebelum menciptakan indexed view, terdapat
index pada view yang ada. Setelah clustered index beberapa hal yang perlu diperhatikan.
dibuat, nonclustered index juga dapat dibuat sebagai Berikut adalah pengaturan SET option yang harus
index tambahan. dilakukan :
Menggunakan index untuk meningkatkan kinerja
query bukanlah sebuah konsep baru, namun indexed view

114
Jurnal Ilmu Komputer dan Sistem Informasi

CREATE UNIQUE CLUSTERED INDEX UCI_vP ON


vProduct (ProductID);
Tabel 1 Pengaturan SET Option CREATE NONCLUSTERED INDEX NCI_vP ON vProduct
(ProductID);
SESSION SET Option Pernyataan pertama merupakan perintah untuk
ANSI_NULLS ON membuat view bernama vProduct. Fungsi WITH
ANSI_PADDING ON SCHEMABINDING diperlukan untuk menjadikan view
ANSI_WARNING ON
tersebut sebagai indexed view. Fungsi ini akan mengunci
ARITHABORT ON
tabel dasar untuk mencegah terjadinya perubahan skema
CONCAT_NULL_YEILDS_NULL ON
NUMERIC_ROUNDABORT OFF
yang akan mempengaruhi view. Kolom – kolom output
QUOTED_IDENTIFIER ON yang didefinisikan dengan ekspresi aritmatika atau
ekspresi lainnya harus menggunakan klausa AS agar
View harus memenuhi persyaratan berikut sebelum dapat direferensikan. Indexed view akan mematerialisasi
dapat dibuat clustered index : fungsi agregasi ke dalam disk. Hal ini akan
1. Semua fungsi referensi (function yang didefinisikan mengeliminasi kebutuhan untuk perhitungan fungsi
oleh sistem dan user) yang digunakan oleh view harus agregasi selama eksekusi query.
deterministic. Pernyataan kedua merupakan sintaks untuk membuat
2. View harus mengacu pada tabel dasar. clustered index. Setelah view dibuat, unique clustered
3. View dan tabel dasar harus berasal dari basis data index akan ditambahkan ke dalam view tersebut. Dengan
yang sama. ditambahkannya unique clustered index pada view,
4. View harus dibuat dengan option sistem basis data mengalokasikan penyimpanan untuk
SCHEMABINDING. view tersebut. Pernyataan ketiga merupakan sintaks
5. User-defined function (UDF) yang direferensikan untuk membuat nonclustered index, yaitu index
dalam view harus dibuat dengan option tambahan bernama NCI_vP pada kolom ProductID.
SCHEMABINDING.
6. Pernyataan SELECT dalam view tidak dapat berisi 3.3 Prosedur Pengujian
klausa dan option berikut: DISTINCT, UNION,
COMPUTE, TOP, ORDER BY, MIN, MAX, Jumlah query yang akan diujikan pada penelitian ini
COUNT, SUM, subquery, derived table, atau ialah 15 query yang masing-masing mereferensikan pada
OUTER. view dan indexed view. Lima belas query ini dibagi
Jika terdapat pernyataan GROUP BY, pendefinisian view menjadi 3 jenis query, yaitu query join (QJ), query
harus : agregasi (QA), dan query join & agregasi (QAJ).
1. Mengandung COUNT_BIG(*). Kemudian, 5 query dari setiap jenis query akan
2. Tidak mengandung HAVING, CUBE, ROLLUP, mengembalikan jumlah baris data yang berbeda, yang
atau GROUPING(). dibagi menjadi ratusan, ribuan, puluhan ribu, ratusan
ribu, dan jutaan baris data. Pengujian ini dilakukan pada
Indexed view dibuat dengan melakukan 2 langkah 2 komputer dengan spesifikasi yang berbeda. Berikut ini
proses berikut : adalah spesifikasi dari kedua komputer.
1. Membuat view menggunakan pernyataan CREATE 1. Komputer 1
VIEW dengan klausa WITH SCHEMABINDING.
2. Membuat unique clustered index yang sesuai. Processor Intel® Core™ i3 CPU M380 @2.53GHz
Memory 2048MB RAM DDR3
Unique clustered index dibuat pada kolom dari view Hardisk 500GB
untuk menciptakan indexed view. Setelah unique VGA Intel® HD Graphics
clustered index dibuat, sistem basis data mengalokasikan OS Windows 7 Ultimate 32-bit
penyimpanan untuk view, kemudian dapat dibuat 2. Komputer 2
tambahan nonclustered index. Nonclustered index pada
view dapat memberikan tambahan kinerja query. Processor Pentium® Dual-Core CPU E5700
@3.00GHz
Contoh query pembuatan indexed view : Memory 2048MB RAM DDR3
Hardisk 250GB
CREATE VIEW vProduct WITH SCHEMABINDING AS
SELECT p.ProductID, p.Name AS ProductName, VGA Intel® G41 Express Chipset
SUM(p.ListPrice) AS Price, OS Windows 7 Ultimate 32-bit
SUM(p.StandardCost) AS Cost, COUNT_BIG(*) AS
TotalRows Setiap query akan diuji sebanyak 5 kali dan dan pada
FROM SalesLT.Product p JOIN
SalesLT.ProductCategory pc ON tiap pengujiannya, waktu respon query dicatat hingga
p.ProductCategoryID = pc.ProductCategoryID eksekusi ke-5. Pembersihan cache dan buffer dilakukan
JOIN SalesLT.ProductModel pm ON di setiap awal pengujian. Dari hasil setiap pengujian,
p.ProductModelID = pm.ProductModelID
GROUP BY ProductID, p.Name hanya waktu respon pertama dari setiap pengujian yang
diambil dan dirata-ratakan. Sedangkan waktu eksekusi

115
Jurnal Ilmu Komputer dan Sistem Informasi

yang kedua dan seterusnya tidak digunakan. Hal ini


dikarenakan waktu eksekusi pertama tidak terpengaruh Query Waktu Respon Rata – rata (ms)
pada query plan dan cache yang mungkin tersimpan, View Indexed View
karena setiap sebelum dilakukan pengeksekusian Q1 118.0 65.4
Q2 18559.1 139.4
dilakukan pembersihan cache dan buffer.
Q3 24575.4 138.8
Q4 7519.1 1764.9
Q5 23016.8 11391.3
4. Hasil Pengujian Q6 12.9 6.4
Q7 6602.0 114.2
Berdasarkan hasil pengujian yang telah dilakukan
Q8 6456.3 145.7
terhadap 15 query yang masing – masing mereferensikan Q9 6705.4 1161.7
pada view dan indexed view, diperoleh perbedaan waktu Q10 11023.8 7978.4
respon terhadap setiap query. Berikut ini adalah tabel Q11 16615.2 57.0
dan grafik yang menunjukkan perbedaan waktu respon Q12 16401.3 68.5
tersebut. Q13 22142.3 356.4
Q14 13577.7 1362.4
Tabel 2 Waktu Respon Query pada Komputer 1
Q15 11228.0 8063.3
Query Waktu Respon Rata – rata (ms)
View Indexed View Waktu Respon Rata-Rata Pengujian Query
Q1 117.6 56.2 20000
Q2 19775.0 152.6
Q3 32186.2 53.0 15000
Q4 9298.0 1949.6
Waktu (ms)

Q5 27114.6 11642.8 10000


Q6 11.6 7.4
Q7 8255.8 109.6 5000
Q8 7906.2 42.6
0
Q9 8585.8 1164.0
Q1
Q2
Q3
Q4
Q10 11840.8 7008.4 Q5
Q6
Q7
Q8
Q9
Q10
Q11
Q12
Q13
Q11 18286.0 17.0

Q14
Q15
Q12 17979.8 19.8 Query
Q13 27774.4 375.8
View Indexed View
Q14 14561.6 1429.0
Q15 12432.0 7119.8 Gambar 1 Grafik Waktu Respon Rata-Rata Query

Tabel 3 Waktu Respon Query pada Komputer 2


Berdasarkan hasil waktu respon rata-rata pengujian,
dapat diketahui besarnya kinerja peningkatan waktu
Query Waktu Respon Rata – rata (ms) respon yang dihasilkan oleh indexed view. Pengukuran
View Indexed View kinerja dilakukan menggunakan rasio, yaitu query
Q1 118.4 74.5 dengan indexed view n kali lebih cepat dari query dengan
Q2 17343.2 126.2 view. Berikut adalah rumus rasio kinerja tersebut [3] :
Q3 16964.6 224.6
Q4 5740.2 1580.2
n = WEV
Q5 18919 11139.8 WEIV ...........(1)
Q6 14.2 5.4
Q7 4948.2 118.8 Keterangan :
Q8 5006.4 248.8
n : Peningkatan Waktu Eksekusi
Q9 4825 1159.4
WEV : Waktu Eksekusi Query dengan View
Q10 10206.8 8948.4
Q11 14944.4 97
WEIV : Waktu Eksekusi Query dengan Indexed View
Q12 14822.8 117.2
Q13 16510.2 337 Berikut ini adalah tabel kinerja peningkatan waktu
Q14 12593.8 1295.8 eksekusi oleh indexed view terhadap view.
Q15 10024 9006.8

Tabel 5 Kinerja Peningkatan Waktu Eksekusi oleh Indexed View


Tabel 4 Waktu Respon Rata-Rata Query
antara Komputer 1 dan Komputer 2

116
Jurnal Ilmu Komputer dan Sistem Informasi

Query Jumlah baris Jenis Peningkatan Views”, diakses pada 27 Agustus 2012,
data Waktu (n) http://technet.microsoft.com/en-
Q1 Ratusan 1.8 x us/library/dd171921(v=SQL.100).aspx.
Q2 Ribuan 133.1 x [7] Karde, P., Thakare, V.M., November 2010, “Selection of
Q3 Puluhan Ribu Query 177.1 x Materialized View Using Query Optimization in Database
Q4 Ratusan Ribu Join 4.3 x Management : An Efficient Methodology”, Internasional
Q5 Jutaan 2x Journal of Database Management Systems,Vol.2, No.4,
Q6 Ratusan 2x 116-130.
Q7 Ribuan Query 57.8 x [8] Larson, P.A., Yang, H.Z., 1985 “Computing Queries from
Q8 Puluhan Ribu Agregasi 44.3 x Derived Relations”, Proceesing VLDB, Vol.11, 259-269.
Q9 Ratusan Ribu 5.8 x [9] Petkovic, Dusan., 2008, “Microsoft SQL Server 2008 : A
Q10 Jutaan 1.4 x Beginner’s Guide”, McGraw-Hill, USA.
Q11 Ratusan 291.5 x [10] Silberschatz, A., Henry, F. K., Sudarshan, S., 2011,”
Q12 Ribuan Query 239.4 x Database System Concepts”, McGraw-Hill, NY.
Q13 Puluhan Ribu Agregasi 62.1 x [11] Zeis, C., Ruel, C., & Wessler, M., 2009, “Oracle 11g For
Q14 Ratusan Ribu & 10 x Dummies”, Wiley Publishing Inc, Indianapolis, Ind.
Q15 Jutaan Join 1.4 x

Dari hasil pengujian, diperoleh bahwa query dengan Kristina, mahasiswi Program Studi Sistem Informasi Fakultas
Teknologi Informasi Universitas Tarumanagara, Jakarta.
indexed view memiliki waktu eksekusi yang lebih cepat
dibandingkan dengan view pada semua jenis query.
Tabel 4 menunjukkan bahwa penggunaan indexed view
dapat meningkatkan kinerja query dalam mengakses data
hingga 200 kali lebih cepat dibandingkan dengan
mengakses view. Peningkatan waktu terbesar terjadi pada
query agregasi dan join.

5. Kesimpulan
Berdasarkan hasil pengujian, dapat disimpulkan bahwa :
1. Indexed view terbukti meningkatkan kinerja query
dalam mengakses data secara signifikan.
2. Indexed view bekerja meningkatkan kinerja secara
optimal pada jenis query agregasi dan join (QAJ).
3. Indexed view terbukti lebih cepat dibandingkan
dengan view dalam pemrosesan query dengan
persentase peningkatan waktu yang mampu mencapai
hingga 200 kali lebih cepat.
4. Indexed view tetap berkinerja lebih cepat pada
perangkat dengan spesifikasi yang berbeda.

REFERENSI
[1] Connolly, T.M., Carolyn, E.B., 2010, “Database Systems
: A Practical Approach to Design, Implementation and
Management”, Addison-Wesley, Longman Inc, USA.
[2] Dewson, R., 2008, “Beginning SQL Server 2008 for
Developers : From Novice to Professional
“, Apress, USA.
[3] Godse, A.P., Godse, D.A., 2006, “Computer
Organization Architecture”, Technical Publications, India.
[4] Goldstein, J., Larson, P., Mei 2001, “Optimizing Queries
Using Materialized Views : A Practical, Scalable
Solution”, Proceeding ACM SIGMOD, 331-342.
[5] Gupta, A., Mumick, I.S., 1995, “Maintenance of
Materialized Views: Problems, Techniques and
Applications”, IEEE Quarterly Bulletin on Data
Engineering.
[6] Hanson, E., Susan, P., 2008, “Improving
Performance with SQL Server 2008 Indexed

117