Parameter Recommendations for Oracle Database 12c - Part I
By Mike Dietrich-Oracle on Mar 04, 2016
A few weeks ago we've published some parameter recommendations including several underscores but based on an internal discussion (still ongoing) we decided to remove this entry and split up the tasks. The optimizer team will take over parts of it and I'll post an update as soon as something is published.
.
Preface
Please be advised - the following parameter list is mostly based on personal experience only. Some of them are officially recommended by Oracle Support. Always use proper testing mechanisms.
We strongly recommend SQL Performance Analyzer to verify the effect of any of those parameters.
.
How to read this blog post?
Never ever blindly set any underscore or hidden parameters because "somebody said" or "somebody wrote on a blog" (including this blog!) or "because our country has the best tuning experts worldwide" ... Only trust Oracle Support if it's written into a MOS Note or an official Oracle White Paper or if you work with a particular support or consulting engineer for quite a long time who understands your environment.
.
Important Parameter Settings
-
- _kks_obsolete_dump_threshold
- What it does?
- Introduced in Oracle 12.1.0.2 as an enhancement to improve cursor sharing diagnostics by dumping information about an obsolete parent cursor and its child cursors after the parent cursor has been obsoleted N times.
- Problem:
- Trace files can grow like giant mushrooms due to cursor invalidations
- Solution:
- See
MOS Note:1955319.1; Huge Trace Files Created Containing "----- Cursor Obsoletion Dump sql_id=%s -----":
for recommendations, range of values and options - Furthermore you may read:
Where do these large trace files come from in Oracle 12c?
- See
- Patches:
- Fix included in DBBP 12.1.0.2.160216
- Fix on-top of 12.1.0.2.13DBEngSysandDBIM
- Since Feb 13, 2016 there's a one-off available but on Linux only - and only on top of a fresh 12.1.0.2
- Remarks:
- The underlying cursor sharing problem needs to be investigated - always.
If you have cursor sharing issues you may set this parameter higher therefore not every invalidation causes a dump, then investigate and solve the issue, and finally switch the parameter to 0 once the issue is taken care of.
Please be aware that switching the parameter to 0 will lead to a lack of diagnostics information in case of cursor invalidations.
- The underlying cursor sharing problem needs to be investigated - always.
- What it does?
- _use_single_log_writer
- Problem:
- Multiple log writers feature in Oracle Database 12c can cause instance recovery fails and unexpected halts
- Solution:
- Be aware of several issues such as:
MOS Note:1957710.1 - ALERT: Bug 21915719 Database hang or may fail to OPEN in 12c IBM AIX or HPUX Itanium - ORA-742, DEADLOCK or ORA-600 [kcrfrgv_nextlwn_scn] ORA-600 [krr_process_read_error_2] ) - MOS Note:1957710.1 gives also recommendations on how to set this parameter
- Be aware of several issues such as:
- Problem:
- memory_target
- What it does?
- See the Oracle Documentation - it combines sga_target and pga_aggregate_targetvalues
- Problem:
- Unexpected failing database upgrades with settings of memory_target < 1GB where equal settings ofsga_target and pga_aggregate_target didn't cause issues
- It prevents the important use of HugePages
- Solution:
- Avoid memory_target by any chance
- Better use sga_target and pga_aggregate_target instead
- What it does?
- pga_aggregate_limit
- What it does?
- It limits the overall PGA heap size
- See the Oracle Documentation for further details
- Problem:
- It's not really a limit. According to Frits Hoogland's (Enkitec) presentation at DOAG Conference I learned that it does limit the PGA but beyond the defined limit. An error ORA-04036: PGA memory used by the instance exceeds PGA_AGGREGATE_LIMIT gets triggered - but beyond the defined limit.
Find Frits' blog post for a lot more details and test scripts here (thanks Stefan for pointing me to it):
https://fritshoogland.wordpress.com/2014/12/15/oracle-database-operating-system-memory-allocation-management-for-pga/
- It's not really a limit. According to Frits Hoogland's (Enkitec) presentation at DOAG Conference I learned that it does limit the PGA but beyond the defined limit. An error ORA-04036: PGA memory used by the instance exceeds PGA_AGGREGATE_LIMIT gets triggered - but beyond the defined limit.
- Solution:
- Be aware that it's not a true limit.
Monitor your PGA growth - you can't rely exactly on pga_aggregate_limit
.
- Be aware that it's not a true limit.
- What it does?
Essential MOS Notes for Oracle Database 12.1.0.2
-
Known Issues
MOS Note:1683799.1 - 12.1.0.2 Patch Set - Availability and Known Issues -
SQL Plan Management
MOS Note: 2035898.1 - Patches to Consider for 12.1.0.2 to Avoid Problems with SQL Plan Management (SPM)) -
Wrong Results and Poor Performance
MOS Note:2034610.1 - Things to Consider to Avoid Poor Performance or Wrong Results on 12.1.0.2
-
Proactive Tuning and Avoiding Performance Issues
MOS Note:1482811.1 - Best Practices: Proactively Avoiding Database and Query Performance Issues
- Complete Checklist for Manual Upgrades to Oracle 12.1.0.2
MOS Note: 1503653.1 - Complete Checklist for Manual Upgrades to Oracle Database 12c Release 1 (12.1)
출처 : https://blogs.oracle.com/UPGRADE/entry/parameter_recommendations_for_oracle_database