Synopsis. Oracle Database 11g Release 1 (11gR1) is due to be released in July 2007. Although not all new features have been fully documented yet, this article the first in this series takes some tantalizing glimpses into the upcoming improvements to database performance and database management that expand even further the revolutionary concepts introduced in Oracle Database 10g.
Ive been participating in the Oracle Database 11g Release 1 beta evaluation program over the past few months. As the release of Oracle Database 11g draws ever nearer, Ive been plumbing the depths of the most recent beta releases, perusing the release documentation, and deciding how best to present (and eventually implement!) the myriad new and improved features this new release has to offer. I must say that even though Oracle Database 10g impressed me with the breadth of its changes, Im still trying to wrap my brain around the even more impressive upgrades in this next release.
So heres the first group of my personal favorites among the plethora of Oracle Database 11gs new features. Please be sure to visit Oracle 11g Central periodically over the next several months as I dive much more deeply into these and many other features.
#1: Result Caches
Ive often wished that the Oracle database would provide a method to retain in memory the result set from a complex query that contains what I like to call reference information. These are data that hardly ever change, but must still be read and used across multiple applications - for example, a list of all country codes and their corresponding names for lookup when processing addresses for new international customers, or a list of all ZIP Codes in the Midwestern US.
Oracle Database 11g fills this gap with three new structures called result caches, and each structure has a different purpose:
- The SQL query result cache is an area of memory in the Shared Global Area (SGA) that can retain the result sets that a query generates.
- The PL/SQL function result cache can store the results from a PL/SQL function call.
- Finally, the OCI client result cache can retain results from queries or functions on the application server from which the OCI call originated.
By retaining result sets in these in-memory caches, the results are immediately available for reuse by any user session. For user sessions that connect to the database through an application server, the OCI client cache permits those sessions to simply share the results that are already cached on the application server without having to reissue a query directly against the database. These result caches therefore hold great promise for eliminating unnecessary round trips to the database server to collect relatively static reference data that still needs to be shared across many application servers or user sessions a potentially immense improvement in overall database throughput.
#2: Improved SQL Tuning
If youve already experienced the advice for SQL performance improvements that Oracle Database 10gs SQL Tuning Advisor and SQL Access Advisor provide, youll be pleasantly surprised with Oracle 11gs enhanced SQL tuning capabilities. Heres a brief sample:
- SQL statements can now tune themselves via an expansion to the automatic SQL tuning features that were introduced in Oracle Database 10g.
- Statistics for the Cost-Based Optimizer (CBO) are now published separately from being gathered. This means that recomputed statistics for the CBO will not necessarily cause existing cursors to become invalidated.
- Multi-column statistics can be collected for two or more columns in a table. This gives the CBO the ability to more accurately select rows based on common multi-column conditions or joins.
- SQL Access Advisor can now make recommendations on how partitioning might be applied to existing tables, indexes, and materialized views to improve an applications performance.
- Oracle Database 11g now supports retention of historical execution plans for a SQL statement. This means that the CBO can compare a new execution plan against the original plan and, if the old plan still offers better performance than the new one, it can decide to continue to use the original execution plan.
#3: New System Testing Tools
As a DBA, one of the most bedeviling problems that Ive regularly faced is to be able to predict accurately how the next set of changes to the databases application code, database patch set, or hardware configuration will affect that databases performance. That usually meant purchasing a relatively expensive third-party package (e.g. Mercury Interactives LoadRunner) to generate a sample workload against the database using the next version of the application code, and then comparing the results against baseline performance for the current application code version.
Fortunately, Oracle Database 11g has come to the rescue with two new utilities that offer monumental strides forward in system testing:
- Database Replay. Database Replay can capture generated workloads from production systems at the database level. Therefore, its no longer necessary to run actual application code to duplicate the load on the database, and this also improves accuracy of the simulated workload because it limits or removes other factors like network latency. These captured workloads can then be replayed on a quality assurance database so that the impact of application changes, software patches, and even hardware upgrades can be measured accurately. This feature is especially valuable in detecting performance issues that could potentially hamstring a production databases performance that might go otherwise undetected until well after changes have been deployed.
- SQL Performance Analyzer. A robust complement to the Database Replay facility, the SQL Performance Analyzer (SPA) leverages existing Oracle Database 10g SQL tuning components. The SPA provides the ability to capture a specific SQL workload in a SQL Tuning Set, take a performance baseline before a major database or system change, make the desired change to the system, and then replay the SQL workload against the modified database or configuration. The before and after performance of the SQL workload can then be compared with just a few clicks of the mouse. The DBA only needs to isolate any SQL statements that are now performing poorly and tune them via the SQL Tuning Advisor.
#4: Repair Advisors and Fault Diagnostics
Oracle Database 10g introduced an impressive plethora of database performance advisors like the Segment Advisor, the Undo Advisor, the SQL Access Advisor, the SQL Tuning Advisor, the MTTR Advisor, and the ultimate expert system for tuning database performance: the Automatic Database Diagnostic Monitor (ADDM).
Oracle Database 11g expands this advisory framework with several new Database Repair Advisors. The chief goals of these new Advisors are to locate root causes of a failure, identify and present options for repairing these root causes, and even correct the identified problems with self-healing mechanisms. Oracle Database 11g also adds a series of improved fault diagnostics to make it extremely easy for even an inexperienced DBA to detect and quickly resolve problems with Oracle 11g databases. Here are the highlights of these new features:
- Automatic Health Monitoring. When a problem within the database is detected, the new Health Monitor (HM) utility will automatically perform a series of integrity checks to determine if the problem can be traced to corruption within database blocks, redo log blocks, undo segments, or dictionary table blocks. HM can also be fired manually to perform checks against the databases health on a periodic basis.
- Automatic Diagnostic Repository. The Automatic Diagnostic Repository (ADR) is at the heart of Oracle Database 11gs new fault diagnostic framework. The ADR is a central, file-based repository external to the database itself, and its composed of the diagnostic data alert logs (in XML format!), core dumps, background process dumps, and user trace files - collected from individual database components from the first moment that a critical error is detected.
- Support Workbench. Though its stored outside of the database itself, the ADR can be accessed via either Enterprise Manager or command-line utilities. Once the ADR has detected and reported a critical problem, the DBA can interrogate the ADR, report on the source of the problem, and in some cases even implement repairs through the Support Workbench, a new facility thats part of Enterprise Manager.
- Incident Packaging Service. If the problem cant be solved using these tools, it may be time to ask for help from Oracle Support. The new Incident Packaging Service (IPS) facility provides tools for gathering and packaging all necessary logs that Oracle Support typically needs to resolve a Service Request.
- Hang Manager. Oracle Database 10g introduced the Hang Analysis tool in Enterprise Manager, and Oracle Database 11g now expands this concept with the Hang Manager. Through a series of dynamic views, it allows the DBA to traverse whats called a hang chain to determine exactly which processes and sessions are causing bottlenecks because they are blocking access to needed resources. And since its activated by default on all single-instance databases, RAC clustered databases, and ASM instances, its now possible to track down the source of a hang from one end of the system to the other.
#5: Flashback Enhancements
Oracle Database 10g dramatically expanded database recoverability with the ability to perform an incomplete recovery of the database with Flashback Database. Oracle Database 10g also provided four new logical database recovery features: Flashback Table, Flashback Drop, Flashback Version Query, and Flashback Transaction Query. Oracle Database 11g expands this arsenal of recovery tools with two new Flashback features:
- Flashback Transaction. Essentially an extension of the Flashback Transaction Query functionality introduced in Oracle Database 10g, Flashback Transaction allows the DBA to back out of the database one or more transactions -- as well as any corresponding dependent transactions -- by applying the appropriate reciprocal UNDO statements for the affected transaction(s) to the corresponding affected rows in the database.
- Flashback Data Archive. This new feature offers the ability to retain the reciprocal UNDO information for critical data significantly beyond the point in time that it would be flushed out of the UNDO tablespace. Therefore, its now possible to hold onto these reciprocal transactions essentially indefinitely. Once this feature is enabled, all retained transaction history can be viewed, and this eliminates the cumbersome task of creating corresponding history tracking tables for critical transactional tables. And as you might expect, Oracle Database 11g also provides methods to automatically purge data retained in the Flashback Data Archive once a specified retention period has been exceeded.
This was the first group of my personal favorites among Oracle Database 11gs new features. Please be sure to visit Oracle 11g Central periodically over the next several months as I dive much more deeply into these and many other features.