You are on page 1of 10

Oracle Partitioning for PeopleSoft Applications

An Oracle White Paper March 2010

Oracle Partitioning for PeopleSoft Applications

EXECUTIVE OVERVIEW

Oracle Partitioning provides significant benefits to PeopleSoft Applications by enhancing manageability and performance. Partitioning allows tables, indexes and index-organized tables to be subdivided into smaller pieces, enabling these database objects to be managed and accessed at a finer level of granularity. Oracle Partitioning is entirely transparent to PeopleSoft Applications and can be applied without any changes to underlying APIs, resulting in immediate performance and manageability benefits. Only simple modifications to the standard PeopleSoft upgrade process are necessary to preserve the partitioning modifications seamlessly throughout an upgrade process

INTRODUCTION

Partitioning provides significant benefits to a wide variety of applications by improving manageability, performance, and availability. It is not unusual for partitioning to improve the performance of certain queries or maintenance operations by an order of magnitude. Moreover, partitioning can greatly simplify common administration tasks. Partitioning achieves this by allowing query manipulations of smaller chunks of data. PeopleSoft Applications are an ideal candidate to benefit from Oracle Partitioning. Partitioning can be used to obtain better concurrency as well as to decrease the number of rows to be processed through partition pruning and partition-wise joins.

Oracle Partitioning for Peoplesoft Applications

Page 2

WHAT IS PARTITIONING

Partitioning allows a table, index or index-organized table to be subdivided into smaller pieces. Each piece of a database object is called a partition. Each partition has its own name, and may optionally have its own storage characteristics. From the perspective of a database administrator, a partitioned object has multiple pieces, which can be managed either collectively or individually. This gives the administrator considerable flexibility in managing the partitioned object. However, from the perspective of the application, a partitioned table is identical to a nonpartitioned table; no modifications to application queries are necessary when accessing a partitioned table. Oracle provides a complete set of SQL commands for managing table partitioning. These include commands for adding new partitions, dropping partitions, splitting partitions, and merging partitions

TYPES OF PARTITIONING

Tables are partitioned using a 'partitioning key', a set of columns that determine in which partition a given row will reside. Oracle Database 10g Release 2 provides six techniques for partitioning tables:

Range Partitioning
A range of values of the partitioning key specifies each partition. Data can be divided on the basis of ranges of column values.

List Partitioning
Each partition is specified by a list of values of the partitioning key (for a table with a region column as the partitioning key, the 'North America' partition may contain values 'Canada', 'USA', and 'Mexico')

Hash Partitioning
A hash algorithm is applied to the partitioning key to determine the partition for a given row.

Oracle Partitioning for Peoplesoft Applications

Page 3

Composite Range-Hash Partitioning


A combination of Range and Hash partitioning techniques, whereby a table is first range-partitioned, and then each individual range-partition is further subpartitioned using the hash partitioning technique.

Composite Range-List Partitioning


A combination of Range and List partitioning techniques, whereby a table is first range-partitioned, and then each individual range-partition is further subpartitioned using the list partitioning technique.

INDEX PARTITIONING

Local Indexes
A local index is an index on a partitioned table that is partitioned in the exact same manner as the underlying partitioned table. Each partition of a local index corresponds to one and only one partition of the underlying table.

Global Partitioned Indexes


A global partitioned index is an index on a partitioned or non-partitioned table that is partitioned using a different partitioning-key from the one used to partition the table. Global-partitioned indexes can be partitioned using range or hash partitioning. For example, a table could be range-partitioned by month and have twelve partitions, while an index on that table could be range-partitioned using a different partitioning key and have a different number of partitions.

Global Non-Partitioned Indexes


A global non-partitioned index is essentially identical to an index on a nonpartitioned table. The index structure is not partitioned.

Global Indexes Vs Local Indexes


In general, local indexes perform better when partition elimination takes place and the expected volume of data processed is significant. If these conditions are not met, then global index might perform better. Partitioned tables can have (local and

Oracle Partitioning for Peoplesoft Applications

Page 4

global) partitioned and non-partitioned indexes. An unpartitioned table can have a global partitioned index.

PARTITION PRUNING

For each SQL statement, depending on the selection criteria specified, unneeded partitions or subpartitions can be eliminated. This is called Partition Pruning. Partition Pruning is the simplest and the most powerful way to improve performance using partitioning. It helps to limit the amount of data to be operated on, thus, providing orders of magnitude performance improvement.

PARTITION-WISE JOINS

Partitioning can also improve performance of multi-table joins by using a technique known as partition-wise joins. Partition-wise joins can be applied when two tables are being joined together, and both of these tables are partitioned on the join key. Partition-wise joins break a large join into smaller joins completing the overall join in less time.

ADVANTAGES OF PARTITIONING FOR PEOPLESOFT

Partitioning improves availability and manageability of PeopleSoft Applications containing large tables such as Global Payroll application. If the table is range partitioned by Fiscal_Year and Accounting_Period, old partitions (partitions that contain data of closed fiscal year and accounting period) can be put on Read Only tablespaces, which will reduce time and space required for the nightly backup. Partitioning helps reduce the number of scanned rows with combination partitioning in such applications as Global Consolidations and Accounts Payables. Partitioning could be used for data management when applications load data in chunks. Each chunk can be loaded into a new partition without a

Oracle Partitioning for Peoplesoft Applications

