Anda di halaman 1dari 6

Optimasi Query

Optimasi Query adalah suatu proses untuk menganalisa query untuk menentukan sumbersumber
apa saja yang digunakan oleh query tersebut dan apakah penggunaan dari sumber tersebut dapat
dikurangi tanpa merubah output. Atau bisa juga dikatakan bahwa optimasi query adalah sebuah
prosedur untuk meningkatkan strategi evaluasi dari suatu query untuk membuat evaluasi tersebut
menjadi lebih eIektiI. Optimasi query mencakup beberapa teknik seperti transIormasi query ke
dalam bentuk logika yang sama, memilih jalan akses yang optimal dan Data yang tersimpan
dalam database semakin lama akan semakin besar ukuran atau volumenya. Kalau tidak didukung
dengan kecepatan akses yang memadai maka akan semakin menurun unjuk kerjanya. Ukuran
unjuk kerja dalam hal ini kecepatan akses data dipengaruhi oleh banyak Iaktor. Pada bab ini akan
membahas tentang optimasi query serta Iaktor-Iaktor lain yang berpengaruh terhadap
optimalisasi kecepatan akses data.


POKOK BAHASAN:
O Optimasi Perintah SQL
O nIormasi Jalur Akses Query
O aktor-Iaktor yang berpengaruh terhadap kecepatan akses data
OPTIMASI PADA PERINTAH SQL
Desain aplikasi saja tidak cukup untuk meningkatkan unjuk kerja harus didukung dengan
optimasi dari perintah SQL yang digunakan pada aplikasi tersebut. Dalam mendesain database,
seringkali lokasi Iisik data tidak menjadi perhatian penting. Karena hanya desain logik saja yang
diperhatikan. Padahal untuk menampilkan hasil query dibutuhkan pencarian yang melibatkan
struktur Iisik penyimpanan data. nti dari optimasi query adalah meminimalkan 'jalur¨ pencarian
untuk menemukan data yang disimpan dalam lokasi Iisik. ndex pada database digunakan untuk
meningkatkan kecepatan akses data. Pada saat query dijalankan, index mencari data dan
menentukan nilai ROWD yang membantu menemukan lokasi data secara Iisik di disk. Akan
tetapi penggunaan index yang tidak tepat, tidak akan meningkatkan unjuk kerja dalam hal ini
kecepatan akses data. Misal digunakan index yang melibatkan tiga buah kolom yang
mengurutkan kolom menurut kota, propinsi dan kode pos dari tabel karyawan, sebagai berikut :
CREATE DEX idx¸kota¸prop¸kodepos
O karyawan(kota, propinsi, kode¸pos)
TABLESPACE DX;
Kemudian user melakukan query sebagai berikut :
SELECT * ROM karyawan WHERE propinsi÷`Jawa Barat`;
Pada saat melakukan query ini, index tidak akan digunakan karena kolom pertama (kota) tidak
digunakan dalam klausa WHERE. Jika user sering melakukan query ini, maka kolom index
harus diurutkan menurut propinsi. Selain itu, proses pencarian data akan lebih cepat jika data
terletak pada block tabel yang berdekatan daripada harus mencari di beberapa dataIile yang
terletak pada block yang berbeda.
Misal pada perintah SQL berikut ini :
SELECT * ROM karyawan
WHERE id BETWEE 1010 AD 2010;
Query ini akan melakukan 'scan¨ terhadap sedikit data block jika tabel karyawan diatas
diurutkan berdasarkan kolom id. Untuk mengurutkan berdasarkan kolom yang berbeda-beda
maka tabel disimpan dalam Ilat Iile, kemudian tabel diekspor dan diurutkan sesuai kebutuhan.
AlternatiI yang lain, bisa digunakan perintah untuk membuat tabel lain yang memiliki urutan
yang berbeda dari tabel asal, seperti perintah SQL berikut :
CREATE TABLE karyawan¸urut
AS SELECT * ROM karyawan
ORDER BY id;
Pada SQL diatas, tabel karyawan¸urut berisi data yang sama dengan tabel karyawan hanya
datanya terurut berdasarkan kolom id.
Tips Optimasi Query MySql
Berikut akan saya berikan tips optimasi di MySQL yang sering saya digunakan.
1. Untuk join tabel sebaiknya gunakan inner join daripada leIt join atau right join.
2. Cek indek-indek di tabel anda terutama untuk Iield-Iield yang sering di join. Secara deIault hal
ini sudah dilakukan saat anda membuat primary key dan Ioreign key. Jadi anda jangan lupa
untuk memasang primary dan Ioreign key di tabel anda..
3. Untuk nilai-nilai unik gunakan Autoncrement.
4. Gunakan persistent connection(koneksi yang terus menerus). Dalam artian anda dilarang
untuk membuka tutup koneksi. Di help Mysql dijelaskan bahwa kalau anda membuka tutup
koneksi maka bisa menyebabkan connection overhead.
5. Hindari query yang kompleks untuk tabel yang menggunakan MySAM dan sering diupdate.
Jadi kalau pengin aman gunakan Engine nnoDB saja.
. Gunakan Explain sintak untuk mengetahui inIormasi dari pernyataan Select
7. Sebisa mungkin hindari Sub Query.
Berdasar pengalaman saya sering terjadi kasus dimana saya di haruskan sub query yang
menggunakan klausa 'not in¨. Contoh:
Select I.kode¸Iaktur,I.tanggal, Irom Iaktur I where I.kode¸Iaktur not in(select kode¸Iaktur Irom
gudang¸keluar).
Untuk meningkatkan kecepatan akses datanya, anda dapat menggantinya dengan sintak berikut :
Select I.kode¸Iaktur,I.tanggal Irom Iaktur I leIt join gudang¸keluar g on I.kode¸Iaktur ÷
g.kode¸Iaktur where g.kode¸Iaktur is null
Di samping mempengaruhi kecepatan, berdasar pengalaman saya juga, klausa not in untuk
jumlah data yang besar kadang hasil yang di dapat tidak sesuai dengan yang saya harapkan.
Tips-tips di atas adalah berdasar pengalaman saya. Kalau anda pengin lihat lebih detail lagi lihat
saja di helpnya mysql, lebih komplet lagi plus menambah pusing kepala.
Tips Optimasi dan Mengontrol MySQL
Buat anda yang baru saja mengenal database server jenis MySQL dan melakukan programming
dengan sedikit data ataupun mempunyai pangakses sedikit tidak terlalu bermasalah dengan load
server yang makin hari semakin berat. Saya pernah mengalami server hang karena kesalahan
query yang melakukan join dua tabel yang masing-masing mempunyai record lebih dari 100 ribu
record berisi postingan blog berbentuk text. Kejadian itu hingga menyebabkan server hang
walaupun kondisi server masih terbilang bagus. Waktu itu saya menggunakan server bersistem
operasi Solaris dengan memori 4 GB. Tapi tetap saja locked.
Saya coba evaluasi beberapa query dengan menginstall mtop terlebih dahulu, mungkin buat anda
pengguna hosting akan kesulitan untuk menggunakan mtop, tapi coba saja yang versi webnya.
dengan mtop saya bisa melakukan control untuk query yang membutuhkan resources yang
sangat besar. bahkan saya bisa melihat query mana yang harus diperbaiki.
Setelah dievaluasi maka munculah beberapa tips yang bisa digunakan antara lain:
1. Lakukan konIigurasi maksimal pada my.cI, tentu cara ini hanya bisa dilakukan oleh anda yang
mempunyai server sendiri.
2. Sebisa mungkin hindari join table, apalagi yang datanya sama-sama besar. Untuk join tabel
sebaiknya gunakan inner join daripada leIt join atau right join.
3. Check indek-indek di tabel anda terutama untuk Iield-Iield yang sering di join. Secara deIault
hal ini sudah dilakukan saat anda membuat primary key dan Ioreign key. Jadi anda jangan lupa
untuk memasang primary dan Ioreign key di tabel anda.
4. Gunakan koneksi yang terus menerus, dengan kata lain jangan melakukan buka dan tutup
konek kedalam mysql. hal ini justru akan semakin berat
5. Hindari penggunakan asterik atau bintang seperti select * Irom tbl¸contoh, cara ini memang
mudah dilakukan tapi jangan salah dengan melakukannya akan membuat database anda pusing
untuk menampilkan data, jadi gunakan Iield yang memang benar-benar dibutuhkan misalkan
select id,nama Irom tbl¸contoh.
. Lakukan clear memory dengan menambahkan script mysql¸Iree¸result($query) setelah
melakukan query, cara ini cukup ampuh untuk mengurangi load server dan memori.
7. Pisahkan tabel yang sering sekali dilakukan update, misalkan saya mempunyai tabel member
yang beranggotakan 100 ribu orang, untuk membuat statistik untuk member maka kita
seharusnya membuat tabel statistik member yang lebih sederhana dan updating data lastlogin
atau berapa kali login dilakukan di tabel statistik
8. Lakukan backup secara berkala, saya termasuk orang yang ceroboh untuk masalah ini dan
beberapa kali melakukan hal yang sama, jujur dari tahun 2003 saya sudah 2 kali menangis akibat
kehilangan ribuan data mysql yang sangat penting. Saat ini saya gunakan mirroring dan replikasi
mysql ke server lain supaya lebih aman.
nti dari semuanya adalah saya mengajak anda semua jangan malas untuk menghindari * pada
query atau menyisipkan msql¸Iree¸result di akhir query. karena semuanya sangat berpengaruh.
PERENCANAAN EKSEKUSI
Bagaimana cara melihat jalur akses yang akan digunakan database saat melakukan query ? Pada
Database Oracle, inIormasi ini dapat dilihat dengan menggunakan perintah explain plan, yang
akan memberi inIormasi tentang rencana eksekusi dari suatu query. nIormasi ini disimpan
dalam tabel PLA¸TABLE yang terdapat di schema user yang mengeksekusi perintah tersebut.
Sebelum melakukan perintah explain plan, terlebih dahulu buat table
PLA¸TABLE dengan menggunakan script utlxplan.sql yang diambil dari
\°ORACLE¸HOME°\RDBMS\ADM.
Setelah itu table PLA¸TABLE dapat digunakan seperti contoh berikut :
SQL~ explain plan
Set statement¸id÷`test1`
nto plan¸table Ior
Select * Irom karyawan where gaji÷2000000;
Dalam PLA¸TABLE rencana eksekusi diatas dikenal dengan nama test1 yang terdeIinisi pada
kolom statement¸id.
Untuk melihat rencana eksekusi dari test1, digunakan perintah SELECT berikut :
SELECT LPAD(` `,2*Level),,Operation,,` `,,Options,,` `,,Object¸ame Q¸Plan
ROM plan¸table
WHERE statement¸id÷`test1`
COECT BY PROR AD statement¸id÷`test1`
START WTH AD statement¸id÷`test1`;
Contoh hasil dari eksekusi query tersebut :
Q¸PLA

