You're all crazy.
Quote:
1) indexes are (much) smaller than tables, so if you use uniform space allocation they perhaps should go in different TS's.
Sure, seperate them on the basis that they are different sizes, but small indexeson a large tables can still go in the same TS as small tables.
Quote:
2) this is one way to spread load across disks (hardware striping is better but we can't all do that).
How about this - for each TS create enough data files to spread the load for that TS over all the available devices. LMT's with uniform extents will do this automatically, by allocating exents in a round-robin fashion.
Quote:
3) (actually an example of #2) Reading a row via index might require (say) 2 I/O's on the index and 1 on the table - if there is a FTS running at the same time, you win if they are on different disks.
Sure, but what if that requires that the TS for the full table scan be limited to particular devices, and that indexes go on another device? You could choke the FTS by doing that, whereas spreading the TS over all devices would improve performance.
Quote:
Agreed that the reads and writes are sequential, during select it will go to index first and then to table, and during inserts, first in table then in index. So seperating them on tablespaces on same disk won't do any good.
But if there are simultanious inserts and selects from many users then i think having indexes and tables on seperate tablespaces on seperate disks will get the benefit.
If it is not beneficial to put tables and indexes on different drives for a single operation, why would it be beneficial for 100's of simultaneous operations? Your aim ought to be to spread the load as evenly as possible over all devices, and you do that by spreading indexes and tables each over all devices. There is therefore no rationale for dedicating TS's to either indexes of tables.
Quote:
And morever i feel that by keeping indexes and tables on seperate tablespaces, i can manage them better.
One example that comes to my mind.
Say i have a very highly volatile table (lots of transaction going on all the time) having millions of rows in a tablespace. Now if i create an index on this same tablespace, won't this add up to the i/o being carried out by other online users.
Now if i were to create this index on another tablespace on seperate disk totally, at least it would reduce the inserts (but not the reads) on the same disk as the inserts would go to seperate disks altogether during the index creation...
Sure, but you've done that at the expense of permanently choking the i/o rate for the table, even when you were not creating the index. User's wouldn't notice the performance fall off due to index creation because their performance is already degraded! You finish creating the index, and the table still cannot support the i/o rate that it ought to by spreading it over all devices. A better solution is to create the index at a quiet time of day.