Dynamic Database Solutions - Mitigating Performance Degradations


Published on

Performance Paradigm
- What causes performance degradation?

SQL Plan Management
- Ensure the best query execution plan

Oracle Database Resource Manager
- Protect your valuable system resources

- What if this doesn’t solve your problem?
- What if you’re not running 11g?
- What if you’re running a 3rd party application?

Published in: Technology
  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Dynamic Database Solutions - Mitigating Performance Degradations

  1. 1. Mitigating Performance Degradations Jul 22, 2010 Peter Dobler | Managing Partner Dynamic Database Solutions
  2. 2.  Performance Paradigm ◦ What causes performance degradation?  SQL Plan Management ◦ Ensure the best query execution plan  Oracle Database Resource Manager ◦ Protect your valuable system resources  Alternatives ◦ What if this doesn’t solve your problem? ◦ What if you’re not running 11g? ◦ What if you’re running a 3rd party application?
  3. 3. The Bermuda Triangle of Performance Degradation
  4. 4. Data Volume Software Changes Structure Changes System Performance OS Upgrades DB Server Upgrades New App Version Schema Changes Index Changes Partition Changes
  5. 5.  To Improve Performance ◦ Buy more hardware ◦ Hire a performance tuning guru ◦ Do-It-Yourself performance tuning ◦ Reduce the data volume  To Maintain Performance ◦ Use SQL Plan Management to counteract query plan degradation ◦ Use Database Resource Manager to ensure that maximal resources are allocated to the most important tasks.
  6. 6. From Stored Outlines to SQL Profiles to SQL Plan Management
  7. 7. Oracle 8i Oracle 9i Oracle 10g Oracle 11g Stored Outlines SQL Profiles SQL Plan Management Plan Stability Limited Self-Tuning Auto Deactivate Self-Tuning Plan Baselines Plan History
  8. 8.  SQL Plan Baselines are used to capture changes caused by: ◦ New optimizer version ◦ Changes to optimizer statistics and optimizer parameters ◦ Changes to schema and metadata definitions ◦ Changes to system settings ◦ SQL profile creation  Containing: ◦ Set of hints ◦ Plan hash value ◦ Plan-related information
  9. 9.  First a baseline needs to be established by ◦ Capture a plan automatically by setting the OPTIMIZER_CAPTURE_SQL_PLAN_BASELINES initialization parameter to TRUE (Default = FALSE) ◦ Load from existing plans  From SQL Tuning Sets and AWR snapshot  From the Cursor Cache ◦ Plans are automatically accepted and enabled. Set the OPTIMIZER_USE_SQL_PLAN_BASELINES parameter to FALSE to disable this behavior (Default = TRUE).
  10. 10.  A SQL plan will be selected through this logic. ◦ Each time the database compiles a SQL statement, the optimizer does the following: 1. Uses a cost-based search method to build a best- cost plan 2. Tries to find a matching plan in the SQL plan baseline 3. Does either of the following depending on whether a match is found:  If found, then the optimizer proceeds using the matched plan  If not found, then the optimizer evaluates the cost of each accepted plan in the SQL plan baseline and selects the plan with the lowest cost
  11. 11.  SQL Plan Management can evolve a plan by: ◦ Using the PL/SQL function DBMS_SPM.EVOLVE_SQL_PLAN_BASELINE to evolve a plan captured into the baseline. ◦ Manually loading new plans from a SQL Tuning Set or the Cursor Cache into the Plan history. These plans are automatically accepted.
  12. 12.  Automatic SQL Plan Management that adapts to most changes, except radical schema changes.  Only 2 parameters used: ◦ OPTIMIZER_CAPTURE_SQL_PLAN_BASELINES ◦ OPTIMIZER_USE_SQL_PLAN_BASELINES  Pay close attention to the SYSAUX tablespace. It’s been used to store the plans. Automatic purge policy is in place, but only runs once a week.  Only available in 11gR1 and later  Stored Outlines and SQL Profiles are being depreciated.
  13. 13.  More automation by using SQL Plan Baseline with SQL Tuning Advisor.  Freeze SQL Plans by using the FIXED parameter.  Export and Import SQL Plans. ◦ Fine tune SQL in a UAT environment or near production and then export plans via data pump and then import into production.
  14. 14.  SQL Plan Management  SQL Tuning Advisor  SQL Tuning Sets  SQL Profiles  AWR  ADDM Are separately licensed features  Reference: E10821-05 Oracle Performance Tuning Guide 11g Release 2 (11.2)
  15. 15. Throttle Down Your Resource Hogs
  16. 16.  Database Resource Manager is designed to address the following problems: ◦ Excessive overhead ◦ Inefficient scheduling ◦ Inappropriate allocation of resources ◦ Inability to manage database-specific resources, such as parallel execution servers and active sessions
  17. 17.  Resource consumer group ◦ A group of sessions that are grouped together based on resource requirements. The Resource Manager allocates resources to resource consumer groups, not to individual sessions.  Resource plan ◦ A container for directives that specify how resources are allocated to resource consumer groups. You specify how the database allocates resources by activating a specific resource plan.  Resource plan directive ◦ Associates a resource consumer group with a particular plan and specifies how resources are to be allocated to that resource consumer group.
  18. 18.  There are three special consumer groups ◦ SYS_GROUP  Default group for the users sys and system. ◦ DEFAULT_CONSUMER_GROUP  Default group for all other user accounts. ◦ OTHER_GROUPS  Default group if there’s no active plan assigned to the groups above. This group must have an active plan.  User Defined Groups ◦ Map sessions to consumer groups based on CPU or I/O consumption thresholds.
  19. 19.  Only one resource plan can be active for a consumer group.  Resource plans can contain sub-plans and can grow very complex. ◦ Remember that each plan level and sub plan level needs to add up to 100% and cannot exceed 100%. Plan A Plan B Group A Plan D Group B Group C Group D Group E 50% CPU 20% CPU 20% CPU 50% CPU 50% CPU 50% CPU 60% CPU
  20. 20.  CPU ◦ Up to 8 levels of consumer group allocations  Active Session Pool with Queuing ◦ Max concurrent sessions per consumer group  Degree of Parallelism Limit ◦ Per session limit, but does not limit system setting  Automatic Consumer Group Switching ◦ Switch groups, typically higher to lower priority. ◦ Canceling SQL and Terminating Sessions  Execution Time Limit ◦ Estimate query run-time, trap and reschedule  Undo Pool ◦ Limits the undo for uncommitted transactions per consumer group  Idle Time Limit ◦ Terminating session when exceeded.
  21. 21.  Resource Manager is on by default in 11g  To avoid surprises when installing or upgrading to 11g, switch the active resource plan from DEFAULT_PLAN to MIXED_WORKLOAD_PLAN.  Carefully plan your resource groups and plan directives.  I/O limit switching is available in 11gR1 and later.  Reference: E10595-07 Database Administrator's Guide 11g Release 2 (11.2)
  22. 22. How ActiveBase Opens Closed Doors
  23. 23.  SQL Plan Management ◦ Manages SQL plans, but does not optimize SQL queries. ◦ Protects the database from performance degradation due to common changes to the environment. ◦ Based on query optimizer cost calculation. ◦ 11gR1 and later only  Database Resource Manager ◦ Forces database sessions to play nicely. ◦ Moves offending sessions out of the way to give priority sessions all the resources possible. ◦ Protects the system from runaway queries. ◦ Based on CPU and I/O consumption. ◦ Latest features are 11gR1 and later only
  24. 24.  ActiveBase Performance ◦ Dynamic SQL Optimization via the creative use of a rules- based SQL*Net Proxy that selectively intercepts and evaluates in-bound SQL generated by applications. When sub- optimal SQL is being submitted, the Proxy can re-structure the syntax of the statement to apply performance improvements which would then be executed by the database.  ActiveBase Priority ◦ Dynamic Server Prioritization via the creative use of a rules- based Session Monitor that can detect when the server load reaches various thresholds (e.g. 80%), which will then throttle down the resources allocated to lesser-important applications. The result is dynamic resource allocation that enables critical applications to maintain SLAs during peak processing periods.
  25. 25. THANK YOU! Peter Dobler| Managing Partner Dynamic Database Solutions peter@dynamic-db.com 813 210 7060