SELECT STATEMET
TABLE ACCESS ULL KARYAWA
Output tersebut dibaca mulai dari yang indent-nya paling dalam yaitu : TABLE ACCESS ULL
KARYAWA. Dikarenakan klausa WHERE melibatkan kolom gaji namun kolom gaji tidak ada
index-nya, maka Oracle melakukan Iull table scan. Setelah seluruh tabel karyawan selesai
dibaca, selanjutnya adalah SELECT STATEMET yang berIungsi untuk menampilkan hasil
query.
AKTOR LAIN YANG BERPENGARUH TERHADAP KECEPATAN
AKSES DATA
aktor lain yang berpengaruh terhadap kecepatan akses data, tidak hanya terletak pada optimasi
perintah SQL, tapi terhadap hal-hal lain yang berpengaruh. Diantaranya adalah optimasi aplikasi
dan penggunaan cluster dan index. Hal yang akan dibahas dalam optimasi query berikut ini tidak
melibatkan penggunaan komponen yang ada dalam Arsitektur database engine, misal pada
database Oracle kecepatan akses data dipengaruhi oleh penyesuaian pada shared pool, buIIer
cache, redo log buIIer dan system operasi yang digunakan.
OPTIMASI APLIKASI
Dalam pembuatan aplikasi, yang perlu mendapat perhatian adalah apakah akses terhadap data
sudah eIisien. EIisien dalam hal penggunaan obyek yang mendukung kecepatan akses, seperti
index atau cluster. Kemudian juga bagaimana cara database didesain. Apakah desain database
sudah melakukan normalisasi data secara tepat. Kadangkala normalisasi sampai level yang
kesekian, tidak menjamin suatu desain yang eIisien. Untuk membuat desain yang lebih tepat,
kadang setelah melakukan normalisasi perlu dilakukan denormalisasi. Misalnya tabel yang
hubungannya one-toone dan sering diakses bersama lebih baik disatukan dalam satu tabel.
CLUSTER DAN INDEX
Cluster adalah suatu segment yang menyimpan data dari tabel yang berbeda dalam suatu struktur
Iisik disk yang berdekatan. KonIigurasi ini bermanIaat untuk akses data dari beberapa tabel yang
sering di-query. Penggunaan cluster secara tepat dilaksanakan setelah menganalisa tabel-tabel
mana saja yang sering di-query secara bersamaan menggunaan perintah SQL join. Jika aplikasi
sering melakukan query dengan menggunakan suatu kolom yang berada pada klausa WHERE,
maka harus digunakan index yang melibatkan kolom tersebut. Penggunaan index yang tepat
bergantung pada jenis nilai yang terdapat dalam kolom yang akan diindex. Dalam RDBMS
Oracle, index B-Tree digunakan untuk kolom yang mengandung nilai yang cukup bervariasi,
sedangkan untuk nilai yang tidak memiliki variasi cukup banyak, lebih baik menggunakan index
bitmap.
RINGKASAN:
Data yang tersimpan dalam jumlah yang sangat besar, Terdapat aturan systeminIormasi
dalam organisasi, system basis data dilihat sebagai bagian system inIormasi dalam
aplikasi berskala besar.
Untuk meningkatkan unjuk kerja tidak hanya desain logik saja yang diperhatikantapi
juga struktur Iisik penyimpanan data.
Penggunaan ndex pada database secara tepat, dapat digunakan untukmeningkatkan
kecepatan akses data.
nIormasi tentang jalur akses yang digunakan oleh database untuk melaksanakanquery
dalam database Oracle dapat dengan menggunakan perintah explain plan.
Selain optimasi perintah SQL, Iaktor lain yang berpengaruh terhadap kecepatanakses
data adalah optimasi aplikasi dan penggunaan cluster dan index.
Pada sebuah database engine semisal pada database Oracle kecepatan akses data
dipengaruhi oleh beberapa komponen arsitektur pembentuknya seperti shared pool, buIIer
cache, dan redo log buIIer.
Optimasi aplikasi tergantung pada eIisiensi penggunaan obyek yang mendukung
kecepatan akses seperti index atau cluster, dan normalisasi data pada desain database.
DaItar pustaka

