Increased performance of DML triggers (up to 25%).
Fine grained dependency tracking. In previous releases, if you have a view or package that uses a table and you modify that table ( ie. add a column), those views and packages will be automatically invalidated (Bryn called this "aggressive object invalidation"). In 11g, if you modify an element of a table that isn't used by the view or package, nothing is invalidated. This eliminates the need for excessive recompilation.
Real native compilation means that a C compiler is no longer needed to compile PL/SQL code.
SQL Query result cache. Results from SQL queries and stored procedures can now be cached for later use, resulting in increased performance.
Fine grained access to TCP packages ( utl_smtp, utl_tcp, etc) means security on these packages can be defined for individual ports and URLs.
Compound triggers are a new kind of trigger that can include a before, after, row and statement all in a single trigger.
Read-only tables.
Using sequences without DML. Yes, now x := nt sequence.nextval is valid syntax.. This may seem like a small enhancement, but it was the only item presented during the session that elicited a round of applause.
DML error logging allows errors on DML operations to be caught and recorded while allowing processing to continue. A reject limit can be set that specifies the number of errors that must occur before processing is stopped and a rollback executed.
Flashback table. When a table is dropped, it is stored in a recycle bin. The table can be restored until this recycle bin is purged.
Merge statements allows an insert or an update to be implemented in one statement. If the record does not exists in the database, then insert, otherwise update.
DBMS_METADATA package provides an API to get database object DDL.
Multi-table inserts conditionally insert into one table or another, or insert the same record into multiple tables at the same time.
Global temporary tables hold session-private data and exist only for the duration of the transaction or session.
Bulk binding allows multiple DML statements to be executed in bulk, reducing the number of context switches.
Deploy applications to the 3-tier Internet model. This model consists of the interface (presentation), middleware (business logic) and back-end database (services).
Allow Forms applications to operate with other applications deployed to the AS including Java/J2EE applications or Web Services.
Take advantage of a common environment. This allows Forms applications to use other AS features such as Single Sign On, Identity Management and Enterprise Manager, thus reducing the cost of administration and security.
Forms will be able to be triggered by external events. Currently, only user initiated events ( ie. pressing a button) or timers can trigger code inside a form. This enhancement will allow external processes that communicate with Oracle Advanced Queuing to send messages to a Forms application and cause triggers to fire.
In previous releases, each session had to create a new Forms server process. Forms 10g introduced pre-starting so multiple user sessions could be pre-started, reducing startup time. In Forms 11, these pre-started sessions can be scheduled in a variety of ways to better suit performance needs at any given time.
JavaScript integration will allow JavaScript in a web page to raise Form events, and Forms applications will be able to use JavaScript.
A new performance tuning tool will be able to identify and correct some common performance bottlenecks.