I have to delete larges amount of data by user request, ie, when a user press a button some PL/SQL will be executed to delete a certain set of data. Usually we can say that this set has approximately 10 million of rows. The table will have about 300 million of rows monthly and in this moment I don't know how the housekeeping will work on historic data. What do you suggest in order to make this the most efficient possible and also to be able to not blow the transaction log files and put the database down?
The delete is something so simple like:
delete from <table> where <field> = <value>
Where this field is not a key in the table.
****** EDIT ******
This is a operation that a user triggers. And has to run after the moment that the user press the button.
The table is partitioned by date (interval of months).
I made an edit in the original description. There will be an estimated 300M of rows monthly, 10M per day. So you can look at this as 30 loadings of 10M of rows per day that will be in the same partition (partition for that month), and I want to delete one (or more) specific loadings for that month (partition).
We are just beginning so what I can say is just estimated values.
Thanks in advance.