http://trinoIendri.wordpress.com/2010/04/21/optimasi-query-di-database/

.3*:7:9 -078 /.01943..21.:5033.3330743/.8.3$/.910 02:/.91 .9434.9 9.907:9..79.7.2.-0. -4.3 -.3 ##/ !./:3. #  .:.3147030/9.5.$"-07:9 #%%.3/:7:9.9.3 20.:.7/. .7. .2030-..7.33303348..3 .3 8.8":07$6 07:9.8/$".342508:39:9.3  -8. 9:9:5 43082.3 :5.4330.8 /:7:9.9.:8.. 90709.-0.7. .3 #/%     ":07 3 .-. /.-0 .:9. /:3.3 -07/..3/. :807 8073 20...3:3.3 907:8 20307:8  .5.5.-0 .3/. 5.-0.0-:9:.9.3 203:7:9 574538  $0..3   &39:439.38073/:5/..4425079..3-07-0/.!.3...3 ./.39584592.3 /.3 90709.  .3 -07/.3/.:.3  9073.7.3 14703 0  ...05.7. /.2 ..38073/43 $0.50739.-07.4330.76:07.. .: .3.3.2.9 .-0/825.3.3.3 .9.10 .9../. /03.3*:7:9 $$% # ..3 :39: 202-:. $" /.-4.3 50739.../01.39..7 0 /.070.7 / -0-07.2.:3.943 4308 .7:8 /:7:9. :39:202.9. 202-:.9 572.79.3 .$"-07:93 $% # .3/:3. 9.3:943.8. /.8.3 /.-080-.75.3 /.7.3 442 .3/..36:073 3/09/.3/.3 6:07 3  2.7:8 203. :39: 202-:.7.8...3572./ .3 442 /  &39: 203:7:9././   3/.. 80507950739.7.:39:10/ 10/.3 0- .380738.. 49./. 202-:.38.-0.3-07-0/.3/.-0 . -4..3 9.9. 442 3/0 .3442/  %58 592.9. /:3.3203:3./. /./.702039    :3.-8.3. 2.3/.9. /./. 9./. 3.:7943   03/0 3/0/9..7. .7.907:7:9-07/.90  .8  9./.  8.3808:.9.3  907...2 .3 /. -0/.8. .3 -07/0.. 9/.3 .703..3 -07-0/.3 8.920.75.3 9:  574808 503.-0/08547/./.:3:3.9 . 9:9:5 4308   05 86 /0.:.-0 .7..8..-0 .   &39:3.3 8.3 202 :7:9.3 507889039 ...9.2..5 80/9 /. 3 8:/.8.

