What is Oracle partition - answers for very large data management

What is Oracle partition?
Oracle Partition is an option for Oracle database enterprise edition, It is an answer for very large data managment.
Partition is not difficult to understand though, It is just based on some common sense:

  • We could not move a house alone, but we could move a house of box by ourselves.
  • It is difficult to find one books out of one million, but finding books out of a hundred could be done.

Partition start with the above common sense for large data management:

  • Manageablity: each partition is a small piece of the whole table, we could copy, move or backup the small 'box' easily.
  • Performance: comparing to find one record for the whole table, query performance is improved finding the same record within a small 'partition' of the table(table partition pruning)

Partition technology
Before the partition technology , we used to use a similiar approach:
Suppose we could store our entire yearly data into different tables for different month, then we will have a bunch of tables which name is according to the month number. m1,m2,...m12. For SQL query, we will have to decide in our coding which table we want to use for the query. But query performance against all these 'month table' is better than query against an 'unpartition' large table. and we could backup each table separately, which also make the table more easy to manage.
A more advanced approach to use 'view' to joint all the 'month table' into one M. Then we will issue all the statement against this whole 'month table' M!
Partition also use these concepts but the concept is implemented by the database. When the table is partitioned, Programmer might not even be aware of the fact, which means that coding is more easier and we do not have to decide which 'month table' we want to use. We just provide the SQL statement, and Oracle choose the right 'month table' automatically and execute the statement only on that 'month table'. this technology is also called 'partition pruning'!
Of course , 'month table' is not the only way of partition your table, we could also partition the table by district, by serial number or other attribute of the table column. We could even use complex composite way of separating table into smaller piece(e.g. first month and then district). We wll just have to define the partition condition and the Oracle database wil do the rest of the work!
And we could still handle each partition separately, each maintenance statement only affect the partition and do not have affect on other partition!
Oracle partition - large data can not live withing it!