DB2 Database Partition – Planning

Ada beberapa tahap dalam merencanakan database partition

1. Menentukan jumlah partisi
DB2 dapat mensupport hingga 1000 partisi. Ada beberapa hal yang perlu diperhatikan jika inign menggunakan partisi.
- besarnya data masing-masing partisi
Ukurannya tidak boleh terlalu besar karena akan mempengaruhi kinerja. Beberapa faktor yang harus diperhatikan untuk menentukan besarnya data adalah kompleksitas query, response time dan karakteristik applikasi yang digunakan.

- CPU, memory dan disk yang tersedia
Minimal 1 CPU per partisi, namun jika terjadi 20-30 concurrent query maka usahakan menggunakan lebih banyak CPU dan memory.

- tipe workload
Harus dipertimbangkan apakah workload merupakan OLTP atau OLAP.

- besarnya log transaksi per partisi
Masing-masing partisi akan menghasilkan log transaksi. Sebaiknya gunakan disk tercepat dan terpisah untuk menjaga kinerja.

- ukuran table terbesar di masing-masing partisi
Ada arsitektural limit yaitu
64GB -> 4K page size
128GB -> 8K
256GB -> 16K
512GB -> 32K
Jika limit tersebut tidak mencukupi, gunakan partisi.

- waktu yang dibutuhkan untuk recovery
Makin banyak data di masing-masing partisi maka makin lama waktu untuk recovery. Namun dengan adanya partisi, masing-masing partisi dapat direcover secara sendiri-sendiri.

- waktu yang dibutuhkan untuk batch jobs dan maintenance
Query dan utility yang ada di DB2 dapat memanfaatkan kelebihan dari paralelism. Semakin banyak jumlah partisi maka semakin baik untuk proses paralel.

2. Menentukan logical atau physical partition
Hal ini tergantung sumber daya yang ada, bisa menggunakan SMP, MMP atau kombinasi keduanya.

3. Partition Group
Secara default ada 3 grup yang dibentuk yaitu IBMCATGROUP, IBMDEFAULTGROUP, dan IBMTEMPGROUP.

4. Distribution maps dan distribution keys
Distribution map digunakan untuk mencari data.
Distribution key merupakan kolom atau sekumpulan kolom dari table yang digunakan untuk menentukan distribusi data.
Menentukan distribution key merupakan hal penting untuk distribusi data. Oleh karena itu untuk memilih distribution key yang bagus, perlu diperhatikan beberapa hal seperti
- merupakan kolom yang sering dijoin
- utamakan kolom integer dibandingkan character dibandingkan decimal
- gunakan sedikir mungkin jumlah kolom

5. Table spaces dan container
Table kecil dengan 100rb record atau 20MB sebaiknya diletakkan di 1 tablespace dalam 1 partisi. Jika table besar letakkan di beberapa partisi.
Semakin banyak jumlah container per table space, performance akan semakin baik.

6. Mengukur table
Mengukur besar table dapat dilakukan dengan mengetahui jumlah record dan byte length. Kemudian tergantung jumlah mesin dan data partition yang ada, table di distribusi secara merata.

7. Buffer pools
Beberapa pertimbangan dalam membuat buffer pools
- untuk DSS, buat buffer pool yang dedicated untuk temporary table space.
- untuk OLTP, buat buffer pool dedicated untuk table yang sering dibaca
- buat buffer pool untuk index jika data sering diakses dengan index

8. Catalog partition
9. Coordinator partition

10. data placement dan table join strategy
Penempatan data sangat mempengaruhi strategi join. Ada 3 strategi join yang digunakan DB2 optimizer
- collocated joins
- directed joins
- broadcast joins

Sumber
Database Partitioning,Table Partitioning, and MDC for DB2 9

This entry was posted in DB2 and tagged , , , , . Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>