Sabtu, 18 Mei 2013

[ Kinerja Database ]


Database Performance

            Kinerja database berfokus pada tuning dan mengoptimalkan desain, parameter, dan konstruksi fisik objek database, khususnya tabel dan indeks, dan di mana file-file data disimpan. Komposisi aktual dan struktur objek database harus dipantau terus menerus dan berubah jika database menjadi tidak efisien. Tidak ada jumlah SQL tweaking yang dapat mengoptimalkan kinerja query saat dijalankan terhadap database yang dirancang buruk.

Techniques for Optimizing Databases [ Teknik untuk Mengoptimalkan Database ]
            DBA harus paham fitur dari DBMS untuk menerapkan teknik yang tepat untuk mengoptimalkan struktur kinerja basis data. Sebagian besar DBMS mendukung teknik-teknik berikut, meskipun dengan nama yang berbeda. Masing-masing teknik berikut dapat digunakan untuk menyempurnakan kinerja database dan akan dibahas dalam bagian ini:

Partitioning/Partisi - Satu tabel database menjadi bagian - bagian yang disimpan dalam beberapa file.
Raw partitions versus file systems/Partisi mentah dibandingkan sistem file - memilih apakah akan menyimpan data database dalam file OS yang dikendalikan atau tidak.
• Indexing/Pengindeksan - memilih indeks yang tepat dan pilihan untuk mengaktifkan query yang efisien.
• Denormalization - bervariasi dari desain logis untuk mencapai kinerja query yang lebih baik.
• Clustering - menegakkan urutan fisik data pada disk.
Interleaving data - menggabungkan data dari beberapa tabel menjadi satu, file yang diurutkan.
• Free space/ruang - meninggalkan  ruang kosong untuk pertumbuhan data.
• Compression/Kompresi - algoritmik mengurangi persyaratan penyimpanan.
• File placement and allocation/Penempatan file dan alokasi - menempatkan file yang tepat di tempat yang tepat.
• Page size/ Ukuran - menggunakan ukuran halaman yang tepat untuk penyimpanan data yang efisien dan I / O.
Reorganization/Reorganisasi - menghapus inefisiensi dari database dengan menyelaraskan dan     restrukturisasi objek database.

Ø Partitioning

            Tabel database adalah manifestasi logis dari sekumpulan data yang secara fisik berada pada penyimpanan komputerisasi. Salah satu keputusan DBA harus membuat untuk setiap tabel penyimpanan data. Setiap DBMS menyediakan mekanisme yang berbeda untuk mencapai hal yang sama-pemetaan file fisik untuk tabel database. DBA harus memutuskan antara pilihan berikut pemetaan untuk setiap tabel:
• Single table to a single file / Tabel Tunggal untuk satu file.
• Single table to multiple files / Tabel Tunggal untuk beberapa file.
• Multiple tables to a single file / Beberapa meja untuk satu file.

            Sebenarnya inti dari partisi itu adalah membagi ruang untuk data-data tertentu. Jika dikaitkan dengan DBMS,Partisi tabel adalah membagi data suatu tabel menjadi beberapa bagian/kriteria. Misal tabel mahasiswa, dipartisi/dibagi berdasarkan NIM. Sehingga dapat diketahui angkatan mahasiswa berdasarkan NIMnya. Dan konsep partisi ini dapat dikembangkan sebagai DSS (Decision Support System) untuk pengambilan keputusan tertentu.

            Sedangkan index digunakan untuk mempercepat perncarian data didalam tabel database relasional. Sehingga dengan adanya index partition, memungkinkan untuk meningkatkan performa pencarian data. Berikut adalah konsep umum partisi tabel:
            Dari suatu data yang besar, dipecah-pecah lagi per-bagian berdasarkan kriteria-kriteria tertentu. Pada gambar di atas, dari suatu data dibagi berdasarkan bulan.

            Manfaat lain dari partitioning adalah tiap-tiap segment (partisi atau subpartisi) bisa ditaruh di tablespace yang berbeda, sehingga kita mendapat manfaat dari spreading (menyebar) tablespace, yaitu penyebaran I/O dan mengurangi resiko loss data karena tablespace corrupt.


