FAQ for RAC

In many situation you may like to go through the below link either interviews or knowledge sharing or for any other reasons.

Frequently Asked Questions (RAC FAQ) (Doc ID 220970.1)

RAC – Real Application Clusters

RAC

RAC One Node

QoS – Quality of Servce Management

Clusterware

Autonomous Computing

Rapid Home Provisioning

Flashback any objects

Is it true you can recover package or procedure or function or any other objects apart from table? Guess its true, starting with 9i this can be performed with flashback technology.

Scenario tested on 9i database.

SQL> select * from v$version;

BANNER
----------------------------------------------------------------
Oracle9i Enterprise Edition Release 9.2.0.8.0 - 64bit Production
PL/SQL Release 9.2.0.8.0 - Production
CORE    9.2.0.8.0       Production
TNS for Solaris: Version 9.2.0.8.0 - Production
NLSRTL Version 9.2.0.8.0 - Production

Creating a temporary procedure.

SQL> create or replace procedure Testproc as
begin
dbms_output.put_line('Test Case');
end;
/  2    3    4    5

Procedure created.

Get the timestamp

SQL> select to_char(sysdate,'dd-Mon-YYYY hh24:MI:SS') from dual;

TO_CHAR(SYSDATE,'DD-
--------------------
02-Mar-2017 13:18:31


SQL> select text from dba_source where name='TESTPROC';

TEXT
--------------------------------------------------------------------------------
procedure Testproc as
begin
dbms_output.put_line('Test Case');
end;

Lets drop the test procedure.

SQL> drop procedure Testproc;

Procedure dropped.

SQL> select to_char(sysdate,'dd-Mon-YYYY hh24:MI:SS') from dual;

TO_CHAR(SYSDATE,'DD-
--------------------
02-Mar-2017 13:46:03

Lets see if we can find our test procedure post drop.

Either of the command can be used

SQL> select text from dba_source  as of timestamp to_timestamp('02-Mar-2017 13:45:21','DD-Mon-YYYY hh24:MI:SS') where NAME='TESTPROC';

TEXT
--------------------------------------------------------------------------------
procedure Testproc as
begin
dbms_output.put_line('Test Case');
end;

SQL> select text from dba_source  as of timestamp systimestamp - interval '1' minute where NAME='TESTPROC';

TEXT
--------------------------------------------------------------------------------
procedure Testproc as
begin
dbms_output.put_line('Test Case');
end;

oh great, even though the procedure actually do not exist (in dba_objects) I can still get my procedure back with flashback query.

SQL> select object_name, object_type from dba_objects where object_name='TESTPROC';
no rows selected

SQL>

Ref: flashback a package/ procedure / trigger – overwritten or dropped (Doc ID 1622153.1)

ORA-30036 ? Seriously !!!

Hello fellas,

Its been quite a while that I am off blogging.

Today’s article is nothing great but felt sharing as it may help others.

This article is regarding issue with unstoppable undo generation while performing impdp.

The request is to import a table on the test environment.

You startup with the import activity a simple impdp command as below.

impdp directory=EXPDP dumpfile=DW_RETL_PRD_CAT_VAL_US_24Jan.dmp logfile=DW_RETL_PRD_CAT_VAL_US_07Feb_impdp.log tables=DSS.DW_RETL_PRD_CAT_VAL_US TABLE_EXISTS_ACTION=truncate

All great until you wait for it to be completed and suddenly you come across below message.

ORA-39171: Job is experiencing a resumable wait.
ORA-30036: unable to extend segment by 8 in undo tablespace 'UNDO'

So basically undo is been used during datapump import when we have indexes and primary key constraints.

Impdp will also not use the direct_path method, if indexes are applicable.

So follow below process to import in such situation.

1. Prior to import, disable the primary key constraints. For some reason if you have foreign key that reference these primary keys, disable the foriegn key as well.

alter table abc modify constraint cons1 disable novalidate;

Script to disable constraints

select 'alter table ' || owner || '.' || table_name || ' modify constraint ' || constraint_name || ' disable novalidate;'
from dba_constraints where owner='&owner'
and constraint_type='P'
order by owner, table_name,constraint_name;

'ALTERTABLE'||OWNER||'.'||TABLE_NAME||'MODIFYCONSTRAINT'||CONSTRAINT_NAME||'DISABLE NOVALIDATE;'
------------------------------------------------------------------------------------------------------------------------------------------------------
ALTER TABLE DSS.DW_RETL_PRD_CAT_VAL_US MODIFY CONSTRAINT DW_RPCVU_PK DISABLE NOVALIDATE;
select OWNER,CONSTRAINT_NAME,CONSTRAINT_TYPE,TABLE_NAME,R_OWNER,R_CONSTRAINT_NAME,STATUS from dba_constraints where owner='DSS'
and table_name='DW_RETL_PRD_CAT_VAL_US' and constraint_type='P'
order by owner, table_name,constraint_name;

OWNER                CONSTRAINT_NAME                C TABLE_NAME                     R_OWNER              R_CONSTRAINT_NAME              STATUS
-------------------- ------------------------------ - ------------------------------ -------------------- ------------------------------ --------
DSS                  DW_RPCVU_PK                    P DW_RETL_PRD_CAT_VAL_US

You can use below query to get all constraints info.

select OWNER,CONSTRAINT_NAME,CONSTRAINT_TYPE,TABLE_NAME,R_OWNER,R_CONSTRAINT_NAME,STATUS from dba_constraints where owner='DSS'
and table_name='DW_RETL_PRD_CAT_VAL_US'
order by owner, table_name,constraint_name;

2. Import data only, and create the indexes on the tables, after the import. Use parameter ACCESS_METHOD=DIRECT_PATH

While performing import came across below error.

impdp \'/ as sysdba\' directory=EXPDP dumpfile=DW_RETL_PRD_CAT_VAL_US_24Jan.dmp logfile=DW_RETL_PRD_CAT_VAL_US_07Feb_impdp.log tables=DSS.DW_RETL_PRD_CAT_VAL_US TABLE_EXISTS_ACTION=truncate ACCESS_METHOD=DIRECT_PATH
ORA-31696: unable to export/import TABLE_DATA:"DSS"."DW_RETL_PRD_CAT_VAL_US" using client specified DIRECT_PATH method

Instead of using table_exists_action=append/truncate I used table_exists_action=replace

Import: Release 11.2.0.2.0 - Production on Tue Feb 7 13:28:50 2017

Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.

Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production
With the Partitioning, OLAP and Real Application Testing options
Master table "SYS"."SYS_IMPORT_TABLE_01" successfully loaded/unloaded
Starting "SYS"."SYS_IMPORT_TABLE_01":  "/******** AS SYSDBA" directory=EXPDP dumpfile=DW_RETL_PRD_CAT_VAL_US_24Jan.dmp logfile=DW_RETL_PRD_CAT_VAL_US_07Feb_impdp.log tables=DSS.DW_RETL_PRD_CAT_VAL_US TABLE_EXISTS_ACTION=replace ACCESS_METHOD=DIRECT_PATH                                          
Processing object type TABLE_EXPORT/TABLE/TABLE
Processing object type TABLE_EXPORT/TABLE/TABLE_DATA
. . imported "DSS"."DW_RETL_PRD_CAT_VAL_US"              10.56 GB 318780855 rows
Processing object type TABLE_EXPORT/TABLE/GRANT/OWNER_GRANT/OBJECT_GRANT
Processing object type TABLE_EXPORT/TABLE/INDEX/INDEX
Processing object type TABLE_EXPORT/TABLE/CONSTRAINT/CONSTRAINT
Processing object type TABLE_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS
Processing object type TABLE_EXPORT/TABLE/INDEX/FUNCTIONAL_AND_BITMAP/INDEX
Processing object type TABLE_EXPORT/TABLE/INDEX/STATISTICS/FUNCTIONAL_AND_BITMAP/INDEX_STATISTICS
Processing object type TABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS
Job "SYS"."SYS_IMPORT_TABLE_01" successfully completed at 15:13:38.

3. After import completes, enable the primary key and foreign key if applicable.

alter table abc modify constraint cons1 enable validate;

Script to enable constraints

select 'alter table ' || owner || '.' || table_name || ' modify constraint ' || constraint_name || ' enable validate;'
from dba_constraints
where owner='&owner'
and constraint_type='P'
order by owner, table_name,constraint_name;

'ALTERTABLE'||OWNER||'.'||TABLE_NAME||'MODIFYCONSTRAINT'||CONSTRAINT_NAME||'DISABLENOVALIDATE;'
------------------------------------------------------------------------------------------------------------------------------------------------------
ALTER TABLE DSS.DW_RETL_PRD_CAT_VAL_US MODIFY CONSTRAINT DW_RPCVU_PK ENABLE VALIDATE;
select OWNER,CONSTRAINT_NAME,CONSTRAINT_TYPE,TABLE_NAME,R_OWNER,R_CONSTRAINT_NAME,STATUS from dba_constraints where owner='DSS'
and table_name='DW_RETL_PRD_CAT_VAL_US' and constraint_type='P'
order by owner, table_name,constraint_name;

OWNER                CONSTRAINT_NAME                C TABLE_NAME                     R_OWNER              R_CONSTRAINT_NAME              STATUS
-------------------- ------------------------------ - ------------------------------ -------------------- ------------------------------ --------
DSS                  DW_RPCVU_PK                    P DW_RETL_PRD_CAT_VAL_US

You can also use below query to get sql script.

impdp directory=EXPDP dumpfile=DW_RETL_PRD_CAT_VAL_US_24Jan.dmp logfile=DW_RETL_PRD_CAT_VAL_US_07Feb_impdp.log tables=DSS.DW_RETL_PRD_CAT_VAL_US sqlfile=DW_RETL_PRD_CAT_VAL_US_07Feb_impdp.sql

Important Note when using DIRECT_PATH: reference Export/Import DataPump Parameter ACCESS_METHOD – How to Enforce a Method of Loading and Unloading Data ? (Doc ID 552424.1)

EXPDP will use DIRECT_PATH mode if:

2.1. The structure of a table allows a Direct Path unload, i.e.:
     - The table does not have fine-grained access control enabled for SELECT.
     - The table is not a queue table.
     - The table does not contain one or more columns of type BFILE or opaque, or an object type containing opaque columns.
     - The table does not contain encrypted columns.
     - The table does not contain a column of an evolved type that needs upgrading.
     - If the table has a column of datatype LONG or LONG RAW, then this column is the last column.
2.2. The parameters QUERY, SAMPLE, or REMAP_DATA parameter were not used for the specified table in the Export Data Pump job.
2.3. The table or partition is relatively small (up to 250 Mb), or the table or partition is larger, but the job cannot run in parallel because the parameter PARALLEL was not specified (or was set to 1).

Note that with an unload of data in Direct Path mode, parallel I/O execuation Processes (PX processes) cannot be used to unload the data in parallel (paralllel unload is not supported in Direct Path mode).

IMPDP will use DIRECT_PATH if:

4.1. The structure of a table allows a Direct Path load, i.e.:
     - A global index does not exist on a multipartition table during a single-partition load. This includes object tables that are partitioned.
     - A domain index does not exist for a LOB column.
     - The table is not in a cluster.
     - The table does not have BFILE columns or columns of opaque types.
     - The table does not have VARRAY columns with an embedded opaque type.
     - The table does not have encrypted columns.
     - Supplemental logging is not enabled or supplemental logging is enabled and the table does not have a LOB column.
     - The table into which data is being imported is a pre-existing table and:
        – There is not an active trigger, and:
        – The table is not partitioned, and:
        – Fine-grained access control for INSERT mode is not enabled, and:
        – A constraint other than table check does not exist, and:
        – A unique index does not exist.
4.2 The parameters QUERY, REMAP_DATA parameter were not used for the specified table in the Import Data Pump job.
4.3. The table or partition is relatively small (up to 250 Mb), or the table or partition is larger, but the job cannot run in parallel because the parameter PARALLEL was not specified (or was set to 1).

How to enforce a specific load/unload method ?

In very specific situations, the parameter ACCESS_METHOD can be used to enforce a specific method to unload or load the data. Example:

%expdp system/manager ... ACCESS_METHOD=DIRECT_PATH 
or:
%impdp system/manager ... ACCESS_METHOD=DIRECT_PATH

Important Need-To-Know’s when the parameter ACCESS_METHOD is specified for a job:

In Oracle 11gR1 and before, the parameter ACCESS_METHOD should only be used when requested by Oracle Support.

Note:

With Oracle 11gR2, the parameter ACCESS_METHOD has been documented.

Please refer to Oracle® Database Utilities

11g Release 2 (11.2)

E22490-05

If the parameter is not specified, then Data Pump will automatically choose the best method to load or unload the data.

If import Data Pump cannot choose due to conflicting restrictions, an error will be reported:

ORA-31696: unable to export/import TABLE_DATA:”SCOTT”.”EMP” using client specified AUTOMATIC method

The parameter can only be specified when the Data Pump job is initially started (i.e. the parameter cannot be specified when the job is restarted).

If the parameter is specified, the method of loading or unloading the data is enforced on all tables that need to be loaded or unloaded with the job.

Enforcing a specific method may result in a slower performance of the overall Data Pump job, or errors such as:

...
Processing object type TABLE_EXPORT/TABLE/TABLE_DATA
ORA-31696: unable to export/import TABLE_DATA:"SCOTT"."MY_TAB" using client specified DIRECT_PATH method
...

To determine which access method is used, a Worker trace file can be created, e.g.:

%expdp system/manager DIRECTORY=my_dir \
DUMPFILE=expdp_s.dmp LOGFILE=expdp_s.log \
TABLES=scott.my_tab TRACE=400300

The Worker trace file shows the method with which the data was loaded (or unloaded for Import Data Pump):

...
KUPW:14:57:14.289: 1: object: TABLE_DATA:"SCOTT"."MY_TAB"
KUPW:14:57:14.289: 1: TABLE_DATA:"SCOTT"."MY_TAB" external table, parallel: 1

ORA-24247: network access denied by access control list (ACL) ORA-06512

Today I came across an error ORA-24247 & ORA-06512. You basically come across this error when the right grants are not provided on UTL_* package to user.
If you google it out, you will find the reason as “Privileges as the CONNECT privilege are granted to a role instead of directly to a user”

This is one of the solution. But it didn’t help in my case. The solution in this scenario was use of AUTHID clause.

Solution:
 
Either define the procedure / function / package as invoker's rights (using AUTHID current_user), then roles are enabled, e.g.:

CREATE PROCEDURE proc_name (.......) AUTHID CURRENT_USER AS
 
(or)
 
Grant the priviledge directly to the user instead of granting it to the role

Whether or not the role is enabled and the privileges take effect depends on the context of where the code is executed (and how). In stored procedures / functions, specifically if definer’s rights is enabled (the default without using the AUTHID clause explicitly), roles are not taken into account at runtime.

Below is the error details:

SQL> set lin 200 pages 999
SQL> begin C_OWNER.mail_test(); end;
  2  /
begin C_OWNER.mail_test(); end;
*
ERROR at line 1:
ORA-24247: network access denied by access control list (ACL)
ORA-06512: at "SYS.UTL_TCP", line 17
ORA-06512: at "SYS.UTL_TCP", line 267
ORA-06512: at "SYS.UTL_SMTP", line 161
ORA-06512: at "SYS.UTL_SMTP", line 197
ORA-06512: at "C_OWNER.MAIL_TEST", line 11
ORA-06512: at line 1

Solution 1:

SQL> grant execute on SYS.UTL_SMTP to C_OWNER;

Grant succeeded.

SQL> grant execute on SYS.UTL_TCP to C_OWNER;

Grant succeeded.

SQL> begin C_OWNER.mail_test(); end;
  2  /
begin C_OWNER.mail_test(); end;
*
ERROR at line 1:
ORA-24247: network access denied by access control list (ACL)
ORA-06512: at "SYS.UTL_TCP", line 17
ORA-06512: at "SYS.UTL_TCP", line 267
ORA-06512: at "SYS.UTL_SMTP", line 161
ORA-06512: at "SYS.UTL_SMTP", line 197
ORA-06512: at "C_OWNER.MAIL_TEST", line 11
ORA-06512: at line 1

Naaa… This didn’t helped.

SQL> set long 10000000
SQL> SELECT DBMS_METADATA.GET_DDL('PROCEDURE','MAIL_TEST','C_OWNER' ) FROM dual;

DBMS_METADATA.GET_DDL('PROCEDURE','MAIL_TEST','C_OWNER')
--------------------------------------------------------------------------------

  CREATE OR REPLACE PROCEDURE "C_OWNER"."MAIL_TEST" IS
  |
  |
  UTL_SMTP.WRITE_DATA(lv_conn, UTL_TCP.CRLF);
  UTL_SMTP.CLOSE_DATA(lv_conn);
  UTL_SMTP.QUIT(lv_conn);
END;

Redefining Procedure as

SQL>  CREATE or replace PROCEDURE "C_OWNER"."MAIL_TEST" AUTHID CURRENT_USER IS
 |
 |
 UTL_SMTP.WRITE_DATA(lv_conn, UTL_TCP.CRLF);
 UTL_SMTP.CLOSE_DATA(lv_conn);
 UTL_SMTP.QUIT(lv_conn);
 END;
 /

Procedure created.

SQL> begin C_OWNER.MAIL_TEST(); end;
  2  /

PL/SQL procedure successfully completed.

SQL>

Ref: ORA-24247 Calling UTL_SMTP or UTL_HTTP or UTL_TCP in a Stored Procedure when ACL Assigned to a Role (Doc ID 754909.1)

Oracle Database 12c – Webcast

Now as you all know about the release of Oracle 12c, The excitement to know more about it begins. So there you go. Webcast to plug into the Cloud with Oracle Database 12c.

Date: Wednesday, July 10, 2013
Time: 9 a.m. PT / 12 p.m. ET

Featured Speakers:

Mark Hurd – President Oracle
Andy Mendelsohn – Senior Vice President Database Server Technologies, Oracle
Tom Kyte – Senior Technical Architect Oracle

Join to know Oracle Database 12c’s new multitenant architecture features.

Be the first to learn how to:

Simplify database consolidation
Automatically compress and tier data
Improve database and application continuity
Redact sensitive data

Hear Tom Kyte’s “Top 12 Features of Oracle Database 12c.”

Register

Oracle 12c – Documentation.

shutdown really ???

Recently I came across something I wasn’t sure about. Have anyone ever tried to cancel the shutdown database session? Unfortunately this was the first time I tried.
I have changed the Database name to ORCL.

I will show you guys the normal scenario when you shutdown the database. Getting the alertlog details.

Shutting down instance (immediate)
Shutting down instance: further logons disabled
Tue Feb 26 12:43:30 2013
Stopping background process CJQ0
Stopping background process QMNC
Stopping background process MMNL
Stopping background process MMON
License high water mark = 8
All dispatchers and shared servers shutdown
ALTER DATABASE CLOSE NORMAL
Tue Feb 26 12:43:34 2013
SMON: disabling tx recovery
SMON: disabling cache recovery
Tue Feb 26 12:43:34 2013
Shutting down archive processes
Tue Feb 26 12:43:34 2013
ARCH shutting down
ARC4: Archival stopped
Tue Feb 26 12:43:35 2013

blah blah ....

Completed: ALTER DATABASE CLOSE NORMAL

Now here we can see the internal command that is fired.
ALTER DATABASE CLOSE NORMAL and Completed: ALTER DATABASE CLOSE NORMAL
Then comes the dismount stage.

ALTER DATABASE DISMOUNT
Completed: ALTER DATABASE DISMOUNT
ARCH: Archival disabled due to shutdown: 1089
Shutting down archive processes
Archiving is disabled
Archive process shutdown avoided: 0 active
|
|
Tue Feb 26 12:43:40 2013
Stopping background process VKTM:
Tue Feb 26 12:43:42 2013
Instance shutdown complete

I can understand this.

SQL> shu immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL>

Now what I cant understand is the below scenario that I faced.

oracle - ORCL> . oraenv
ORACLE_SID = [ORCL] ?
The Oracle base remains unchanged with value /u00/app/oracle
[host:/home/oracle]
oracle - ORCL> sqlplus / as sysdba

SQL*Plus: Release 11.2.0.3.0 Production on Sat Feb 9 14:47:17 2013

Copyright (c) 1982, 2011, Oracle.  All rights reserved.

Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> archive log list
Database log mode              No Archive Mode
Automatic archival             Disabled
Archive destination            USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence     55543
Current log sequence           55545
SQL> sho parameter db_name

NAME
------------------------------------
TYPE                                         VALUE
-------------------------------------------- ------------------------------
db_name
string                                       ORCL
SQL> shu immediate

ORA-01013: user requested cancel of current operation

SQL>

The shutdown was taking time as there was an active session. Instead of going shut abort from another session, I tried to cancel the current shutdown session.

Shutting down instance (immediate)
Shutting down instance: further logons disabled
Stopping background process MMNL
Stopping background process MMON
License high water mark = 12
Sat Feb 09 14:53:16 2013
Active call for process 26870086 user 'oracle' program 'oracle@host (TNS V1-V3)'
SHUTDOWN: waiting for active calls to complete.
Sat Feb 09 14:54:29 2013
Instance shutdown cancelled
Sat Feb 09 14:55:11 2013

Now here is my question I can see the shutdown process has not reached to “ALTER DATABASE CLOSE NORMAL” before the cancel. So there is no chance that the process can reach to next stage i.e. “ALTER DATABASE DISMOUNT”. Then how come I see the Database is in mounted stage. Either I am missing something or its something wierd.

oracle - ORCL> sqlplus / as sysdba

SQL*Plus: Release 11.2.0.3.0 Production on Sat Feb 9 16:18:49 2013

Copyright (c) 1982, 2011, Oracle.  All rights reserved.

Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> select name,open_mode from v$database;

NAME
---------
OPEN_MODE
--------------------------------------------------------------------------------
ORCL
MOUNTED

ok lets try it again. Open the database.

SQL> alter database open;

alter database open
Sat Feb 09 14:55:12 2013
FAST_START_MTTR_TARGET 1 is set too low, using minimum achievable MTTR 19 instead.
Thread 1 opened at log sequence 55545
Current log# 3 seq# 55545 mem# 0: /fprd/u03/oradata/ORCL/redo03a.log
Current log# 3 seq# 55545 mem# 1: /fprd/u01/oradata/ORCL/redo03b.log
Successful open of redo thread 1
|
|
QMNC started with pid=16, OS id=11207154
Completed: alter database open
Sat Feb 09 14:55:22 2013
FAST_START_MTTR_TARGET 1 is set too low, using minimum achievable MTTR 18 instead.

Now shutting it down and cancelling the session.

SQL> shu immediate
ORA-01013: user requested cancel of current operation

SQL>
SQL> exit
Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
[host:/fconv/u06/BACKUP/ORCL/fs3]

Checking the status of the database.

oracle - ORCL> sqlplus / as sysdba

SQL*Plus: Release 11.2.0.3.0 Production on Sat Feb 9 16:18:49 2013

Copyright (c) 1982, 2011, Oracle.  All rights reserved.

Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> select name,open_mode from v$database;

NAME
---------
OPEN_MODE
--------------------------------------------------------------------------------
ORCL
READ WRITE

SQL>

Now tell me why is it so. The database is in open stage and not in mount stage. Below is the alertlog.

Sat Feb 09 16:16:52 2013
Shutting down instance (immediate)
Stopping background process SMCO
Shutting down instance: further logons disabled
Stopping background process QMNC
Sat Feb 09 16:16:54 2013
Stopping background process CJQ0
Stopping background process MMON
License high water mark = 13
Sat Feb 09 16:18:40 2013
Instance shutdown cancelled

There is no “ALTER DATABASE CLOSE NORMAL” command initiated so it is in open stage which seems to be perfect.

Its wierd or I am seriously missing something. So guys fill it in if you understand.

Oracle Live Webinars

Statistics in Oracle and SQL Server

Presented by Jonathan Lewis (Oracle ACE Director, OakTable) and Grant Fritchey (SQL Server MVP)
Weds 23rd January 2013 16:00 GMT 09:30 PM IST

Speaker: Jonathan Lewis (Oracle Ace Director, OakTable Network) and Grant Fritchey (Microsoft SQL Server MVP).

Do Oracle and SQL Server gather the same information? What does each optimizer use this information for? And how can Oracle and SQL Server administrators override the defaults for better (or worse) performance? These are just some of the questions that Jonathan and Grant will try to answer in another not-to-be-missed session.

Oracle Schema Source Code Control

Presented by James Murtagh (Red Gate Software)
Weds 30th January 2013 16:00 GMT 09:30 PM IST

Oracle SQL Monitoring – Performance Analysis

Presented by Doug Burns (Oracle ACE Director, OakTable)
Weds 27th February 2013 16:00 GMT 09:30 PM IST

Demonstrate the various ways of accessing SQL Monitoring functionality and use example reports to show how the information can be used to analyse both currently running and completed statements. It will also describe and offer solutions to some of the minor quirks you might encounter.
What execution plan is really being used?
What row source cardinality calculations are incorrect?
What steps in the plan are taking the most time and consuming most resources?