tag:blogger.com,1999:blog-31165594728413644022024-03-23T11:14:29.004+01:00Understanding OracleThis blog is about understanding how Oracle database works.<br>The learning process never ends and this is espeacially true <br>when one tries to understand what is hidden in the magic box called Oracle database.Jože Senegačnik - Jochttp://www.blogger.com/profile/10478214001612631485noreply@blogger.comBlogger34125tag:blogger.com,1999:blog-3116559472841364402.post-78300854396075694142017-01-21T12:51:00.000+01:002017-01-23T00:15:55.715+01:00Funny "ORA-01017: invalid username/password; logon denied" during DataGuard switchover operation from DG broker<div dir="ltr" style="text-align: left;" trbidi="on">
Recently one of my customers encountered a problem when they tried to perform a switchover from DataGuard broker command line interface.<br />
<br />
<span style="font-family: "courier new" , "courier" , monospace;">$ dgmgrl /<br />DGMGRL for Linux: Version 12.1.0.2.0 - 64bit Production<br /><br />Copyright (c) 2000, 2013, Oracle. All rights reserved.<br /><br />Welcome to DGMGRL, type "help" for information.<br />Connected as SYSDG.<br />DGMGRL> show configuration;<br /><br />Configuration - db12c<br /><br /> Protection Mode: MaxPerformance<br /> Members:<br /> db12c - Primary database<br /> sdb12c - Physical standby database<br /><br />Fast-Start Failover: DISABLED<br /><br />Configuration Status:<br />SUCCESS (status updated 26 seconds ago)<br /><br />DGMGRL> validate database sdb12c;<br /><br /> Database Role: Physical standby database<br /> Primary Database: db12c<br /><br /> Ready for Switchover: Yes<br /> Ready for Failover: Yes (Primary Running)<br /><br /> Flashback Database Status:<br /> db12c: On<br /> sdb12c: Off<br /><br />DGMGRL> switchover to sdb12c;<br />Performing switchover NOW, please wait...<br />Operation requires a connection to instance "sdb12c" on database "sdb12c"<br />Connecting to instance "sdb12c"...<br />ORA-01017: invalid username/password; logon denied<br /><br />Warning: You are no longer connected to ORACLE.<br /><br /> connect to instance "sdb12c" of database "sdb12c"</span><br />
<br />
<br />
This output is from the test environment where we could easily reproduce the problem.<br />
The installation is using single-tenant fashion of 12.1 database with ASM and Oracle Restart. Therefore we must take into consideration also the fact, that the databases are started/stopped through Oracle Clusterware.<br />
<br />
<b>Investigation:</b><br />
<br />
1.) Check of if password files on primary and standby are the same - shutdown the standby database and copy password file prom primary.<br />
<br />
Checking what we see from V$PWFILE_USERS on primary database:<br />
<br />
<span style="font-family: "courier new" , "courier" , monospace;">SQL> select * from v$pwfile_users;<br /><br />USERNAME SYSDB SYSOP SYSAS SYSBA SYSDG SYSKM CON_ID<br />------------------------------ ----- ----- ----- ----- ----- ----- ----------<br />SYS TRUE TRUE FALSE FALSE FALSE FALSE 0</span><br />
<span style="font-family: "courier new" , "courier" , monospace;">SYSDG FALSE FALSE FALSE FALSE TRUE FALSE 1<br />SYSBACKUP FALSE FALSE FALSE TRUE FALSE FALSE 1<br />SYSKM FALSE FALSE FALSE FALSE FALSE TRUE 1<br />C##_ADM_JSENEGACNIK FALSE TRUE FALSE FALSE FALSE FALSE 1<br />C##_SYS TRUE FALSE FALSE FALSE FALSE FALSE 0<br />JOC TRUE FALSE FALSE FALSE FALSE FALSE 3</span><br />
<br />
<br />
After restarting standby database only to MOUNT state with refreshed password file we get the following:<br />
<br />
<span style="font-family: "courier new" , "courier" , monospace;">SQL> select * from v$pwfile_users;<br /><br />USERNAME SYSDB SYSOP SYSAS SYSBA SYSDG SYSKM CON_ID<br />------------------------------ ----- ----- ----- ----- ----- ----- ----------<br />SYS TRUE TRUE FALSE FALSE FALSE FALSE 1<br />SYSDG FALSE FALSE FALSE FALSE TRUE FALSE 1<br />SYSBACKUP FALSE FALSE FALSE TRUE FALSE FALSE 1<br />SYSKM FALSE FALSE FALSE FALSE FALSE TRUE 1<br />C##_ADM_JSENEGACNIK FALSE TRUE FALSE FALSE FALSE FALSE 1<br />C##_SYS TRUE FALSE FALSE FALSE FALSE FALSE 1 </span><br />
<br />
The standby database represents the password file users slightly different. <br />
Important to interpret here is the CON_ID column which per Oracle documentation has the following meaning:<br />
<br />
<br />
The ID of the container to which the data pertains. Possible values include: <br />
<br />
0: This value is used for rows containing data that pertain to the entire CDB. This value is also used for rows in non-CDBs.<br />
<br />
1: This value is used for rows containing data that pertain to only the root<br />
<br />
n: Where n is the applicable container ID for the rows containing data<br />
<br />
As the standby database is only in MOUNT state the value 1 in CON_ID is normal because the database is not opened yet in read write mode and therefore no operations on pluggable databases can be performed.<br />
<br />
The displayed message when error occurred was:<br />
<br />
<span style="font-family: "courier new" , "courier" , monospace;">Operation requires a connection to instance "sdb12c" on database "sdb12c"<br />Connecting to instance "sdb12c"...<br />ORA-01017: invalid username/password; logon denied</span><br />
<br />
Analyzing this text means that we have a connection problem when the DG broker tries to connect to standby database.<br />
We are connected as SYSDG user with SYSDG privileges in DG broker on primary site and we get the error when DG broker tries to connect to standby (remote) instance. As we have high level of privileges and the parameter remote_login_passwordfile is set to EXCLUSIVE it means that obviously we have a problem how we connect to the DGMGRL.<br />
<br />
Therefore let us try to connect with username and password remotely from DGMGRL utility on primary database using connection string (alias) from standby database:<br />
<br />
<span style="font-family: "courier new" , "courier" , monospace;">$ dgmgrl<br />DGMGRL for Linux: Version 12.1.0.2.0 - 64bit Production<br /><br />Copyright (c) 2000, 2013, Oracle. All rights reserved.<br /><br />Welcome to DGMGRL, type "help" for information.<br />DGMGRL> connect sysdg@sdb12c<br />Password:<br />ORA-01017: invalid username/password; logon denied<br /><br />Warning: You are no longer connected to ORACLE.<br /> </span><br />
Ooops, we get the same error. So when SYSDG user tries to connect to standby database via password file the username/password combination is wrong. We can connect as SYSDG user to DGMGRL utility using only "/" because we are authenticated via OSGROUP authorization. But for stopping/starting remote databases via Oracle Clusterware we need to be logged in via password file. <br />
<br />
From the 12c manuals it looks like that the only way to change the password for SYSDG user in password file is by revoking and granting SYSDG privilege.<br />
<br />
<br />
Find all users who have been granted the SYSDG privilege.<br />
<br />
<span style="font-family: "courier new" , "courier" , monospace;">SELECT USERNAME FROM V$PWFILE_USERS WHERE USERNAME != 'SYS' AND SYSDG='TRUE';<br /><br /> <br /><br /> Revoke and regrant the SYSDG privilege to these users.<br /><br /> REVOKE SYSDG FROM non-SYS-user;<br /> GRANT SYSDG TO non-SYS-user; </span><br />
<br />
<br />
Actually it is enough that you change the password via "ALTER USER" command. The time at the OS level of the password file will reflect this change so obviously the password file is updated with new password for SYSDG user.<br />
<br />
<span style="font-family: "courier new" , "courier" , monospace;">SQL> alter user sysdg identified by Secret$124;</span><br />
<br />
<br />
I have intentionally selected to put special character in password in order to show a problem when you try to use such password from the command line.<br />
<br />
<br />
<span style="font-family: "courier new" , "courier" , monospace;">$ dgmgrl sys/Secret$124@db12c<br />DGMGRL for Linux: Version 12.1.0.2.0 - 64bit Production<br /><br />Copyright (c) 2000, 2013, Oracle. All rights reserved.<br /><br />Welcome to DGMGRL, type "help" for information.<br />ORA-01017: invalid username/password; logon denied<br /><br />Warning: You are no longer connected to ORACLE.<br />DGMGRL> </span><br />
<br />
<br />
Again we get error but this time due to "$" character in password. Escaping it does not resolve the problem either, also putting connection parameter into quotes.<br />
<br />
<br />
<span style="font-family: "courier new" , "courier" , monospace;">$ dgmgrl "sys/Secret$124@db12c"<br />DGMGRL for Linux: Version 12.1.0.2.0 - 64bit Production<br /><br />Copyright (c) 2000, 2013, Oracle. All rights reserved.<br /><br />Welcome to DGMGRL, type "help" for information.<br />ORA-01017: invalid username/password; logon denied<br /><br />Warning: You are no longer connected to ORACLE.</span><br />
<br />
<br />
So the right way to test connection is:<br />
<br />
<br />
<span style="font-family: "courier new" , "courier" , monospace;">$ dgmgrl<br />DGMGRL for Linux: Version 12.1.0.2.0 - 64bit Production<br /><br />Copyright (c) 2000, 2013, Oracle. All rights reserved.<br /><br />Welcome to DGMGRL, type "help" for information.<br />DGMGRL> connect sysdg@sdb12c<br />Password:<br />Connected as SYSDG.<br />DGMGRL><br />DGMGRL> connect sysdg@db12c<br />Password:<br />Connected as SYSDG.</span><br />
<br />
<br />
Now let us perform switchover to standby and afterwards back to old primary:<br />
<br />
<br />
<span style="font-family: "courier new" , "courier" , monospace;">$ dgmgrl<br />DGMGRL for Linux: Version 12.1.0.2.0 - 64bit Production<br /><br />Copyright (c) 2000, 2013, Oracle. All rights reserved.<br /><br />Welcome to DGMGRL, type "help" for information.<br />DGMGRL> connect sysdg@db12c<br />Password:<br />Connected as SYSDG.<br />DGMGRL> validate database sdb12c;<br /><br /> Database Role: Physical standby database<br /> Primary Database: db12c<br /><br /> Ready for Switchover: Yes<br /> Ready for Failover: Yes (Primary Running)<br /><br /> Flashback Database Status:<br /> db12c: On<br /> sdb12c: Off<br /><br />DGMGRL> switchover to sdb12c;<br />Performing switchover NOW, please wait...<br />Operation requires a connection to instance "sdb12c" on database "sdb12c"<br />Connecting to instance "sdb12c"...<br />Connected as SYSDG.<br />New primary database "sdb12c" is opening...<br />Oracle Clusterware is restarting database "db12c" ...<br />Switchover succeeded, new primary is "sdb12c"<br /><br /><br />DGMGRL> validate database db12c;<br /><br /> Database Role: Physical standby database<br /> Primary Database: sdb12c<br /><br /> Ready for Switchover: Yes<br /> Ready for Failover: Yes (Primary Running)<br /><br /> Flashback Database Status:<br /> sdb12c: Off<br /> db12c: On<br /><br />DGMGRL> switchover to db12c;<br />Performing switchover NOW, please wait...<br />Operation requires a connection to instance "db12c" on database "db12c"<br />Connecting to instance "db12c"...<br />Connected as SYSDG.<br />New primary database "db12c" is opening...<br />Oracle Clusterware is restarting database "sdb12c" ...<br />Switchover succeeded, new primary is "db12c"</span><br />
<br />
<br />
On Oracle support site there are several notes regarding the ORA-1017 error. So it is a good idea to check them in case that your problem is not as described above.<br />
<br />
It is mandatory to test also the static connection identifiers names "StaticConnectIdentifier" which are part of the DG configuration. Do this for primary and standby database. <br />
<br />
<br />
<span style="font-family: "courier new" , "courier" , monospace;">DGMGRL> show database verbose db12c;<br /><br />Database - db12c<br /><br /> Role: PRIMARY<br /> Intended State: TRANSPORT-ON<br /> Instance(s):<br /> db12c<br /><br /> Properties:<br /> DGConnectIdentifier = 'db12c'<br /> ObserverConnectIdentifier = ''<br /> LogXptMode = 'ASYNC'<br /> RedoRoutes = ''<br /> DelayMins = '0'<br /> Binding = 'optional'<br /> MaxFailure = '0'<br /> MaxConnections = '1'<br /> ReopenSecs = '300'<br /> NetTimeout = '30'<br /> RedoCompression = 'DISABLE'<br /> LogShipping = 'ON'<br /> PreferredApplyInstance = ''<br /> ApplyInstanceTimeout = '0'<br /> ApplyLagThreshold = '0'<br /> TransportLagThreshold = '0'<br /> TransportDisconnectedThreshold = '30'<br /> ApplyParallel = 'AUTO'<br /> StandbyFileManagement = 'MANUAL'<br /> ArchiveLagTarget = '0'<br /> LogArchiveMaxProcesses = '4'<br /> LogArchiveMinSucceedDest = '1'<br /> DbFileNameConvert = ''<br /> LogFileNameConvert = ''<br /> FastStartFailoverTarget = ''<br /> InconsistentProperties = '(monitor)'<br /> InconsistentLogXptProps = '(monitor)'<br /> SendQEntries = '(monitor)'<br /> LogXptStatus = '(monitor)'<br /> RecvQEntries = '(monitor)'<br /> StaticConnectIdentifier = '(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.110)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=db12c_DGMGRL)(INSTANCE_NAME=db12c)(SERVER=DEDICATED)))'<br /> StandbyArchiveLocation = 'USE_DB_RECOVERY_FILE_DEST'<br /> AlternateLocation = ''<br /> LogArchiveTrace = '0'<br /> LogArchiveFormat = '%t_%s_%r.dbf'<br /> TopWaitEvents = '(monitor)'<br /><br />Database Status:<br />SUCCESS<br /><br />DGMGRL> connect sysdg@'(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.110)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=db12c_DGMGRL)(INSTANCE_NAME=db12c)(SERVER=DEDICATED)))';<br />Password:<br />Connected as SYSDG.<br /><br />DGMGRL> connect sysdg@"(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.110)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=db12c_DGMGRL)(INSTANCE_NAME=db12c)(SERVER=DEDICATED)))"<br />Password:<br />Connected as SYSDG.</span><br />
<br />
<br />
It is mandatory to put the value of StaticConnectIdentifier in single or double quotes.<br />
<br />
Of course you can use SYS user to perform switchover operation. Again, connect via SQL*Net (as being remote) to be authenticated by password file. Needless to say that you have to have the right setup in litener.ora and tnsnames.ora for both databases. I found that the easiest way is to have static definition in listener.ora file:<br />
<br />
<br />
<span style="font-family: "courier new" , "courier" , monospace;">LISTENER =<br /> (DESCRIPTION_LIST =<br /> (DESCRIPTION =<br /> (ADDRESS = (PROTOCOL = TCP)(HOST = olinux)(PORT = 1521))<br /> (ADDRESS = (PROTOCOL = IPC)(KEY = KEY1521))<br /> )<br /> )<br /><br />SID_LIST_LISTENER =<br /> (SID_LIST =<br /> (SID_DESC =<br /> (GLOBAL_DBNAME = db12c_DGMGRL)<br /> (ORACLE_HOME = /u01/app/oracle/product/12.1.0/dbhome_1)<br /> (SID_NAME = db12c)<br /> )<br /> (SID_DESC =<br /> (GLOBAL_DBNAME = db12c)<br /> (ORACLE_HOME = /u01/app/oracle/product/12.1.0/dbhome_1)<br /> (SID_NAME = db12c)<br /> )<br /> )</span><br />
<br />
Similar is for the standby database. <br />
<br />
<b>Conclusion:</b><br />
<br />
Although one might think that the "validate database" command checks everything, it actually does not. Oracle could check also the connectivity during "validate database" command, but does not. So it is a big surprise when one encounters ORA-1017 error due to incomplete check performed by DG.<br />
<br />
<br />
There is a document on Oracle support site "Oracle Data Guard Broker and Static Service Registration (Doc ID 1387859.1)" about configuring DGB and static connection identifiers.<br />
As per this document the requirement for<br />
<h3 class="km">
Single Instance Database with Oracle Restart</h3>
Here there is no cluster, but clusterware has been installed to
enable the Oracle Restart feature. The local listener LISTENER has its
LISTENER.ORA located in the /network/admin directory of the Oracle Grid
Infrastructure home. In this case the static service registration is:<br /><br />
<div class="kmcodeblock" style="width: 95%;">
SID_LIST_LISTENER=<br /> (SID_LIST=<br /> (SID_DESC=<br /> (GLOBAL_DBNAME=db_unique_name_DGMGRL.db_domain)<br /> (ORACLE_HOME=oracle_home)<br /> (SID_NAME=sid_name)<br /> )<br /> )</div>
<br />As with Single Instance databases, the SID_NAME value sid_name will default to the db_unique_name.<br />
<br />
<br />
<br />
Updated on Jan 23nd 2017. </div>
<div class="blogger-post-footer"><script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
try {
var pageTracker = _gat._getTracker("UA-5265495-3");
pageTracker._trackPageview();
} catch(err) {}</script></div>Jože Senegačnik - Jochttp://www.blogger.com/profile/10478214001612631485noreply@blogger.com20tag:blogger.com,1999:blog-3116559472841364402.post-55391322800927432562016-12-31T09:01:00.001+01:002016-12-31T10:33:30.491+01:00 "ORA-16047 - DGID mismatch between destination setting and target database" while configuring dataguard.<div dir="ltr" style="text-align: left;" trbidi="on">
While setting up dataguard configuration you may encounter <span style="color: red;">ORA-16047 - DGID mismatch between destination setting and target database</span>.<br />
<br />
From alert.log on primary database:<br />
<br />
<span style="font-size: small;"><span style="font-family: "courier new" , "courier" , monospace;">******************************************************************<br />LGWR: Setting 'active' archival for destination LOG_ARCHIVE_DEST_2<br />******************************************************************<br />Sat Dec 31 08:29:30 2016<br />FAL[server, ARC3]: Error 16047 creating remote archivelog file 'sauxmes'<br />FAL[server, ARC3]: FAL archive failed, see trace file.<br />ARCH: FAL archive failed. Archiver continuing<br />ORACLE Instance auxmes - Archival Error. Archiver continuing.<br />Error 16047 for archive log file 2 to 'sauxmes'<br />Errors in file /u01/app/xxxxx/diag/rdbms/auxmes/auxmes/trace/auxmes_nsa2_9525.trc:<br /><b><span style="color: red;">ORA-16047: DGID mismatch between destination setting and target database</span></b><br />Sat Dec 31 08:30:12 2016<br />PING[ARC1]: Heartbeat failed to connect to standby 'sauxmes'. Error is 16047.<br />Sat Dec 31 08:33:39 2016<br />PING[ARC1]: Heartbeat failed to connect to standby 'sauxmes'. Error is 16047.<br />Sat Dec 31 08:37:12 2016<br />PING[ARC1]: Heartbeat failed to connect to standby 'sauxmes'. Error is 16047.</span></span><br />
<br />
<br />
Solution:<br />
Check the configuration on <b>STANDBY</b> side in parameter log_archive_config:<br />
<br />
<span style="font-size: x-small;"><span style="font-family: "courier new" , "courier" , monospace;">SQL<span style="font-family: "courier new" , "courier" , monospace;">></span> show parameter log_archive_config <br /><br />NAME TYPE VALUE<br />------------------------------------ ----------- ------------------------------</span></span><br />
<span style="font-size: x-small;"><span style="font-family: "courier new" , "courier" , monospace;">log_archive_config string<br /> </span></span><br />
Most likely it will not be set. Therefore set it to appropriate value like:<br />
<br />
<span style="font-family: "courier new" , "courier" , monospace; font-size: small;">alter system set LOG_ARCHIVE_CONFIG='DG_CONFIG=(auxmes,sauxmes)'; </span><br />
<br />
This will resolve the problem and the redo transport will start working.<br />
<br />
Another possibility for getting this kind of error is if you didn't set parameter DB_UNIQUE_NAME on standby database (must be different from the name on primary site):<br />
<br />
<span style="font-family: "courier new" , "courier" , monospace;">alter system set DB_UNIQUE_NAME="sauxmes" scope=spfile; </span><br />
<br />
and then you need to restart the standby database as this parameter can't be dynamically set.<br />
<br />
<br />
<br /></div>
<div class="blogger-post-footer"><script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
try {
var pageTracker = _gat._getTracker("UA-5265495-3");
pageTracker._trackPageview();
} catch(err) {}</script></div>Jože Senegačnik - Jochttp://www.blogger.com/profile/10478214001612631485noreply@blogger.com4tag:blogger.com,1999:blog-3116559472841364402.post-2383175732689846212015-02-05T03:17:00.000+01:002015-02-05T08:55:13.682+01:00Maintaining Tempfile in TEMP Tablespace of PDB$SEED in Oracle 12c (12.1.0.2)<div dir="ltr" style="text-align: left;" trbidi="on">
During testing recovery procedures for one of the ongoing projects I wanted to test the "complete disaster" recovery scenario. In this scenario I had to recreate also all ASM disks and restore everything from backup.<br />
Actually full backup with RMAN and subsequent restore of a pluggable 12c single-tenant database was the solution. I will not talk about that as the main point of this post is quite different.<br />
<br />
So the recovery was successful but after restoring the CDB$ROOT and PDB database I found in the alert log the following message:<br />
<br />
<br />
<span style="font-size: x-small;"><span style="font-family: "Courier New",Courier,monospace;">Errors in file /u01/app/oracle/diag/rdbms/mydb/mydb/trace/mydb_dbw0_28973.trc:<br />ORA-01157: cannot identify/lock data file 202 - see DBWR trace file<br />ORA-01110: data file 202: '+DATA/MYDB/FD9AC20F64D244D7E043B6A9E80A2F2F/DATAFILE/pdbseed_temp012015-01-03_12-22-30-pm.dbf'<br />ORA-17503: ksfdopn:2 Failed to open file +DATA/MYDB/FD9AC20F64D244D7E043B6A9E80A2F2F/DATAFILE/pdbseed_temp012015-01-03_12-22-30-pm.dbf<br />ORA-15173: entry 'FD9AC20F64D244D7E043B6A9E80A2F2F' does not exist in directory 'MYDB'<br />Thu Feb 05 09:12:52 2015<br />Errors in file /u01/app/oracle/diag/rdbms/mydb/mydb/trace/mydb_dbw0_28973.trc:<br />ORA-01186: file 202 failed verification tests<br />ORA-01157: cannot identify/lock data file 202 - see DBWR trace file<br />ORA-01110: data file 202: '+DATA/MYDB/FD9AC20F64D244D7E043B6A9E80A2F2F/DATAFILE/pdbseed_temp012015-01-03_12-22-30-pm.dbf'</span></span><br />
<br />
<br />
The problem was the temp file of the temporary tablespace TEMP in PDB$SEED which is used for creation of pluggable databases. The tempfiles are not part of RMAN backup as they can always be recreated. Although I could live with this error messages as this is single-tennat database with only one pluggable database I wanted to deliver a "clean solution" to the client. Besides I wanted to know how I can solve such problem.<br />
<br />
So here is the solution:<br />
<br />
<span style="font-size: x-small;"><span style="font-family: "Courier New",Courier,monospace;">$ sqlplus / as sysdba</span></span><br />
<span style="font-size: x-small;"><span style="font-family: "Courier New",Courier,monospace;"><br /></span></span>
<span style="font-size: x-small;"><span style="font-family: "Courier New",Courier,monospace;">SQL*Plus: Release 12.1.0.2.0 Production on Thu Feb 5 09:35:11 2015<br /><br />Copyright (c) 1982, 2014, Oracle. All rights reserved.<br /><br /><br />Connected to:<br />Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production<br />With the Partitioning, Automatic Storage Management, OLAP, Advanced Analytics<br />and Real Application Testing options<br /><br />SQL> alter session set container=pdb$seed;<br /><br />Session altered.<br /><br />SQL> select open_mode from v$database;<br /><br />OPEN_MODE<br />--------------------<br />READ ONLY<br /><br /><br />SQL> select name from v$tempfile;<br /><br />NAME<br />---------------------------------------------------------------------------------------------------<br />+DATA/MYDB/FD9AC20F64D244D7E043B6A9E80A2F2F/DATAFILE/pdbseed_temp012015-01-03_12-22-30-pm.dbf</span></span><br />
<span style="font-size: x-small;"><span style="font-family: "Courier New",Courier,monospace;"></span></span><br />
<span style="font-size: x-small;"><span style="font-family: "Courier New",Courier,monospace;"></span></span><br />
<span style="font-size: x-small;"><span style="font-family: "Courier New",Courier,monospace;">SQL> alter pluggable database pdb$seed close;<br />alter pluggable database pdb$seed close<br />*<br />ERROR at line 1:<br />ORA-65017: seed pluggable database may not be dropped or altered<br /><br /><br />SQL> alter session set "_oracle_script"=TRUE;<br /><br />Session altered.<br /><br />SQL> alter pluggable database pdb$seed close;<br /><br />Pluggable database altered.<br /><br />SQL> alter pluggable database pdb$seed open read write;<br /><br />Pluggable database altered.<br /><br />SQL> alter tablespace temp add tempfile '+DATA';<br /><br />Tablespace altered.<br />SQL> column name format a100<br />SQL> select name from v$tempfile;<br /><br />NAME<br />-------------------------------------------------------------------------------------------------<br />+DATA/MYDB/FD9AC20F64D244D7E043B6A9E80A2F2F/DATAFILE/pdbseed_temp012015-01-03_12-22-30-pm.dbf<br />+DATA/MYDB/0BBEAC43B4250445E0530A0C6D0AEC65/TEMPFILE/temp.299.870860375<br /><br />SQL> alter tablespace temp drop tempfile '+DATA/MYDB/FD9AC20F64D244D7E043B6A9E80A2F2F/DATAFILE/pdbseed_temp012015-01-03_12-22-30-pm.dbf';<br /><br /><br />Tablespace altered.<br /><br />SQL> select name from v$tempfile;<br /><br />NAME<br />----------------------------------------------------------------------------<br />+DATA/MYDB/0BBEAC43B4250445E0530A0C6D0AEC65/TEMPFILE/temp.299.870860375<br /><br /> </span></span><br />
<br />
After performed change there were no more error messages during database startup.<br />
<br />
The secrete sauce for changing the state of PDB$SEED was setting <span style="font-size: x-small;">"</span><span style="font-size: small;"><span style="font-family: "Courier New",Courier,monospace;"><span style="font-size: x-small;">alter session set "_oracle_script"=TRUE;"</span>.</span><span style="font-family: Times,"Times New Roman",serif;"> The idea came from this <a href="http://surachartopun.com/2013/07/multitenant-how-to-change-pdbseed-mode.html" target="_blank">post</a> about changing the open mode of the PDB$SEED database.</span></span><br />
<span style="font-size: small;"><span style="font-family: Times,"Times New Roman",serif;">Hope this short post will help somebody to resolve his problem with dropping and creating new tempfile in PDB$SEED faster.</span></span></div>
<div class="blogger-post-footer"><script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
try {
var pageTracker = _gat._getTracker("UA-5265495-3");
pageTracker._trackPageview();
} catch(err) {}</script></div>Jože Senegačnik - Jochttp://www.blogger.com/profile/10478214001612631485noreply@blogger.com5tag:blogger.com,1999:blog-3116559472841364402.post-55309010659233469692015-01-28T20:56:00.002+01:002015-01-28T20:56:36.108+01:00Finding Oracle VM Manager Core Management Port After OVM Manager Installation<div dir="ltr" style="text-align: left;" trbidi="on">
Recently I was working on integration of OVM Manager with Oracle EM Cloud Control 12cR4 and I had to enter the "Oracle VM Manager URL" a.k.a. as "Core management port" which is reported at the end of OVM Manager installation. The default value for this port is 54321. As I was not in position to get this post-installation report because the installation was performed by another company, I had to find out the right port. The definition should be entered in the form: tcp://<server .domain="">:<port_number>.</port_number></server><br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><img alt="" height="278" src="data:image/png;base64,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" style="margin-left: auto; margin-right: auto;" width="640" /></td></tr>
<tr><td class="tr-caption" style="text-align: center;">EM Cloud Control and OVM Manager Integration Screen</td></tr>
</tbody></table>
<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><img alt="" src="data:image/png;base64,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" style="margin-left: auto; margin-right: auto;" /></td></tr>
<tr><td class="tr-caption" style="text-align: center;">OVM Manager Installation report sample</td></tr>
</tbody></table>
<br />
<br />
One of the the first ideas was to check local firewall configuration and see if there is anything for port 54321.<br />
<br />
<span style="font-family: "Courier New",Courier,monospace;"># iptables -L | grep 5432</span><br />
<span style="font-family: "Courier New",Courier,monospace;">ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:54322</span><br />
<br />
Search showed opened port 54322 which could also be one of the possibilities.<br />
Searching with netstat revealed no acctivity on port 54322<br />
<br />
<span style="font-family: "Courier New",Courier,monospace;"># netstat -vatn | grep 54322</span><br />
<br />
However, a lot of rows was returned when searching for port 54321:<br />
<br />
<span style="font-size: x-small;"><span style="font-family: "Courier New",Courier,monospace;"># netstat -vatn | grep 54321<br />tcp 0 0 ::ffff:127.0.0.1:54321 :::* LISTEN<br />tcp 0 0 ::ffff:127.0.0.1:36797 ::ffff:127.0.0.1:54321 ESTABLISHED<br />tcp 0 0 ::ffff:127.0.0.1:51828 ::ffff:127.0.0.1:54321 ESTABLISHED<br />tcp 0 0 ::ffff:127.0.0.1:53096 ::ffff:127.0.0.1:54321 ESTABLISHED<br />tcp 0 0 ::ffff:127.0.0.1:55461 ::ffff:127.0.0.1:54321 ESTABLISHED<br />tcp 0 0 ::ffff:127.0.0.1:53017 ::ffff:127.0.0.1:54321 ESTABLISHED</span></span><br /><br />
<br />
But I was still not 100% sure, if the iptables showed the right port. So further digging through the documentation revealed the right port. The definition of the "Core management port" is hidden in .config file under the name COREPORT in OVM Manager home directory /u01/app/oracle/ovm-manager-3/.config<br />
<br />
The contents of this file in my case was:<br />
<br />
<span style="font-size: x-small;"><span style="font-family: "Courier New",Courier,monospace;"># cat /u01/app/oracle/ovm-manager-3/.config</span></span><br />
<br />
<span style="font-size: x-small;"><span style="font-family: "Courier New",Courier,monospace;">DBTYPE=MySQL</span></span><br />
<span style="font-size: x-small;"><span style="font-family: "Courier New",Courier,monospace;">DBHOST=localhost</span></span><br />
<span style="font-size: x-small;"><span style="font-family: "Courier New",Courier,monospace;">SID=ovs</span></span><br />
<span style="font-size: x-small;"><span style="font-family: "Courier New",Courier,monospace;">LSNR=49500</span></span><br />
<span style="font-size: x-small;"><span style="font-family: "Courier New",Courier,monospace;">OVSSCHEMA=ovs</span></span><br />
<span style="font-size: x-small;"><span style="font-family: "Courier New",Courier,monospace;">APEX=8080</span></span><br />
<span style="font-size: x-small;"><span style="font-family: "Courier New",Courier,monospace;">WLSADMIN=weblogic</span></span><br />
<span style="font-size: x-small;"><span style="font-family: "Courier New",Courier,monospace;">OVSADMIN=admin</span></span><br />
<span style="font-size: x-small;"><span style="font-family: "Courier New",Courier,monospace;">COREPORT=54321</span></span><br />
<span style="font-size: x-small;"><span style="font-family: "Courier New",Courier,monospace;">UUID=0004fb000001000075e54bae74172d82</span></span><br />
<span style="font-size: x-small;"><span style="font-family: "Courier New",Courier,monospace;">BUILDID=3.3.1.1065</span></span><br />
<br />
<br />
The explanation for the configuration items can be found in chapter "<a href="http://docs.oracle.com/cd/E50245_01/E50251/html/vmadm-manager-backup-restore.html" target="_blank">5.1 Backing up and Restoring Oracle VM Manager</a>" and obviously in my case the port used was actually the default one 54321.<br />
The .config file should be part of the backup.<br />
<br />
Hope this post will shorten search time for this kind of information to my readers.</div>
<div class="blogger-post-footer"><script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
try {
var pageTracker = _gat._getTracker("UA-5265495-3");
pageTracker._trackPageview();
} catch(err) {}</script></div>Jože Senegačnik - Jochttp://www.blogger.com/profile/10478214001612631485noreply@blogger.com1tag:blogger.com,1999:blog-3116559472841364402.post-33110345789474363262015-01-27T18:03:00.000+01:002015-01-27T18:06:43.864+01:00Using Hyphen In OS Username Or ORACLE_HOME Path in Oracle 12c Database Installation Will Make You Cry<div dir="ltr" style="text-align: left;" trbidi="on">
Recently I was involved in an upgrade project on Linux platforms to Oracle 12c (12.1.0.2) and the customer wanted to name the owners of the Oracle SW distribution according to their company standard. So instead of using "grid" and "oracle" OS account names they wanted to have the names which would start with "svc-" and continue with unique non Oracle standard name for either grid infrastructure or database software. Besides using this names as owners of grid and database software we
used them also in the names of the GRID_HOME and ORACLE_HOME directories
according to Oracle OFA suggestion.<br />
<br />
So no problems with those names during installation and database creation. However, when we wanted to patch the grid infrastructure and Oracle home with latest patches, the Opatch utility returned with an error that it can't parse the path to Oracle grid infrastructure. I immediately recognized the problem and the only remedy was to uninstall both grid and database SW. And then bang, another surprise, the Oracle 12c deinstallation procedures crashed as well. This time the reason was in checking the ownership of the distribution (grid or oracle).<br />
<br />
The regular expression used to find the owner of the distribution in the script is /.*?\((\w+)\).*/ <br />
String returned by "id" command is: <br />
<br />
<span style="font-size: x-small;"><span style="font-family: "Courier New",Courier,monospace;">uid=211(svc-xxxyyy) gid=201(oinstall) groups=201(oinstall), 200(dba), 205(asmadmin), 206(asmdba), 207(asmoper), 110000513(domain
users) </span></span><br />
<br />
The $1 returned variable gets value "oinstall" instead of svc-xxxyyy and this causes deinstalltion script to fail. The right expression would be /.*?\((\w+\-\w+)\).*/ <br />
<br />
<br />
So how one can manually deinstall database home and grid infrastructure home? For ORACLE_HOME deinstallation one can follow Doc.ID 1624580.1 and run:<br />
<br />
<span style="font-size: x-small;"><span style="font-family: "Courier New",Courier,monospace;">cd $ORACLE_HOME/oui/bin<br />./runInstaller -silent -detachHome ORACLE_HOME="/u01/app/svc-xxxyyy/product/12.1.0/dbhome_1" ORACLE_HOME_NAME="OraDB12Home1"</span></span><br />
<span style="font-family: "Courier New",Courier,monospace;"><br /></span>
<span style="font-family: "Courier New",Courier,monospace;"><span style="font-family: inherit;"><span style="font-family: Times,"Times New Roman",serif;">This operation succeeded without any problems. Deinstalling GRID_HOME was slightly more complicated and actually at the moment of writing this post there is no document on MOS relevant for manual deinstallation of grid infrastructure with configured Oracle Restart. The suggestion from Oracle support was to follow "</span></span></span><span style="font-family: "Courier New",Courier,monospace;"><span style="font-family: inherit;"><span style="font-family: Times,"Times New Roman",serif;">How to Deinstall Oracle Clusterware Home Manually ( <a href="https://support.oracle.com/epmos/faces/DocumentDisplay?id=1364419.1" target="_blank" title="View article in a new browser tab">Doc ID 1364419.1</a> )" which was relevant for 11gR2 but not 12c.</span></span></span> Actually I have performed the deinstalltion in two steps: <br />
<br />
<span style="font-size: x-small;"><span style="font-family: "Courier New",Courier,monospace;"># roothas.sh -deconfig -force <br /> $ runInstaller -detachHome -silent -local ORACLE_HOME=$ORACLE_HOME </span></span><br />
<span style="font-family: "Courier New",Courier,monospace;"><span style="font-family: inherit;"><span style="font-family: Times,"Times New Roman",serif;"><br /></span></span></span>
<span style="font-family: "Courier New",Courier,monospace;"><span style="font-family: inherit;"><span style="font-family: Times,"Times New Roman",serif;">The $ORACLE_HOME in this case was actually pointing to GRID_HOME.</span></span></span><br />
<br />
<span style="font-family: "Courier New",Courier,monospace;"><span style="font-family: inherit;"><span style="font-family: Times,"Times New Roman",serif;">Why I said in the title that this will make you cry - because you have to start it all over again and the Oracle Installer doesn't warn you about the problematic hyphen during the installation process when all prerequisites are run.</span></span></span><br />
<span style="font-family: "Courier New",Courier,monospace;"><span style="font-family: inherit;"><span style="font-family: Times,"Times New Roman",serif;"><br /></span></span></span>
<span style="font-family: "Courier New",Courier,monospace;"><span style="font-family: inherit;"><span style="font-family: Times,"Times New Roman",serif;">So after being working so many years with Oracle products I was really angry with myself that I was caught on such stupid mistake.</span></span></span><br />
<span style="font-family: "Courier New",Courier,monospace;"><span style="font-family: inherit;"><span style="font-family: Times,"Times New Roman",serif;"><br /></span></span></span>
<span style="font-family: "Courier New",Courier,monospace;"><span style="font-family: inherit;"><span style="font-family: Times,"Times New Roman",serif;"><br /></span></span></span>
</div>
<div class="blogger-post-footer"><script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
try {
var pageTracker = _gat._getTracker("UA-5265495-3");
pageTracker._trackPageview();
} catch(err) {}</script></div>Jože Senegačnik - Jochttp://www.blogger.com/profile/10478214001612631485noreply@blogger.com2tag:blogger.com,1999:blog-3116559472841364402.post-30253578257152762002012-11-09T13:49:00.003+01:002015-01-29T04:37:35.448+01:00Internet Explorer Can Not Access Database Console Page - Certficate Error<div dir="ltr" style="text-align: left;" trbidi="on">
<div style="text-align: left;">
<span style="font-size: small;"><span style="font-family: inherit;">Microsoft recently launched a security patch for Internet Explorer which requires a 1024 bits long key. Originally when the EM Database Control (DB Console) was installed <span id="pt1:sd_r1:0:dv_rDoc:ot71"> the self generated key length is 512 bits.</span></span></span></div>
<div style="text-align: left;">
<span style="font-size: small;"><span style="font-family: inherit;"><span id="pt1:sd_r1:0:dv_rDoc:ot71">The IE therefore reports a problem with the web site (EM) certificate.</span></span></span></div>
<div style="text-align: left;">
<span style="font-size: small;"><span style="font-family: inherit;"><span id="pt1:sd_r1:0:dv_rDoc:ot71"></span><span id="pt1:sd_r1:0:dv_rDoc:ot71"> </span></span></span></div>
<div class="MsoNormal" style="text-align: left;">
<span style="font-size: small;"><span style="font-family: inherit;"><span id="pt1:sd_r1:0:dv_rDoc:ot71"></span><span id="pt1:sd_r1:0:dv_rDoc:ot71">Oracle has recently published a note on My Oracle Support (MOS) under </span><span id="pt1:sd_r1:0:dv_rDoc:ot71"><!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:TrackMoves/>
<w:TrackFormatting/>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:DoNotPromoteQF/>
<w:LidThemeOther>EN-US</w:LidThemeOther>
<w:LidThemeAsian>X-NONE</w:LidThemeAsian>
<w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
<w:SplitPgBreakAndParaMark/>
<w:EnableOpenTypeKerning/>
<w:DontFlipMirrorIndents/>
<w:OverrideTableStyleHps/>
</w:Compatibility>
<w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
<m:mathPr>
<m:mathFont m:val="Cambria Math"/>
<m:brkBin m:val="before"/>
<m:brkBinSub m:val="--"/>
<m:smallFrac m:val="off"/>
<m:dispDef/>
<m:lMargin m:val="0"/>
<m:rMargin m:val="0"/>
<m:defJc m:val="centerGroup"/>
<m:wrapIndent m:val="1440"/>
<m:intLim m:val="subSup"/>
<m:naryLim m:val="undOvr"/>
</m:mathPr></w:WordDocument>
</xml><![endif]--></span>ID 1498203.1</span></span></div>
<div style="text-align: left;">
<span style="font-size: small;"><span id="pt1:sd_r1:0:dv_rDoc:ot71"><!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
DefSemiHidden="true" DefQFormat="false" DefPriority="99"
LatentStyleCount="267">
<w:LsdException Locked="false" Priority="0" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Normal"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="heading 1"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/>
<w:LsdException Locked="false" Priority="39" Name="toc 1"/>
<w:LsdException Locked="false" Priority="39" Name="toc 2"/>
<w:LsdException Locked="false" Priority="39" Name="toc 3"/>
<w:LsdException Locked="false" Priority="39" Name="toc 4"/>
<w:LsdException Locked="false" Priority="39" Name="toc 5"/>
<w:LsdException Locked="false" Priority="39" Name="toc 6"/>
<w:LsdException Locked="false" Priority="39" Name="toc 7"/>
<w:LsdException Locked="false" Priority="39" Name="toc 8"/>
<w:LsdException Locked="false" Priority="39" Name="toc 9"/>
<w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/>
<w:LsdException Locked="false" Priority="10" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Title"/>
<w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/>
<w:LsdException Locked="false" Priority="11" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/>
<w:LsdException Locked="false" Priority="22" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Strong"/>
<w:LsdException Locked="false" Priority="20" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/>
<w:LsdException Locked="false" Priority="59" SemiHidden="false"
UnhideWhenUsed="false" Name="Table Grid"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/>
<w:LsdException Locked="false" Priority="1" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 1"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 1"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 1"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/>
<w:LsdException Locked="false" Priority="34" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/>
<w:LsdException Locked="false" Priority="29" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Quote"/>
<w:LsdException Locked="false" Priority="30" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 1"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 1"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 2"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 2"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 2"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 2"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 2"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 3"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 3"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 3"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 3"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 3"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 4"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 4"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 4"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 4"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 4"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 5"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 5"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 5"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 5"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 5"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 6"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 6"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 6"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 6"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 6"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/>
<w:LsdException Locked="false" Priority="19" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/>
<w:LsdException Locked="false" Priority="21" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/>
<w:LsdException Locked="false" Priority="31" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/>
<w:LsdException Locked="false" Priority="32" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/>
<w:LsdException Locked="false" Priority="33" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Book Title"/>
<w:LsdException Locked="false" Priority="37" Name="Bibliography"/>
<w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/>
</w:LatentStyles>
</xml><![endif]--><!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin:0cm;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:"Times New Roman","serif";}
</style>
<![endif]-->
</span></span></div>
<div class="MsoNormal">
<span style="font-size: small;">"Log In To Grid Control Console
10g or DB Control 10g and 11g within Internet Explorer 7, 8 or 9 fails with "Internet Explorer cannot
display this page" or with Security Certificate Error".</span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="font-size: small;">Actually one has to patch the EM in order to be able to increase the key length to 1024 bits. The command which should be used is:</span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="font-size: small;"><span id="pt1:sd_r1:0:dv_rDoc:ot71"> emctl secure dbconsole -key_strength 1024 -reset</span></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="font-size: small;"><span id="pt1:sd_r1:0:dv_rDoc:ot71">However, without first applying the </span><span id="pt1:sd_r1:0:dv_rDoc:ot71"><span id="pt1:sd_r1:0:dv_rDoc:ot71"><a href="https://support.oracle.com/epmos/faces/ui/patch/PatchDetail.jspx?patchId=14503114" target="_blank">Patch 14503114</a></span></span><span id="pt1:sd_r1:0:dv_rDoc:ot71"> one will get error that the parameter -key_strength is not supported. So in order to resolve the problem patch has to be applied.</span> </span></div>
<br />
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
<span style="font-size: small;"><span style="font-family: inherit;">The other possible workaround is to use another browser which is satisfied with 512 bits long key.<span id="pt1:sd_r1:0:dv_rDoc:ot71"> Google Chrome and Firefox work just perfectly.</span></span></span></div>
</div>
<div class="blogger-post-footer"><script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
try {
var pageTracker = _gat._getTracker("UA-5265495-3");
pageTracker._trackPageview();
} catch(err) {}</script></div>Jože Senegačnik - Jochttp://www.blogger.com/profile/10478214001612631485noreply@blogger.com4tag:blogger.com,1999:blog-3116559472841364402.post-59428779678295101922012-11-04T10:17:00.000+01:002012-11-04T10:17:18.053+01:00SANGAM12 - All Indian Oracle Users Group Conference in Bangalore, India<div dir="ltr" style="text-align: left;" trbidi="on">
<br />
<div style="text-align: left;">
<span style="font-family: inherit;"><span style="font-size: small;">I am writing this blog post at the Charles de Gaulle (CDG) airport in Paris just after return flight from Bangalore, India. I had the privilege to be a speaker at the<a href="http://www.sangam12.info/" target="_blank"> SANGAM12 Conference</a>, which is actually the All Indian Oracle User Group Conference. Conference was taking place at Crowne Plaza hotel in Bangalore on November 2nd to 3rd. </span></span></div>
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEha0J-Hwm2IZq0n6jW3HxeRhbVNJIfK-SxINCAKfcj_hkSQXZ8rD4G7fhjXRcJI9-KMcL7ev-qlwMHXbhnpGEvlCICZzW8smDJWMm3Zu4WkG9uxxk4OlUVd0HN0DnIdIW7xhRCuWqs5gJA/s1600/IMG_2257.JPG" imageanchor="1" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEha0J-Hwm2IZq0n6jW3HxeRhbVNJIfK-SxINCAKfcj_hkSQXZ8rD4G7fhjXRcJI9-KMcL7ev-qlwMHXbhnpGEvlCICZzW8smDJWMm3Zu4WkG9uxxk4OlUVd0HN0DnIdIW7xhRCuWqs5gJA/s320/IMG_2257.JPG" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Final wrap-up session.</td></tr>
</tbody></table>
<div style="text-align: left;">
<span style="font-family: inherit;"><span style="font-size: small;">My traveling to India encountered problems already at the CDG airport where I had only about one hour between the flight from Ljubljana to Paris and the flight from Paris to Bangalore. There were huge queues in front of passport control and only about half of the counters were working so I was immediately convinced that I will miss my flight. Finally after coming at the gate about 5 minutes prior the formal departure I saw the airplane at the gate but was not allowed to board because the airplane door was already closed. So I had to reschedule my flight and the new connection was flight via New Delhi with Air India. Unfortunately I had to wait about 10 hours. So arrived in New Delhi next morning and the connection flight was in early afternoon. So final delay was approximately 16 hours. I had ordered the airport pick up but unfortunately there was a rush hour at the time so it took us more then two hours to finally arrive at the conference venue where I was also sleeping. The conference day was already over so I only met Tom Kyte, Graham Wood and Andrew Holdsworth<b> </b>from Oracle Corporation, having a final beer in the lobby. </span></span></div>
<div style="text-align: left;">
<span style="font-family: inherit;"><span style="font-size: small;">The <a href="http://www.aioug.org/sangam12/Sangam12-Agenda.htm" target="_blank">conference agenda</a> was <span style="font-size: small;">very interesting. </span> My first presentation on Saturday, November 3rd was at noon and the biggest room was almost full. I had the presentation "Getting best from the Cost Based Optimizer". I started with some jokes so the contact with the audience was established. </span></span></div>
<div style="text-align: left;">
<span style="font-family: inherit;"><span style="font-size: small;">My second presentation "Execution Plan Interpretation" was in the afternoon in slightly smaller room. I was just about to start the presentation when the organizer decided to move my presentation the the biggest room as so many people were staying outside. Surprisingly it took us just about 3 minutes to swap the rooms and I was able to start the presentation. </span></span></div>
<div style="text-align: left;">
<span style="font-family: inherit;"><span style="font-size: small;">According to the feedback from many people after my both presentations they were very well accepted. Finally I also met my friend from <span style="font-size: small;">F</span>acebook Aman Sharma in person. He was also presenting about the </span></span></div>
<div style="text-align: left;">
<span style="font-family: inherit;"><span style="font-size: small;">The way back so far was uneventful and I had good rest during the flight back. </span></span></div>
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhLDNupk-IVPzVDYCIAwHPSQajU803GckjjWhaDrKyWZ3vLA4FEYibsUhSUT_Zk-ikzrWtCbF9v3234sfdmxo2DUC7g7qqILDp9Mz4mikbxz6KaN5K-8MMj3IksSZKFBNoVjqd3yngG-fc/s1600/IMG_2258.JPG" imageanchor="1" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhLDNupk-IVPzVDYCIAwHPSQajU803GckjjWhaDrKyWZ3vLA4FEYibsUhSUT_Zk-ikzrWtCbF9v3234sfdmxo2DUC7g7qqILDp9Mz4mikbxz6KaN5K-8MMj3IksSZKFBNoVjqd3yngG-fc/s320/IMG_2258.JPG" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Together with Aman Sharma and guys from Oracle India.</td></tr>
</tbody></table>
<div style="text-align: left;">
<span style="font-family: inherit;"><span style="font-size: small;">I have congratulated<span style="font-size: small;"> </span>Muralli Valath who is the pres<span style="font-size: small;">ident of the group </span>for excellent organization of the event and I hope I'll be able to present again in India next year. <span style="font-size: small;">This was their 4th conference so the<span style="font-size: small;">ay are still growing and I am sure that they have a great potential to become one of the biggest Oracle User Groups worldwide.</span></span></span></span></div>
<div style="text-align: left;">
<span style="font-family: inherit;"><span style="font-size: small;"><span style="font-size: small;"><span style="font-size: small;"> </span></span> </span></span></div>
<div style="text-align: left;">
</div>
<div style="text-align: left;">
<span style="font-family: inherit;"><span style="font-size: small;"> <b><br /></b></span></span></div>
</div>
<div class="blogger-post-footer"><script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
try {
var pageTracker = _gat._getTracker("UA-5265495-3");
pageTracker._trackPageview();
} catch(err) {}</script></div>Jože Senegačnik - Jochttp://www.blogger.com/profile/10478214001612631485noreply@blogger.com0tag:blogger.com,1999:blog-3116559472841364402.post-20604717812633138032012-10-24T10:46:00.003+02:002012-10-24T17:35:23.043+02:00CBO Days in Zurich December 11-12 , Switzerland<div dir="ltr" style="text-align: left;" trbidi="on">
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKwAAABqCAIAAACu4i0mAAAEGklEQVR4nO2ZQU7zMBBGex8O02PBdXqPT7Bi9bMuSyQkNggp/6Kt63g8tlNSBtEXvQ3EScYzz47jbrTZwI0THwGEEx8BhBMfAYQTHwGEEx8BhBMfAYQTHwGEEx8BhBMfAYQTHwGEEx8BhBMfAYSzrPXb437Kjq/90/O8wevuaXKP/Uv9tncf+/exljnbT+cxn4+78LQeeN4+fDXTVaS0EfnL/W6apml6f93eNbNnG6wnwSmIyvF2vx2ToBJio32vlq4E0zSNaXRdnK7lgVn766JknZ0lsJAsHXlFVpPAe5gtbU+CWWkbYh2Oj93DpRJ42fwxUnjHqqfOpgyk/xxqVvyZkbsykyDNIqdLyoeuKME5iDyzuRmpY0mCoidZ4xRfXsVZ0NkM2ZjcjpcXxc7FWjogViSFkXmc0njs7KmbZULycWKGX56QSga8/H9XghSHHVuHU9XXga9zOTKqQzbdx38p1CVQbcw1s1m/T2pvB+6AoFWKDNjnuikaf+i1JFh0X6+xLYyZykZrPNCgPOW9dw6PPsU8y2/REec1t8CDYixZybKcHG+bvyCKUz3Plgk6LsHQfXtrgvO0byZDrz9eg4YExbXHP60ThwKketip+3RJGUxjduyVp3xoW4J0/xEJsuSvvSYYc3BIgsYL8poSlJgClJYYLc7Ll4vWGZWV3YgEi6qQZ765oI6WYKqMLe+2V5Jg9lVm1rPHYOzkV2yQTAt2I2ZPTOVZV4I87Rd8FvVbpAeM+DWwMDyeaq8JBubb/prAzt5eIedDv5wYbC1tUT28vaAVJZiveC7ZIOm36H4d5IlorCKLr6b210HK3RpfB+fJvLso+9o/vZzOVu00U11rgmzuBva/DkYk+L4BQxJ4+wQ2uW0JUkbsi9bfR1u8T5AP+mITpj0Vp33Zj8d/Iwntfd3MylNT2Za8sk/Qk8Dda1ldgjV3DPPGP7NjaCaGcqFevWF16q6NWk/TygjxLOntGLoSjO2qrSRBu2DV14F3FJo3brvebwduy6I8+exdVMLrl6dp0+8U2/hvB1UJWhlYebOoFoobcVsCLzKz9v7Wr4i1wuSN31+3d9XNj9re9qZ2tp9o+zXh9S7PWMN7K0F7Hr2iBH+b6lrhFoiP4Ndw4Z7rHyA+gl+AuyS8EeIj+AWcJbhBA4QEICQAIQEICUBIAEICEBKAkACEBCAkACEBCAlASABCAhASgJAAhAQgJAAhAQgJQEgAQgIQEoCQAIQEICQAIQEICUBIAEICEBKAkACEBCAkACEBCAlASABCAhASgJAAhAQgJAAhAQgJQEgAQgIQEoCQAIQEICQAIQEICUBIAEICEBKAkACEBCAkACEBCAlASABCAhASgJAAhAQgJAAhAQgJQEgAQgIQEoCQAIQEICQAbTb/Aad2OZ90UeJ+AAAAAElFTkSuQmCC" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img alt="" src="data:image/png;base64,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" /></a></div>
<br />
My dear colleague from <a href="http://www.oaktable.net/" target="_blank">OakTable</a> <a href="http://www.antognini.ch/" target="_blank">Christian Antognini</a> is organizing an excellent event called <a href="http://www.trivadis.com/training/oracle-trainings/cbo-day.html" target="_blank">"CBO Days 2012"</a> which will take place in Zurich in Switzerland in December 11-12.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAK4AAAAtCAIAAAC4SsfPAAADZ0lEQVR4nO2ZTW7jMAyFc58cJsdqr5N7BMmqq8k6WRYIkE0RQLMwzdD8k+zKnUHzjLdpLcsU+YmimU0p5bDZQNAGKECDgAJEAgoQCShAJKAAkYACRAIKEAkoQCSgAJGAAkQCChAJKEAkoACRgAJEWoLC5/FSxPW4nD6mA677Uwmvy9mfdnu/3NpGSu2+gtd8Hff/3LmDPnbvj9RdyqWJ5ee3fSmllNt1t029Zwf0RmE0xbk+33ZtKDiGJuNrEQ1RKKW0wbSugqVJw+we8HERi504UKHGl4xIZxSiV47X074aCpMAJ3gN133/vhSFyKc/JjaPYs+LZQ/wf4bIqT+FJDETFDijjI/ol3ZH4WmK9K/kg5fHKKj1iMFspYzlxHSRM5N0R4+rkEu85m6OjmIzBM3sRlrsuEztELlbzCaUDnE8EPm/Dwpsjd1nwy33gIjR1rvE3b48T3xM+CgcvP2X+tSfh8fbTdyAqSvlAfve0EXtL10XhVmzR4NteExya410wwB9KzqJhlePNk+8rBYSHHwzaFA7yqImfELTyiND3arRNg/TuSg0zV6rFZ4HgUmP0aqiAQkK6ln605IxhIGjYpP5+Ig2JsmUtSDpl+Yo8PwtKAjnr1MrtPHYhEJycK6JgpYJg2bFwPEsaxbVH07d14LCrChIz6fl9v+BQnH2WTTtSihMvt9MtUvG2ESoGiplRvdi8kYOUl8UpNsXfDrNrhVaWGsoG+lWXis0ZOB6rWDzeRTOaRrQScJG1IY2UtRB6ojCtBJa0lDp9gUh3ZHUmOr7Kv+CYA/2+IJ4pvdqyfa4nM7jXZdRk/ayZJl2EutfEC0ofJ+DGShEfQXr4hwF9os9gOMe3Oy+gkwAqnWTJ2fu7N6Pf1rcWvsCmgTJA9oG3ukr1FAIezMrodCz2ygH/0y30SQJXcy7E7rJ3NvBEazOPolYqXUbQxTaenFdUcjD5h4Q0aWQT6bt9xtEOFIFSeZzFY9oXRGsKeVsW/tvEC4KmQdWaTF5BoV25yhE9pn6/Fu/THrhkYNv193WbZZ43fGNd7fubvvFEa1Oeiyh36KQ59TVUfjdcmuIVxBQUFrYtf0FAgqssGB8EQEF1hOFF+TgABQgFlCASEABIgEFiAQUIBJQgEhAASIBBYgEFCASUIBIQAEi/QUU7DlEL1uCmQAAAABJRU5ErkJggg==" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img alt="" border="0" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAK4AAAAtCAIAAAC4SsfPAAADZ0lEQVR4nO2ZTW7jMAyFc58cJsdqr5N7BMmqq8k6WRYIkE0RQLMwzdD8k+zKnUHzjLdpLcsU+YmimU0p5bDZQNAGKECDgAJEAgoQCShAJKAAkYACRAIKEAkoQCSgAJGAAkQCChAJKEAkoACRgAJEWoLC5/FSxPW4nD6mA677Uwmvy9mfdnu/3NpGSu2+gtd8Hff/3LmDPnbvj9RdyqWJ5ee3fSmllNt1t029Zwf0RmE0xbk+33ZtKDiGJuNrEQ1RKKW0wbSugqVJw+we8HERi504UKHGl4xIZxSiV47X074aCpMAJ3gN133/vhSFyKc/JjaPYs+LZQ/wf4bIqT+FJDETFDijjI/ol3ZH4WmK9K/kg5fHKKj1iMFspYzlxHSRM5N0R4+rkEu85m6OjmIzBM3sRlrsuEztELlbzCaUDnE8EPm/Dwpsjd1nwy33gIjR1rvE3b48T3xM+CgcvP2X+tSfh8fbTdyAqSvlAfve0EXtL10XhVmzR4NteExya410wwB9KzqJhlePNk+8rBYSHHwzaFA7yqImfELTyiND3arRNg/TuSg0zV6rFZ4HgUmP0aqiAQkK6ln605IxhIGjYpP5+Ig2JsmUtSDpl+Yo8PwtKAjnr1MrtPHYhEJycK6JgpYJg2bFwPEsaxbVH07d14LCrChIz6fl9v+BQnH2WTTtSihMvt9MtUvG2ESoGiplRvdi8kYOUl8UpNsXfDrNrhVaWGsoG+lWXis0ZOB6rWDzeRTOaRrQScJG1IY2UtRB6ojCtBJa0lDp9gUh3ZHUmOr7Kv+CYA/2+IJ4pvdqyfa4nM7jXZdRk/ayZJl2EutfEC0ofJ+DGShEfQXr4hwF9os9gOMe3Oy+gkwAqnWTJ2fu7N6Pf1rcWvsCmgTJA9oG3ukr1FAIezMrodCz2ygH/0y30SQJXcy7E7rJ3NvBEazOPolYqXUbQxTaenFdUcjD5h4Q0aWQT6bt9xtEOFIFSeZzFY9oXRGsKeVsW/tvEC4KmQdWaTF5BoV25yhE9pn6/Fu/THrhkYNv193WbZZ43fGNd7fubvvFEa1Oeiyh36KQ59TVUfjdcmuIVxBQUFrYtf0FAgqssGB8EQEF1hOFF+TgABQgFlCASEABIgEFiAQUIBJQgEhAASIBBYgEFCASUIBIQAEi/QUU7DlEL1uCmQAAAABJRU5ErkJggg==" /></a></div>
I am really honored to be speaking together with great names of the Cost Based Optimizer (CBO) like <a href="http://jonathanlewis.wordpress.com/" target="_blank">Jonathan Lewis</a>, <a href="http://oracle-randolf.blogspot.com/" target="_blank">Randolf Geist</a>, Mohamed Zait, <a href="https://blogs.oracle.com/optimizer/" target="_blank">Maria Colgan</a> and <a href="http://www.antognini.ch/" target="_blank">Christian Antognini</a>.<br />
<br />
I remember being the attendee at the first CBO Days back in 2006. Mohamed Zait was at time already involved in the developing of the CBO and had several excellent presentations. It was a great opportunity to discuss with him the actual problems we had with the CBO at that time like the bind variables peeking only at the parse time and run-away queries. At the OakTable dinner we suggested him several possible solutions which were in subsequent years built in the database.<br />
<br />
Such kind of events are great opportunity to get the knowledge which one can't really get at one place. Internet is a great source of knowledge, but attending a detailed technical presentation is something quite different. <br />
<br />
I expect that this event will be <u>simply the best event</u> totally focused on the problems of the cost based optimization. </div>
<div class="blogger-post-footer"><script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
try {
var pageTracker = _gat._getTracker("UA-5265495-3");
pageTracker._trackPageview();
} catch(err) {}</script></div>Jože Senegačnik - Jochttp://www.blogger.com/profile/10478214001612631485noreply@blogger.com0tag:blogger.com,1999:blog-3116559472841364402.post-54375393542458585912012-10-24T10:09:00.001+02:002012-10-24T10:10:13.019+02:00My public appearances in autumn 2012 <div dir="ltr" style="text-align: left;" trbidi="on">
<span style="font-family: inherit;">The era of different conferences before the end of this year is here.</span><br />
<span style="font-family: inherit;">Last week I was speaking at Slovenian Oracle User Group Conference in Ljubljana and later on in the same week at Croatian Oracle User Group Conference in Rovinj.</span><br />
<span style="font-family: inherit;"><br /></span>
<span style="font-family: inherit;">Here is the list of my forthcoming public appearances:</span><br />
<!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:TrackMoves/>
<w:TrackFormatting/>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:DoNotPromoteQF/>
<w:LidThemeOther>EN-US</w:LidThemeOther>
<w:LidThemeAsian>X-NONE</w:LidThemeAsian>
<w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
<w:SplitPgBreakAndParaMark/>
<w:EnableOpenTypeKerning/>
<w:DontFlipMirrorIndents/>
<w:OverrideTableStyleHps/>
</w:Compatibility>
<w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
<m:mathPr>
<m:mathFont m:val="Cambria Math"/>
<m:brkBin m:val="before"/>
<m:brkBinSub m:val="--"/>
<m:smallFrac m:val="off"/>
<m:dispDef/>
<m:lMargin m:val="0"/>
<m:rMargin m:val="0"/>
<m:defJc m:val="centerGroup"/>
<m:wrapIndent m:val="1440"/>
<m:intLim m:val="subSup"/>
<m:naryLim m:val="undOvr"/>
</m:mathPr></w:WordDocument>
</xml><![endif]--><br />
<!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
DefSemiHidden="true" DefQFormat="false" DefPriority="99"
LatentStyleCount="267">
<w:LsdException Locked="false" Priority="0" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Normal"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="heading 1"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/>
<w:LsdException Locked="false" Priority="39" Name="toc 1"/>
<w:LsdException Locked="false" Priority="39" Name="toc 2"/>
<w:LsdException Locked="false" Priority="39" Name="toc 3"/>
<w:LsdException Locked="false" Priority="39" Name="toc 4"/>
<w:LsdException Locked="false" Priority="39" Name="toc 5"/>
<w:LsdException Locked="false" Priority="39" Name="toc 6"/>
<w:LsdException Locked="false" Priority="39" Name="toc 7"/>
<w:LsdException Locked="false" Priority="39" Name="toc 8"/>
<w:LsdException Locked="false" Priority="39" Name="toc 9"/>
<w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/>
<w:LsdException Locked="false" Priority="10" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Title"/>
<w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/>
<w:LsdException Locked="false" Priority="11" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/>
<w:LsdException Locked="false" Priority="22" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Strong"/>
<w:LsdException Locked="false" Priority="20" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/>
<w:LsdException Locked="false" Priority="59" SemiHidden="false"
UnhideWhenUsed="false" Name="Table Grid"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/>
<w:LsdException Locked="false" Priority="1" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 1"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 1"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 1"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/>
<w:LsdException Locked="false" Priority="34" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/>
<w:LsdException Locked="false" Priority="29" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Quote"/>
<w:LsdException Locked="false" Priority="30" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 1"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 1"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 2"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 2"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 2"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 2"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 2"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 3"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 3"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 3"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 3"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 3"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 4"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 4"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 4"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 4"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 4"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 5"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 5"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 5"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 5"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 5"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 6"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 6"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 6"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 6"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 6"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/>
<w:LsdException Locked="false" Priority="19" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/>
<w:LsdException Locked="false" Priority="21" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/>
<w:LsdException Locked="false" Priority="31" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/>
<w:LsdException Locked="false" Priority="32" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/>
<w:LsdException Locked="false" Priority="33" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Book Title"/>
<w:LsdException Locked="false" Priority="37" Name="Bibliography"/>
<w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/>
</w:LatentStyles>
</xml><![endif]--><!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin:0cm;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:"Times New Roman","serif";}
</style>
<![endif]-->
<br />
<div class="MsoNormal">
<span style="font-family: inherit;"><span style="color: #1f497d; font-size: 11pt;">SANGAM12, All Indian Oracle Users Group conference, Bangalore,
India, November 2-3 2012, <a href="http://www.aioug.org/sangam12.php">http://www.aioug.org/sangam12.php</a></span></span></div>
<div class="MsoNormal">
<span style="font-family: inherit;"><span style="color: #1f497d; font-size: 11pt;">BGOUG, Bulgarian Oracle User Group Conference, Pravets,
Bulgaria, November 16-18 2012, <a href="http://www.bgoug.org/en">http://www.bgoug.org/en</a></span></span></div>
<div class="MsoNormal">
<span style="font-family: inherit;"><span style="color: #1f497d; font-size: 11pt;">DOAG, German Oracle Users Group Conference, Nurnberg, Germany,
November 20-22 2012, <a href="http://www.doag.org/">http://www.doag.org</a></span></span></div>
<div class="MsoNormal">
<span style="font-family: inherit;"><span style="color: #1f497d; font-size: 11pt;">UKOUG, UK Oracle User Group Conference, Birmingham UK, December
3-5 2012, <a href="http://2012.ukoug.org/">http://2012.ukoug.org</a></span></span></div>
<div class="MsoNormal">
<span style="font-family: inherit;"><span style="color: #1f497d; font-size: 11pt;">Trivadis CBO Days 2012, Zurich, Switzerland, December 11-12
2012, <a href="http://www.trivadis.com/training/oracle-trainings/cbo-day.html">http://www.trivadis.com/training/oracle-trainings/cbo-day.html</a></span></span></div>
<div class="MsoNormal">
<span style="color: #1f497d; font-family: "Calibri","sans-serif"; font-size: 11.0pt;"><span style="font-family: inherit;"> </span></span></div>
</div>
<div class="blogger-post-footer"><script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
try {
var pageTracker = _gat._getTracker("UA-5265495-3");
pageTracker._trackPageview();
} catch(err) {}</script></div>Jože Senegačnik - Jochttp://www.blogger.com/profile/10478214001612631485noreply@blogger.com0tag:blogger.com,1999:blog-3116559472841364402.post-5088155672954520472012-02-22T14:14:00.006+01:002012-02-22T14:24:42.351+01:00Oracle XML Training with Marco Gralike in LjubljanaIn last two years I have been involved in many cases when we had to troubleshoot performance for processing XML files. Due to this reason I decided to organize specialized training with the best expert for processing XML in Oracle database - Marco Gralike, my fellow from OakTable and also Oracle ACE Director.<br />The training is organized by my company DbProf d.o.o in cooperation with <a href="http://www.sioug.si/">Slovenian Oracle User Group - SIOUG</a>. The training will take place in Ljubljana, <span style="font-weight: bold;">March 27th and 28th 2012</span>. More about training agenda and the pricing is available <a href="http://www.dbprof.com/index.php?option=com_content&view=article&id=62:oracle-xml-training&catid=1:latest-news&Itemid=50">here</a>.<br /><img src="data:image/png;base64,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" alt="" /><div class="blogger-post-footer"><script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
try {
var pageTracker = _gat._getTracker("UA-5265495-3");
pageTracker._trackPageview();
} catch(err) {}</script></div>Jože Senegačnik - Jochttp://www.blogger.com/profile/10478214001612631485noreply@blogger.com0tag:blogger.com,1999:blog-3116559472841364402.post-68034496260946538052011-10-05T05:06:00.007+02:002011-10-05T19:05:54.941+02:00My Presentation "Getting the Best from the Cost Based Optimizer" at Oracle Open World 2011Today (Tuesday, October 4th 2011) I had my presentation at OOW 2011 in Hotel InterContinental at 13:15 titled "Getting the Best from the Cost Based Optimizer". The room was already sold out on Thursday and I really expected to have a full room - cca 270 people. The room was too small for all who want attending the presentation. Although there were no seats available quite a lot of them were standing in the back.<br /><br />This time my presentation was not very technical one (in my eyes). I just wanted to point out problems I see many times in real life when people don't really know about some features or behavior of the CBO. Unfortunately one hour was not enough to explain in details why things are going wrong and also show all relevant details. But as I said, the aim was to point out the problems and also give directions what one has to do to get rid of them and according to the reactions of the audience after the presentation the goal was achieved.<br /><br />After the presentation I was answering the questions more than half an hour so I almost missed the meeting for the beta program of next release of the database. Because so many were interested to get the presentation slides I have uploaded it to my home web page immediately upon arrival at SFO airport.<br /><br />Here is the abstract for "Getting the Best from the Cost Based Optimizer":<br /><span style="font-style:italic;">Oracle Database 11g brings many new enhancements to PL/SQL. These will improve the performance, functionality, and security of your applications and will increase your productivity as a developer. This session will present the Oracle database 11g new PL/SQL language features and enhancements that can be used to improve programming functionality, performance and usability. Participants will learn about new trigger options, PL/SQL function result cache, bulk binding, new security features and more.<br /></span><br />The agenda was:<br /><ul><li>Misused Initialization Parameters & System Statistics</li><li>Extended Statistics</li><li>Cost of execution of PL/SQL functions</li><li>Constraints</li><li>SQL Plan Management</li><li>SQL Monitoring</li><li>Automatic Cardinality Feedback Tuning</li></ul>The presentation is available <a href="http://www.dbprof.com/index.php?option=com_jdownloads&Itemid=57&view=viewcategory&catid=3">here for download</a>, but you must be registered.<div class="blogger-post-footer"><script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
try {
var pageTracker = _gat._getTracker("UA-5265495-3");
pageTracker._trackPageview();
} catch(err) {}</script></div>Jože Senegačnik - Jochttp://www.blogger.com/profile/10478214001612631485noreply@blogger.com0tag:blogger.com,1999:blog-3116559472841364402.post-18828414027621578642011-10-02T18:31:00.003+02:002011-10-02T19:14:43.859+02:00Flying over Golden Gate bridge<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgwy95ctofEBwFbGgYy_XWsk-IcCgK4HjCyih4y653cmMf7PwPy67Y-lklttDB3019VfSHgDSbLhvls8_koczUqNedNoGibex9blcRxWH1bVPM6gEymSY8Li3jdN93u2wJxut6o2AN1ukE/s1600/011020111209.jpg"><img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgwy95ctofEBwFbGgYy_XWsk-IcCgK4HjCyih4y653cmMf7PwPy67Y-lklttDB3019VfSHgDSbLhvls8_koczUqNedNoGibex9blcRxWH1bVPM6gEymSY8Li3jdN93u2wJxut6o2AN1ukE/s320/011020111209.jpg" alt="" id="BLOGGER_PHOTO_ID_5658936378768970306" border="0" /></a><br />Saturday was perfect day for activities not related to the Oracle Open World 2011 event. So I decided to do my first flying in USA. The details about this 1h20 long flight are available in my <a href="http://jsenegacnik.blogspot.com/2011/10/flying-over-golden-gate-in-san.html">blog about flying</a>.<br /><br /><table style="width:194px;"><tr><td align="center" style="height:194px;background:url(https://picasaweb.google.com/s/c/transparent_album_background.gif) no-repeat left"><a href="https://picasaweb.google.com/100242941829189131461/FlyingOverGoldenGateAtOOW2011?authuser=0&feat=embedwebsite"><img src="https://lh6.googleusercontent.com/-wjlXUQNvFdA/ToiKDaQ5GeE/AAAAAAAADNY/f-JfBo1237k/s160-c/FlyingOverGoldenGateAtOOW2011.jpg" width="160" height="160" style="margin:1px 0 0 4px;"></a></td></tr><tr><td style="text-align:center;font-family:arial,sans-serif;font-size:11px"><a href="https://picasaweb.google.com/100242941829189131461/FlyingOverGoldenGateAtOOW2011?authuser=0&feat=embedwebsite" style="color:#4D4D4D;font-weight:bold;text-decoration:none;">Flying Over Golden Gate at OOW2011</a></td></tr></table><div class="blogger-post-footer"><script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
try {
var pageTracker = _gat._getTracker("UA-5265495-3");
pageTracker._trackPageview();
} catch(err) {}</script></div>Jože Senegačnik - Jochttp://www.blogger.com/profile/10478214001612631485noreply@blogger.com0tag:blogger.com,1999:blog-3116559472841364402.post-30946223051530385122011-09-30T18:57:00.003+02:002011-09-30T19:04:50.062+02:00Oracle Open World 2011<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg2msAgskM0260PR5u1e0QV1c7PLWH3vo6wE75FkMgizJjvvL0s0RBIS96nbmKwKtWb0mm3x8xeaY7pModVog8mOyCYb9keUWG9vOUtj3t3YBPmx22ZYSCI2Q8dAFolZHv7CODa_BYIH7o/s1600/290920111184.jpg"><img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg2msAgskM0260PR5u1e0QV1c7PLWH3vo6wE75FkMgizJjvvL0s0RBIS96nbmKwKtWb0mm3x8xeaY7pModVog8mOyCYb9keUWG9vOUtj3t3YBPmx22ZYSCI2Q8dAFolZHv7CODa_BYIH7o/s320/290920111184.jpg" alt="" id="BLOGGER_PHOTO_ID_5658198584992159922" border="0" /></a><br />This year I have the opportunity to attend Oracle ACE Directors briefing before the Oracle Open World 2011 event which is taking place at Oracle Headquarters. It is great to get almost all important things which will be announced in several days packed together and communicated by those responsible people in Oracle. So I am really thankful for this opportunity. A lot of ACE Directors gathered here and it is nice to meet old friends and make personal contacts with all those who we know only by name.<br /><br /><br />My presentation titled "<span style="font-weight: bold;">Getting The Best From The Cost Based Optimizer</span>" is on Tuesday, October 4th at 1:15 PM in InterContinental - Grand Ballroom B and it looks like the room will be full so come there on time to get your seat.<div class="blogger-post-footer"><script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
try {
var pageTracker = _gat._getTracker("UA-5265495-3");
pageTracker._trackPageview();
} catch(err) {}</script></div>Jože Senegačnik - Jochttp://www.blogger.com/profile/10478214001612631485noreply@blogger.com0tag:blogger.com,1999:blog-3116559472841364402.post-88872567848863813022011-03-24T14:43:00.003+01:002011-03-24T14:56:57.868+01:00Update on Chris Date's Seminar in Ljubljana May 23-24 2011The registration for the seminar is now open and there is a substantial early bird registration discount. Beside this the members of Slovenian, Croatian and Serbian Oracle User Group have additional discount. Please see the details on <a href="http://www.dbprof.com/index.php?option=com_content&view=article&id=57:chris-date-seminar-in-ljubljana-&catid=1:latest-news&Itemid=50">www.dbprof.com</a> about the seminar registration.<br /><br />I tried really hard to organize this unique event at the affordable prices for everybody especially in times when the financial crisis is still striking the budget for education.<br /><br />Interesting opinion about Chris Date's seminar in Ljubljana was published today by <span style="font-weight: bold;">Dejan Sarka</span>, worldwide known Slovenian expert for Microsoft SQL server . He wrote: "<span style="font-weight: bold;">Well, IMHO C. J. Date is the most important contemporary theorist on the Relational Model. If there is a single person in the world I would like to listen, this is Date</span>." ..."<span style="font-weight: bold;">If you have opportunity to join the Date's seminar, do not hesitate! it is a unique opportunity, and I find the price, thanks to great organization of the DbProf company, very attractive.</span>" Details <a href="http://blogs.solidq.com/dsarka/Post.aspx?ID=125&title=C.J.+Date+in+Ljubljana">here</a>. Because he is a speaker at Slovenian NT Conference which is unfortunately taking place at the same time, he is not able to attend this unique event.<div class="blogger-post-footer"><script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
try {
var pageTracker = _gat._getTracker("UA-5265495-3");
pageTracker._trackPageview();
} catch(err) {}</script></div>Jože Senegačnik - Jochttp://www.blogger.com/profile/10478214001612631485noreply@blogger.com0tag:blogger.com,1999:blog-3116559472841364402.post-34596903679732405032011-02-26T12:33:00.004+01:002011-02-26T12:51:33.248+01:00Organizing Chris Date's seminar in Ljubljana May 23-24 2011<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.dbprof.com/images/stories/cjd.jpg"><img style="float: right; margin: 0pt 0pt 10px 10px; cursor: pointer; width: 79px; height: 101px;" src="http://www.dbprof.com/images/stories/cjd.jpg" alt="" border="0" /></a>I have invited Chris J. Date, an independent author, lecturer, researcher, and consultant of international renown, specializing in relational database technology, to have a 2 day seminar <span style="font-weight: bold;">"How to Write Correct SQL and Know It: A Relational Approach to SQL"</span>. The 2-day seminar will take place in <span style="font-weight: bold;">Ljubljana</span>, Slovenia, on <span style="font-weight: bold;">May 23-24 2011</span>.<br /><br />Chris is best known for his book "<i>An Introduction to Database Systems</i>" (eighth edition, Addison-Wesley, 2004), which has sold some 725,000 copies and is used by several hundred colleges and universities worldwide.<br />For more details about this seminar please read on my <a href="http://www.dbprof.com/index.php?option=com_content&view=article&id=57:chris-date-seminar-in-ljubljana-&catid=1:latest-news&Itemid=50">home page</a>.<br /><br />Why this seminar? So many times I am involved in performance troubleshooting and in more than 80% of all cases the fault is bad design and poorly written SQL statements. With organizing this event I would like to give a good opportunity to all developers (either on Oracle database or any other database) to get more theoretical knowledge about SQL.<div class="blogger-post-footer"><script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
try {
var pageTracker = _gat._getTracker("UA-5265495-3");
pageTracker._trackPageview();
} catch(err) {}</script></div>Jože Senegačnik - Jochttp://www.blogger.com/profile/10478214001612631485noreply@blogger.com0tag:blogger.com,1999:blog-3116559472841364402.post-73792410839278514912010-10-19T09:09:00.010+02:002010-10-19T10:46:56.483+02:00Presenting at Croatian Oracle User Group - HROUG<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.hroug.hr"><img style="float: right; margin: 0pt 0pt 10px 10px; cursor: pointer; width: 460px; height: 235px;" src="http://www.hroug.hr/var/hroug/storage/images/hroug_konferencija/u_pripremi/hroug2010_rovinj/4295-72-cro-HR/hroug2010_rovinj.png" alt="" border="0" /></a><br />This week I'll be presenting at Croatian Oracle User Group Conference (HROUG) which will take place in Rovinj in Croatia, a beautiful old city in Istria at the Adriatic coast.<br /><br />HROUG is a very strong and active user group. Every year they organize excellent conference, so this year it is already the 15th. Last year I was presenting about execution plan stability and my presentation was selected as the best presentation in the "Database and Technology" track.<br /><br />Rovinj is only about 2.5 hour drive away from my home in neighbor country. My presentation is scheduled for Thursday, 21.10.2010 at 15:00 hours and I will repeat my presentation from Oracle Open World 2010. Friday morning I'll be talking about the Oracle ACE Program together with other Oracle ACEs / ACE Directors who will be there as well. Currently Croatia has no Oracle ACE yet. Therefore the Croatian Oracle User Group would like to make people aware of this Oracle program and at the same time they would like to discuss their first nominations.<div class="blogger-post-footer"><script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
try {
var pageTracker = _gat._getTracker("UA-5265495-3");
pageTracker._trackPageview();
} catch(err) {}</script></div>Jože Senegačnik - Jochttp://www.blogger.com/profile/10478214001612631485noreply@blogger.com0tag:blogger.com,1999:blog-3116559472841364402.post-35226468746094286652010-10-19T08:52:00.005+02:002010-10-19T09:02:54.937+02:00Query Transformations - follow upDespite the doubts about the topic "Query Transformations" (described in my <a href="http://joze-senegacnik.blogspot.com/2010/09/my-oracle-open-world-2010-presentation.html">previous post</a>) presented at OOW which was quite technical I found extremely nice comments in different blog posts written by the attendees of my presentation. Thanks for sharing that with others. I was really happy and at same time surprised to have the room almost full and I hope everybody has learned at least something useful.<br /><br />For those, who don't have access to presentations at OOW 2010 I uploaded the presentation to my <a href="http://www.dbprof.com/joomla/index.php?option=com_jdownloads&view=viewcategories&Itemid=57">home site</a> and it is ready for download. You have to login (or register first if you have no login yet).<div class="blogger-post-footer"><script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
try {
var pageTracker = _gat._getTracker("UA-5265495-3");
pageTracker._trackPageview();
} catch(err) {}</script></div>Jože Senegačnik - Jochttp://www.blogger.com/profile/10478214001612631485noreply@blogger.com1tag:blogger.com,1999:blog-3116559472841364402.post-21930726329602842552010-09-22T18:30:00.006+02:002010-10-19T10:30:08.498+02:00Stanley at OOW 2010<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEOBbY4Q4YMVgK6HudoiV21VbitdHwNlHa-VhqIJrJFxtsyQOAN7xFP0JxFSeWjxwptfRlfHuS1dacl0vDVOcSsBIuXPo4h79nNoMz83avbnED8rJQCs3uHg7S4TYjVNFRTbrGrGIuFL8/s1600/210920101077.jpg"><img style="float: right; margin: 0pt 0pt 10px 10px; cursor: pointer; width: 320px; height: 240px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEOBbY4Q4YMVgK6HudoiV21VbitdHwNlHa-VhqIJrJFxtsyQOAN7xFP0JxFSeWjxwptfRlfHuS1dacl0vDVOcSsBIuXPo4h79nNoMz83avbnED8rJQCs3uHg7S4TYjVNFRTbrGrGIuFL8/s320/210920101077.jpg" alt="" id="BLOGGER_PHOTO_ID_5519777446757225858" border="0" /></a><br /><br />Yesterday, on Tuesday September 21st, I met with Debra Lilley, Robyn Sands, Mogens Norgard and Dan Norris at the Chevys. When we exited I took some funny pictures of Dan, Debra and Mogens and, of course, <a href="http://www.wtfistheacevest.com/">Stanley-Oracle ACE Director</a>. And I'm pretty sure everybody knows Stanley. If not, go to his home page and learn more about him.<br /><br /><br /><br /><br /><br /><br /><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjXRO_uTGqFForc5FO8MHrF6t7XukDKZQmPMHSoKKzmlRHZaZbOGyhARvVlNjPkQO1JzqXIoRM9igxb26QTVDQm98OF5UZ68D2xZwQsxi_9RfiYv_3WSWt5E282daH1HIaFDXMMiz6dtLE/s1600/210920101074.jpg"><img style="float: right; margin: 0pt 0pt 10px 10px; cursor: pointer; width: 320px; height: 240px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjXRO_uTGqFForc5FO8MHrF6t7XukDKZQmPMHSoKKzmlRHZaZbOGyhARvVlNjPkQO1JzqXIoRM9igxb26QTVDQm98OF5UZ68D2xZwQsxi_9RfiYv_3WSWt5E282daH1HIaFDXMMiz6dtLE/s320/210920101074.jpg" alt="" id="BLOGGER_PHOTO_ID_5519777257895755682" border="0" /></a><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpavhpAKAR8xTbsfJNCQSmjdfx-NxZSb1oud4E1ZsRowdMV1o3zzWYo-ZrFQdbYcxwYAR7BR5SmusE-O23RDoejcDKLMwcyMkThHe15Z4GH4woJFF7U2hh-w3PZXkllENH4ux6ekKNfls/s1600/210920101079.jpg"><img style="float: right; margin: 0pt 0pt 10px 10px; cursor: pointer; width: 320px; height: 240px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpavhpAKAR8xTbsfJNCQSmjdfx-NxZSb1oud4E1ZsRowdMV1o3zzWYo-ZrFQdbYcxwYAR7BR5SmusE-O23RDoejcDKLMwcyMkThHe15Z4GH4woJFF7U2hh-w3PZXkllENH4ux6ekKNfls/s320/210920101079.jpg" alt="" id="BLOGGER_PHOTO_ID_5519777553091247730" border="0" /></a><div class="blogger-post-footer"><script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
try {
var pageTracker = _gat._getTracker("UA-5265495-3");
pageTracker._trackPageview();
} catch(err) {}</script></div>Jože Senegačnik - Jochttp://www.blogger.com/profile/10478214001612631485noreply@blogger.com0tag:blogger.com,1999:blog-3116559472841364402.post-10349570721313716992010-09-22T14:58:00.014+02:002010-10-19T09:00:21.338+02:00My Oracle Open World 2010 Presentation - "Query Transformations"<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwIgtONVzqNBAcJydVMUmlIzR_CGqXA2Vo3WxQ2uS7TRRZY5lp-iDTVZnzftlnqQbQZNB6dpd_bao6FuUVuxdqi-vqAq1bLoJiN4aVOxbdkUbGKbio78Kc-_RCswlqg_sYocsdbzqsaIY/s1600/qt.JPG"><img style="float: right; margin: 0pt 0pt 10px 10px; cursor: pointer; width: 320px; height: 238px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwIgtONVzqNBAcJydVMUmlIzR_CGqXA2Vo3WxQ2uS7TRRZY5lp-iDTVZnzftlnqQbQZNB6dpd_bao6FuUVuxdqi-vqAq1bLoJiN4aVOxbdkUbGKbio78Kc-_RCswlqg_sYocsdbzqsaIY/s320/qt.JPG" alt="" id="BLOGGER_PHOTO_ID_5519727864000293186" border="0" /></a>This year I have a presentation titled "<span style="font-weight: bold;">Query Transformations</span>" in Moscone South, Room 300 on Thursday, September 23 at 12:00. In last years I had done a similar presentation several times at different conferences. However, this presentation contains new transformations which came in Oracle 11gR2. The list of query transformations I will talk about is the following:<br /><br /><!--[if !mso]> <style> v\:* {behavior:url(#default#VML);} o\:* {behavior:url(#default#VML);} p\:* {behavior:url(#default#VML);} .shape {behavior:url(#default#VML);} v\:textbox {display:none;} </style> <![endif]--><!--[if !ppt]--><!--[endif]--> <div> <div class="O1" style=""><span style="font-size:89%;"><span style="position: absolute; left: -4.7%;">–</span></span><span style="font-size:16pt;"></span></div>–JPPD - join predicate push-down<br />–FPD - filter push-down<br />–PM - predicate move-around<br />–CVM - complex view merging<br />–SPJ - select-project-join<br />–SJC - set join conversion<br />–SU - subquery unnesting<br />–OBYE - order by elimination<br />–CNT - count(col) to count(*) transformation<br />–JE - Join Elimination<br />–JF - join factorization<br /><br />Especially the last one added in 11gR2 is quite interesting and has the background in the patent registration application which could be found <a href="http://www.freepatentsonline.com/7644062.pdf">here</a>. Another very interesting source of information is the paper presented by several Oracle employees at VLDB'09 which is available <a href="http://www.vldb.org/pvldb/2/vldb09-423.pdf">here</a>. During the whole presentation I am showing excerpts from CBO trace file in order that the audience can learn how CBO reports about performed transformation. Some useful pieces about transformations are also available in <a href="http://blogs.oracle.com/optimizer">Optimizer Development Team blog</a>.<br /><div class="O1" style=""><br />According to number of enrolled attendees it looks like the room will be almost full. Yesterday I had a discussion with Mohamed Zait who is in the Optimizer development team and he was surprised that the topic about query transformations is so interesting for OOW attendees. My personal opinion shared also by many others is that the content of too many presentations at OOW contains just a "helicopter" view of what is available but doesn't show or explain anything what is going on "behind the scene". However, with great pleasure I must admit that I was able to find some very good presentation during last 3 days what just confirms the fact that the speakers feel the need to go beyond the "usual" level of expertize and I am very thankful for that. One of such presentation was prepared by Maria Colgan titled "Explaining the Explain Plan: Interpreting Execution Plans for SQL Statements" where I haven't heard some new stuff but liked very much the way she presented the topic and the contents of the presentation. One of the very important messages she gave was that people should not change database parameters unless they really know what they are doing. She especially mentioned famous OPTIMIZER_INDEX_COST_ADJ which should be left at it's default value of 100. I was missing at least some words about system statistics. The other one I found also very interesting was "Oracle Database Performance Secrets Finally Revealed" presented by Greg Rahn and Michael Hallas.<br /><br />My presentation is available for downloading at my <a href="http://www.dbprof.com/joomla/index.php?option=com_jdownloads&view=viewcategories&Itemid=57">home site</a>. You have to login in (or register first if you have no login yet).<br /></div></div><div class="blogger-post-footer"><script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
try {
var pageTracker = _gat._getTracker("UA-5265495-3");
pageTracker._trackPageview();
} catch(err) {}</script></div>Jože Senegačnik - Jochttp://www.blogger.com/profile/10478214001612631485noreply@blogger.com0tag:blogger.com,1999:blog-3116559472841364402.post-82552178925964286072010-09-17T17:51:00.004+02:002010-09-17T19:45:32.829+02:00Michigan OakTable Symposium - Day 2<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7OUVWqiJ68wPB0gBveHdFgv08b0VfrOoruREkp8Lnggy6UjjA_f395NA85p7MK0J9-h1xozgyAAxjN7yMKWnvydnxXd0HOb7imOeNajtF1FCkFuZj4XFEOwxkWmMrfSb3p-VGg7cMLVs/s1600/OakTable.jpg"><img style="float: right; margin: 0pt 0pt 10px 10px; cursor: pointer; width: 320px; height: 240px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7OUVWqiJ68wPB0gBveHdFgv08b0VfrOoruREkp8Lnggy6UjjA_f395NA85p7MK0J9-h1xozgyAAxjN7yMKWnvydnxXd0HOb7imOeNajtF1FCkFuZj4XFEOwxkWmMrfSb3p-VGg7cMLVs/s320/OakTable.jpg" alt="" id="BLOGGER_PHOTO_ID_5517931594348682418" border="0" /></a><br />Today I had my presentation in the first slot in the morning and I was pleasantly surprised as the room was full. Obviously the "execution plan stability" is one of the biggest concerns of every DBA. After the presentation Jonathan Lewis told me that he made 4 pages of notes while attending the presentation and now he has a lot of new stuff to investigate.<br />Next session I attended was Cristian Antognini's presentation about obtaining the execution plans which was part of two slot presentation about execution plans. As usually, Cristian had a very good presentation.<br /><br />The next session was Jeremiah Wilton's battle between SQL server and Oracle, both running in Amazon cloud environment. Again, a very nice presentation.<br /><br />Before the lunch we made a group picture of all Oakies gathered at the event. Unfortunately some of them are missing on the picture.<div class="blogger-post-footer"><script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
try {
var pageTracker = _gat._getTracker("UA-5265495-3");
pageTracker._trackPageview();
} catch(err) {}</script></div>Jože Senegačnik - Jochttp://www.blogger.com/profile/10478214001612631485noreply@blogger.com0tag:blogger.com,1999:blog-3116559472841364402.post-51251202882724808112010-09-16T16:54:00.011+02:002010-09-17T12:38:59.421+02:00Michigan Oak Table Symposium 2010 (MOTS) in Ann Arbor, MI, USA<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj3ZVc4lDSaj180aP1DDtk2KmsUOiIn_uWHVFqkhgMev36lwOBJs_4eRdb8YuaiAAilA9zoRUxtCX7jfnuJk9_jJP8U2QDWFFCZrNBI9g4nDptT9mdh9OEu9hZInaZ9AFuh_O8a4Z3o8fE/s1600/160920101051.jpg"><img style="float: right; margin: 0pt 0pt 10px 10px; cursor: pointer; width: 320px; height: 240px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj3ZVc4lDSaj180aP1DDtk2KmsUOiIn_uWHVFqkhgMev36lwOBJs_4eRdb8YuaiAAilA9zoRUxtCX7jfnuJk9_jJP8U2QDWFFCZrNBI9g4nDptT9mdh9OEu9hZInaZ9AFuh_O8a4Z3o8fE/s320/160920101051.jpg" alt="" id="BLOGGER_PHOTO_ID_5517525552228273426" border="0" /></a>This morning we started with probably the biggest gathering of OakTable members ever. We gathered in Ann Arbor in Michigan for a two day event just before the Oracle Open World in San Francisco. The seminar is running in 3 parallel sessions.<br />Cary Millsap, one of the founders of OakTable, told a short story how OakTable was founded and then he introduced Mogens Norgard - "Moans The Magnificent" who was answering to the secret questions even before he knew for them. Believe, we had a lot of fun with the answers and questions as well. On the picture you can see Mogens answering the questions and wearing the magic hat.<br />As Doug Burns couldn't make to this event I offered to have another presentation which I had already in the past and was proposed by Carol - "Optimizing Access Paths".<br /><br /><div style="text-align: left;">Tomorrow I'll be talking about "SQL Plan Baselines, Adaptive Cursor Sharing , Automatic Cardinality Feedback SQL Tuning in Oracle 11gR2".<br /></div><br /><br /><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4pcU7uDYwpSU-Nma1rOAhuiIWStQS9uO2agYwXmm8K-VqfKUjWHLfTqDcj80vcmwgX0TTcZTdXNGdTR2hN-ZQHDNeg0pyJC0z6mjLRjapAB1J_IVGR5TkEXYHpgqP2eIlgbNUt4AQhOI/s1600/160920101054.jpg"><img style="float: right; margin: 0pt 0pt 10px 10px; cursor: pointer; width: 320px; height: 240px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4pcU7uDYwpSU-Nma1rOAhuiIWStQS9uO2agYwXmm8K-VqfKUjWHLfTqDcj80vcmwgX0TTcZTdXNGdTR2hN-ZQHDNeg0pyJC0z6mjLRjapAB1J_IVGR5TkEXYHpgqP2eIlgbNUt4AQhOI/s320/160920101054.jpg" alt="" id="BLOGGER_PHOTO_ID_5517526536870876738" border="0" /></a><div class="blogger-post-footer"><script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
try {
var pageTracker = _gat._getTracker("UA-5265495-3");
pageTracker._trackPageview();
} catch(err) {}</script></div>Jože Senegačnik - Jochttp://www.blogger.com/profile/10478214001612631485noreply@blogger.com3tag:blogger.com,1999:blog-3116559472841364402.post-3467913369579210052009-12-17T08:26:00.009+01:002009-12-18T02:07:10.512+01:00Miracle Open World 2010, April 14-16, LegolandFinally Miracle has published the first official advertisement for Miracle Open World 2010 event, which will take place in Legoland, Billund, Jutland, Denmark, from 14-16 April 2010. Here is the link to the <a href="http://mow2010.dk/">event site</a>.<br /><br />I'll be presenting at this spectacular and unique event. Hopefully the weather will permit me to fly to Legoland by myself and land at <a href="http://www.billund-airport.com/">Billund airport</a> which is just several hundred meters away from the conference venue.<br /><br /><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" style="width: 480px; height: 320px;" width="240" height="160"><param name="movie" value="http://www.miraclechannel.dk/v.swf"><param name="FlashVars" value="album%5fid=544142&autoPlay=0"><param name="allowfullscreen" value="true"><param name="allowscriptaccess" value="always"><embed src="http://www.miraclechannel.dk/v.swf" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" flashvars="album%5fid=544142&autoPlay=0" width="240" height="160"></embed></object><div class="blogger-post-footer"><script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
try {
var pageTracker = _gat._getTracker("UA-5265495-3");
pageTracker._trackPageview();
} catch(err) {}</script></div>Jože Senegačnik - Jochttp://www.blogger.com/profile/10478214001612631485noreply@blogger.com0tag:blogger.com,1999:blog-3116559472841364402.post-67652385419089344372009-12-16T09:35:00.008+01:002009-12-16T10:08:12.455+01:00Force Cursor InvalidationMany times it occurs that an inappropriate execution plan is used which was produced by using the current values of bind variables provided at the time of the hard parse. But later on the variables change so much that another execution plan would be required. Unfortunately there is no automatism in 9i and 10g that would spot this fact. Oracle finally resolved this problem in 11g.<br /><br />The trick is to virtually set the statistics for the object which is involved in the query. What I mean by virtually is that I read the current statistics and store the same statistics back what makes no harm but the side effect is that the cursor is invalidated and hence it will be re-parsed and hopefully this time optimized for the right values of bind variables. <br /><br />Here is the code:<br /><div class="codesnippet"><br />CREATE OR REPLACE PROCEDURE Invalidate_statistics (<br /> p_ownname VARCHAR2,<br /> p_tabname VARCHAR2<br />) IS<br /> m_srec DBMS_STATS.STATREC;<br /> m_distcnt NUMBER;<br /> m_density NUMBER;<br /> m_nullcnt NUMBER;<br /> m_avgclen NUMBER;<br /> m_colname VARCHAR2(30);<br />--<br />-- This procedure invalidates all cursors present in v$sql<br />-- which refer to the table passed as input parameter<br />--<br />-- requires DBA privileges<br />--<br />-- This is a workaround to solve the problem of bind variable peeking <br />--<br />BEGIN<br /> -- first find column definition for the first column - doesn't matter for which <br /> -- column we reset the statistics <br /> BEGIN<br /> SELECT column_name INTO m_colname <br /> FROM DBA_TAB_COLUMNS<br /> WHERE owner = p_ownname<br /> AND table_name = p_tabname<br /> AND ROWNUM = 1;<br /> EXCEPTION<br /> WHEN NO_DATA_FOUND THEN RAISE_APPLICATION_ERROR( -20000, <br /> 'Table '||p_ownname||'.'||p_tabname||' does not exist');<br /> END;<br /> -- virtually change the statistics - replace with the same values what will cause<br /> -- invalidation of all cursors which refer to this table - NO_INVALIDATE must be FALSE<br /> DBMS_STATS.GET_COLUMN_STATS (ownname => p_ownname,<br /> tabname => p_tabname,<br /> colname => m_colname,<br /> distcnt => m_distcnt,<br /> density => m_density,<br /> nullcnt => m_nullcnt,<br /> srec => m_srec,<br /> avgclen => m_avgclen<br /> );<br /> DBMS_STATS.SET_COLUMN_STATS (ownname => p_ownname,<br /> tabname => p_tabname,<br /> colname => m_colname,<br /> distcnt => m_distcnt,<br /> density => m_density,<br /> nullcnt => m_nullcnt,<br /> srec => m_srec,<br /> avgclen => m_avgclen,<br /> no_invalidate => FALSE<br /> );<br />END;<br />/<br /></div><br />The procedure reads and stores back the statistics for the first column of the table.<br /><div class="codesnippet"><br />SQL> exec Invalidate_statistics('SCOTT','EMP')<br /><br />PL/SQL procedure successfully completed.<br /></div><br />Sometimes it requires to re-execute the invalidation as the cursor is currently executing. One can use this in 9i,10g,11g.<div class="blogger-post-footer"><script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
try {
var pageTracker = _gat._getTracker("UA-5265495-3");
pageTracker._trackPageview();
} catch(err) {}</script></div>Jože Senegačnik - Jochttp://www.blogger.com/profile/10478214001612631485noreply@blogger.com10tag:blogger.com,1999:blog-3116559472841364402.post-17382472616593305772009-12-10T01:17:00.005+01:002009-12-10T07:52:54.859+01:00"Optimizer Internals" - Celebrity Seminar in NetherlandsOn June 15th 2010 I will be speaking about <a href="http://education.oracle.com/pls/web_prod-plq-dad/db_pages.getCourseDesc?dc=D70365_1060216&p_org_id=41&lang=NL%20">internals of the Cost Based Optimizer</a> in Netherlands. This is a <span style="font-weight: bold;">one day seminar </span><span>organized by Oracle University</span><span style="font-weight: bold;"> </span> which goes in details in some sections of the cost based optimization. The topics are related to hot themes for which people would like to get a good explanation. Here is a <a href="http://www.dbprof.com/CBO_Internals_TOC.pdf">detailed table of contents</a>.<br /><br />This seminar is one of four that I have contributed to the series of celebrity seminars organized by Oracle University.<div class="blogger-post-footer"><script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
try {
var pageTracker = _gat._getTracker("UA-5265495-3");
pageTracker._trackPageview();
} catch(err) {}</script></div>Jože Senegačnik - Jochttp://www.blogger.com/profile/10478214001612631485noreply@blogger.com0tag:blogger.com,1999:blog-3116559472841364402.post-29350263100340065692009-12-08T23:45:00.005+01:002009-12-17T13:05:39.781+01:00CBO oddities in determining selectivity on NVARCHAR2 data typeSome time ago I was involved in solving of a performance problem which was really weird - a simple select on a indexed column with unique value always resulted in a full table scan. The key column was of type NVARCHAR2. To better understand the behavior I created a simple reproducible test case.<br /><br />Let us start with table and index creation.<br /><div class="codesnippet"><br />SQL> select * from v$version;<br /><br />BANNER<br />--------------------------------------------------------------------------------<br />Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - Production<br />PL/SQL Release 11.1.0.6.0 - Production<br />CORE 11.1.0.6.0 Production<br />TNS for 32-bit Windows: Version 11.1.0.6.0 - Production<br />NLSRTL Version 11.1.0.6.0 - Production<br /><br />SQL> show parameter semant<br /><br />NAME TYPE VALUE<br />------------------------------------ ----------- ------------------------------<br />nls_length_semantics string CHAR<br /><br />SQL> create table x2 (id varchar2(32), idn nvarchar2(32), id16 nvarchar2(16), id20 nvarchar2(20));<br /><br />Table created.<br /><br />SQL> insert into x2 select lpad(rownum,32,'0'), lpad(rownum,32,'0'),lpad(rownum,16,'0'),lpad(rownum,20,'0')<br /> from dual connect by level <= 20000; 20000 rows created. SQL> commit;<br /><br />Commit complete.<br /><br />SQL> create index x2_idn on x2(idn);<br /><br />Index created.<br /><br />SQL> analyze table x2 compute statistics;<br /><br />Table analyzed.<br /><br />SQL> explain plan for select * from x2 where idn=U'00000000000000000000000000000009';<br /><br />Explained.<br /><br />SQL> select * from table(dbms_xplan.display);<br /><br />PLAN_TABLE_OUTPUT<br />--------------------------------------------------------------------------<br />Plan hash value: 156302112<br /><br />--------------------------------------------------------------------------<br />| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |<br />--------------------------------------------------------------------------<br />| 0 | SELECT STATEMENT | | 20000 | 3281K| 136 (0)| 00:00:02 |<br />|* 1 | TABLE ACCESS FULL| X2 | 20000 | 3281K| 136 (0)| 00:00:02 |<br />--------------------------------------------------------------------------<br /><br />Predicate Information (identified by operation id):<br />---------------------------------------------------<br /><br /> 1 - filter("IDN"=U'00000000000000000000000000000009')<br /><br /></div><br />We have 20,000 rows with unique values in IDN column in the table, we have statistics and still the CBO produces an execution plan with FULL TABLE SCAN and with a very strange estimate of 20,000 rows reurned by this query.<br />Therefore our first question should be: What is wrong with the statistics? A simple query on USER_TAB_COLS shows the following results:<br /><div class="codesnippet"><br />SQL> select column_name,num_distinct, low_value,high_value from user_tab_cols where table_name='X2';<br /><br />COLUMN_NAME NUM_DISTINCT LOW_VALUE HIGH_VALUE<br />------------------------------ ------------ ---------------------------------------------------------------- ----------------------------------------------------------------<br />ID 20000 3030303030303030303030303030303030303030303030303030303030303031 3030303030303030303030303030303030303030303030303030303230303030<br />IDN 1 0030003000300030003000300030003000300030003000300030003000300030 0030003000300030003000300030003000300030003000300030003000300030<br />ID16 20000 0030003000300030003000300030003000300030003000300030003000300031 0030003000300030003000300030003000300030003000320030003000300030<br />ID20 3 0030003000300030003000300030003000300030003000300030003000300030 0030003000300030003000300030003000300030003000300030003000300032<br /></div><br />To display raw values I used function developed by <a href="http://askdba.org/weblog/2009/06/dbms_stats-copy_table_stats-does-not-alter-lowhigh-value/">Greg Rahn</a> which gives the following result:<br /><div class="codesnippet"><br />SQL> column lo_val format a32<br />SQL> column hi_val format a32<br />SQL> select column_name,<br /> 2 num_distinct,<br /> 3 display_raw(low_value,data_type) lo_val,<br /> 4 display_raw(high_value,data_type) hi_val<br /> 5 from user_tab_cols<br /> 6 where table_name='X2';<br /><br />COLUMN_NAME NUM_DISTINCT LO_VAL HI_VAL<br />------------------------------ ------------ -------------------------------- --------------------------------<br />ID 20000 00000000000000000000000000000001 00000000000000000000000000020000<br />IDN 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0<br />ID16 20000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0<br />ID20 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2<br /></div><br />We can see that the NUM_DISTINCT column has quite strange values. Reason for this is that Oracle analyzes only first 32 bytes (and not characters) of the string. The default character set for NVARCHAR2 type is AL16UTF16 - a 2 byte character set.<br />The column IDN was defined as NVARCHAR2(32) and was actually completely filled so every row stores 64 bytes in this column. Here is the proof:<br /><br /><div class="codesnippet"><br />SQL> select dump(idn) from x2 where rownum = 1;<br /><br />DUMP(IDN)<br />-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------<br />Typ=1 Len=64: 0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,56,0,51<br /></div><br />Due to considering only first <span style="font-weight: bold;">32 bytes</span> analyze comes back with a strange result that there is only one distinct value, what is of course true, as all distinct digits are beyond first 32 bytes.<br /><br />Let us continue and use DBMS_STATS.GATHER_TABLE_STATS for analysis.<br /><div class="codesnippet"><br />SQL> begin<br />2 dbms_stats.gather_table_stats(<br />3 ownname=> user ,<br />4 tabname=> 'X2',<br />5 cascade=> TRUE,<br />6 estimate_percent=> DBMS_STATS.AUTO_SAMPLE_SIZE,<br />7 degree=> DBMS_STATS.AUTO_DEGREE,<br />8 no_invalidate=> FALSE,<br />9 granularity=> 'ALL',<br />10 method_opt=> 'FOR ALL COLUMNS SIZE AUTO');<br />11 end;<br />12 /<br /><br />SQL> select column_name,num_distinct,<br />2 display_raw(low_value,data_type) lo_val,<br />3 display_raw(high_value,data_type) hi_val<br />4 from user_tab_cols where table_name='X2'<br />5 /<br /><br />COLUMN_NAME NUM_DISTINCT LO_VAL HI_VAL<br />------------------------------ ------------ -------------------------------- --------------------------------<br />ID 19820 00000000000000000000000000000001 00000000000000000000000000020000<br />IDN 20000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0<br />ID16 20000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0<br />ID20 19942 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2<br /></div><br />DBMS_STATS produces much more reliable cardinalities but the low/high values are still showing only 0 for IDN column. Here there is no difference between ANALYZE and DBMS_STATS as it can't be. Oracle looks only at first 32 bytes and that is the fact. Therefore the CBO will be not able to properly determine the cardinality for the range predicates. We will look closer this in the continuation of this post.<br />This fact might become dangerous also for all databases which use multi-byte character set as default character set. Actually Oracle will always look only at first 32 bytes and in case that the column will contain many many multi-byte characters this can become pretty odd. All this is something new and becomes more critical in now days when a lot of databases are migrated from single-byte character set to a multi-byte character sets. For sure migrating to any flavor of UTF-8/AL32UTF8 character set represent such a thread.<br /><br /><span style="font-weight: bold;">Conclusions about statistics for NVARCHAR2 data type<br /></span>When I realized what is the reason behind for such behavior I suggested to my customer to switch back to rule based optimizer what solved the problem. The other possibility would be to change all NVARCHAR2 columns to VARCHAR2 but the customer accept this.<br />First, but the most important conclusion would be <span style="font-weight: bold;">not to use NVARCHAR2</span> data type for key columns, but rather VARCHAR2. Or paraphrasing Mogens Norgard: "We don't use NVARCHAR2 data type!" :-)<br /><br />*Range cardinalities on columns of NVARCHAR2 data type*<br />Reason for this part of post is my involvement in one thread on OTN where a lady from Austria, my neighbor country, was complaining about the "strange" execution plans and consequently also "un-wanted" performance. In one mail she explained me that they are experiencing performance problems since they have upgraded from Oracle9i to 10g. She also said that at the same time they moved from VARCHAR2 data type to NVARCHAR2 datatype.<br />My first impression was that this might be the same situation as I have already explained above. But after digging deeply in the problem, I realized that the problem lies in completely mis-estimated selectivity and consequently also the cardinality when NVARCHAR2 data type column is in question.<br /><br />To be able to study the case I prepared an extremely simple reproducible test case. Let us start with the setup of the test environment: <br /><br /><div class="codesnippet"><br />SQL> create table x1 (cv varchar2(10), cn nvarchar2(10));<br /><br />Table created.<br /><br />SQL> insert into x1 select lpad(rownum,8,'0'), lpad(rownum,8,'0')<br /> from dual connect by level <= 20000; 20000 rows created. SQL> commit;<br /><br />Commit complete.<br /><br />SQL> select cv,cn from x1 where rownum <= 10; CV CN ---------- ---------- 00000469 00000469 00000470 00000470 00000471 00000471 00000472 00000472 00000473 00000473 00000474 00000474 00000475 00000475 00000476 00000476 00000477 00000477 00000478 00000478 10 rows selected. SQL> begin<br />2 dbms_stats.gather_table_stats(<br />3 ownname=> user ,<br />4 tabname=> 'X1',<br />5 cascade=> TRUE,<br />6 estimate_percent=> DBMS_STATS.AUTO_SAMPLE_SIZE,<br />7 degree=> DBMS_STATS.AUTO_DEGREE,<br />8 no_invalidate=> FALSE,<br />9 granularity=> 'ALL',<br />10 method_opt=> 'FOR ALL COLUMNS SIZE 1');<br />11* end;<br />SQL> /<br /><br />PL/SQL procedure successfully completed.<br /></div><br /><br />Let us run our first test SQL. I have used bind variables named :a1, :a2 of type VARCHAR2 and :n1, :n2 of type NVARCHAR2. I have event written a simple anonymous PL/SQL block where I selected the values for bind variables from the same table in order to be sure that the binding is done properly. While I was running the tests I enabled events 10053 and 10046.<br /><br /><div class="codesnippet"><br />SQL> select * from table(dbms_xplan.display_cursor(null,null,'allstats last'));<br />SQL_ID 1fj17ram77n5w, child number 0<br />-------------------------------------<br />select /*+ gather_plan_statistics */ /* run 20 */ *<br />from x1<br />where cn >= to_nchar(:a1)<br /> and cn <= to_nchar(:a2) Plan hash value: 2189453339 ------------------------------------------------------------------------------------- | Id | Operation | Name | Starts | E-Rows | A-Rows | A-Time | Buffers | ------------------------------------------------------------------------------------- |* 1 | FILTER | | 1 | | 9999 |00:00:00.08 | 102 | |* 2 | TABLE ACCESS FULL| X1 | 1 | 1 | 9999 |00:00:00.03 | 102 | ------------------------------------------------------------------------------------- Predicate Information (identified by operation id): --------------------------------------------------- 1 - filter(SYS_OP_C2C(:A1)<=SYS_OP_C2C(:A2)) 2 - filter(("CN"<=SYS_OP_C2C(:A2) AND "CN">=SYS_OP_C2C(:A1)))<br /><br /><br />PARSING IN CURSOR #12 len=111 dep=0 uid=88 oct=3 lid=88 tim=254514943459 hv=2792607932 ad='23f7056c' sqlid='1fj17ram77n5w'<br />select /*+ gather_plan_statistics */ /* run 20 */ *<br />from x1<br />where cn >= to_nchar(:a1)<br /> and cn <= to_nchar(:a2) END OF STMT PARSE #12:c=0,e=734,p=0,cr=0,cu=0,mis=1,r=0,dep=0,og=1,tim=254514943452 BINDS #12: Bind#0 oacdty=01 mxl=32(10) mxlc=10 mal=00 scl=00 pre=00 oacflg=03 fl2=1000010 frm=01 csi=170 siz=64 off=0 kxsbbbfp=0fec0abc bln=32 avl=08 flg=05 value="00000000" Bind#1 oacdty=01 mxl=32(10) mxlc=10 mal=00 scl=00 pre=00 oacflg=03 fl2=1000010 frm=01 csi=170 siz=0 off=32 kxsbbbfp=0fec0adc bln=32 avl=08 flg=01 value="00009999" </div><br />I got a hard parse (mis=1), optimizer peeked at the values of bind variables and the estimated cardinality was 1 while the actual one was 9999. From 10046 trace we can clearly see the values of bind variables used by optimizer for the optimization. I used VARCHAR2 type of columns as bind variables but used TO_NCHAR function to convert to NVARCHAR2 data type. The optimizer internally rewrote the SQL so that instead of TO_NCHAR used internal function <a href="http://joze-senegacnik.blogspot.com/2009/12/what-is-purpose-of-sysopc2c-internal.html">SYS_OP_C2C</a> which performs conversion from one character set to another.<br /><br /><div class="codesnippet"><br />SQL> select SYS_OP_C2C('Š') from dual;<br /><br />S<br />-<br />S<br /></div><br /><br />For next run I used NVARCHAR2 type bind variables and here is the result:<br /><div class="codesnippet"><br />SQL_ID d1bn5vyb6dcgn, child number 0<br />-------------------------------------<br />select /*+ gather_plan_statistics */ /* run 15 */ *<br />from x1<br />where cn >= to_nchar(:n1)<br /> and cn <= to_nchar(:n2) Plan hash value: 2189453339 ------------------------------------------------------------------------------------- | Id | Operation | Name | Starts | E-Rows | A-Rows | A-Time | Buffers | ------------------------------------------------------------------------------------- |* 1 | FILTER | | 1 | | 9999 |00:00:00.08 | 759 | |* 2 | TABLE ACCESS FULL| X1 | 1 | 50 | 9999 |00:00:00.04 | 759 | ------------------------------------------------------------------------------------- Predicate Information (identified by operation id): --------------------------------------------------- 1 - filter(:N1<=:N2) 2 - filter(("CN">=:N1 AND "CN"<=:N2)) PARSING IN CURSOR #15 len=111 dep=0 uid=88 oct=3 lid=88 tim=254434564390 hv=2523312628 ad='2c8d2200' sqlid='d1bn5vyb6dcgn' select /*+ gather_plan_statistics */ /* run 15 */ * from x1 where cn >= to_nchar(:n1)<br /> and cn <= to_nchar(:n2) END OF STMT PARSE #15:c=0,e=746,p=0,cr=0,cu=0,mis=1,r=0,dep=0,og=1,tim=254434564383 BINDS #15: Bind#0 oacdty=01 mxl=128(40) mxlc=20 mal=00 scl=00 pre=00 oacflg=03 fl2=1000010 frm=02 csi=2000 siz=256 off=0 kxsbbbfp=0febbee0 bln=128 avl=16 flg=05 value="" Bind#1 oacdty=01 mxl=128(40) mxlc=20 mal=00 scl=00 pre=00 oacflg=03 fl2=1000010 frm=02 csi=2000 siz=0 off=128 kxsbbbfp=0febbf60 bln=128 avl=16 flg=01 value="" </div><br />Here we got the estimated number of rows 50 what is exactly the default use by the CBO for ranges - selectivity is 0.0025. So the CBO simply decided to throw in the default selectivity. The values of bind variables are empty ("") - CBO just ignored them during the optimization phase but they were of course respected by the runtime engine. <br /><br /><div class="codesnippet"><br />SQL_ID cx88wv0q05tst, child number 0<br />-------------------------------------<br />select /*+ gather_plan_statistics */ /* run 14 */ *<br />from x1<br />where substr(cn,1,10) >= to_nchar(:a1)<br /> and substr(cn,1,10) <= to_nchar(:a2) Plan hash value: 2189453339 ------------------------------------------------------------------------------------- | Id | Operation | Name | Starts | E-Rows | A-Rows | A-Time | Buffers | ------------------------------------------------------------------------------------- |* 1 | FILTER | | 1 | | 9999 |00:00:00.09 | 759 | |* 2 | TABLE ACCESS FULL| X1 | 1 | 50 | 9999 |00:00:00.05 | 759 | ------------------------------------------------------------------------------------- Predicate Information (identified by operation id): --------------------------------------------------- 1 - filter(SYS_OP_C2C(:A1)<=SYS_OP_C2C(:A2)) 2 - filter((SUBSTR("CN",1,10)>=SYS_OP_C2C(:A1) AND<br /> SUBSTR("CN",1,10)<=SYS_OP_C2C(:A2))) PARSING IN CURSOR #12 len=137 dep=0 uid=88 oct=3 lid=88 tim=254227180414 hv=2415463600 ad='23f7e900' sqlid='f5wapff7zk35h' select /*+ gather_plan_statistics */ /* run 16 */ * from x1 where substr(cn,1,10) >= to_nchar(:a1)<br /> and substr(cn,1,10) <= to_nchar(:a2) END OF STMT PARSE #12:c=0,e=767,p=0,cr=0,cu=0,mis=1,r=0,dep=0,og=1,tim=254227180407 BINDS #12: Bind#0 oacdty=01 mxl=32(10) mxlc=10 mal=00 scl=00 pre=00 oacflg=03 fl2=1000010 frm=01 csi=170 siz=64 off=0 kxsbbbfp=0ff75ac0 bln=32 avl=08 flg=05 value="00000000" Bind#1 oacdty=01 mxl=32(10) mxlc=10 mal=00 scl=00 pre=00 oacflg=03 fl2=1000010 frm=01 csi=170 siz=0 off=32 kxsbbbfp=0ff75ae0 bln=32 avl=08 flg=01 value="00009999" </div><br />In this case I added used SUBSTR function on the column and VARCHAR2 type bind variables and again the CBO threw in the default for range 0.0025, but we can see the values of bind variables.<br /><br /><div class="codesnippet"><br />SQL_ID auyacfyb6bj9r, child number 0<br />-------------------------------------<br />select /*+ gather_plan_statistics */ /* run 14 */ *<br /> from x1<br /> where substr(cn,1,10) >= to_nchar(:n1)<br /> and substr(cn,1,10) <= to_nchar(:n2) Plan hash value: 2189453339 ------------------------------------------------------------------------------------- | Id | Operation | Name | Starts | E-Rows | A-Rows | A-Time | Buffers | ------------------------------------------------------------------------------------- |* 1 | FILTER | | 1 | | 9999 |00:00:00.09 | 759 | |* 2 | TABLE ACCESS FULL| X1 | 1 | 50 | 9999 |00:00:00.05 | 759 | ------------------------------------------------------------------------------------- Predicate Information (identified by operation id): --------------------------------------------------- 1 - filter(:N1<=:N2) 2 - filter((SUBSTR("CN",1,10)>=:N1 AND SUBSTR("CN",1,10)<=:N2)) PARSING IN CURSOR #16 len=137 dep=0 uid=88 oct=3 lid=88 tim=254203929826 hv=1230940210 ad='23f78074' sqlid='13u552p4pxa1k' select /*+ gather_plan_statistics */ /* run 15 */ * from x1 where substr(cn,1,10) >= to_nchar(:n1)<br /> and substr(cn,1,10) <= to_nchar(:n2) END OF STMT PARSE #16:c=0,e=770,p=0,cr=0,cu=0,mis=1,r=0,dep=0,og=1,tim=254203929819 BINDS #16: Bind#0 oacdty=01 mxl=128(40) mxlc=20 mal=00 scl=00 pre=00 oacflg=03 fl2=1000010 frm=02 csi=2000 siz=256 off=0 kxsbbbfp=10460bd0 bln=128 avl=16 flg=05 value="" Bind#1 oacdty=01 mxl=128(40) mxlc=20 mal=00 scl=00 pre=00 oacflg=03 fl2=1000010 frm=02 csi=2000 siz=0 off=128 kxsbbbfp=10460c50 bln=128 avl=16 flg=01 value="" </div><br />In the CBO trace the inforamation was:<br /><div class="codesnippet"><br />******************************************* <br />Peeked values of the binds in SQL statement <br />******************************************* <br />----- Bind Info (kkscoacd) ----- <br />Bind#0 <br />oacdty=01 mxl=32(20) mxlc=10 mal=00 scl=00 pre=00 <br />oacflg=03 fl2=1000010 frm=02 csi=2000 siz=64 off=0 <br />kxsbbbfp=0f1f5a1c bln=32 avl=16 flg=05 <br />value="" <br />Bind#1 <br />oacdty=01 mxl=32(20) mxlc=10 mal=00 scl=00 pre=00 <br />oacflg=03 fl2=1000010 frm=02 csi=2000 siz=0 off=32 <br />kxsbbbfp=0f1f5a3c bln=32 avl=16 flg=01 <br />value="" <br /></div><br />In the last case I just changed from VARCHAR2 to NVARCHAR2 bind variables and the result was expected - the default selectivity and the values of bind variables were again "".<br /><br />Every time, when the CBO used binds for estimating selectivity I could see the following section after the execution plan:<br /><div class="codesnippet"><br />Peeked Binds <br />============ <br />Bind variable information <br /> position=1 <br /> datatype(code)=1 <br /> datatype(string)=VARCHAR2(32) <br /> char set id=170 <br /> char format=1 <br /> max length=32 <br /> value=00000000 <br />Bind variable information <br /> position=2 <br /> datatype(code)=1 <br /> datatype(string)=VARCHAR2(32) <br /> char set id=170 <br /> char format=1 <br /> max length=32 <br /> value=00009999 <br />Outline Data: <br />/*+ <br /> BEGIN_OUTLINE_DATA <br /> IGNORE_OPTIM_EMBEDDED_HINTS <br /> OPTIMIZER_FEATURES_ENABLE('11.1.0.6')<br /> DB_VERSION('11.1.0.6') <br /> ALL_ROWS <br /> OUTLINE_LEAF(@"SEL$1") <br /> FULL(@"SEL$1" "X1"@"SEL$1") <br /> END_OUTLINE_DATA <br />*/ <br /></div><br />And finally one case with VARCHAR2 data type.<br /><div class="codesnippet"><br />SQL_ID bznnx6zk4hm11, child number 0<br />-------------------------------------<br />select /*+ gather_plan_statistics */ /* run 22 */ *<br />from x1 where cv >=:a1<br /> and cv <= :a2 Plan hash value: 2189453339 ------------------------------------------------------------------------------------- | Id | Operation | Name | Starts | E-Rows | A-Rows | A-Time | Buffers | ------------------------------------------------------------------------------------- |* 1 | FILTER | | 1 | | 9999 |00:00:00.07 | 102 | |* 2 | TABLE ACCESS FULL| X1 | 1 | 9999 | 9999 |00:00:00.02 | 102 | ------------------------------------------------------------------------------------- Predicate Information (identified by operation id): --------------------------------------------------- 1 - filter(:A1<=:A2) 2 - filter(("CV"<=:A2 AND "CV">=:A1))<br /><br /><br />PARSING IN CURSOR #13 len=89 dep=0 uid=88 oct=3 lid=88 tim=265619391820 hv=3829943329 ad='2e0c3568' sqlid='bznnx6zk4hm11'<br />select /*+ gather_plan_statistics */ /* run 22 */ *<br />from x1<br />where cv >= :a1<br /> and cv <= :a2 END OF STMT PARSE #13:c=0,e=762,p=0,cr=0,cu=0,mis=1,r=0,dep=0,og=1,tim=265619391813 BINDS #13: Bind#0 oacdty=01 mxl=32(10) mxlc=10 mal=00 scl=00 pre=00 oacflg=03 fl2=1000010 frm=01 csi=170 siz=64 off=0 kxsbbbfp=0fec0abc bln=32 avl=08 flg=05 value="00000000" Bind#1 oacdty=01 mxl=32(10) mxlc=10 mal=00 scl=00 pre=00 oacflg=03 fl2=1000010 frm=01 csi=170 siz=0 off=32 kxsbbbfp=0fec0adc bln=32 avl=08 flg=01 value="00009999" </div><br />In this last case I was querying the VARCHAR2 column and using bind variables of VARCHAR2 type and this time the optimizer estimated cardinality correctly. Of course it performed peeking at the values of bind variables.<br /><br /><a href="http://oracle-randolf.blogspot.com/">Randolf Geist</a> responded to my post on OTN and he suggested to confuse the CBO by using values like 'A0000000' to 'A00009999'. According to his observations also the selectivity for range predicates on VARCHAR2 data types is quite off after using this trick. Building a histogram returns things back to normal on both data types.<br />He pointed out that the CBO is obviously so smart to spot stored digits in VARCHAR2 columns and do good estimations by treating them as numbers while this is not true for the VARCHAR2 data type.<br /><br /><span style="font-weight: bold;">CONCLUSION</span><br />It is obvious that the CBO is not capable to perforem same estimates for ranges on NVARCHAR2 column as it is capable to do on VARCHAR2 column when numbers are stored as strings.<br />But the most important conclusion to be made is that one should use *appropriate* data types.<br /><br />Of course that are many possibilities that the CBO might behave differently (like using DYNAMIC_SAMPLING, ...). So I am looking forward for the contributions of others, not just <a href="http://oracle-randolf.blogspot.com/">Randolf Geist</a>.<br /><br />This case was used to raise SR #3-1193039441: CBO and nvarchar2 --> A new Bug: 9220704 has been filed with development.<div class="blogger-post-footer"><script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
try {
var pageTracker = _gat._getTracker("UA-5265495-3");
pageTracker._trackPageview();
} catch(err) {}</script></div>Jože Senegačnik - Jochttp://www.blogger.com/profile/10478214001612631485noreply@blogger.com2