Ada 3 metode utama partisi:
  1. Range partition
            Range partition adalah pembagian suatu tabel ke dalam beberapa bagian berdasarkan range (rentang) nilai tertentu. Range partition ini cocok digunakan pada kolom yang memiliki distribusi nilai yang merata.
  1. List partition
            Konsep pada list partition adalah data dikelompokkan berdasarkan nilai datanya. Cocok untuk kolom yang variasi nilainya tidak banyak. Misal data kota berdasarkan wilayah provinsi. List: Jember, Malang, Surabaya pada partisi Jawa Timur; Bandung, Cirebon pada partisi Jawa Barat. Jadi list partition ini berdasarkan list dari suatu segmen, sehingga data-datanya di list terlebih dahulu.
  1. Hash partition
Penggunaan hash partition ini jika tidak cocok dengan RANGE ataupun LIST Partition. Penentuan “nilai mana di taruh di partisi mana” itu diatur secara internal oleh Oracle (berdasarkan hash value). Kenapa harus memaksakan memakai partisi sementara tidak cocok dengan RANGE ataupun LIST? Jika ingin mendapat manfaat dari filosofi PARTITIONING yang sebenarnya di mana data disebar ke segment-segment yang berbeda.

Dan 2 metode composite (gabungan):
  1. Composite range-list partition
            Konsep composite range-list partition ini menggabungkan partisi range dan list. Jika pada tabel mahasiswa, NIM dipartisi secara range, sedangkan untuk mendapatkan NIM sekian yang tinggal di wilayah provinsi Jawa Timur itu apa saja, maka menggunakan list. Jadi dipartisi kemudian di list berdasarkan kriteria tertentu.

  1. Composite range-hash partition
            Composite range-hash partition merupakan konsep menggabungkan range partition dan hash partition. Sehingga partisi-partisi yang telah dibuat berdasarkan range/rentang akan dipartisi lagi ke dalam beberapa bagian berdasarkan hash.

Ø Raw Partition vs. File System
Untuk lingkungan DBMS berbasis UNIX, DBA harus memilih antara partisi mentah dan menggunakan sistem berkas UNIX untuk menyimpan data dalam database. Sebuah partisi mentah adalah pilihan jenis perangkat fisik untuk penyimpanan database karena menulis cache oleh sistem operasi ketika sebuah sistem file yang digunakan. Ketika menulis disangga oleh sistem operasi, DBMS tidak tahu apakah data telah fisik disalin ke disk atau tidak. Ketika cache manajer DBMS mencoba untuk menulis data ke disk, sistem operasi dapat menunda menulis sampai nanti karena data mungkin masih di cache sistem file. Jika terjadi kegagalan, data dalam database menggunakan sistem file untuk penyimpanan mungkin tidak 100% dapat dipulihkan. Hal ini harus dihindari.

                Jika partisi baku digunakan sebagai pengganti, data ditulis langsung dari database cache ke disk tanpa sistem file menengah atau caching sistem operasi, seperti yang ditunjukkan pada Gambar 11-1. Ketika cache manajer DBMS menulis data ke disk, secara fisik akan ditulis ke disk tanpa intervensi. Selain itu, ketika menggunakan partisi mentah, DBMS akan memastikan bahwa cukup ruang yang tersedia dan menulis halaman alokasi. Bila menggunakan sistem file, sistem operasi tidak akan preallocate ruang untuk penggunaan database.

Description: C:\Users\Efendi\Documents\Capture.JPG
            Dari perspektif kinerja, tidak ada keuntungan untuk memiliki lapisan sekunder caching pada sistem file atau operasi tingkat sistem, cache DBMS cukup. Sebenarnya, pekerjaan tambahan yang diperlukan untuk cache data untuk kedua kalinya mengkonsumsi sumber daya, sehingga berdampak negatif pada kinerja keseluruhan operasi database.

