Hash partition and data deletion
rahulrasNov 22 2011 — edited Nov 24 2011Hi All,
I am on 11.2 on Linux (64 bit).
I have a big table, about 300M records. There is a need that, we delete some of the records on daily basis ( tens of thousands every day or may be more). Also, there are indexes on the table, which are pretty huge as well.
I am thinking of hash partitioning this table, to start with. Purely for making it more managable and also there is no column on which I can range or list partition this one.
Now, if I do it this way,
1) Make it a hash partitioned table with, say 256 or 512 partitions
2) I assume that inserted data will be evenly distributes among those partitions. Am I correct ??
3) Now starts the data deletion. This will delete 10s of thousands records every day (even 100k). So, we don't know which partitions they are deleted from
4) Big question for me is, after deletion, different partitions may have very different number of records. What will be Oracle's approach to the newly inserted records in this case. I guess, Oracle will keep inserting newly inserted records evenly, but because of the un-even nature of deletion, partitions may end up having very different number of records anyway. Is my understanding correct here ????
Please help me out on my questions in No.2 and 4.
Thanks in advance