PLSQL Performance in Oracle HTTP Server - Overview

4 Optimizing PLSQL Performance 4-1 4 Optimizing PLSQL Performance This chapter discusses the techniques for improving PLSQL performance in Oracle HTTP Server. This chapter contains the following sections: ■ PLSQL Performance in Oracle HTTP Server - Overview ■ Process-Based and Thread-Based Operation in Oracle HTTP Server ■ Performance Tuning Issues in mod_plsql ■ Tuning File System Cache to Improve Caching Performance ■ Oracle HTTP Server Directives

4.1 PLSQL Performance in Oracle HTTP Server - Overview

This section describes several techniques to improve the performance of PLSQL based Web applications in Oracle HTTP Server. Table 4–1 lists recommendations for Database Access Descriptor DAD parameters and settings. By default, these DAD parameters are specified in the file dads.conf. On UNIX systems, this is in the ORACLE_INSTANCEconfigOHSohs1mod_ plsql directory. On Windows systems, by default, this file is in the ORACLE_ INSTANCE\config\OHS\ohs1\mod_plsql directory. The file dads.README in this directory describes the DAD parameters in detail. Table 4–1 Database Access Descriptor DAD Parameters Recommended Setting Summary Parameter Recommended Setting PlsqlAlwaysDescribeProcedure Set this to off for best performance. Default Value: off PlsqlDatabaseConnectString For newer DADs, use the ServiceNameFormat. Use the SIDFormat only for backward compatibility. Note: For HA configurations of the database, it is recommended that the connect string parameter gets resolved through an LDAP lookup. PlsqlFetchBufferSize For multibyte character sets like Japanese or Chinese, setting this to 256 should provide better performance Default Value: 200 4-2 Oracle Fusion Middleware Users Guide for mod_plsql Table 4–2 lists mod_plsql caching options and the sections that describe these caching options. PlsqlIdleSessionCleanupInterval Increasing this parameter allows pooled database connections to remain available, in the pool, for the specified time Default Value: 15 minutes See Also: Section 3.11.3, Detecting Dead Database Connections in a Connection Pool PlsqlLogEnable This parameter should be set to Off unless recommended by Oracle support for debugging purposes Default Value: off PlsqlConnectionValidation This parameter specifies the option mod_plsql should use to detect dead connections in its connection pool. The different options are: ■ Automatic - mod_plsql tests all pooled database connections created before the detection of a failure that could indicate an instance failure. ■ ThrowAwayOnFailure - mod_plsql discards all pooled database connections created before the detection of a failure that could indicate an instance failure. ■ AlwaysValidate - mod_plsql always tests all pooled database connections before issuing a request. Important: Since this option has an associated performance overhead for each request, this should be used with caution. ■ NeverValidate - mod_plsql will never ping any pooled database connection. Default Value: Automatic See Also: Section 3.11.3.1, Specifying the Option to Detect Dead Database Connections . PlsqlConnectionTimeout This parameter specifies the timeout in milliseconds for testing a connection pooled in mod_plsql. Default Value: 10000 See Also: Section 3.11.3.2, Specifying the Timeout Period . PlsqlMaxRequestsPerSession If the PLSQL based Web application does not leak resources or memory, this parameter can be set to a higher value for example, 5000. Default Value: 1000 See Also: Section 3.11.2, Closing Pooled Database Sessions and Section 4.3.2, Connection Pooling Tips and Oracle HTTP Server Configuration . PlsqlNLSLanguage Set this parameter to match the database Globalization Support parameters to eliminate overheads in character set conversions in Oracle Net Services PlsqlSessionStateManagement Set this parameter to StatelessWithFastResetPackageState if the database is 8.1.7.2 or later. Table 4–1 Cont. Database Access Descriptor DAD Parameters Recommended Setting Summary Parameter Recommended Setting Optimizing PLSQL Performance 4-3

4.2 Process-Based and Thread-Based Operation in Oracle HTTP Server