Oracle has published on Oracle Support an update to the whitepaper “Performance Tuning Guidelines for Siebel CRM Applications on Oracle Databases“. It has more recent details on best-practices specific to Siebel implementation on Oracle 12c. Along with this update, updates to the SQL scripts for best-practice optimizer statistics collection and Siebel workload profiling have been added.
And it’s always good to refresh your memory from time to time. Reading the whitepaper again, I read about this core database feature I really did not know: “SQL Plan Management”.
Just from reading a very useful feature to take knowledge (and advantage…) of e.g. when migrating between Oracle database releases, as it can counter and mitigate risk associated with such an excise. It addresses the issue of ensuring plan stability. Although plans might change to good, the real world can be more challenging. The authors write about SQL Plan Management:
When SQL plans are required, it is strongly recommended to use SQL Plan Management (SPM) to record and evaluate the execution plans of SQL statements over time. SPM provides the ability to build baselines that are known to be efficient and that are composed of existing plans or plans imported either from other instances or previous versions. SQL plan baselines are used to maintain performance of the matching SQL statements. Over time, new plans are evaluated and preserved when their performance improvements are significant. Subsequently, these plans can be evolved to “accepted” if their performance is superior to the baseline’s SQL plan.
If you’d read a bit further, it addresses actually a broader set of scenario’s such as:
- A database upgrade that installs a new optimizer version usually results in plan changes for a small percentage of SQL statements. Most of these plan changes result in either no performance change or improvement. However, some plan changes may cause performance regressions. SQL plan baselines significantly minimize potential regressions resulting from an upgrade.
- Ongoing system and data changes can impact plans for some SQL statements, potentially causing performance regressions. SQL plan baselines help minimize performance regressions and stabilize SQL performance.
- Deployment of new application modules means introducing new SQL statements into the database. The application software may use appropriate SQL execution plans developed in a standard test configuration for the new statements. If the system configuration is significantly different from the test configuration, then the database can evolve SQL plan baselines over time to produce better performance.
I suppose I need to dive a bit deeper into this core database functionality and how well it applies to the many-many execution plans which get calculated by Oracle when running a Siebel implementation.
As said, good refresher 🙂