:31472.0.43974 :39: 6:07 .8$4./..9 1 4/0*1.:.80880/99/.32.83 2.7..3. 4893 .  $090.30343974$" :. 8.3.82.38.3 2945 8.3 ..:.20.340..75073.3.07 .8/.7:8. 20.9: 9:8.8../03.9-08.3.3/..3 2945 9.9..5.3 .9..35747././03.7 43 9.8. 203.3 2.3.2 .8-0-07./ .39. 8.3.5 .:7943  .3 08:9./.3.3.:.9.2.9 8.5:8305.4-. 349 3 :39: :2.380/9/... .3203389.3 8.07 .:-072.-0 80-.9.9.3/.3839. 8./03.. 2030-. 8.7 503.2:3.99/. ./:3.7.3..47/ -078 54893.8907-.3 8.-07:9 $00../.703.5..9.2 807.01943.8/.5909.7503..3-.-8.5.78/03.3 202-:9:.9:7   4/0*1..4.958.-8.3 203:3.38../.20303.7.8.05.90-/09.8.-.2.35.9./053.5033.9:7070 4/0*1..320.3  %58 958/..9203.3.9  $0-8.7:8/507-.7 802..8:8 /2.3 6:07.:39:20309.5:8203.9  $.3.9:7 1 9..  .320247 %.. .-0-07.:8.9:73493 800.9. .91 4/0*1.9:7 1 019 43 :/.29459070-/.2-. 2:33 3/.3330743/.:5:32025:3.30.9:783:  8. 503:3.75. -8.8.907.07038$"/. 1742 1...253 202503..70.3839.2.393.3 807.-07/.3 -4 -07-039: 909  0.:.3  -07/.07 .8.:.3*0:..7  43 1 4/0*1.7.320.:3./.34...07803/7    $0-8./.3 8:- 6:07 ...3 -. :3.:8  ..4-.3 2025:3.343/:..:.7:8. 5073.3*0:. :.2./0...9.-0.80807.96:072. 08. 8073 907.7  &39:2033.3 7084:7.3 :39: 203:3.3.7 503.808/.07 2.5.5.9:710701 4/0*1.  %58 592.3$00.82.6:07/03.807.7: 0.:8.07 -0788902 4507.. 17421.9.0/  $..:: 2:33-:.-0  .3//.7 7-: 70.3-08.078 0-3.7$:-":07  07/.3 ..:. 203:3.05..08 ./..3 /.47/0-/.5.3.2.3 -07.58.3  ..9:71742 :/.3.3.9:7 1 9.3 9: 3.  /03.3807.9.7  &39: 43 9. -08./ 807..94/0*1.7 -.82.223 /03.:..9.9.3 ..3 8./.-.3431:7.9.1 9039:. 3493 4394 $00.832025:3.3.5.3-8.808:...3/..3.3 ..:.2:333/.38.3/.5.3/..:5:343/8 807.9.286 0-42509.. / .

