Vincent membuat beberapa poin hebat dari peringatan IOT, tetapi Anda bisa mendapatkan beberapa manfaat signifikan dari mereka.
Secara pribadi saya pikir mereka secara signifikan kurang digunakan di Oracle dan harus dipertimbangkan lebih luas - bukan hanya sebagai solusi untuk masalah kinerja. Karena Anda harus membuat ulang tabel untuk mengkonversi antara IOT dan heap, ini adalah perubahan yang tidak mungkin terjadi pada database yang selalu digunakan, banyak digunakan kecuali masalah kinerja yang parah.
Martin Widlake memiliki serangkaian posting hebat tentang IOT. Ada beberapa manfaat signifikan yang bisa Anda dapatkan dengan menggunakannya:
- Mengurangi IO fisik dan logis secara signifikan
- Penggunaan cache buffer yang lebih efisien, yang dapat menguntungkan kinerja sistem secara luas
- Ruang tersimpan karena Anda hanya mempertahankan indeks, bukan tabel juga (kecuali Anda memiliki segmen melimpah)
Namun, untuk mendapatkan manfaat ini, Anda memerlukan tabel di mana Anda (hampir) selalu menyertakan kolom utama kunci utama dalam kueri dan Anda kemungkinan akan mengambil beberapa baris sekaligus. Beberapa contoh umum dari tabel tersebut adalah:
- Master-multiple detail seperti yang sering ditemukan dalam pesanan - item pesanan, faktur - garis faktur dll.
- Tabel resolusi banyak-ke-banyak yang biasanya ditanya "satu arah". misalnya dalam sebuah
customer_addressestabel, jauh lebih umum untuk menemukan semua alamat untuk pelanggan, daripada semua pelanggan untuk alamat.
Kelemahannya adalah memasukkan data lebih lambat, jadi Anda harus mempertimbangkan biaya dan manfaatnya. Pada akhirnya, Anda harus mengetahui data Anda dan memahami bagaimana data itu digunakan yang seharusnya memandu keputusan.