Oracle High Performance Tuning for 9i and 10g

This chapter will cover Oracle Partitioning and some parallel processing within those partitions. There are also various unique actions which can be performed with partitioning, such as moving and exchanging entire chunks of data at the speed of a Unix mv (move) command. Obviously the storage subsystem determines the speed of a move command. However, separate partitions can be plugged in and out of a partitioned object. We will start with a brief introduction as to what exactly can be done with partitioning, following on with some experimentation showing the performance benefits of Oracle Partitioning.
Oracle Partitioning is the splitting of data sets usually into separate physical files using separate partition tablespaces. However, partitions can actually co-exist in the same physical file. Separating partitions into separate datafiles is not essential with certain types of RAID array architectures. Separate partitions are accessible in parallel, individually or in groups. Why is partitioning relevant to tuning? Partitioning can be used to break large tables into smaller subsets. Processing of smaller subsets of data separately and in parallel is potentially much faster than serial processing on very large data sets. Partitioning and parallelism generally only applies to very large databases on high end multiple CPU server platforms. Figure 17.1 shows a picture of how partitioning can be used to split a physical datafile containing a table into multiple physical datafiles mapped individually to separate partitions within that table.