02.3/.8 9039.5..:3 8.-0..9/.4394    ..9. ::7/.7:  !#$&$ .7 -03.2.8 3 /..-0..:.3.9.8 3 /825.3 /.808.9.. 3 /./..07/.350739.0-..3 -:.3 $0989.39.:.5.3 86..989 :39: 202-07 2..202-:.5..5.-0!*%/.:-07.29.3 9070-/. 20.3.::5.9.33.3807380.34.902039*/ 9089  .3/..3 5..9 0.3 203.90 28.8 2860807.07.3  .3 8.3 2.3 202..3 202-07 31472.93 /.:7.3 20.8: 47.0  31472.3 2:/.2.3 202-:.3 9:9:5 4300/.9..7.80 7.5.3286*1700*708:9/.3203:3./.3/../. 202-:.9572.-0202-07 . 0.3/.-0 89.99.7:83.7 /-:9:.-.3705.802:./01.35.7 8:.3 0- 80/07.-0!*%.:9 .3.25.3:5.36:07 .3. .3.3.3805079.-089.0.. 3 202.8.38.808.20.05.3.3147030 ...39.3 .8907./ :3.3 203:3.3 -0-07.17429-*.8:39: 2033/.-.9/:3.-0 !*%/03.:.3805079800.. ./03.3 ..3 28..8..3.9 /.3/./.7.7802:.3 -07.3.7503:3.-0.:. 080:8 /..3/0 3/0/9.9 9.3203080:850739.3.3 . .7 5.2.90780-:9  $0-0:220. /.938. -07.9: 6:07  31472..3 -.37-:..3/9.38.2286 .5 .2.3  :39: 202-:.4394 .3.3.7..3 703.2-/.7.3 907:8 20307:8  /03.3.35.  8..43/..7 20247 /03.3572.3802. /.:39:10/ 10/.3.9.074-4 :39: 2. 80.38073/43 $0..759:95.:.3907/../.38.:5 80...7/.38.:..9 /03.9  3/.-.3-07.3147030/9./.  .:807.:20385.3 20.::-:.9/ 3.3 .7  #* #$  $090.759 286*1700*708:9 6:07  8090..3  39/.3/. 203.76:07 ..9 89.950393 $./.3:5/.920. 6:07.3 800.320247   !8.38.9.:.2.20..80.9..:.3   7-: 47.3/.7.. 9.. :39:202.349.9/8.3.3 50739.8.703.:..3 /.38.9. 9072..:3.3/..9  17429-*./807.3 8.3 .38:/.25::39:203:7.9..:.79..-.3/..2025:3.3 .3 -03.36:07!.4394-07:9 $"05.3:897:.989 202-07 .286.9:9.3/:3.5:83 :39: 203.3.907:9..9-07503.:-39.9. .8943 .3 4308 .9. 05.38:5.:....    :3.3277473/..8.203..9.:.2-.3 10/ .3 :5/.70/..802:.8:/.989   .

