Sei sulla pagina 1di 5

Using Oracle Partitioning for Maximum Performance

Oracle E-Business Suite


Micah Deriso and Alan Davidson
Informatica and Avago Technologies

The Business Issue


Avago Technologies E-Business Suite R12 implementation was in need of sustainable performance and storage
management to help with ever increasing data growth. The challenge was to find a methodology that would
stabilize and improve application performance while maintaining high application up times and reducing the
overall cost of storage. Avago had two main goals for the project, which were to improve application performance
and insure high availability of mission critical and complex applications.

Avago E-Business Infrastructure:


Oracle E-Business Suite R12.1.3
Oracle Database 11gR1 (ASM file system and RAC enabled)
Oracle Enterprise Linux v5.4
Cisco UCS blades (4 node mid tier 4 node database tier)
EMC Celerra

Performance Improvement Options Considered


Hardware: We had already made an investment in the Cisco UCS blades from older server technology and our
analysis concluded that further investment would only yield marginal results for the substantial investment
required. Faster more expensive storage also only yielded marginal improvement. Both hardware based solutions
proved to be non-sustainable. While improvement was gained initially, performance would eventually return to
previous levels or get worse and more importantly, each hardware upgrade becomes more expensive across the
board. We went searching for a more sustainable solution.
Purge & Archive: After attending sessions at Oracle Collaborate and Open World we became interested in a Purge
& Archive solution. We initially considered purging of data using the Oracle Purges it quickly became obvious that
the business would not tolerate permanently deleting data. The additional human resources required maintaining
a historical inventory of the purged data and the monthly purging required led us to investigate packaged solutions
in the archive marketplace. We selected a tool and implemented it. Initially we had great success, removing the
data from the production database dramatically improved performance. Life was good. After the first couple of
years however, the true cost of archiving data became evident.
Most traditional database archiving approaches rely on three fundamental requirements: data must be eligible
to be archived (active vs. inactive), data must be deleted/moved out of the production database and in the case of
archiving, data needs to be available for future access needs. The removal of data from the production database
into an archive database is the common approach of these solutions that deliver the benefits of a smaller and
more performance driven environment. It is the deletion process and the added maintenance of a separate
repository that introduces another level of complexity for IT and business users and could be considered an
impediment to acceptance.

Using Oracle Partitioning for Maximum Performance


As data volumes grow and application data models become more complex, the solutions based on database row
deletes and moving aged data to a separate repository plateau in their ability to scale and support a 24/7 global
database application. As mentioned above, issuing database deletes tax the production database server not only in
CPU utilization, but also in excess storage writesone for the data file, a second for the archive log file, and a third
for any backup or remote disaster recovery copy. When an application supports a global operation, there are
limited off-peak windows to execute expensive delete commands.
In order to realize performance improvements or storage reduction benefits, database indexes need to be rebuilt
and tables need to be reorganized to reclaim unused blocks of storage. These processes potentially require taking
the database offline, which is usually not an option in a 24/7 operation.
Also, if the production database is patched during a routine maintenance process and changes the database table
definition, the data model in the separate repository needs to remain synchronized if end-user access combines
both production and archive data, introducing additional maintenance steps. For major releases such as Oracle EBusiness Suite R12, customers will be dependent on the archive vendor to provide the necessary companion
patches to ensure the correct changes were made to the archived data as the application is unaware that the
data exists. This can add a significant risk to an already fragile patch and upgrade process and should be a major
area of concern for current and future archive customers.
For businesses that require native application access to the aged data, database archiving solution providers
provide archive access through either a vendor specific ODBC/JDBC driver or via a database link to a separate
archive database. These interfaces, while providing access to archive data, introduce issues associated with slower
response times and potential security issues with database links. Additionally, there are additional management
complexities introduced as a result of having a separate archive database and interface a separate patch process
is required to keep both the production and archive database data models synchronized.
With the looming upgrade to R12 approaching we made the decision to abandon our archiving implementation
and went looking for a more permanent solution.
Database Partitioning as THE solution: We once again attended sessions at Oracle Open World and Collaborate
that espoused Database Partitioning as a method to optimize performance in the Oracle E-Business Suite and as
alternative to purge and archive. In these sessions and in doing research on Metalink we soon discovered that
partitioning our Oracle E-Business suite database was potentially the Holy Grail. What we discovered with
partitioning:
First, it is fully supported by Oracle:
From Oracles own web site: If custom partitioning causes a particular E-Business Suite flow or transaction to fail
and the failure is caused by standard Apps product code, it is considered a product defect, as Oracle Applications is
committed to being transparent to custom partitioning. Oracle Development will issue patches or workarounds for
all reported issues with standard Apps product code.
The benefits to partitioning are:

Divide disk I/O across disk drives, the more responsively SQL engines perform.

Partitioning greatly enhances database performance, which can be monitored and adjusted in a variety of
ways.

Read/write activity can be load balanced among disk drives/disk arrays.

Oracle cost-based optimizer recognizes partitions and can select information only from the correct
partitions with the specific data being requested.

The Oracle Parallel Server can divide work based on the number of partitions.

Backups are easier, recovery is shorter.

Oracle partitioning has many features that make the partitions easy to create, move, split, and so on.
2

Using Oracle Partitioning for Maximum Performance

Tuning is enhanced with the additional indexing features available.

