Partitioning in Oracle(live blog-growing with me)
Single-Level Partitioning
- Range- if data can be divided into ranges eg. 0-100, 100-200 and so on. Important thing is the access by queries, to take advantage of partition pruning or partition level access.
- Hash- Lot of data and I know the columns frequently used to access but data doesn't fit in type of range or list.. I this case just divide the total data into finite partitions(10,20 or more), generally would depend on size of the table and system performance. To start 100k per partition you can start with. Need to experiment a little bit to get to a optimal number.
- List- Lot of data but can be divided per list eg. Finite list of zip codes, regions, types etc. Other criteria still apply like access by list of values and quantity of data.
Composite Partitioning: or sub partition is again another way to divide the data into further smaller manageable pieces and improve access speed to get required data as quickly as possible using partition keys and other required conditions.
- Composite Range-Range Partitioning
- Composite Range-Hash Partitioning
- Composite Range-List Partitioning
- Composite List-Range Partitioning
- Composite List-Hash Partitioning
- Composite List-List Partitioning
- Composite Hash-Hash Partitioning
- Composite Hash-List Partitioning
- Composite Hash-Range Partitioning
Considerations:
1. Size of table and number of rows.2. Queries accessing the table and their frequency, specifically the conditional clause. to take advantage of partition pruning.
3. Can application/queries be modified to take advantage of partitioning.
4. Any retention plan for the data/maintainence of data.
Important Consideration for Vendor Software(Oracle EBS Suite/Sieble/etc)
- Evaluation of partition, if it can be done from vendor(warranty consideration).
- Approval must from vendor for warrenty reasons.
- Safer to attempt only for custom objects.
- Better ask than be sorry later, always ask vendor, is it do-able or are there any concerns. Vendor has experience dealing with multiple customers, they are in better position to confirm than any of us,
Operations:
http://www.oracle.com/webfolder/technetwork/tutorials/obe/db/12c/Partitioning/12c_parti.html