This chapter contains descriptions of all of the features that are new to Oracle 11g Database Release 1 (11.1). This chapter contains the following sections:
• Application Development
• Availability
• Database Overall
• Business Intelligence and Data Warehousing
• Clustering
• Content Management Services
• Fault Diagnosability
• Information Integration
• Location Services and Specialty Data
• Manageability
• Performance
• Security
• Windows
1.1 Application Development
1.1.1 APIs and Precompilers
The following sections describe new Oracle Database 11g features in application programmatic interfaces. These features improve performance and scalability of applications and enable easy deployment of the Oracle client-side stack.
1.1.1.1 Client-Side Query Cache
This feature enables caching of query result sets in client memory. The cached result set data is transparently kept consistent with any changes done on the server side.
Applications leveraging this feature see improved performance for queries which have a cache hit. Additionally, a query serviced by the cache avoids round trips to the server for sending the query and fetching the results. It also reduces the server CPU that would have been consumed for processing the query, thereby improving server scalability.
See Also:
Oracle Call Interface Programmer's Guide for details
1.1.1.2 OCI Client Session NLS Character Set Status Information
This new feature adds client session NLS and character set information to the V$SESSION_CONNECT_INFO and GV$SESSION_CONNECT_INFO views.
This enhancement provides DBAs with access to client-side session character set information for all clients. This information is especially useful in troubleshooting problems.
See Also:
Oracle Database Globalization Support Guide for details
1.1.1.3 Precompilers: Additional Array INSERT and SELECT Syntax Support by Pro*C/C++ and Pro*COBOL
In this Oracle Database 11g release, there is added support for IBM DB2 array INSERT and array SELECT syntax for Pro*C/C++ and Pro*COBOL.
Adding support for IBM DB2 array INSERT and array SELECT syntax helps with the migration of IBM DB2 installations to Oracle.
See Also:
Pro*C/C++ Programmer's Guide for details
1.1.1.4 Precompilers: Dynamic SQL Statement Caching in Pro*C/C++ and Pro*COBOL
Application developers can now precompile Pro*C/C++ and Pro*COBOL applications with the new statement caching option.
The potential benefit of this feature is an increase in performance by enabling statement caching in precompiled programs. The performance improvement is achieved by removing the overhead of parsing the dynamic statements on reuse.
See Also:
Pro*C/C++ Programmer's Guide for details
1.1.1.5 Precompilers: Fix Execution Plan in Pro*C/C++ and Pro*COBOL
This new feature focuses on fixing an execution plan for a Pro*C/C++ and Pro*COBOL application by using the outline feature.
By using the outline feature, you can ensure that the performance of the application is not affected when modules are integrated and deployed into different environments.
1.1.1.6 Precompilers: Flexible B Area Length for Pro*COBOL
The length of B Area for the Pro*COBOL application can now be from 8 to 253 columns.
The length of B Area for a Pro*COBOL program was limited to 72 when the format is set to ANSI. COBOL compilers now can support B Area length up to 253. This provides a programmer with the flexibility to type a line that is longer than 72 columns.
1.1.1.7 Precompilers: Implicit Buffered Insert in Pro*C/C++ and Pro*COBOL
Some applications that require periodic insertion of new data use a single INSERT statement within a loop. When queried by a command-line argument, the precompiler buffers the rows being inserted, reducing network round trips.
The benefit is that an implicit buffered INSERT provides performance improvement that is comparable to using the precompiler array interface.
See Also:
Pro*C/C++ Programmer's Guide for details
1.1.1.8 Precompilers: Platform Endianness Support by Pro*COBOL
Oracle always stores Unicode data (UTF16) in Big Endian representation. Linux and Windows have Little Endian representation and Solaris has Big Endian representation. With this enhancement, Unicode data can be fetched in Little Endian format on Windows and Linux platforms using a Pro*COBOL application.
When a UTF16 (UCS2) string is fetched in PIC N variable in a Pro*COBOL application running on Little Endian platforms, the application can now be precompiled with the appropriate command-line option to have the correct platform endianness.
See Also:
Pro*COBOL Programmer's Guide for details
1.1.1.9 Precompilers: Scrollable Cursor Support in Pro*COBOL
Pro*COBOL now supports scrollable cursors to fetch data in a nonsequential manner.
A scrollable cursor enables you to access the rows of a database result set in a forward, backward, and random manner. This enables the program to fetch any row in the result set.
1.1.1.10 Precompilers: SQL99 Syntax Support by Pro*C/C++
With this enhancement, the SQL99 syntax for SELECT, INSERT, DELETE, and UPDATE statements and the body of the cursor in a DECLARE CURSOR statement is supported by Pro*C/C++.
Oracle Database supports most of the SQL99 syntax. With this enhancement, Pro*C/C++ also supports the SQL99 syntax that is supported by Oracle Database.
See Also:
Pro*C/C++ Programmer's Guide for details
1.1.2 Application Express
The following sections describe new features for Oracle Application Express. Application Express provides an application development tool that is built into the database and is installed in the database by default which is different from Oracle Database 10g implementation.
1.1.2.1 Application and Schema Comparison
New application and schema comparison capabilities enable you to identify differences between two selected applications.
You can also identify differences between objects in two different schemas.
See Also:
Oracle Database Application Express User's Guide for details
1.1.2.2 Drag and Drop Item Layout
The Drag and Drop Layout page enables you to interactively reorder items within a given region, change select item attributes, create new items, and delete existing items.
See Also:
Oracle Database Application Express User's Guide for details
1.1.2.3 Flash Charts
Oracle Application Express includes support for 18 different types of Flash charts. You can create Flash charts when creating a new page or by defining a Chart region.
This release also includes a utility that enables you to convert existing Scalable Vector Graphics (SVG) charts to Flash.
See Also:
Oracle Database Application Express User's Guide for details
1.1.2.4 Friendly URL Syntax to Facilitate Bookmarks
By specifying zero as the session ID, you can now make it easier for application users to bookmark pages within an application.
This features makes all public page links consistent, making them easier to bookmark.
See Also:
Oracle Database Application Express User's Guide for details
1.1.2.5 Improved Web Services
Oracle Application Express now supports more loosely defined Web services types and document styles. Both of these enhancements enable support for Web services created with JDeveloper and Oracle BPEL synchronous processes. You can now interact with Web services over a Secure Sockets Layer (SSL) and work with Web services that require basic authentication.
Finally, this release also enables you to manually create a Web services reference even if the Application Express engine cannot correctly parse a WSDL document.
See Also:
Oracle Database Application Express User's Guide for details
1.1.2.6 Improved Workspace Management
This release also includes a number of workspace management enhancements. For users requesting new workspaces or requesting additional storage, you can control what sizes display.
You can also request an e-mail of your workspace names. And, finally, you can view a log of login attempts.
See Also:
Oracle Database Application Express User's Guide for details
1.1.2.7 Microsoft Access Migration
Application Migration enables you to migrate a Microsoft Access application and generate an Oracle Application Express application.
This feature provides an easy way to migrate applications from Microsoft Access to Oracle Express.
See Also:
Oracle Database Application Express User's Guide for details
1.1.2.8 New Password and Account Controls
You can now specify rules for password expiration, mandate strong passwords (that is, specify the minimum number of and type of characters), require that users change their passwords on first use, and lock accounts.
With this new feature, you can configure account login controls and password policies across a development instance in Oracle Application Express Administration Services. You can also specify controls for a specific account under Account Controls on the Edit User page.
See Also:
Oracle Database Application Express User's Guide for details
1.1.2.9 Page and Region Caching
You can improve the performance of your application by taking advantage of page and region caching. New Cache attributes have been added to the Page attributes and Region Definition pages.
Page caching works well for static pages and region caching is a good choice for regions such as lists that do not have any conditions or regions containing HTML text.
See Also:
Oracle Database Application Express User's Guide for details
1.1.2.10 PDF Printing
You can now include the ability to print a report by exporting a report region to PDF. You can also define report queries and print attributes for report regions as Shared Components making them accessible to all pages within an application.
The advantage of this feature is that it provides production of high quality, easily printable reports.
See Also:
Oracle Database Application Express User's Guide for details
1.1.3 Extensible Indexing
The following sections describe extensible indexing features for Oracle Database 11g Release 1 (11.1).
1.1.3.1 Create Rules and Actions for DML Events With Rules Manager
Rules Manager now adds the ability to treat DELETE and UPDATE operations on a table as events that drive the rule evaluation and action execution (INSERT operations are already supported). In addition to pre-commit evaluation of rules based on trigger, this release supports post-transaction evaluation through use of the Change Notification feature of Oracle Database.
Because rules can now be processed during UPDATE and DELETE statements, developers can now model the entire business process for OLTP workloads in addition to the current "append-only" workloads characteristic of data warehouse and sensor-based applications.
See Also:
Oracle Database Rules Manager and Expression Filter Developer's Guide for details
1.1.3.2 Enhanced Rules Manager
Rules Manager now includes a PL/SQL API to store reusable and shareable rule conditions in SQL WHERE clause format. Complex rule conditions can be assembled from these shared elements.
In addition, rules can now be enabled and disabled through standard SQL.
Application developers can reuse rule conditions to speed the rule definition process. Since these shared conditions are stored once, changes propagate to all the complex rules referring to them. For example, if a rule component defines a "suspicious bank transaction" as involving an international bank transfer over $10,000, a change to the amount, location, or other condition needs to be made only once and it is updated in all complex rules using "suspicious bank transaction" in their event scenario.
Rules can be turned on and off to facilitate rule testing and control introduction into the system as well as to reflect changes in business conditions.
See Also:
Oracle Database Rules Manager and Expression Filter Developer's Guide for details
1.1.3.3 New Capabilities for Domain Index Operations
A new domain index callout updates table and column name metadata for a domain index during an ALTER TABLE ... RENAME or ALTER TABLE ... RENAME COLUMN command to ensure domain index metadata is kept up-to-date.
A partition-specific parameter string provides control over placement of domain index data during partition maintenance operations.
The SQL MERGE statement can now be used with a domain index.
See Also:
Oracle Database SQL Language Reference for details
1.1.3.4 Oracle Text Predicates and Aggregate Operators are Included in Rule Conditions
The Rules Manager feature of Oracle Database now supports the use of the Oracle Text CONTAINS operator with the SQL WHERE clause rule conditions.
Rules Manager can now compute aggregate values (SUM, AVG, MIN, MAX, and COUNT) using moving windows semantics. The window size can be based on time or number of events. The aggregate values for a group of events can be computed and tested against predefined or relative thresholds in rule conditions.
Rules can respond to real-world trends identified from a collection of events occurring over a particular length of time or a sliding window of time, such as for Business Activity Monitoring and Business Intelligence applications. For example, you can offer a promotion to a customer if the sum of purchases in the last three days is over $1000.00.
See Also:
Oracle Database Rules Manager and Expression Filter Developer's Guide for details
1.1.3.5 Oracle Text Predicates Included in Stored Expressions
The Expression Filter feature of Oracle Database now supports the use of the Oracle Text CONTAINS operator with the SQL WHERE clause stored expressions.
Stored expressions can evaluate text and XML data.
See Also:
Oracle Database Rules Manager and Expression Filter Developer's Guide for details
1.1.3.6 System-Managed Partitioning of Extensible Indexes
System-managed domain indexes (both non-partitioned and local partitioned) use Oracle Database to track and maintain the domain index storage tables during DDLs and partition maintenance operations on the base table. System-partitioned tables can be used as index storage tables for local domain indexes. System-managed domain indexes with range partitioning are supported in this release.
System-managed partitioning of domain indexes enhances local domain index manageability and performance.
See Also:
Oracle Database Data Cartridge Developer's Guide for details
1.1.4 Globalization and Unicode
This section lists improvements to globalization features and Unicode support of Oracle Database.
1.1.4.1 Unicode 5.0 Support
The NLS data files for AL32UTF8 and AL16UTF16 character sets have been updated to match version 5.0 of the Unicode Standard character database.
With this enhancement, Oracle Database conforms to the newest version of the standard.
See Also:
Oracle Database Globalization Support Guide for details
1.1.5 Java in the Database
The major enhancements to the Java runtime in this release include performance with a new JIT compiler, ease-of-use with a JDK-like command-line interface, and tooling.
1.1.5.1 OracleJVM Java/JDK 5.0 Compatibility
OracleJVM supports Sun's JDK 1.5.
This feature provides portability of J2SE applications (stand-alone JDBC or middle-tier) into Oracle Database and the ability to take advantage of the key benefits of J2SE 5.0 such as the "declarative" programming style enabled by Java Annotations.
This feature allows sharing metadata of Java classes loaded by user class loader among different database user sessions.
See Also:
Oracle Database Java Developer's Guide for details
1.1.5.2 OracleJVM JIT Configuration
The JIT is enabled by default (out-of-the-box) and does not need further configuration. However, it can be disabled or reenabled by setting JAVA_JIT_ENABLED to TRUE or FALSE in the parameter file or dynamically by altering the instance or the session, for example:
ALTER SYSTEM SET JAVA_JIT_ENABLED=true
or
ALTER SESSION SET JAVA_JIT_ENABLED=true
In addition, the OJVM_JIT_PROPERTIES are used to specify the list of properties, for example:
OJVM_JIT_PROPERTIES="key0-value0","key1=value1","keyword0"
Currently, supported properties are:
• DISABLE_OPTIM_* which are various switches to disable optimization passes.
• New dictionary table and Oracle Runtime methods for checking the compilation status of classes or methods.
• New column IS_COMPILED in USER_JAVA_METHODS, ALL_JAVA_METHODS, and DBA_JAVA_METHODS views set to YES or NO.
This feature allows fine-grained control on the behavior of the JIT. In addition, you have the ability to query the status of compiled classes and methods.
See Also:
Oracle Database Java Developer's Guide for details
1.1.5.3 OracleJVM JIT (Transparent Native Java Compilation Without a C Compiler)
Enabled by default and similar to the JDK JIT, this feature compiles Java in the database natively and transparently without the need of a C compiler.
The JIT runs as an independent session in a dedicated Oracle server process. There is at most one compiler session per database instance and it is Oracle RAC-aware and amortized over all Java sessions.
The compilation session uses profiling feedback data gathered by all Java sessions to compile the most often used methods, so as to get the best overall performance. The executable binary persists in the database.
Java sessions just use the executable binaries of already compiled methods or discover newly compiled methods through an event polling performed by OracleJVM at regular intervals. When there is a compiled code for a given method, future executions of that method use the compiled version.
Conversely, when a Java class is invalidated, the persisted compiled code of the class or method is removed.
This feature brings two major benefits to Java in the database:
• Increased performance of pure Java execution in the database resulting from the transparent compilation of Java into native machine code, similar in behavior to a JDK JIT.
• Ease-of-use. Unlike the Static Native Java compiler (also known as NCOMP or JAccelerator) in previous releases, the new JIT Compiler (when enabled at database configuration level) is activated transparently, without the need of an explicit command, when Java is executed in the database.
In addition, this feature removes the need for a C compiler.
See Also:
Oracle Database Java Developer's Guide for details
1.1.5.4 OracleJVM Ease-of-Use: JDK-Like Interface
Similar to the JDK VM, this feature provides a command-line interface to OracleJVM through new PL/SQL interfaces, for example:
FUNCTION runjava (cmdline VARCHAR2) RETURN VARCHAR2;
or
FUNCTION runjava_in_current_session (cmdline VARCHAR2) RETURN VARCHAR2;
Analogous to the JDK/JRE Java shell command, the JDK-like interface takes a subset of the JDK/JRE command-line syntax including:
[-options] classname [arguments...]
or
[-options] -jar jarfile [arguments...]
The supported options include:
• {cp|classpath} < ":" separated list of file system directories/JAR/ZIP to search for class files>
• D
• Xbootclasspath:<":" separated directories/zip/jar files to search for bootstrap classes and resources>
• Xbootclasspath/a:<":" separated directories/zip/jar files to append to the end of bootstrap class path>
• Xbootclasspath/p:<":" directories/zip/jar files to prepend in front of bootstrap class path>
This feature makes Java easy to use using command-line syntax, which is similar to the JDK JAVA command line. In addition to database resident Java classes, this feature allows the execution in the database runtime environment of file system resident Java class, using the standard classpath syntax. In addition, it allows setting system properties using the standard -D syntax.
See Also:
Oracle Database Java Developer's Guide for details
1.1.5.5 OracleJVM Ease-of-Use: Property Management Interface
This feature provides DBMS_JAVA functions to emulate JDK System property setting for the duration of the session. The settings are set_property, get_property, remove_property, and show_property.
Java developers can now emulate familiar JDK behavior such as system properties support when using Java in the database.
1.1.5.6 OracleJVM Ease-of-Use: Output Redirect
This feature provides DBMS_JAVA functions and procedures for controlling the redirection of Java output, for example:
{set | remove | enable | disable | query}_output_to_{sql | java | file}
And for enabling or disabling sending output to trace, for example:
trace {enable | disable}_output_to_trc
Java developers can now emulate familiar JDK behavior such as output redirect. In addition, they can now disable sending output to a trace file, which was not possible in previous releases.
1.1.5.7 OracleJVM Ease of Use: Database Resident Jars
This feature allows supporting JAR as a unit of operations (and as a result of support for signed JARs) using new loadjava options, -jarsasdbobjects and -prependjarnames.
When these new options are not used, loadjava explodes the jar into individual classes, while dropjava goes back to the original jar (from which the classes are loaded) and drop the classes each at a time.
Java developers using OracleJVM benefit from the same JDK features and behavior such as JAR support.
1.1.5.8 OracleJVM Ease of Use: Two-Tier Java Session Termination
This feature allows the termination of Java within a database session, with and without retention of system properties, using endsession and endsession_and_related_state.
Java developers can terminate Java in a session while keeping the property settings so as to speed up Java reinitialization within the same database session. This feature also allows immediate termination of Java sessions, without requiring the use of System.exit.
1.1.5.9 OracleJVM Utilities Enhancements
Enhancements to existing OracleJVM utilities (loadjava, dropjava, and ojvmjava) include the deprecation of least-frequently-used options of loadjava and the ability to load Java classes over the web (HTTP URL support). For example:
loadjava -u scott/tiger -r
-v http://my.server.com/this/is/the/path/my.jar
Enhancements to dropjava include:
• list-based deletion
• exception handling
• ability to connect to a different user
• invalid command reporting
ojvmjava has been extended to support the JDK-like command such as runjava and its options. For example:
ojvmjava -u scott/tiger -runjava -d
And, then followed with:
$java -cp .
In addition, a new standalone Class Closure Tool (ojvmtc) is provided for ensuring that a given list of file system resident classes and deployable JARs to be closed as much as possible before loading (for example, loadjava invocation).
The benefits are increased usability and simplified deployment of Java applications in Oracle Database.
See Also:
Oracle Database Java Developer's Guide for details
1.1.5.10 OracleJVM Manageability: JMX Interface
This feature provides support for OracleJVM with the standard JMX interface.
Support for JMX interface provides:
• Ease-of-use (any standard JMX-enabled GUI or console)
• Runtime monitoring of OracleJVM (memory objects heaps, threads, GC and classes)
• Ability to trigger GC from the console
1.1.6 JDBC and SQLJ
For Java developers, this release provides the following enhancements to JDBC and SQLJ APIs:
• Support for the latest Java standards including Java SE 1.5 and JDBC 4.0.
• A faster protocol for the Streams/AQ Java interface.
• Support for Oracle advanced security in JDBC-Thin.
• Enhancements to SQLJ code generation and customizer.
• Enhancements to XA support.
• Support of event notification.
1.1.6.1 JDBC 4.0 Connection and Statement Enhancements
JDBC 4.0 introduces new methods for:
• Validating a connection.
• Setting and fetching client information on a connection.
• Returning a list of client properties supported by the driver.
• Allowing an application to mark that a statement should not be pooled.
• Allowing a statement pool manager to register a StatementEventListener on the pooled connection.
In addition, it provides a new StatementEventListener interface and a new StatementEvent class.
These JDBC 4.0 enhancements improve the scalability of JDBC applications and provide better control and management of statement objects.
See Also:
Oracle Database JDBC Developer's Guide and Reference for details
1.1.6.2 JDBC 4.0 Support for New Data Types
This feature provides new standard types including java.sql.XMLType, java.sql.RowID, and java.sql.Nclob to support the National Character Set (NCHAR, NVARCHAR, LONGVARCHAR). In addition, the JDBC 4.0 implementation enhances BLOB and CLOB data type manipulation.
Standard support for new SQL types significantly increases the portability of JDBC applications across databases.
See Also:
Oracle Database JDBC Developer's Guide and Reference for details
1.1.6.3 JDBC Support for ANYTYPE, ANYDATA, and ANYDATASET
The following support has been added to JDBC in this release:
• ANYTYPE which represents any SQL type including persistent database scalar or object types, and transient unnamed types.
• ANYDATA as a table column type to store heterogeneous values (built-in and user-defined) within the same column, along with the metadata.
• ANYDATASET which represents a set of data instances of the same type, along with the metadata.
The benefits include:
• Mapping any Java types to a general purpose SQL data type (ANYTYPE).
• Persisting Java objects to the same database table column (ANYDATA).
• Mapping any Java collections into ANYDATASET.
See Also:
Oracle Database JDBC Developer's Guide and Reference for details
1.1.6.4 JDBC Support for Continuous Query Notification
This feature allows Java Applications or Containers to subscribe to SQL queries watch list in the database and be notified when:
• DML or DDL changes affect the objects associated with the queries, or
• DML or DDL changes affect the result set
The notifications are published when the transaction (DML or DDL) commits.
Java Applications and Container prevents unnecessary database querying and implements efficient and consistent result set caching and cache invalidation.
See Also:
Oracle Database JDBC Developer's Guide and Reference for details
1.1.6.5 JDBC Support for Database Diagnosability
Through this feature, JDBC provides better support for logging, diagnosability and DMS monitoring:
• Logging has been reimplemented to fully utilize java.util.logging. This allows you to selectively log events that occur during the execution of the JDBC driver code such as SQL exceptions, SQL statement executions, or entry or exit from internal JDBC methods.
• JDBC support for performance monitoring uses DMS to capture performance-critical JDBC events including:
o Connection cache statistics
o Connection creation
o Statement cache statistics
o Query execution
o Result fetch
o Oracle RAC events
o Load balancing statistics
o New Oracle Database 11g features
• JDBC support for Diagnosability Management consists of an MBean, oracle.jdbc.DiagnosabilityMBean. This MBean provides the means to enable and disable JDBC logging and provides additional statistics about JDBC internals.
This feature simplifies JDBC logging and makes the interpretation of the results easy. Dynamic Monitoring System (DMS) metrics give Java applications the ability to track JDBC events and performance metrics, as well as a programmatic control and configuration of diagnosability features.
See Also:
Oracle Database JDBC Developer's Guide and Reference for details
1.1.6.6 JDBC Support for Database Startup and Shutdown
You can now perform database startup or shutdown using the following JDBC Oracle Connection methods:
• DBSTARTUP_NO_RESTRICTION
• DBSTARTUP_FORCE
• DBSTARTUP_RESTRICT
• DBSHUTDOWN_CONNECT
• DBSHUTDOWN_TRANSACTIONAL
• DBSHUTDOWN_TRANSACTIONAL_LOCAL
• DBSHUTDOWN_IMMEDIATE
• DBSHUTDOWN_ABORT
• DBSHUTDOWN_FINAL
Note that you must be connected to a dedicated server as SYSOPER or SYSDBA in PRELIM_AUTH mode.
See Also:
Oracle Database JDBC Developer's Guide and Reference for details
1.1.6.7 JDBC Support for Native Streams AQ Protocol
This feature exposes a new Java package (oracle.jdbc.aq) that leverages the new native JDBC APIs for Streams AQ. This package contains the following classes and interfaces:
• AQQueue
• AQMessage
• AQAgent
• AQDequeueOptions
• AQEnqueueOptions
• AQMessageProperties
• AQRawPayload
• AQObjectPayload
• AQNotificationEvent
• AQNotificationListener
• AQNotificationRegistration
Java and JMS applications run faster (using Native AQ operations as opposed to PL/SQL procedures) when accessing Streams AQ and OJMS queues. In addition, these APIs allow asynchronous notifications of AQ events and exchange rich message payloads including RAW data type, ANYDATA data type, and OBJECT data type.
See Also:
Oracle Database JDBC Developer's Guide and Reference for details
1.1.6.8 JDBC-Thin Support for Oracle Advanced Security
This feature provides complete JDBC-Thin support for Oracle Advanced Security in terms of encryption, password authentication, strong authentication, and data integrity or checksum.
New security features include Secure Sockets Layer (SSL), Remote Authentication Dial-In User Service (RADIUS) and Kerberos authentication, AES encryption, and SHA1 checksum algorithm. Advanced security support in JDBC-Thin simplifies the development and deployment of secure Java applications.
See Also:
Oracle Database JDBC Developer's Guide and Reference for details
1.1.6.9 SQLJ: Enhanced Profile Print Option of the Customizer
SQLJ customizer is used during ISO standard code generation. The customizer tailors SQLJ profiles for a particular database implementation and vendor-specific features and data types. The profile print option (-P-print) of SQLJ has been enhanced to print all the customizer options that were passed into the SQLJ translator.
This feature provides information about customizations that SQLJ has received during the precompilation phase to help diagnose any problems that may arise and are specific to different customizations.
See Also:
Oracle Database SQLJ Developer's Guide and Reference for details
1.1.6.10 SQLJ: Outline Generation Option
An application can support SQL execution plan stability by using the outline feature of Oracle. An outline is implemented as a set of optimizer hints that are associated with the SQL statement. If the use of the outline is enabled for the statement, Oracle automatically considers the stored hints and tries to generate an execution plan in accordance with those hints.
A new translation time option is provided in SQLJ to generate and run a SQL file containing the Oracle outline creation commands for all the SQL statements present in a SQLJ application.
This feature helps in ensuring the expected behavior of a database query at development time and helps to better diagnose problems.
See Also:
Oracle Database SQLJ Developer's Guide and Reference for details
1.1.6.11 SQLJ: Support for JDK 1.5
SQLJ applications can now be translated and run under JDK 1.5.
The JDK 1.4 and JDK 1.5 specific language structures outside the #sql region are recognized by the translator.
See Also:
Oracle Database SQLJ Developer's Guide and Reference for details
1.1.6.12 SQLJ: XA Support
The javax.sql.XADataSource interface of JDBC outlines standard functionality of XA data sources. An XA data source is a factory for XA connections. Oracle JDBC implements the XADataSource interface through the OracleXADataSource class. The getConnection() method of the OracleXADataSource class returns an XA connection to the underlying data source.
The benefit of this feature is that these connections can be used in SQLJ applications by creating the appropriate connection contexts in SQLJ.
See Also:
Oracle Database SQLJ Developer's Guide and Reference for details
1.1.7 Oracle Developer Tools for Visual Studio .NET
These features enhance developer productivity for building .NET applications with Oracle Database. They provide native integration with ADO.NET 2.0 functionality using Visual Studio development environments with which .NET developers are familiar. In addition, these features reduce the time it takes to develop .NET applications for Oracle.
1.1.7.1 General Visual Studio 2005 Support
This feature provides users of Visual Studio 2005 the same support currently offered for Oracle Develop Tools (ODT) users using Visual Studio 2003. The changes include using different icons and integrating visually with the Visual Studio 2005 look and feel.
This feature makes it easy for customers to continue using ODT when they migrate from Visual Studio 2003 to the Visual Studio 2005 environment.
1.1.7.2 Oracle PL/SQL Debugger in Visual Studio
The Oracle PL/SQL debugger is now integrated directly into Visual Studio. Developers can debug code, set breakpoints, and watch variables exactly as they would for any other language. Three types of debugging are supported:
• Direct Database Debugging
The developer runs the stored procedure from the Oracle Explorer inside of Visual Studio and enters in the parameters.
• Multi-Tier Application Debugging
The developer steps from .NET code directly into PL/SQL and back again with the parameters automatically being passed.
• External Application Debugging
The developer runs any 9.2 or later Oracle application that can be located anywhere (for example, from SQL*Plus). When it calls the stored procedure, the break point in Visual Studio fires and the developer can begin debugging with the stored procedure parameters being passed automatically.
This feature enables developers to seamlessly debug .NET applications that make calls to PL/SQL stored procedures. Developers can debug both .NET code and PL/SQL without having to leave Visual Studio. They can also debug PL/SQL stored procedures that are called from any arbitrary Oracle program, written in any language, and located on the same machine or on a remote machine.
1.1.7.3 Support for Visual Studio 2005 Data Sources Window and Designers
This feature exposes the DDEX interface to enable some Visual Studio 2005 designers as well as integrate with the Data Sources window to enable the new style drag-drop code generation in Visual Studio 2005.
1.1.8 Oracle Data Provider for .NET (ODP.NET)
These features enhance developer productivity for building .NET applications with Oracle Database. They provide native integration with ADO.NET 2.0 functionality using Oracle Data Provider for .NET (ODP.NET) development environments with which .NET developers are familiar. In addition, these features reduce the time it takes to develop .NET applications for Oracle.
1.1.8.1 Provider-Independent API Using Base Classes and Factories
ODP.NET inherits from the System.Data.Common namespace to provide access through a single API to databases across multiple providers.
ADO.NET developers can build applications that work with multiple vendors' database servers with one set of data access code and with a minimum of vendor-specific code. Developers can now be more productive when building one set of code that works against multiple vendors' databases.
See Also:
Oracle Data Provider for .NET Developer's Guide for details
1.1.8.2 Connection String Builder
ODP.NET provides a strongly typed connection string builder class that inherits from DbConnectionStringBuilder. The connection string builder lets developers programmatically create syntactically correct connection strings based on user input, as well as parse and rebuild existing connection strings by using class methods. Connection string builders provide strongly-typed properties that correspond to known key/values pairs.
ODP.NET connection strings are now more secure and more manageable. Because connection string parameters can now be strongly typed, they are less subject to string injection attacks. Connection string parameters can now be referenced in configuration files or as ODP.NET properties, making managing connection information easier.
See Also:
Oracle Data Provider for .NET Developer's Guide for details
1.1.8.3 OracleDataAdapter Batch Processing
During updates to Oracle Database, the ODP.NET OracleDataAdapter can batch a set of rows back to the database per round trip. The number of rows per round trip can be set by the developer.
This feature enhances application performance by reducing the number of round trips to the database when applying updates from the DataSet.
See Also:
Oracle Data Provider for .NET Developer's Guide for details
1.1.8.4 Row-Level Change Notifications
.NET developers often used client-side cached data. When another user changes the original data on the server, the database sends a change notification message to the client, indicating that the client data is now invalid. Previously, change notifications were registered at the table level. In this release, developers can register their queries at the row level so that they are alerted only when the rows they selected have changed.
.NET clients can now receive more accurate change notification alerts.
See Also:
Oracle Data Provider for .NET Developer's Guide for details
1.1.8.5 Schema Discovery
ODP.NET schema discovery allows applications to request and return information about the database schema to the client. Different database schema elements such as tables, columns, and stored procedures are exposed through the GetSchema methods of the OracleConnection class.
ODP.NET can retrieve a set of generic and Oracle-specific schema information.
Schema discovery supplies a common API for all ADO.NET 2.0 drivers to retrieve database schema information to the client application.
See Also:
Oracle Data Provider for .NET Developer's Guide for details
1.1.8.6 Data Source Enumeration
The ODP.NET OracleDataSourceEnumerator class provides a list of active Oracle database servers.
Data source enumeration can be retrieved programmatically in a generic manner common to all ADO.NET 2.0 providers.
See Also:
Oracle Data Provider for .NET Developer's Guide for details
1.1.8.7 Faster LOB Retrieval
ODP.NET now makes fewer round trips to the database server to retrieve LOB information.
ODP.NET LOB retrieval performance is now faster.
See Also:
Oracle Data Provider for .NET Developer's Guide for details
1.1.8.8 Improved Parameter Context Caching in Statement Caching
For statement caching, ODP.NET now caches parameter contexts after the first statement execution.
Many applications execute the same SQL or PL/SQL statement repeatedly. In the first execution of the statement, ODP.NET can now cache parameter contexts so that they can be reused. This improves the performance of subsequent statement executions.
See Also:
Oracle Data Provider for .NET Developer's Guide for details
1.1.9 Oracle Provider for OLE DB
These features improve data access performance from Windows clients to Oracle Database. Many of these features are transparent, meaning applications experience faster performance by upgrading the database server and client without any code changes.
1.1.9.1 Faster Performance
Oracle Provider for OLE DB has implemented a number of new features in its provider to improve query performance for the end user.
See Also:
Oracle Provider for OLE DB Developer's Guide for details
1.1.9.2 Improved Metadata Caching
For metadata caching, Oracle Provider for OLE DB now caches the metadata after the first execution when statement caching is turned off. This is useful when a large amount of column metadata is retrieved with a small amount of row data. Oracle Provider for OLE DB has also improved metadata caching when statement caching is turned on.
Many applications execute the same SQL or PL/SQL statement repeatedly. In the first execution of the statement, Oracle Provider for OLE DB can cache a query's metadata so that it can be reused. This improves the performance of subsequent statement executions.
See Also:
Oracle Provider for OLE DB Developer's Guide for details
1.1.9.3 Improved Statement Caching
For statement caching, Oracle Provider for OLE DB now caches large fetch arrays and OCI error handles after the first execution.
Many applications execute the same SQL or PL/SQL statement repeatedly. In the first execution of the statement, Oracle Provider for OLE DB can now cache a statement's parse information so that it can be reused. This improves the performance of subsequent statement executions.
See Also:
Oracle Provider for OLE DB Developer's Guide for details
1.1.10 PHP
The features in the following sections describe the enhancements to Oracle's client-side stack so that data access open source PHP driver performs better than PHP data access drivers for other databases.
1.1.10.1 Database Resident Connection Pooling (DRCP)
Prior to this release, session sharing capabilities were available for multithreaded applications only. With this new feature, different application processes can share sessions within the same host machine as well as across multiple host machines. The pool is maintained on the database server by a new background process.
This feature is useful for applications that cannot be deployed as multithreaded (for example, PHP applications in an Apache Web server environment) and database requests are done in a session state independent manner. These applications no longer have to hold the connections to the database persistently, thereby increasing the scalability of the database.
The pool is managed by the DBA and the OCI and OCCI applications can reuse the sessions by specifying a connection class name within which the application leaves sessions of similar state.
See Also:
Oracle Call Interface Programmer's Guide for details
1.1.11 PL/SQL
The following sections discuss features that:
• Reduce downtime associated with application patching
• Enhance performance and scalability (TPCC, APPS)
• Provide integration between PL/SQL and SQL
1.1.11.1 XA API Available Within PL/SQL
The functionality available in the XA interface to support transactions involving multiple resource managers, such as databases and queues, is now available from PL/SQL.
Application developers are now able to switch or share transactions across SQL*Plus sessions or processes using PL/SQL.
See Also:
Oracle Database Advanced Application Developer's Guide for details
1.1.11.2 Allow Sequences in PL/SQL Expressions
In the previous release of Oracle Database, when a PL/SQL program needed to get a value from syntax, it used SQL. For example:
DECLARE n NUMBER;
BEGIN
SELECT Seq.Nextval INTO n FROM Dual;
END;
This posed a usability problem for PL/SQL programmers and causes runtime performance and scalability problems for the application particularly because it requires the use of a cursor.
In Oracle Database 11g, it is now possible to simply use Seq.Nextval in a PL/SQL expression. For example:
DECLARE n NUMBER := Seq.Nextval;
BEGIN
...
The same is possible for the CURRVAL pseudocolumn.
This feature brings improved usability for the PL/SQL programmer and improved runtime performance and scalability.
See Also:
Oracle Database PL/SQL Language Reference for details
1.1.11.3 Enhancements to the Regular Expression Built-Ins
There is new syntax to access the nth subexpression in REGEXP_SUBSTR and REGEXP_INSTR. This is useful if, for example, the matching string is always surrounded by tags like
The new built-in REGEXP_COUNT returns the number of times the pattern is matched in the input string.
This new functionality is available both in SQL and in PL/SQL.
The benefit is increased functionality for the regular expression built-ins. Earlier applications that needed this functionality had to write relatively elaborate application code which is no longer the case.
See Also:
Oracle Database Advanced Application Developer's Guide for details
1.1.11.4 Functional Completeness of Dynamic SQL for PL/SQL
In Oracle Database 11g, native dynamic SQL now supports statements bigger than 32K characters by allowing a CLOB argument. Also included with this feature:
• DBMS_SQL.PARSE() gains a CLOB overload
• A REF CURSOR can be converted to a DBMS_SQL cursor and vice versa to support interoperability
• DBMS_SQL supports the full range of data types (including collections and object types)
• DBMS_SQL allows bulk binds using user-define collection types
The features for executing dynamic SQL from PL/SQL had some restrictions in Oracle Database 10g. DBMS_SQL was needed for Method 4 scenarios but it could not handle the full range of data types and its cursor representation was not usable by a client to the database. Native dynamic SQL was more convenient for non-Method 4 scenarios, but it did not support statements bigger than 32K. Oracle Database 11g removes these and other restrictions to make the support of dynamic SQL from PL/SQL functionally complete.
See Also:
Oracle Database PL/SQL Language Reference for details
1.1.11.5 Method Invocation Scoping Operator
A subtype usually adds specific data attributes to its more generic supertype. Typically, a NOT FINAL member procedure, for example, Show_Attributes(), is implemented at each level in the type hierarchy. It is natural to implement this at one level by reusing the implementation at the parent level and by adding new code just for the attributes of the subtype.
Oracle Database 11g supports the ANSI SQL generalized-invocation syntax to allow the following:
(
Without this syntax, programmers were forced to use a cumbersome workaround which relied on using static subprograms rather than member subprograms.
This feature brings the implementation of object-oriented programming in Oracle Database closer to completeness.
See Also:
Oracle Database Object-Relational Developer's Guide for details
1.1.11.6 Named and Mixed Notation for User-Defined PL/SQL Subprogram in a SQL Statement
Consider a schema-level function f() declared as:
FUNCTION f(
p1 IN INTEGER := 1,
p2 IN INTEGER := 2,
...
pn IN INTEGER := 99)
RETURN INTEGER
Beginning in this release, it is now possible to invoke the function in a SQL statement. For example, named notation syntax is:
SELECT f(pn=>3, p2=>2, p1=>1) FROM dual
Or, mixed notation is:
SELECT f(1, pn=>3) FROM dual
In previous releases, attempting named or mixed notation resulted in an error.
The benefit is improved usability when a PL/SQL function, with many default parameters, is invoked in a SQL statement and only one or a small number of the actual parameters need to differ from their default values.
See Also:
Oracle Database PL/SQL Language Reference for details
1.1.11.7 New Compound Trigger Type
A compound trigger has a section for each of the BEFORE STATEMENT, BEFORE EACH ROW, AFTER EACH ROW, and AFTER STATEMENT timing points. All of these sections can access a common PL/SQL state. The common state is created when the firing statement starts and destroyed when it completes, even when the firing statement causes an error. A compound trigger can be used to speed performance in an auditing scenario where audit rows can be accumulated in the EACH ROW section and bulk inserted to the audit table in the AFTER STATEMENT section. A similar approach is sometimes required to avoid the mutating table error. The alternative to using compound triggers is to model the common state with an ancillary package. This approach is both cumbersome to program and subject to memory leak when the triggering statement causes an error and the AFTER STATEMENT trigger does not fire.
This feature brings improved usability for the PL/SQL programmer and improved runtime performance and scalability.
See Also:
Oracle Database PL/SQL Language Reference for details
1.1.11.8 PL/Scope
PL/Scope allows you to browse PL/SQL source code analogously to the way that Cscope (see http://cscope.sourceforge.net/) allows you to browse C source code. You can search for and display all types of definitions, declarations, assignments and references in the PL/SQL source code.
The PL/SQL compiler can optionally derive the metadata needed to support PL/Scope and store it in the database catalog. The metadata takes into account the nuances of the language, including scoping and overloading. You can generate reports (especially hyperlinked HTML reports) with supplied report generators. This feature is exposed through Oracle SQL Developer's interactive PL/SQL development environment.
PL/Scope supports increased developer productivity, especially for those who need to maintain someone else's code.
See Also:
Oracle Database Advanced Application Developer's Guide for details
1.1.11.9 PL/SQL CONTINUE Statement
Many programming languages allow transfer of control either out of the loop entirely or within a loop back to a new iteration. In previous releases, PL/SQL only allowed transfer of control out of the loop using the EXIT statement. In Oracle Database 11g Release 1 (11.1), the new CONTINUE statement implements the ability to transfer control within a loop back to a new iteration.
Many algorithms require the loop control that this new CONTINUE statement now provides. With this explicit feature, you are no longer required to code several lines of PL/SQL and maintain commonly-adopted style rules.
See Also:
Oracle Database PL/SQL Language Reference for details
1.1.11.10 PL/SQL Hierarchical Profiler
PL/SQL Hierarchical Profiler identifies hot spots and performance tuning opportunities in PL/SQL database applications. It reports the dynamic execution program profile organized by subprogram calls. SQL and PL/SQL execution times are accounted for separately. PL/SQL Hierarchical Profiler requires no special source or compile time preparation.
Start and stop procedures in the new package, DBMS_HPROF, control the recording of raw PL/SQL Hierarchical Profiler data. Then other subprograms in this package are used to transform the raw data into schema-level tables to allow the generation of reports. For example, hyperlinked XML or HTML reports.
This feature is part of Oracle SQL Developer's interactive PL/SQL development environment.
Programmer productivity and program performance are both enhanced because PL/SQL Hierarchical Profiler directs tuning effort towards those PL/SQL functions that will benefit most.
See Also:
Oracle Database Advanced Application Developer's Guide for details
1.1.11.11 PL/SQL Inlining Optimization
Modern PL/SQL software includes many procedures frequently called in various programs. The power of the PL/SQL optimizing compiler is increased by incorporating the inlining optimization (replacement of a procedure call with a copy of the procedure body). The revised code executes more quickly because call overhead has been eliminated and because further optimizations are possible when the compiler knows the actual values with which the inlined procedure is called.
Performance gains can be substantial. The compiler does this optimization automatically. However, you may control the optimization in detail when necessary. Many PL/SQL programs execute faster, as a direct consequence of upgrade, simply by recompiling existing units.
See Also:
Oracle Database PL/SQL Language Reference for details
1.1.11.12 SIMPLE_INTEGER Data Type
The new PL/SQL SIMPLE_INTEGER data type is a binary integer for use with native compilation which is neither null checked nor overflow checked. The range is all integer values in the inclusive interval [-2147483648..2147483647] and does not include a null value. These rules allow a direct hardware implementation when used in combination with PL/SQL native compilation.
The SIMPLE_INTEGER data type yields significant performance benefits compared to PLS_INTEGER. It can be used when the value will never be null and when overflow check is not needed.
See Also:
Oracle Database PL/SQL Language Reference for details
1.1.12 XML Application Development
The features described in the following sections ensure that PL/SQL, Java, C and .NET programmers can leverage the full capabilities of Oracle XML DB and the Oracle XML DB repository. These new features also extend the infrastructure components to support Binary XML and provides an efficient method for handling very large XML documents. There is also support relevant to JSRs for XML application development including JSR-170 for content repository access and the emerging JSR-225 standard for XQuery. The Oracle XML libraries continue to deliver the best possible application development framework for XML developers working in J2EE and .NET environments, regardless of whether they are using the Oracle XML DB feature. These new features deliver highly optimized XSLT and XQuery engines for use with Oracle Application Server and Fusion Middleware.
1.1.12.1 Binary XML Support for Java
The new XDK binary XML processors include a binary XML encoder, a binary XML decoder, and a token manager to convert the schema or nonschema-based binary XML stream to and from XML 1.0 text and SAX events. The format is the same as the format used within Oracle XML DB.
This feature allows XML processing applications to leverage a compact, pre-parsed XML format which could save in memory and CPU consumption as well as network bandwidth. With a single format supported by Oracle XML DB and Oracle XDK and the Oracle XML DB support within the binary XML processors, this feature allows the performance optimization across tier XML applications.
See Also:
Oracle XML Developer's Kit Programmer's Guide for details
1.1.12.2 Binary XML Support for Oracle XML DB
No single approach to persisting XML can solve all of the possible use cases presented by the XML application development paradigm. Binary XML (which is a way of representing the structure of an XML document) adds a third storage model for persisting XML in the database. It complements, rather than replaces, the existing object storage and text storage models.
Binary XML has two significant benefits:
• It enables significant optimizations of XML operations whether or not an XML schema is available.
• It allows the internal representation of XML to be the same regardless of whether the XML is in disk, in memory, or on the wire.
As with other storage mechanisms, the application developer can continue to use XMLType and its associated methods and operators without regard to the details of storage.
See Also:
Oracle XML DB Developer's Guide for details
1.1.12.3 Configurable DOM Support for Java
The following options are provided for building Document Object Model (DOM):
• static final String ACCESS_MODE = "DOM_ACCESS_MODE";
• static final String READ_ONLY = "READ_ONLY";
• static final String UPDATEABLE = "UPDATEABLE";
• static final String FORWARD_READ = "FORWARD_READ";
• static final String STREAMING = "STREAM_READ";
This feature enables XML applications to achieve maximum efficiency in terms of memory usage and performance by configuring the DOM building with different access patterns such as read-only, forward read, or streaming. This feature prevents light-weight XML applications from having to deal with a heavy DOM object tree.
See Also:
Oracle XML Developer's Kit Programmer's Guide for details
1.1.12.4 Event-Based XML Pull Parsing for C
XML pull parsing supports the stream-based parsing model which limits memory footprints by not preserving any document states in memory. Compared with SAX, the new pull parsing model only parses events requested by the application and accepts multiple input XML documents.
This feature improves the C XML processing performance and ensures the scalability with the new stream-based XML pull parsing. This feature also limits memory footprints by not preserving any document states in memory and improves the performance of the XML processing by only parsing stream events requested by the application. The pull parsing also makes the XML processing easy-to-use by allowing one parsing process to handle multiple XML documents.
See Also:
Oracle XML Developer's Kit Programmer's Guide for details
1.1.12.5 High Performance XPath Query for Java
Support JAXP 1.3 APIs for query XML content using XPath with the following extensions:
• Supports variable resolver in both static and dynamic context.
• Allows users to register runtime context.
This feature improves the performance and the usability of Java XPath/XSLT implementation.
1.1.12.6 In-Place XML Schema Evolution
This feature lets users make changes to a registered XML schema without having to unload and reload all of the XML documents that are compliant with the XML schema. Existing documents are not modified during in-place evolution, so only changes that do not invalidate the existing corpus of XML documents are permitted.
This feature enables rapid responses to changes in requirements by allowing certain common changes to XML schemas be made without having to unload and reload data. Organizations can take advantage of the benefits of XML schema-based XML storage in environments where the dynamic nature of the application or the large volume of XML content might make unloading and reloading the entire XML corpus to accommodate a change in the XML schema unrealistic.
The feature greatly reduces the overhead involved in making changes to XML schema in the majority of cases. Evolving an XML schema in cases where there are large number of documents compliant with the XML schema is a very expensive process that can take days to complete. In-place XML schema evolution allows the majority of common changes to be made almost instantaneously, with zero downtime, resulting in significant cost savings for the organization.
See Also:
Oracle XML DB Developer's Guide for details
1.1.12.7 Mid-Tier XQuery Engine Performance Improvements
XQuery performance improvements have been made in this release.
XQuery performance improvements for the mid-tier speed up applications relying on the mid-tier XQuery services.
1.1.12.8 Pluggable DOM Support for Java
The pluggable DOM splits the DOM implementation into two separate layers, the DOM API layer and the data layer. The API layer consists of a lightweight, transient node fragment that links to underlying data, which can be backed by external storage for scalability. The data has two varieties, internal data and plug-in data. The plug-in data support is through the InfosetReader implementations.
This feature allows XML applications to build DOM based on different forms of XML data through a unified interface. This feature improves portability of the XML applications.
See Also:
Oracle XML Developer's Kit Programmer's Guide for details
1.1.12.9 Scalable and High Performance XML Validation for C
The stream-based XML Schema validation allows XML applications to validate XML content against XML schemas in XML pull parsing process.
High performance XML processing and its scalability are very critical for enterprise XML applications. This feature improves the C XML processing performance and ensures the scalability with the new stream-based XML Schema validation.
See Also:
Oracle XML Developer's Kit Programmer's Guide for details
1.1.12.10 Scalable DOM Support for Java
This feature ensures the scalability of Database Object Model (DOM) processing for XML applications with the following support:
• Allows XML applications to process large XML documents by loading and saving DOM nodes in memory and using a page manager for physical binary data management.
• Allows storing DOM updates with references to the source data in Binary XML.
• Allows multiple applications sharing same DOM data source and operating on a lightweight, transient node fragment that links to underlying data, which can be backed by external storage for scalability.
• Supports Binary XML as the data source or the output.
• Supports shadow copy in DOM (cloneNode() or importNode()) which does not require the whole content being deep copied.
Scalability is the key to the success of the enterprise XML applications. This feature ensures the scalability of DOM processing for XML applications.
See Also:
Oracle XML Developer's Kit Programmer's Guide for details
1.1.12.11 Unified Java API for XML
The new unified Java API for XML allows mid-tier Java programs to leverage all of the benefits of XMLType by providing a disconnected mode of operation that allows XMLType to be used with a session pool model of connection management.
This allows the XMLType object to be disconnected from the database session that was used to create it.
This feature improves Java programmer productivity by allowing a single API to be used to manipulate XML content stored in Oracle XML DB and XML content stored in other sources.
Unified Java API also provides a disconnection mode of operation that allows XMLType to be used in a mid-tier environment where session pooling makes it impractical to hold the database connection that was used to instantiate the XMLType.
1.1.12.12 Unified Java API for XML
This feature allows mid-tier Java programs to leverage all of the benefits of XMLType by providing a disconnected mode of operation that allows XMLType to be used with a session pool model of connection management. This allows the XMLType object to be disconnected from the database session that was used to create it.
This feature improves Java programming productivity by allowing a single API to be used to manipulate the XML content stored in Oracle XML DB and the XML content stored in other sources.
This feature provides a disconnection mode of operation that allows XMLType to be used in a mid-tier environment where session pooling makes it impractical to hold the database connection that was used to instantiate the XMLType.
See Also:
Oracle XML Developer's Kit Programmer's Guide for details
1.1.12.13 XMLDiff Support for C
The XMLDiff detects the differences between the two XML documents and represents the difference in XML. The XMLPatch takes the differences created by XMLDiff and applies the changes on the target XML document.
This feature allows high performance XML document comparison and user controlled updates. With the support for detecting differences between two XML documents, XML applications can easily control document versions, merge and synchronize the content. The feature also reduces the processor demand by handling only the changed data, reduces bandwidth demands by transmitting only updates, and increases security by splitting sensitive data into separate streams which can then be reassembled on delivery.
See Also:
Oracle XML Developer's Kit Programmer's Guide for details
1.1.12.14 XMLIndex Enhancements
This feature provides an asynchronous mode for XMLIndex, where the indexing operations take place separately from the INSERT or UPDATE operations. Applications no longer have to wait for indexing to complete (which, for large documents, can be a significant operation) before being able to complete a transaction.
This feature also provides the ability to define the set of XPath expressions that are indexed by a given XMLIndex. The subset can be defined using INCLUDE or EXCLUDE syntax.
Subsetting XPath expressions that are indexed allows organizations to balance index size with disk usage, and to balance performance on insert with flexibility on retrieval.
This feature provides more flexibility for the organizations using XMLIndex. XMLIndex can be used in a wide range of applications. The feature improves application performance by allowing indexing to take place separately from INSERT and UPDATE operations. It also allows organizations to balance performance, flexibility, and disk usage when using XMLIndex.
See Also:
Oracle XML DB Developer's Guide for details
1.2 Availability
The following sections describe Availability features for Oracle Database 11g Release 1 (11.1).
1.2.1 Availability Interfaces in Oracle Enterprise Manager
The following sections describe improvements to the Enterprise Manager interfaces for high availability features.
1.2.1.1 Browser-Based Enterprise Manager Integrated Interface for LogMiner
This feature now makes it possible to use the browser-based Oracle Enterprise Manager Database Control interface for LogMiner. In prior releases, administrators were required to use the standalone Java Console to use LogMiner. The Console was not integrated with the rest of Enterprise Manager and was cumbersome to install. With this new interface, administrators have a task-based, intuitive approach to using LogMiner.
This new feature improves the manageability of LogMiner. The task-based work flows enable log mining and are integrated with Flashback Transactions.
1.2.2 Data Guard Improvements
The features in the following sections describe enhancements to Oracle Data Guard.
1.2.2.1 Fast-Start Failover for Maximum Performance Mode in a Data Guard Configuration
This feature enables fast-start failover to be used in a Data Guard configuration that is set up in the maximum performance protection mode. Since there is some possibility of data loss when a Data Guard failover occurs in maximum performance mode, administrators can now choose not to do a fast-start failover if the redo loss exposure exceeds a certain amount.
This enhancement allows a larger number of disaster recovery configurations to take advantage of Data Guard's automatic failover feature.
See Also:
Oracle Data Guard Broker for details
1.2.2.2 Compression of Redo Traffic (Only for Gap Resolution) Over the Network in a Data Guard Configuration
Archived redo logs, if needed to be transmitted to the standby database in an Oracle Data Guard configuration, can now be compressed as they are sent over the network.
This feature improves the network bandwidth utilization in an Oracle Data Guard configuration.
See Also:
Oracle Data Guard Concepts and Administration for details
1.2.2.3 Real-Time Query Capability of Physical Standby Database
It is now possible to query a physical standby database while Redo Apply is active.
This new capability increases your return on investment in Data Guard technology because a physical standby database can now be used to offload queries from the primary database in addition to providing data protection.
See Also:
Oracle Data Guard Concepts and Administration for details
1.2.2.4 Fast Role Transitions in a Data Guard Configuration
This feature improves the performance of Oracle Data Guard role transitions.
The benefit is increased flexibility and manageability of your disaster recovery configurations using Oracle Data Guard.
1.2.2.5 User Configurable Conditions to Initiate Fast-Start Failover in a Data Guard Configuration
This feature enables the administrator to choose and configure a list of conditions which, if they occur, will initiate fast-start failover.
This feature increases the flexibility and manageability of customers' disaster recovery configurations.
See Also:
Oracle Data Guard Broker for details
1.2.3 Data Guard Integration, Simplification, and Performance
The new features in the following sections simplify the configuration and use of Oracle Data Guard. For example, some features provide a smaller set of integrated parameters, a unified SQL/Broker syntax, and better integration with other High Availability features like RMAN and Oracle RAC. Other features enhance the performance of key Oracle Data Guard features like redo transport, gap resolution, switchover/failover times, and Logical Standby Apply.
1.2.3.1 Dynamic Setting of Oracle Data Guard SQL Apply Parameters
It is now possible to configure specific SQL Apply parameters without requiring SQL Apply to be restarted.
This ability improves the manageability, uptime, and automation of a Logical Standby configuration.
1.2.3.2 Enhanced Data Guard Broker Based Management Framework
The enhancements for this release include:
• Data Guard Broker improved logging and tracing
• OMF support for Data Guard Broker configuration files
• Data Guard Broker integration with database startup
• Data Guard Broker support for advanced redo transport settings
• Data Guard Broker support of prepared switchovers for Logical Standby
These enhancements make it possible to use Data Guard Broker in a wider variety of disaster recovery configurations.
See Also:
Oracle Data Guard Broker for details
1.2.3.3 Enhanced Data Guard Management Interface (Using SQL*Plus)
This feature makes it much simpler to use Oracle Data Guard administration-related SQL statements and initialization parameters.
The benefit of this feature is increased flexibility and manageability of disaster recovery configurations using Oracle Data Guard.
See Also:
Oracle Data Guard Concepts and Administration for details
1.2.3.4 Histogram for Redo Transport Response Time in a Data Guard Configuration
This feature advises on a suitable value for NET_TIMEOUT based on the response times for SYNC redo transport destinations.
The benefit is an increase in the flexibility and manageability of disaster recovery configurations using Data Guard.
See Also:
Oracle Data Guard Concepts and Administration for details
1.2.3.5 Snapshot Standby
A physical standby database can be open temporarily (that is, activated) for read/write activities such as reporting and testing. A physical standby database in such a state can still receive redo data from the primary database, thereby providing data protection for the primary database while still in the reporting database role.
This feature provides the combined benefit of disaster recovery, and reporting and testing using a physical standby database.
See Also:
Oracle Data Guard Concepts and Administration for details
1.2.3.6 Strong Authentication for Data Guard Redo Transport
Redo transport network sessions can now be authenticated using SSL. This provides strong authentication and makes the use of remote login password files optional in a Data Guard configuration.
The benefit is increased security of your disaster recovery configurations using Oracle Data Guard.
See Also:
Oracle Data Guard Concepts and Administration for details
1.2.3.7 Enhanced DDL Handling in Oracle Data Guard SQL Apply
SQL Apply executes in parallel (based on availability of parallel servers) DDLs that were executed with a parallel hint at the primary database.
1.2.3.8 Enhanced Oracle RAC Switchover Support for Logical Standby Databases
When switching over to a logical standby database where either the primary database or the standby database is using Oracle RAC, the SWITCHOVER command can be used without having to shut down any instance either at the primary or at the logical standby database.
1.2.4 Data Guard Logical Apply Completeness
The following sections describe features that add support for other database server features that are not currently handled by Oracle Data Guard. For example:
• LogMiner support for unsupported data types
• Objects and XML
1.2.4.1 Oracle Scheduler Support in Data Guard SQL Apply
It is now possible to use a logical standby database to provide data protection for a primary database in which the DBMS_SCHEDULER package was executed.
This enhancement allows Data Guard SQL Apply (logical standby database) to be used for a wider variety of applications.
See Also:
Oracle Data Guard Concepts and Administration for details
1.2.4.2 Fine-Grained Auditing (FGA) Support in Data Guard SQL Apply
It is now possible to use a logical standby database to provide data protection for primary databases using Oracle Fine-Grained Auditing (FGA).
This new support allows Data Guard SQL Apply (logical standby database) to be used for a wider variety of applications. In this case, applications with security features built-in.
See Also:
Oracle Data Guard Concepts and Administration for details
1.2.4.3 Support Transparent Data Encryption (TDE) with Data Guard SQL Apply
It is now possible to use a logical standby database to provide data protection for the primary database tables with Transparent Data Encryption (TDE).
This new support allows Data Guard SQL Apply (logical standby database) to be used for a wider variety of applications. In the case, applications with security features built-in.
See Also:
Oracle Data Guard Concepts and Administration for details
1.2.4.4 Support XMLType Data Type (Only CLOB) in Data Guard SQL Apply
It is now possible to use a logical standby database to provide data protection for primary database tables with the XMLType data type (only the CLOB representation).
This new support allows Data Guard SQL Apply (logical standby database) to be used in a wider variety of applications.
See Also:
Oracle Data Guard Concepts and Administration for details
1.2.4.5 Virtual Private Database (VPD) Support in Data Guard SQL Apply
It is now possible to use a logical standby database to provide data protection for primary database tables with Oracle Virtual Private Database (VPD).
This new support allows Data Guard SQL Apply (logical standby database) to be used for a wider variety of applications. In this case, applications with security features built-in.
See Also:
Oracle Data Guard Concepts and Administration for details
1.2.5 High Availability Improvements
The following sections describe general improvements in High Availability.
1.2.5.1 Flashback Transaction
Flashback transaction is a new feature that can easily back out a transaction and its dependent transactions. This recovery operation utilizes undo data to create and execute the corresponding, compensating transactions that revert the affected data back to its original state.
This feature increases availability during logical recovery by easily and quickly backing out a specific transaction or set of transactions and their dependent transactions, with one command, while the database remains online.
See Also:
Oracle Database Advanced Application Developer's Guide for details
1.2.5.2 SMP Scalable Redo Apply
Redo Apply performance has been significantly improved as a result of some internal optimizations in media recovery. Wait event generation in media recovery has also been enhanced.
This feature enables faster performance of media recovery and also Data Guard Redo Apply (physical standby database), thereby enabling real-time disaster recovery for more voluminous and highly transactional databases.
1.2.5.3 Transportable Databases Between Linux and Windows
This feature enables simple moving of databases between Linux and Windows.
This results in transportable databases between Linux and Windows enabling cross-platform physical standby and simple moving of databases between Linux and Windows.
1.2.6 Information Life Cycle Management
The features described in the following sections provide automated and policy-based movement of data between storage tiers and they provide mechanisms for complying with retention and immutability regulations.
1.2.6.1 Flashback Data Archive
The historical data store provides the ability to store and track all transactional changes to a record for the duration of its lifetime.
The database maintains every state of the record during its lifetime. You no longer need to build this intelligence into the application. This feature is useful for compliance reporting and audit reports.
See Also:
Oracle Database Advanced Application Developer's Guide for details
1.2.7 Integration, Simplification, and Performance of Availability Features
These features describe improvements to the interoperability, usability, performance and robustness of existing functionality.
1.2.7.1 Automatic Reporting of Corrupt Blocks
During instance recovery, if corrupt blocks are encountered, the DBA_CORRUPTION_LIST is automatically populated.
Block validation occurs at every level of backup, media recovery, and instance recovery.
1.2.7.2 Block Media Recovery Performance Improvements
In prior releases, block media recovery needed to restore original block images from disk or tape backup before applying needed archived logs. In this release, if flashback logging is enabled and contains older, uncorrupted blocks of the corrupt blocks in question, then these blocks will be used, speeding up the recovery operation.
The benefit is a reduction in the time it takes for block media recovery by restoring block images from flashback logs instead of from disk or tape backups.
See Also:
Oracle Database Backup and Recovery User's Guide for details
1.2.7.3 Creation and Recovery of Long-Term Backups Improved
Long-term backups created with the KEEP option only back up the archive logs needed to make the backup consistent. No further archive log backups are retained.
This feature reduces the archive log backup storage needed for online, long-term KEEP backups by only backing up the archive logs needed to recover the long-term backup.
See Also:
Oracle Database Backup and Recovery User's Guide for details
1.2.7.4 End-to-End Redo Validation
This feature enhances redo validation.
End-to-end redo validation provides foreground redo checksum at generation time. This improves CPU and cache efficiency for the checksum computation.
1.2.7.5 Merge Catalogs
The new IMPORT CATALOG command allows one catalog schema to be merged into another, either the whole schema or just the metadata for specific database IDs.
This feature simplifies catalog management by allowing separate catalog schemas, created at different versions, to be merged into a single catalog schema.
See Also:
Oracle Database Backup and Recovery User's Guide for details
1.2.7.6 Parallel Backup and Restore for Very Large Files
Backups of large data files now use multiple parallel server processes to efficiently distribute the workload for each file. This is especially useful for very large files.
This features improves the performance backups of large data files by parallelizing the workload for each file.
See Also:
Oracle Database Backup and Recovery User's Guide for details
1.2.8 Intelligent Data Protection and Repair
The following sections describe features that automate the process of determining what kind of recovery is needed and applying that needed recovery.
1.2.8.1 Data Recovery Advisor
Data Recovery Advisor is a built-in tool that automatically diagnoses data failures and reports the appropriate repair options.
Data Recovery Advisor ensures the correct repair is performed for a failure and decreases the amount of time to recover from a failure.
See Also:
Oracle Database Backup and Recovery User's Guide for details
1.2.8.2 Enhance LogMiner to Support Automatic Data Repair
This new feature adds support for Automatic Data Repair (ADR).
Automatic Data Repair (ADR) requires the ability to lookup metadata when the database is not available. This project enhances the existing functionality in LogMiner to support ADR.
1.2.8.3 Integrated Protection From Various Data Corruptions
Through the creation of a new initialization parameter, DB_ULTRA_SAFE={off, data_only, data_and_index}, this capability provides an integrated mechanism to offer protection from various possible data corruptions that may impact Oracle Database. This parameter controls the setting of other related parameters such as DB_BLOCK_CHECKING, DB_BLOCK_CHECKSUM, and DB_LOST_WRITE_PROTECT, and also controls other data protection behavior within Oracle Database (for example, requiring ASM to do sequential mirror writes).
This feature improves the data protection capabilities of Oracle Database by offering an integrated mechanism to control various levels of protection from data corruptions. By making it possible to detect data corruptions in a timely manner, this feature also provides critical high availability benefits for Oracle Database.
1.2.8.4 Lost-Write Detection Using a Physical Standby Database
Lost-write is a serious form of data corruption that can adversely impact a database. Lost-write occurs when an I/O subsystem acknowledges the completion of a block write in the database while, in fact, the write did not occur in the persistent storage. This arises mostly because of hardware or software malfunctioning. This feature enables the use of the physical standby database to detect data corruptions that could arise as a result of lost-writes on the primary database.
This feature allows for more comprehensive data corruption detection using a physical standby database, helping you get increased value from your disaster recovery investment and maintain the uptime requirements of your business.
See Also:
Oracle Data Guard Concepts and Administration for details
1.2.9 Online Application Maintenance and Upgrade
The following features can significantly reduce the downtime required to make changes to an application's database objects.
1.2.9.1 DDL With the WAIT Option
Data definition language (DDL) commands require exclusive locks on internal structures. If DDL commands are issued, these locks may not be available causing the statement to immediately fail even though the DDL could have possibly succeeded sub-seconds later. This can be resolved by setting the WAIT option in the DDL_LOCK_TIMEOUT initialization parameter.
The WAIT option is the new default. The wait time is specified instance-wide (in the initialization parameter file) and can be modified on a session level.
The WAIT option gives you more flexibility to define grace periods for such commands to succeed instead of raising an error right away, thus requiring additional application logic to handle such errors.
See Also:
Oracle Database Administrator's Guide for details
No comments:
Post a Comment