This all sounded too good to be true. Well almost, while the benefits are all there in implementing partitioning in
the Oracle E-Business suite it became evident that analyzing the tables, deciding which ones needed partitioning,
how to partition, managing all the tables and partitions manually would be a monumental task and would require
a substantial investment in human engineering resources. Optimizing individual queries to take advantage of
particular partitioning schemes was going to be a monumental task.
Issues with manual database partitioning

Each module requires careful analysis of the data model

What column do you use for the partition key?

After partitioning even a few tables, maintenance becomes problematic

In depth knowledge of partitioning required to optimize performance

Performance will get worse in some queries if not properly implemented

Very difficult to administer across multiple modules of E-Business suite and hundreds of tables

When we performed the analysis of implementing partitioning on E-Business we realized that it was not a project
to take lightly and it had many side effects that caused us to abandon a traditional/manual partitioning project.
Fortunately we explored Oracle solution providers in the market, which led us to implement a next generation
strategy of Application Aware Partitioning.
Automated Database Partitioning: We found a third party solution that utilized Oracles database partitioning at
the 2010 Oracle Open World. The solution offers a unique alternative approach for managing data growth to the
traditional approaches offered by database, application and third party database archiving vendors. The tool is a
solution for managing application data growth while maintaining application availability and improving
performance by leveraging an approach based on application-aware segmentation, which utilizes Oracle
database partitioning at its core. The tool creates referentially intact segments of data that can be managed and
accessed independently. As a result, organizations have greater control and latitude to optimize their environment
without the need to surgically remove data from the production database row by row, or impacting how users
access data from the native application. Additional maintenance steps are eliminated through automated
management features.
The tool provides administrators with the ability to capture application metadata, define application-aware data
segmentation policies based on business logic, and manage the ongoing process in an automated fashion. Data
segmentation policies are implemented through the use of the native database partitioning feature set. Because
data is physically separated based on dimensions such as time and/or business unit, data can be deleted, archived,
or taken offline without the need to issue a DELETE statement. The benefit of this approach is that there are no
extra steps or data movement processes that can chew up valuable CPU cycles. Consider the amount of time and
resources it takes issuing millions of DELETE statements and replace it by a single drop partition command. Legacy
archive/purge processes that often taken months when issuing batches of DELETE statements now run in less than
an hour, regardless of the data volume.
Aged data can be isolated to a separate physical partition, yet continues to be part of the same logical table. This
means that data residing in the aged segments can be marked read-only, can be compressed to reduce data
footprints, and reside in the same production database simplifying maintenance processes. In addition, by aligning
the physical separation of data by business logic without impacting data referential integrity, organizations are in a
position to apply more aggressive tiered storage strategies. Compressing and storing inactive aged data to low
cost storage managed by Oracle ASM is a simple automated process with a well-developed third party solution. At
the same time, organizations can take advantage of Flash or Solid State Disk (SSD) drives to turbo charge access to
the most recent data.
3

Using Oracle Partitioning for Maximum Performance

Performance
Gaining sustainable performance for complex applications is a key focus area for Avago. A unique alternative that
allows queries and processes to be optimized without having to delete data, re-write application code, or
dramatically change the way end users use the system today was the solution we were seeking. The third party
solution we found provides a performance optimization that gives US the ability to globally impact performance in
a positive and sustainable way while retaining all of the data management benefits that are expected. If there is a
need to optimize user or batch processes for the purpose of improving application performance or compliance the
Performance Access Layer automatically controls what data is needed to resolve the query based on the profile of
the user. This allows processes that only need a very small window of data (i.e. last 2 months of payroll data) to
only see that data and other queries or processes to only see the data they need.
From an operational perspective, when segments are marked read-only, backup processes do not need to
continually back up the same data set over and over again. When copies are made for test and development
purposes, only the partitions needed for those test cases need to be replicated. Should data need to be made
writable again; a command can be issued without concern over data dictionary changes (which are the case when
using a separate repository for managed data).

New Alternatives Explored


Once we realized that we had an alternative to our existing methodologies and could create a low maintenance,
highly flexible, and performance focused E-Business environment we kicked off our project. The solution we
implemented was from Informatica, pioneers in the performance and data management market. The Informatica
solution, Smart Partitioning, was a great fit for us because it allowed us to keep all of our data, and at the same
time improve performance compared to our current approach. We went live with the solution in June of 2011 and
had several critical jobs improve significantly (30 minutes down to 7 minutes) and were able to move from 11i to
R12 on our own with no issues or problems. In addition, the ongoing management was automated minimizing
impact on DBA resources and at the same time allowing us to compress older data, move data between storage
tiers, create small sub-set clones, and eventually drop the data after a period of time.

Results

Using Oracle Partitioning for Maximum Performance

Conclusion
Partitioning of your Oracle database for performance optimization is the ONLY Oracle approved methodology that
provides consistent, sustainable positive results. It is fully supported by Oracle and has recently enjoyed a
tremendous adoption in the marketplace by dozens of large corporations. Oracle will continue to enhance the
functionality of database partitioning in new and creative ways that will enable customers to maximize the
utilization of Oracle databases.
Having a solution that is based on native database partitioning features, that is automated and certified by Oracle,
and that minimizes maintenance or support requirements, is preferred. An automated method of database
partitioning like Informatica Smart Partitioning is a viable and proven solution for customers with a need to control
data growth and high performance operations to get the best of both worlds when it comes to deploying a data
growth management solution: controlling costs while maintaining and improving application performance.

Potrebbero piacerti anche