To assist in the rollout, build a list of tasks that increase the chance of optimal performance in production and enable rapid debugging of the application. Do the following:
1.
When
you create the control file for the production database, allow for growth by
setting MAXINSTANCES, MAXDATAFILES, MAXLOGFILES,
MAXLOGMEMBERS, and MAXLOGHISTORY to values higher than what you
anticipate for the rollout. This technique results in more disk space usage and
larger control files, but saves time later should these need extension in an
emergency.
2.
Set
block size to the value used to develop the application. Export the schema
statistics from the development or test environment to the production database
if the testing was done on representative data volumes and the current SQL
execution plans are correct.
3.
Set
the minimal number of initialization parameters. Ideally, most other parameters
should be left at default. If there is more tuning to perform, then this
appears when the system is under load. See "Configuring a Database for
Performance"
for information about parameter settings in an initial instance configuration.
4.
Be
prepared to manage block contention by setting storage options of database
objects. Tables and indexes that experience high INSERT/UPDATE/DELETE rates should be created with
automatic segment space management. To avoid contention of rollback segments,
use automatic undo management. See "Configuring a Database for
Performance"
for information about undo and temporary segments.
5.
All
SQL statements should be verified to be optimal and their resource usage
understood.
6.
Validate
that middleware and programs that connect to the database are efficient in
their connection management and do not logon or logoff repeatedly.
7.
Validate
that the SQL statements use cursors efficiently. The database should parse each
SQL statement once and then execute it multiple times. The most common reason
this does not happen is because bind variables are not used properly and WHERE clause predicates are sent as
string literals. If you use precompilers to develop
the application, then make sure to reset the parameters MAXOPENCURSORS, HOLD_CURSOR, and RELEASE_CURSOR from the default values before
precompiling the application.
8.
Validate
that all schema objects have been correctly migrated from the development
environment to the production database. This includes tables, indexes,
sequences, triggers, packages, procedures, functions, Java objects, synonyms,
grants, and views. Ensure that any modifications made in testing are made to
the production system.
9.
As
soon as the system is rolled out, establish a baseline set of statistics from
the database and operating system. This first set of statistics validates or
corrects any assumptions made in the design and rollout process.
10. Start anticipating the first bottleneck (which is inevitable) and follow the Oracle performance method to make performance improvement. For more information, see "Performance Improvement Methods".