Ø Indexing

            Indexing merupakan sebuah proses untuk melakukan pengindeksan terhadap kumpulan dokumen yang akan disediakan sebagai informasi kepada pemakai. Menciptakan indeks yang benar pada tabel dalam database mungkin adalah  teknik tuning kinerja yang DBA dapat dilakukan. Indeks digunakan untuk meningkatkan kinerja. Indeks sangat berguna untuk :
• Mencari baris dengan nilai (s) pada kolom (s)
• Membuat bergabung lebih efisien (ketika indeks didefinisikan pada kolom join)
• Korelasi data di tabel
• Agregasi Data
• Mengurutkan data untuk memenuhi permintaan

            Tanpa indeks, semua akses ke data dalam database harus dilakukan dengan memindai semua baris yang tersedia. Scan sangat tidak efisien untuk tabel yang sangat besar.

            Tujuan umum analisis indeks adalah dengan menggunakan lebih sedikit I / O ke database untuk memenuhi permintaan yang dilakukan terhadap meja. Tentu saja, indeks dapat membantu beberapa pertanyaan dan menghalangi orang lain. Oleh karena itu, DBA harus menilai dampak dari penambahan indeks untuk semua aplikasi dan tidak hanya menyempurnakan permintaan tunggal dalam ruang hampa. Ini bisa menjadi tugas yang berat tapi bermanfaat.
Indexing.JPG
            Proses pengindeksan bisa secara manual ataupun secara otomatis. Dewasa ini, sistem pengindeksan secara manual mulai digantikan oleh sistem pengindeksan otomatis. Adapun tahapan dari pengindeksan adalah sebagai berikut:
1. Tokenozation Dokumen yaitu proses pengambilan kata-kata dari kumpulan dokumen.
2. Penghapusan Stoplist yaitu proses pembuangan kata buang seperti: a, an, is, then, with, dan sebagainya.
3. Stemming yaitu proses penghilangan/ pemotongan dari suatu kata menjadi bentuk dasar. Kata “diadaptasikan” atau “beradaptasi” mejadi kata “adaptasi” sebagai istilah.
4. Term Weigthing yaitu proses pembobotan term dengan melihat frekuensi kemunculan kata pada setiap dokumen. Untuk lebih detailnya, pembobotan dijelaskan pada sub bab berikutnya.

-          Index Overloading
            Kinerja query dapat ditingkatkan dalam situasi tertentu dengan melakukan overloading indeks dengan kolom tambahan. Indeks biasanya didasarkan pada klausa WHERE SQL SELECT pernyataan. Sebagai contoh, perhatikan pernyataan SQL berikut.
select emp_no, last_name, salary
from employee
where salary > 15000.00
;
            DBA harus mempertimbangkan overloading indeks untuk mendorong indeks-satunya akses saat beberapa query bisa mendapatkan keuntungan dari indeks atau saat permintaan individu sangat penting.

Ø Denormalization
            Cara lain untuk mengoptimalkan kinerja akses database untuk denormalize tabel. Denormalization telah dibahas secara rinci dalam Bab 4, jadi kami tidak akan membahas topik secara mendalam di sini. Cukuplah untuk mengatakan, denormalization, kebalikan dari normalisasi, adalah proses menempatkan satu fakta di banyak tempat. Ini mempercepat pengambilan data dengan mengorbankan modifikasi data. Denormalizing tabel bisa menjadi keputusan yang baik ketika desain yang benar-benar normal tidak tampil maksimal.

            Satu-satunya alasan untuk pernah denormalize desain database relasional adalah untuk meningkatkan kinerja. Sebagaimana dibahas dalam Bab 4, Anda harus mempertimbangkan pilihan berikut:
• Prejoined tabel-ketika biaya bergabung adalah mahal.
• Laporan table-saat kritis laporan khusus terlalu mahal untuk menghasilkan.
• Cermin tabel-tabel ketika diperlukan secara bersamaan oleh dua jenis lingkungan.
• tabel-saat Berpisah kelompok yang berbeda menggunakan bagian yang berbeda dari meja.
• Gabungan tabel-untuk mengkonsolidasikan satu-ke-satu atau satu-ke-banyak hubungan ke tabel tunggal.
• Tabel-to Kecepatan mendukung hirarki seperti tagihan-of-bahan atau struktur pelaporan.
• denormalization-to Fisik mengambil keuntungan dari karakteristik DBMS tertentu.

Anda mungkin juga mempertimbangkan
• Menyimpan data yang berlebihan dalam tabel untuk mengurangi jumlah meja bergabung diperlukan.
• Menyimpan kelompok berulang dalam satu baris untuk mengurangi I / O dan mungkin ruang disk.
• Menyimpan data diturunkan untuk menghilangkan perhitungan dan algoritma mahal.

Denormalization Field Map
DenormalizationProcess

image
                          Dari Tabel Order Details

image
Beralih ke bagian Bidang Peta Denormalization, dan masukkan peta bidang berikut:
dbo.Orders => dbo.Employees 
FirstName 
HomePhone

Tekan Finish untuk menyimpan perubahan.

Ø Clustering

            Sebuah meja berkerumun akan menyimpan baris yang secara fisik pada disk dalam rangka kolom khusus. Clustering biasanya ditegakkan oleh DBMS dengan indeks clustering. Pengelompokan Indeks pasukan baris tabel untuk disimpan dalam urutan menaik oleh kolom diindeks. Urutan kiri ke kanan dari kolom sebagaimana didefinisikan dalam indeks, mendefinisikan urutan menyusun untuk clustered index. Hanya ada satu urutan pengelompokan per tabel (karena secara fisik data dapat disimpan dalam satu urutan).

            Gambar 11-2 menunjukkan perbedaan antara berkerumun dan unclustered data dan indeks, indeks berkerumun berada di atas, indeks unclustered adalah di bagian bawah. Seperti yang Anda lihat, entri pada halaman daun indeks atas dalam urutan sekuensial-dengan kata lain, mereka berkerumun. Clustering meningkatkan kinerja query yang mengakses data secara berurutan karena lebih sedikit I / Os perlu dikeluarkan untuk mengambil data yang sama.
Figure 11-2. Clustered and unclustered indexes

            Tergantung pada DBMS, data mungkin tidak selalu secara fisik dipertahankan dalam urutan pengelompokan yang tepat. Ketika urutan pengelompokan telah didefinisikan untuk tabel, DBMS akan bertindak dalam satu dari dua cara untuk menegakkan pengelompokan:

1. Ketika baris baru dimasukkan, DBMS fisik akan manuver baris data dan halaman agar sesuai dengan baris baru ke urutan pengelompokan didefinisikan; atau
2. Ketika baris baru dimasukkan, DBMS akan mencoba untuk menempatkan data ke urutan pengelompokan didefinisikan, tetapi jika ruang tidak tersedia pada halaman yang dibutuhkan data dapat ditempatkan di tempat lain.

            DBA harus belajar bagaimana DBMS mempertahankan clustering. Jika DBMS beroperasi seperti dalam skenario kedua, data dapat menjadi unclustered dari waktu ke waktu dan memerlukan reorganisasi. Sebuah diskusi rinci reorganisasi database yang muncul kemudian dalam bab ini. Untuk saat ini, meskipun, kembali ke diskusi kita tentang clustering.
            Tabel Clustering yang diakses secara berurutan adalah praktik yang baik. Dengan kata lain, indeks berkerumun baik untuk mendukung akses jangkauan, sedangkan indeks unclustered lebih baik untuk mendukung random mengakses. Pastikan untuk memilih kolom pengelompokan bijaksana. Gunakan indeks berkerumun untuk situasi berikut:

• Gabung kolom, untuk mengoptimalkan SQL bergabung di mana beberapa baris sesuai untuk satu atau kedua tabel berpartisipasi dalam bergabung
• kolom kunci asing karena mereka sering terlibat dalam bergabung dan DBMS mengakses nilai-nilai kunci asing selama integritas referensial deklaratif memeriksa
• Predikat dalam WHERE clause
• kolom Rentang
• Kolom yang tidak berubah sering (mengurangi fisik reclustering)
• Kolom yang sering dikelompokkan atau diurutkan dalam pernyataan SQL

            Clustering umumnya tidak dianjurkan untuk kolom primary key karena kunci utama adalah, menurut definisi, unik. Namun, jika rentang baris sering dipilih dan diperintahkan oleh nilai kunci primer, indeks pengelompokan mungkin bermanfaat.

Ø Interleaving Data

            Bila data dari dua tabel sering bergabung, dapat masuk akal untuk fisik Interleave data ke dalam struktur penyimpanan fisik yang sama. Hal ini dapat dilihat sebagai bentuk khusus clustering (dan, pada kenyataannya, Oracle menggunakan cluster istilah untuk mendefinisikan data interleaved). Interleaving Data tercakup dalam Bab 4 dan disebutkan di sini sebagai teknik tuning kinerja untuk mempertimbangkan.


Gambar. Interval Data

Ø Free Space

            Ruang bebas, kadang-kadang disebut faktor pengisian, bisa digunakan untuk meninggalkan sebagian dari tablespace atau indeks kosong dan tersedia untuk menyimpan data yang baru ditambahkan. Spesifikasi ruang bebas dalam tablespace atau indeks dapat mengurangi frekuensi reorganisasi, mengurangi pertentangan, dan meningkatkan efisiensi penyisipan. Setiap DBMS menyediakan metode menentukan ruang bebas untuk objek database CREATE dan ALTER pernyataan. Sebuah parameter khas adalah PCTFREE, di mana DBA menentukan persentase setiap halaman data yang harus tetap tersedia untuk menyisipkan masa depan. Parameter lain yang mungkin adalah FREEPAGE, di mana DBA menunjukkan jumlah halaman tertentu setelah halaman benar-benar kosong yang tersedia.

            Memastikan jumlah yang tepat ruang bebas untuk setiap objek database menyediakan manfaat sebagai berikut :
• Sisipan cepat bila ruang bebas yang tersedia.
• Sebagai baris baru dimasukkan, mereka dapat dikelompokkan dengan baik.
• Variabel-panjang baris dan baris diubah memiliki ruang untuk memperluas, berpotensi mengurangi  jumlah baris direlokasi.
 • sedikit baris pada halaman hasil di concurrency lebih baik karena kurang data tidak tersedia untuk pengguna lain ketika halaman terkunci.

Namun, ruang bebas juga memiliki beberapa kelemahan :
• persyaratan penyimpanan Disk lebih besar.
• Memindai memakan waktu lebih lama.
• sedikit baris pada halaman dapat memerlukan lebih banyak I / O operasi untuk mengakses informasi yang diminta.
• Karena jumlah baris per halaman menurun, efisiensi caching data dapat berkurang karena lebih sedikit baris yang akan diambil per I / O.

            DBA harus memantau ruang bebas dan memastikan bahwa jumlah yang sesuai didefinisikan untuk setiap objek database. Jumlah yang benar ruang bebas harus didasarkan pada :
• Frekuensi sisipan dan modifikasi
• Jumlah akses sekuensial dibandingkan random
• Dampak mengakses data unclustered
• Jenis pengolahan
• Kemungkinan baris chaining, migrasi baris, dan halaman perpecahan

 Pada GUI yang ditampilkan,
 Select Installation Method, Pilih Basic Installation, kemudian isikan :

1
2
3
4
5
# Oracle Home Location: "/u01/app/oracle/product/10.2.0/db_1"
# Installation Type: "Enterprise Edition 1.3 GB"
# UNIX DBA Group: "dba"
# Checklist pada "Create Starter Database", isikan Global Database Name ("orcl" — ses
Gambar.Proses Free Space pada Oracle