33././.8 6:07  % ##!#&%#!!% $$% .9.3/:3..9703.3907/01385./.24592.80 0330  28. 44289.3 # 5.-0 8. 20-.3*9.902039*/ 9089  $%#%%89...9.9.-0 .. 8.3:93. 9/.3 8008.20"*!..05. 3/0 3.9.2.0 70/44-:1107/..9.3  $090./..3/-../.808/.70/ 544  -:1107 .80 7.. 7.. .2!*%703.$" 9..0  507.3 5..3 1: 9.5907.7.  ..3442.3 .7: 40 50308:..3.3  .33/0 .3.3.5.3 .5.50..86:07-07:939/.3 503:3.3. 5.39..8/.8/03.080:8/.7...3*9.9089. /-.3./.9.3 -071:38 :39: 203../.3070.9:%$$& # .33/039 3.$%-07:9 $%!   0.3.4592. /.9 1742./.9*.  80.#20-.3 4254303 .9.5./03.05../.3945. /.808 /.7080:86:0790780-:9 "*!  $%$%%% %$$&# :95:990780-:9/-.947.3503:3.943   59438   -0... $% $%%% .902039*/ 9089  4394.79089 /:3.703.3/.8.3-07503.9.7: .7.  2. /503. .:8907/.:8.:.9...0 20..7:907.9/.-0147 $00.7.3.../.8 50739.-0 #89.90709.4592.3.8..902039*/  &39:20.-.0 0.3.2:3442. 80:7: 9.3...350739./.2.3 .2:.25..3-07503.2 78909:7 /.5.3...902039*/ 9089   %!# #89.8 /.8/.080:8/.-.3889024507.

