Daniel Stolf, August 31, 2009 - 4:17 pm UTC
"whenever you have a situation that would not benefit from them"
I'm sorry, but this answer could very well fit most of the questions you receive on your site :)
I think that what the original poster wanted to know is: What is it that makes IOTs good on some specific situations? And what is it that makes it so bad most of the time?
Would it be a problem when there's too much concurrent DML? Would it be a problem when there's too much data in a row besides de primary key?
Personally, I like to use IOTs in small, fixed values, parametrization tables...
Best regards,
Daniel Stolf
August 31, 2009 - 4:37 pm UTC
... I'm sorry, but this answer could very well fit most of the questions you
receive on your site :)
...
that is correct.
"when should i use a hammer" - that answer fits there too.
... What is it that makes
IOTs good on some specific situations? ...
but - he has the book - he quoted from the chaper, that ENTIRE chapter is "what they do, what they provide" with case studies.
... And what is it that makes it so bad most
of the time?
...
There is cost to organizing data - if you do not need data organized, do not pay that cost. That is what it comes down to. If the salient features of the IOT (of which the poster had total access to, they were written about extensively in that chapter he is referring to) do not apply to you - do not use them - there is a cost of holding everything in an index (that is actually discussed in that chapter as well).
The bottom line is - unless you can tell us why you chose the IOT, you probably shouldn't have chosen it.
I'd say the same about partitioning, unless you can enumerate a couple of measurable reasons you chose to partition - you probably should not have.
Same with clusters (hash and b*tree)
These structures all impose penalties to put data away - and can for certain access paths reduce the work needed to retrieve. If you do not have the case whereby that is true - do not utilize them (partitions can be used for things other than just retrieval like administrative things - dropping/truncating/adding partitions and so on)
for IOTs the major downsides are (cut and pasted from above)
It takes longer to insert into
You don't have good secondary index capabilities