Ø Compression

            Kompresi dapat digunakan untuk mengecilkan ukuran database. Dengan mengompresi data, database membutuhkan penyimpanan disk sedikit. Beberapa DBMS memberikan pilihan DDL internal untuk kompres file database, perangkat lunak pihak ketiga yang tersedia untuk mereka yang tidak menyediakan fitur tersebut.
            Bila kompresi yang ditentukan, data algoritmik dikompresi pada penyisipan ke dalam database dan didekompresi ketika dibaca. Membaca dan menulis data terkompresi mengkonsumsi sumber daya CPU lebih daripada membaca dan menulis data terkompresi: DBMS harus mengeksekusi kode untuk kompres dan dekompresi data sebagai pengguna insert, update, dan membaca data.
            Namun, kompresi bukan merupakan pilihan untuk setiap indeks database atau tabel. Untuk jumlah data yang lebih kecil, adalah mungkin bahwa sebuah file terkompresi akan lebih besar dari file terkompresi. Hal ini terjadi karena beberapa DBMSs dan algoritma kompresi memerlukan kamus internal untuk mengelola kompresi. Kamus berisi statistik tentang komposisi data yang dikompres. Untuk jumlah sepele data, ukuran kamus mungkin lebih besar daripada jumlah penyimpanan diselamatkan oleh kompresi.
Contoh  Gambar.Proses Compression


Ø File Placement and Allocation
            Lokasi dari file berisi data untuk database dapat memiliki dampak yang signifikan terhadap kinerja. Database adalah sangat I / O intensif, dan DBA harus melakukan segala upaya untuk meminimalkan biaya disk fisik membaca dan menulis.

Disiplin ini memerlukan :
• Memahami pola akses yang terkait dengan setiap bagian dari data dalam sistem
• Menempatkan data pada perangkat disk fisik sedemikian rupa untuk mengoptimalkan kinerja

            Pertimbangan pertama untuk penempatan berkas pada disk untuk memisahkan indeks dari data, jika memungkinkan. Query database sering diperlukan untuk mengakses data dari kedua tabel dan indeks di atas meja itu. Jika kedua file ini berada pada perangkat disk yang sama, penurunan kinerja mungkin. Untuk mengambil data dari disk, lengan bergerak di atas permukaan disk untuk membaca blok fisik data pada disk. Jika satu operasi akan mengakses data dari file pada perangkat disk yang sama, latency akan terjadi, membaca dari satu file akan harus menunggu sampai membaca dari file lain diproses. Tentu saja, jika DBMS menggabungkan indeks dengan data dalam file yang sama, teknik ini tidak dapat digunakan.

            Aturan lain untuk penempatan file untuk menganalisis pola akses aplikasi Anda dan memisahkan file untuk tabel yang sering diakses bersama-sama. DBA harus melakukan ini untuk alasan yang sama ia harus memisahkan file indeks dari file tabel.

            Pertimbangan terakhir untuk menempatkan file pada perangkat disk yang terpisah terjadi ketika sebuah tabel tunggal disimpan dalam beberapa file (partisi). Adalah bijaksana dalam hal ini untuk menempatkan setiap file pada perangkat disk yang terpisah untuk mendorong dan mengoptimalkan operasi database paralel. Jika DBMS dapat pecah query untuk menjalankannya secara paralel, menempatkan beberapa file untuk tabel dipartisi pada perangkat disk yang terpisah akan meminimalkan latency disk yang.
Ada beberapa File Placement and Allocation untuk database,yaitu :
ü  Database Log Placement [Database Log Penempatan]
ü  Distributed Data Placement [Distributed Penempatan data]
ü  Disk Allocation [Disk Alokasi]

Ø Gambar. Proses File Placement and Allocation