3 .-078.4592.808 .39:3 5.947 .3 907/.9.33/0   !.-..3 :-:3.:. 905.9..9.5.3.8  80/.8  8...28:..8.:8907/.5 /.8 907.8 50739.3 4592..3  9/.8-078.2 #$ 7.3 3472. ..3 8090./. 3472.-0 9.9./.350739./.3  5./.808/.7.80 7.8 /.33..3.05.8.39:3 5..0  3/0  %700 /:3.0 0..3 :39: 442 .9  /. /.808 /.-. 80-:..7:8 /:3.9.3.9: 442 .9./.8./. /.70/544 -:1107 ./.3 20-.33/0 -92.:.3 .-.808 /.3.:8907  02:/.9-08.5.9. 9.9.9 507..2/.3 -07.7.9 -07.3 88902 31472.3 /../.80 80. -. 018038 503:3.2.7-0-07. #  2./.9 /:3.. /503.3-07-0/.9/03.5..8050798. 01803  1803 /.9.!%$!$ . -.80  . 8:/.9..80 //08.0--.3 203.::5-.5.8/.7.3 /03472.3 8073 / 6:07  !03:3.3907825.05.35.3 40 /.9:.8.2 502-:..7.. 503:3./.33472.2. 203..-08./.3 .3203:3. .3 /:3.3 :.8  .:8907 80.5  #$  .4254303..05.3 .9.3 .350739.28.3 4 8..3 431:7.75:89.3 3/0 .9.3.23 8:.3:39:3.-0 .8 9039.8..8 ..-0 2.9 80-.8.3/.9. ...7   &39: 2033.3. 0.808  805079 3/0 .3/.9.3 0- 905.9. /08.78909:7502-039:3.7.8.3.9..5.9.. .808-078.3.9:7.3.   31472.2 . ...202..-0..-.3203:3..8088050793/0.8. 5.0/..3 .9.3 080.  995.5. /.5.2:2.: .2.0 .3 :3: 07.:.83-072.3 /507.9./8.:8907 /.38073/ 6:0780..3 203/::3 0.-.9.8.3   $0.5.-0.31.7: 907..430 94430/.38890231472.79.88 /..7.. /./08.3 3/0 .::5 -07.:.9. 5.80 :39: 20.3 4-0 .9.80 7.9 /08. . $"  1.38073/.3.-.9.05.3../.9:9.3 . 905.38. 20.3 442 90780-:9  !03:3. 038 3..9  ...8 8073 20.39/.9.3 01803  &39: 202-:.3 :39:2033.9.9:39:.39. 20.3503:3..8/.$"43 .5.:8..8./.3 6:07 /03.9:802039.9  .05.897:9:71850325.8 /...9..5.:7 . 9./.0 /.-.9.. /../.9.9:897:9:7 18/8.5.9.3 4-0 .3.9./.3 203/::3 0..8:.2 442 .9.3 3472. 203.3 3/0 5.8 /.808 907.3/:3 3..3/.25..:.3 8090.3..7. 905.3 . .8.3 .9.9: /08.   !03:3.2 47.-.3 203:3.9 /.3/.5 :.3 905.3.5.19..3 8:.3 -07503.370/44-:1107   592.80 8:/.5.8 8.3/. 0--. .808/.9 /.3.9./. .05.3...7 %07/.3 0.2 .5.38..8  88902 -.-0  &$%# :8907. /08.5 0.36:07 /.3 .203:3..7:40-0-07.9. 80.80 0330 8028..3 ./..320325.. 9/..3 507: 203/.8 507: /.3-07/0.9.3 /3/0  .

.

9734103/7 47/57088 .42.

  .

.

.

9.80.4592.8 6:07 / /.-.

 .