Page 5

need to modify the whole table. Data purge can happen in similar manner: partition can be dropped without using a lot of database resources. Partitioning could be used when running PeopleSoft batch process in parallel. Isolating each job stream in its own partition on large, highvolume transaction tables reduces I/O contention.

GUIDELINES FOR PARTITIONING UNDER PEOPLESOFT APPLICATIONS

Determine candidate tables for partitioning by reviewing the biggest tables in the database that cause performance degradation as they grow beyond the application's scalability. Determine the likely candidates for partitioning keys by doing the followings: 1. 2. 3. Ask the users what processes or reports they run against those tables that are slow Check the Run Control of the above processes to determine their processing criteria Check the AWR report for bad performing Sqls. The WHERE clause of these Sqls can help to identify the partitioning criteria.

Analyze job process and chose the partitioning based on the data access pattern. Choose a partition key such that the data is evenly distributed across partitions. If there is a case when most of the data is located in one partition, consider composite partitioning using hash partition. Always use DBMS_STATS package to analyze partitioned tables. Bitmap indexes can be created on partitioned tables but they must be declared as local indexes. Local indexes offer better availability during maintenance operations on the partitions. They also provide better performance when running huge jobs in parallel.

Oracle Partitioning for Peoplesoft Applications

Page 6

UPGRADE IMPACT

Implementing partitioning in PeopleSoft Applications does not require changes to the underlying application DML statements but it does require changes to delivered object creation and upgrade scripts. If implemented, the changes need to be made to the delivered DDL scripts (or scripts generated from PeopleSoft metadata object definitions during the upgrade) to accommodate table and index partitioning. Since PeopleSoft does not currently maintain partitioning information within the PeopleTools metadata, the PeopleSoft upgrade process is not aware of the customized partitioning. Thus, customers would lose the partitioning customization during the upgrade. This loss can be avoided by reapplying the partitioning customization during the upgrade process. The step(s) where the partitioning customization could be reapplied are shown in red below

In general, PeopleSoft upgrades are delivered as 'project files' containing new or updated PeopleSoft 'metadata' definitions for database objects as well as the corresponding binaries, which utilize the newly defined objects.

At a high level, the upgrade process flows like this: 1. If customers perform only a PeopleSoft Tools upgrade, they are provided with RELxxx.SQL scripts where XXX indicates the PeopleTools release number. RELxxx.SQL scripts are static scripts that are delivered with each PeopleTools version. For example, for the upgrade to PT8.49 there is a script called REL849.SQL. The RELxxx.SQL script must be run as the first step during the upgrade, otherwise the new codeline corresponding to that specific upgrade (ex. PT8.48 to PT8.49 Tools upgrade) cannot be used to perform the rest of the upgrade.

If necessary, these RELxxx.SQL scripts could be edited for additional storage parameters including partitioning before being executed. Partitioning is not recommended for PeopleTools metadata tables. In general, there is not enough data to provide a significant benefit from partitioning.

The following are common steps in the PeopleSoft UPGRADE

Oracle Partitioning for Peoplesoft Applications

Page 7

templates for both PeopleTools only and PeopleSoft Applications upgrades: Note: The numbering notation below is an example and does not denote the actual upgrade steps. 2. GENERATE ALTER SCRIPTS step. At this step all ALTER scripts for the table modifications are generated.

3. EDIT GENERATED ALTER SCRIPTS for SITE SPECIFIC

STORAGE PARAMETERS step. This is a STOP point where Database Administrator or PeopleSoft Administrator can edit scripts to add partitioning before UPGRADE is finally applied.
4. RUN ALTER SCRIPTS step using SQLPLUS. This step performs the upgrade.

If these steps are followed, the partitioned information will be preserved. The following is a recommendation for upgrading your PeopleSoft system if you have partitioned objects: Document all objects you have partitioned Analyze the upgrade impact to the partitioned objects, if any. For each impacted object, modify PeopleSoft upgrade scripts (delivered or generated) to preserve partitioning information. Perform upgrade. Regenerate the objects. TEST! TEST! TEST!

CONCLUSION

Partitioning can greatly enhance performance, manageability and availability of PeopleSoft Applications. PeopleSoft Applications can take full advantage of all partitioning benefits without any need for application modification. Thus, adoption of Oracle Partitioning will lead to better performing applications and greater customer satisfaction.

Oracle Partitioning for Peoplesoft Applications

Page 8

Oracle Partitioning for Peoplesoft Applications

Page 9

Oracle Partitioning for PeopleSoft Applications August 2007 Author:Anna Leyderman Contributing Authors: Jerry Zarate , Hermann Baer Oracle Corporation World Headquarters 500 Oracle Parkway Redwood Shores, CA 94065 U.S.A. Worldwide Inquiries: Phone: +1.650.506.7000 Fax: +1.650.506.7200 oracle.com Copyright 2007, Oracle. All rights reserved. This document is provided for information purposes only and the contents hereof are subject to change without notice. This document is not warranted to be error-free, nor subject to any other warranties or conditions, whether expressed orally or implied in law, including implied warranties and conditions of merchantability or fitness for a particular purpose. We specifically disclaim any liability with respect to this document and no contractual obligations are formed either directly or indirectly by this document. This document may not be reproduced or transmitted in any form or by any means, electronic or mechanical, for any purpose, without our prior written permission. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners.

You might also like