Ø  Page Size (Block Size)
            Kebanyakan DBMS menyediakan kemampuan untuk menentukan halaman, atau blok, ukuran. Ukuran halaman yang digunakan untuk menyimpan baris tabel (atau lebih tepatnya, catatan yang berisi isi baris ditambah biaya overhead ada) pada disk. Sebagai contoh, perhatikan tabel membutuhkan baris yang 125 byte panjangnya dengan 6 tambahan byte overhead. Hal ini membuat setiap record 131 byte panjang. Untuk menyimpan 25 catatan pada halaman, ukuran halaman akan menjadi setidaknya 3275 byte. Namun, masing-masing DBMS membutuhkan beberapa jumlah halaman overhead juga, sehingga ukuran praktis akan lebih besar. Jika halaman overhead 20 byte, maka ukuran halaman akan menjadi 3295-yaitu, 3275 + 20 byte overhead.
Gambar. Page size/ Ukuran


Ø Database  Reorganization
            Teknologi relasional dan SQL membuat modifikasi data yang mudah. Hanya mengeluarkan pernyataan INSERT, UPDATE, atau DELETE dengan klausa WHERE yang sesuai, dan DBMS mengurus aktual data navigasi dan modifikasi. Dalam rangka memberikan tingkat abstraksi, DBMS menangani penempatan fisik dan pergerakan data pada disk. Secara teoritis, hal ini membuat semua orang senang. Antarmuka programmer disederhanakan, dan RDBMS mengurus hard paruh memanipulasi penempatan data aktual. Namun, hal ini tidak sesederhana itu. Cara di mana DBMS mengelola data fisik dapat menyebabkan masalah kinerja selanjutnya.

Menentukan Kapan Reorganisasi :
            Statistik sistem katalog dapat membantu untuk menentukan kapan untuk menata objek database. Setiap DBMS menyediakan metode membaca isi database dan pencatatan informasi statistik tentang setiap objek database. Tergantung pada DBMS, informasi statistik ini disimpan baik dalam sistem katalog atau halaman khusus dalam objek database itu sendiri.

            Satu statistik yang dapat membantu DBA menentukan kapan untuk menata adalah rasio klaster. Rasio Cluster adalah persentase baris dalam tabel yang benar-benar disimpan dalam urutan clustering. Semakin dekat rasio cluster sampai 100%, yang lebih dekat sebenarnya urutan baris pada halaman data sesuai urutan clustering. Rasio klaster rendah menunjukkan pengelompokan buruk, dan reorganisasi mungkin diperlukan. Rasio klaster rendah, bagaimanapun, tidak mungkin menjadi penghalang kinerja jika mayoritas akses data query secara acak, bukan secara berurutan.

            Statistik lain indeks untuk menganalisis untuk menentukan apakah reorganisasi diperlukan adalah jarak antara halaman indeks daun, atau jarak daun. Jarak daun adalah perkiraan rata-rata jumlah halaman antara halaman daun berturut-turut dalam indeks. Kesenjangan antara halaman daun dapat berkembang sebagai data akan dihapus dari indeks atau sebagai akibat dari halaman membelah. Tentu saja, nilai terbaik untuk jarak daun adalah nol, tapi mencapai jarak daun nol dalam prakteknya tidak realistis. Secara umum, semakin rendah nilai ini, semakin baik. Meninjau nilai dari waktu ke waktu untuk menentukan tanda-air yang tinggi untuk jarak daun yang akan menunjukkan bila indeks harus direorganisasi.
                                                Gambar. Proses  Reorganization/Reorganisasi


KESIMPULAN :

            Aplikasi dan data yang terus berubah. Pengguna memerlukan waktu respon instan dan 24/7 ketersediaan. Struktur database yang mendukung aplikasi ini harus terjaga baik untuk memastikan kinerja aplikasi yang optimal. Database desain yang tepat, sesuai pilihan clustering, dan reorganisasi database berdasarkan statistik membantu untuk memberikan database yang efisien. Selanjutnya, DBA dapat memastikan kinerja database dengan mengotomatisasi proses ini untuk mengurangi risiko dan kesalahan yang terkait dengan pemeliharaan database pengguna.