<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Venzi&#039;s Weblog</title>
	<atom:link href="http://venzi.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://venzi.wordpress.com</link>
	<description>Personal blog of Venzi</description>
	<lastBuildDate>Fri, 06 Jan 2012 09:10:36 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='venzi.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Venzi&#039;s Weblog</title>
		<link>http://venzi.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://venzi.wordpress.com/osd.xml" title="Venzi&#039;s Weblog" />
	<atom:link rel='hub' href='http://venzi.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Indexing strategies with Jonathan Lewis</title>
		<link>http://venzi.wordpress.com/2011/10/06/indexing-strategies-with-jonathan-lewis/</link>
		<comments>http://venzi.wordpress.com/2011/10/06/indexing-strategies-with-jonathan-lewis/#comments</comments>
		<pubDate>Fri, 07 Oct 2011 03:25:32 +0000</pubDate>
		<dc:creator>Venzi</dc:creator>
				<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://venzi.wordpress.com/?p=723</guid>
		<description><![CDATA[Today I was part of a NYOUG seminar about &#8220;Indexing Strategies&#8221; held by Mr. Jonathan Lewis himself. If somebody doesn&#8217;t know Jon Lewis, he is one of the top Oracle gurus on the entire planet with more than 25 years of Oracle experience. He probably used Oracle before I was even born (1985)! The very [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=venzi.wordpress.com&amp;blog=1622936&amp;post=723&amp;subd=venzi&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Today I was part of a NYOUG seminar about &#8220;Indexing Strategies&#8221; held by Mr. Jonathan Lewis himself. If somebody doesn&#8217;t know Jon Lewis, he is one of the top Oracle gurus on the entire planet with more than 25 years of Oracle experience. He probably used Oracle before I was even born (1985)! The very interesting fact however is that he actually never ever worked for Oracle but still has all the deep inside knowledge. Usually those gurus came out from Oracle or are still working for them. I guess the great amount of years dealing with Oracle helped him there.</p>
<p>However, Jonathan Lewis is also one of my top favorite because he shares his knowledge on his personal blog: <a title="Jonathan Lewis blog" href="http://jonathanlewis.wordpress.com" target="_blank">http://jonathanlewis.wordpress.com</a> In fact, Jons blog is the only one which I never can catch up with because he posts literally quicker than I got time to read his fabulous posts&#8230; reminds me that I should update my Blogroll.</p>
<p>The seminar itself was simply great. It was not free but those 230 bucks where totally worth it. Not only is Jon Lewis a great speaker &#8211; was the first time that I actually saw him &#8211; he also gave great detailed insights into indexes how they work, what is all possible with them and why Oracle is actually taking an index and much more important when it is not! . Furthermore he combined his sessions with some real world examples that he himself dealt with in the past which makes the whole thing much less theoretical.</p>
<p>Of course I won&#8217;t cover the whole seminar here, but I&#8217;ll end with some interesting things that I took out of it &#8211; some of which I got reminded again, some which were new for me:</p>
<ul>
<li><strong>Indexing means: Getting to data quickly</strong></li>
<li><strong>Indexes focus/compact data</strong></li>
<li>There is always a Trade-Off between loading and querying performance</li>
<li>Index maintenance is expensive &#8211; it introduces costs</li>
<li>It&#8217;s all about precision</li>
<li>Non-unique indexes include the rowid automatically &#8211; for Oracle there are no non-unique indexes</li>
<li>Index compression can save a lots of space on repetitive columns</li>
<li>Index compression means elimination of duplicates</li>
<li>Primary key constraints don&#8217;t necessarily need unique key indexes but only indexes with the columns in the right order</li>
<li>Reverse indexes scatter entries accros the line, clustering factor can end up terrible</li>
<li>Don&#8217;t duplicate indexes &#8211; e.g. FK constraints can share the first columns of another index</li>
<li>Difference between tables and indexes: Index blocks have to be at the right place</li>
<li>Don&#8217;t trust Oracle &#8211; test everything!</li>
</ul>
<p>&nbsp;</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/venzi.wordpress.com/723/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/venzi.wordpress.com/723/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/venzi.wordpress.com/723/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/venzi.wordpress.com/723/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/venzi.wordpress.com/723/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/venzi.wordpress.com/723/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/venzi.wordpress.com/723/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/venzi.wordpress.com/723/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/venzi.wordpress.com/723/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/venzi.wordpress.com/723/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/venzi.wordpress.com/723/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/venzi.wordpress.com/723/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/venzi.wordpress.com/723/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/venzi.wordpress.com/723/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=venzi.wordpress.com&amp;blog=1622936&amp;post=723&amp;subd=venzi&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://venzi.wordpress.com/2011/10/06/indexing-strategies-with-jonathan-lewis/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/05428fed193ab92e74a96db995922bbc?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Venzi</media:title>
		</media:content>
	</item>
		<item>
		<title>Exadata, Exadata, Exadata</title>
		<link>http://venzi.wordpress.com/2011/04/26/exadata-exadata-exadata/</link>
		<comments>http://venzi.wordpress.com/2011/04/26/exadata-exadata-exadata/#comments</comments>
		<pubDate>Tue, 26 Apr 2011 23:15:50 +0000</pubDate>
		<dc:creator>Venzi</dc:creator>
				<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://venzi.wordpress.com/?p=709</guid>
		<description><![CDATA[I&#8217;m currently in Menlo Park, California at the old Sun lab from Oracle and do some Exadata testing for work. Everything TOP SECRET of course so I cannot tell anything about it. But what I can do is to share some nice pics from the facilities and the boxes!<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=venzi.wordpress.com&amp;blog=1622936&amp;post=709&amp;subd=venzi&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m currently in Menlo Park, California at the old Sun lab from Oracle and do some Exadata testing for work. Everything TOP SECRET of course so I cannot tell anything about it. But what I can do is to share some nice pics from the facilities and the boxes! <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><a href="http://venzi.files.wordpress.com/2011/04/img_6840.jpg"><img class="aligncenter size-full wp-image-716" title="Oracle" src="http://venzi.files.wordpress.com/2011/04/img_6840.jpg" alt="" width="500" height="375" /></a><a href="http://venzi.files.wordpress.com/2011/04/img_6810.jpg"><img class="aligncenter size-full wp-image-710" title="Exadata and the Borg Hive... everything blinks green" src="http://venzi.files.wordpress.com/2011/04/img_6810.jpg" alt="" width="500" height="375" /></a><a href="http://venzi.files.wordpress.com/2011/04/img_6830.jpg"><img class="aligncenter size-full wp-image-711" title="Twins" src="http://venzi.files.wordpress.com/2011/04/img_6830.jpg" alt="" width="500" height="375" /></a><a href="http://venzi.files.wordpress.com/2011/04/img_6831.jpg"><img class="aligncenter size-full wp-image-712" title="Twins2" src="http://venzi.files.wordpress.com/2011/04/img_6831.jpg" alt="" width="500" height="375" /></a><a href="http://venzi.files.wordpress.com/2011/04/img_6833.jpg"><img class="aligncenter size-full wp-image-713" title="Exalogic" src="http://venzi.files.wordpress.com/2011/04/img_6833.jpg" alt="" width="500" height="375" /></a><a href="http://venzi.files.wordpress.com/2011/04/img_6838.jpg"><img class="aligncenter size-full wp-image-714" title="Oracle and the Golden Gate Bridge" src="http://venzi.files.wordpress.com/2011/04/img_6838.jpg" alt="" width="500" height="375" /></a><a href="http://venzi.files.wordpress.com/2011/04/img_7196.jpg"><img class="aligncenter size-full wp-image-715" title="Oracle and Alcatraz" src="http://venzi.files.wordpress.com/2011/04/img_7196.jpg" alt="" width="281" height="375" /></a><a href="http://venzi.files.wordpress.com/2011/04/img_6839.jpg"><img class="aligncenter size-full wp-image-717" title="Oracle and the Blue Angels" src="http://venzi.files.wordpress.com/2011/04/img_6839.jpg" alt="" width="500" height="375" /></a><a href="http://venzi.files.wordpress.com/2011/04/img_6842.jpg"><img class="aligncenter size-full wp-image-718" title="Oracle boat" src="http://venzi.files.wordpress.com/2011/04/img_6842.jpg" alt="" width="500" height="375" /></a><a href="http://venzi.files.wordpress.com/2011/04/img_7197.jpg"><img class="aligncenter size-full wp-image-719" title="Oracle HQ" src="http://venzi.files.wordpress.com/2011/04/img_7197.jpg" alt="" width="281" height="375" /></a><a href="http://venzi.files.wordpress.com/2011/04/img_6846.jpg"><img class="aligncenter size-full wp-image-720" title="The hero" src="http://venzi.files.wordpress.com/2011/04/img_6846.jpg" alt="" width="500" height="375" /></a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/venzi.wordpress.com/709/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/venzi.wordpress.com/709/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/venzi.wordpress.com/709/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/venzi.wordpress.com/709/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/venzi.wordpress.com/709/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/venzi.wordpress.com/709/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/venzi.wordpress.com/709/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/venzi.wordpress.com/709/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/venzi.wordpress.com/709/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/venzi.wordpress.com/709/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/venzi.wordpress.com/709/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/venzi.wordpress.com/709/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/venzi.wordpress.com/709/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/venzi.wordpress.com/709/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=venzi.wordpress.com&amp;blog=1622936&amp;post=709&amp;subd=venzi&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://venzi.wordpress.com/2011/04/26/exadata-exadata-exadata/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/05428fed193ab92e74a96db995922bbc?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Venzi</media:title>
		</media:content>

		<media:content url="http://venzi.files.wordpress.com/2011/04/img_6840.jpg" medium="image">
			<media:title type="html">Oracle</media:title>
		</media:content>

		<media:content url="http://venzi.files.wordpress.com/2011/04/img_6810.jpg" medium="image">
			<media:title type="html">Exadata and the Borg Hive... everything blinks green</media:title>
		</media:content>

		<media:content url="http://venzi.files.wordpress.com/2011/04/img_6830.jpg" medium="image">
			<media:title type="html">Twins</media:title>
		</media:content>

		<media:content url="http://venzi.files.wordpress.com/2011/04/img_6831.jpg" medium="image">
			<media:title type="html">Twins2</media:title>
		</media:content>

		<media:content url="http://venzi.files.wordpress.com/2011/04/img_6833.jpg" medium="image">
			<media:title type="html">Exalogic</media:title>
		</media:content>

		<media:content url="http://venzi.files.wordpress.com/2011/04/img_6838.jpg" medium="image">
			<media:title type="html">Oracle and the Golden Gate Bridge</media:title>
		</media:content>

		<media:content url="http://venzi.files.wordpress.com/2011/04/img_7196.jpg" medium="image">
			<media:title type="html">Oracle and Alcatraz</media:title>
		</media:content>

		<media:content url="http://venzi.files.wordpress.com/2011/04/img_6839.jpg" medium="image">
			<media:title type="html">Oracle and the Blue Angels</media:title>
		</media:content>

		<media:content url="http://venzi.files.wordpress.com/2011/04/img_6842.jpg" medium="image">
			<media:title type="html">Oracle boat</media:title>
		</media:content>

		<media:content url="http://venzi.files.wordpress.com/2011/04/img_7197.jpg" medium="image">
			<media:title type="html">Oracle HQ</media:title>
		</media:content>

		<media:content url="http://venzi.files.wordpress.com/2011/04/img_6846.jpg" medium="image">
			<media:title type="html">The hero</media:title>
		</media:content>
	</item>
		<item>
		<title>Log file sync to death&#8230;</title>
		<link>http://venzi.wordpress.com/2011/04/14/log-file-sync-to-death/</link>
		<comments>http://venzi.wordpress.com/2011/04/14/log-file-sync-to-death/#comments</comments>
		<pubDate>Thu, 14 Apr 2011 18:53:58 +0000</pubDate>
		<dc:creator>Venzi</dc:creator>
				<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Performance]]></category>

		<guid isPermaLink="false">http://venzi.wordpress.com/?p=705</guid>
		<description><![CDATA[What happens if you forget to move our redo logs to a fast disk? Well you will see something like this:<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=venzi.wordpress.com&amp;blog=1622936&amp;post=705&amp;subd=venzi&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>What happens if you forget to move our redo logs to a fast disk? Well you will see something like this:</p>
<p><a href="http://venzi.files.wordpress.com/2011/04/waiting_for_the_commit.png"><img class="aligncenter size-full wp-image-706" title="Waiting_for_the_Commit" src="http://venzi.files.wordpress.com/2011/04/waiting_for_the_commit.png" alt="" width="1024" height="250" /></a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/venzi.wordpress.com/705/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/venzi.wordpress.com/705/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/venzi.wordpress.com/705/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/venzi.wordpress.com/705/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/venzi.wordpress.com/705/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/venzi.wordpress.com/705/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/venzi.wordpress.com/705/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/venzi.wordpress.com/705/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/venzi.wordpress.com/705/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/venzi.wordpress.com/705/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/venzi.wordpress.com/705/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/venzi.wordpress.com/705/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/venzi.wordpress.com/705/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/venzi.wordpress.com/705/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=venzi.wordpress.com&amp;blog=1622936&amp;post=705&amp;subd=venzi&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://venzi.wordpress.com/2011/04/14/log-file-sync-to-death/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/05428fed193ab92e74a96db995922bbc?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Venzi</media:title>
		</media:content>

		<media:content url="http://venzi.files.wordpress.com/2011/04/waiting_for_the_commit.png" medium="image">
			<media:title type="html">Waiting_for_the_Commit</media:title>
		</media:content>
	</item>
		<item>
		<title>Oracle LogMiner</title>
		<link>http://venzi.wordpress.com/2011/01/27/oracle-logminer/</link>
		<comments>http://venzi.wordpress.com/2011/01/27/oracle-logminer/#comments</comments>
		<pubDate>Thu, 27 Jan 2011 17:22:48 +0000</pubDate>
		<dc:creator>Venzi</dc:creator>
				<category><![CDATA[Oracle]]></category>

		<guid isPermaLink="false">http://venzi.wordpress.com/?p=674</guid>
		<description><![CDATA[Oracle provides a powerful out of the box tool called LogMiner within the Oracle database. LogMiner enables you to query online and archived redo log files through simple SQL. The log files of the database contain all changes made to user data or to the database dictionary due to recovery purposes. Based on that LogMiner [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=venzi.wordpress.com&amp;blog=1622936&amp;post=674&amp;subd=venzi&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Oracle provides a powerful out of the box tool called LogMiner within the Oracle database. LogMiner enables you to query online and archived redo log files through simple SQL. The log files of the database contain all changes made to user data or to the database dictionary due to recovery purposes. Based on that LogMiner can be a powerful data auditing as well as a sophisticated data analysis tool. So here is a small example how to have an inside look into the redo data of your database (for a detailed cover of Oracle LogMiner have a look at <a title="Oracle LogMiner documentation" href="http://download.oracle.com/docs/cd/E11882_01/server.112/e16536/logminer.htm" target="_blank">Chapter 19 of the Oracle Database Utilities</a> guide).</p>
<p>First of all you need to tell LogMiner which log files you want to examine. For this example I just going to use the 3 default redo log files that come with the default installation:</p>
<p><pre class="brush: sql;">

[oracle@localhost ~]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.1.0 Production on Wed Jan 26 09:30:09 2011

Copyright (c) 1982, 2009, Oracle.  All rights reserved.

Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL&gt; desc v$logfile;
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 GROUP#                                             NUMBER
 STATUS                                             VARCHAR2(7)
 TYPE                                               VARCHAR2(7)
 MEMBER                                             VARCHAR2(513)
 IS_RECOVERY_DEST_FILE                              VARCHAR2(3)

SQL&gt; SELECT group#, status, member FROM v$LOGFILE;

 GROUP# STATUS
---------- -------
MEMBER
--------------------------------------------------------------------------------
 3
/home/oracle/app/oracle/oradata/orcl/redo03.log

 2
/home/oracle/app/oracle/oradata/orcl/redo02.log

 1
/home/oracle/app/oracle/oradata/orcl/redo01.log

</pre></p>
<p>Next I tell LogMiner to use those three redo log files:</p>
<p><pre class="brush: sql;">

SQL&gt; exec DBMS_LOGMNR.ADD_LOGFILE('/home/oracle/app/oracle/oradata/orcl/redo03.log');

PL/SQL procedure successfully completed.

SQL&gt; exec DBMS_LOGMNR.ADD_LOGFILE('/home/oracle/app/oracle/oradata/orcl/redo02.log');

PL/SQL procedure successfully completed.

SQL&gt; exec DBMS_LOGMNR.ADD_LOGFILE('/home/oracle/app/oracle/oradata/orcl/redo01.log');

PL/SQL procedure successfully completed.

</pre></p>
<p>To verify that it worked I&#8217;ll query the V$LOGMNR_LOGS view which contains all log files that LogMiner will examine:</p>
<p><pre class="brush: sql;">

SQL&gt; SELECT * FROM V$LOGMNR_LOGS;

 LOG_ID
----------
FILENAME
--------------------------------------------------------------------------------
LOW_TIME  HIGH_TIME      DB_ID DB_NAME   RESET_SCN RESET_SCN COMPATIBLE
--------- --------- ---------- -------- ---------- --------- -----------------
 THREAD_ID THREAD_SQN    LOW_SCN   NEXT_SCN DIC DIC TYPE     BLOCKSIZE
---------- ---------- ---------- ---------- --- --- ------- ----------
 FILESIZE INFO                                 STATUS
---------- -------------------------------- ----------
 32
/home/oracle/app/oracle/oradata/orcl/redo02.log
07-DEC-10 07-DEC-10 1229390655 ORCL         754488 30-OCT-09 11.2.0.0.0

 LOG_ID
----------
FILENAME
--------------------------------------------------------------------------------
LOW_TIME  HIGH_TIME      DB_ID DB_NAME   RESET_SCN RESET_SCN COMPATIBLE
--------- --------- ---------- -------- ---------- --------- -----------------
 THREAD_ID THREAD_SQN    LOW_SCN   NEXT_SCN DIC DIC TYPE     BLOCKSIZE
---------- ---------- ---------- ---------- --- --- ------- ----------
 FILESIZE INFO                                 STATUS
---------- -------------------------------- ----------
 1         32    2056780    2231224 NO  NO  ONLINE         512
 41424384                                           0

 LOG_ID
----------
FILENAME
--------------------------------------------------------------------------------
LOW_TIME  HIGH_TIME      DB_ID DB_NAME   RESET_SCN RESET_SCN COMPATIBLE
--------- --------- ---------- -------- ---------- --------- -----------------
 THREAD_ID THREAD_SQN    LOW_SCN   NEXT_SCN DIC DIC TYPE     BLOCKSIZE
---------- ---------- ---------- ---------- --- --- ------- ----------
 FILESIZE INFO                                 STATUS
---------- -------------------------------- ----------
 33
/home/oracle/app/oracle/oradata/orcl/redo03.log
07-DEC-10 26-JAN-11 1229390655 ORCL         754488 30-OCT-09 11.2.0.0.0

 LOG_ID
----------
FILENAME
--------------------------------------------------------------------------------
LOW_TIME  HIGH_TIME      DB_ID DB_NAME   RESET_SCN RESET_SCN COMPATIBLE
--------- --------- ---------- -------- ---------- --------- -----------------
 THREAD_ID THREAD_SQN    LOW_SCN   NEXT_SCN DIC DIC TYPE     BLOCKSIZE
---------- ---------- ---------- ---------- --- --- ------- ----------
 FILESIZE INFO                                 STATUS
---------- -------------------------------- ----------
 1         33    2231224    2252561 NO  NO  ONLINE         512
 7395840                                           0

 LOG_ID
----------
FILENAME
--------------------------------------------------------------------------------
LOW_TIME  HIGH_TIME      DB_ID DB_NAME   RESET_SCN RESET_SCN COMPATIBLE
--------- --------- ---------- -------- ---------- --------- -----------------
 THREAD_ID THREAD_SQN    LOW_SCN   NEXT_SCN DIC DIC TYPE     BLOCKSIZE
---------- ---------- ---------- ---------- --- --- ------- ----------
 FILESIZE INFO                                 STATUS
---------- -------------------------------- ----------
 34
/home/oracle/app/oracle/oradata/orcl/redo01.log
26-JAN-11 01-JAN-88 1229390655 ORCL         754488 30-OCT-09 11.2.0.0.0

 LOG_ID
----------
FILENAME
--------------------------------------------------------------------------------
LOW_TIME  HIGH_TIME      DB_ID DB_NAME   RESET_SCN RESET_SCN COMPATIBLE
--------- --------- ---------- -------- ---------- --------- -----------------
 THREAD_ID THREAD_SQN    LOW_SCN   NEXT_SCN DIC DIC TYPE     BLOCKSIZE
---------- ---------- ---------- ---------- --- --- ------- ----------
 FILESIZE INFO                                 STATUS
---------- -------------------------------- ----------
 1         34    2252561 2.8147E+14 NO  NO  ONLINE         512
 0                                           0

</pre></p>
<p>Now, after telling LogMiner which log files I want to examine I&#8217;m all set to start the mining process.</p>
<p><pre class="brush: sql;">

SQL&gt; exec DBMS_LOGMNR.START_LOGMNR(options =&gt; DBMS_LOGMNR.DICT_FROM_ONLINE_CATALOG);

PL/SQL procedure successfully completed.

</pre></p>
<p>The option &#8220;DICT_FROM_ONLINE_CATALOG&#8221; tells the LogMiner process to get the object information from the database dictionary directly. If I wouldn&#8217;t specify this option then Oracle wouldn&#8217;t translate the object ids into the given names. So instead of INSERT INTO TEST (id, text) VALUES&#8230; I would see something like INSERT INTO &#8220;UNKNOWN&#8221;.&#8221;OBJ# 96768&#8243;(&#8220;COL 1&#8243;,&#8221; COL 2&#8243;) VALUES&#8230; That of course is not very useful if you want to see what actually happened and so I&#8217;m going to use the dictionary to translate the ids into the given names.</p>
<p>So now let&#8217;s see how it works:</p>
<p><pre class="brush: sql;">

SQL&gt; CREATE TABLE TEST (id NUMBER, text VARCHAR2(25))
TABLESPACE USERS
LOGGING;

Table created.

SQL&gt; INSERT INTO TEST VALUES (1,'Test1');
INSERT INTO TEST VALUES (2,'Test2');
COMMIT;

1 row created.

SQL&gt;
1 row created.

SQL&gt;
Commit complete.

</pre></p>
<p>Note that I defined the LOGGING clause to make sure that LOGGING is enabled for that table. Redo log files are usually used for instance and/or media recovery. The data needed for such operations is automatically recorded  in the redo log files. However, the recorded data might not be sufficient to make sense for the user. Specifying the LOGGING clause logs a little bit more information that should be enough for this scenario. For other scenarios however it might be also required to turn on supplemental logging.</p>
<p>All information that LogMiner has collected will be visible in the V$LOGMNR_CONTENTS view: The memory structure for V$LOGMNR_CONTENTS is held in the sessions PGA memory and not in the SGA. Therefore just the session which started LogMiner can also retrieve data from V$LOGMNR_CONTENTS:</p>
<p><pre class="brush: sql;">

SQL&gt; SELECT timestamp, scn, start_scn, operation, seg_owner, seg_name, sql_redo
 FROM V$LOGMNR_CONTENTS
 ORDER BY timestamp, scn;

TIMESTAMP                     SCN  START_SCN OPERATION
---------------------- ---------- ---------- --------------------------------
SEG_OWNER
--------------------------------
SEG_NAME
--------------------------------------------------------------------------------
SQL_REDO
--------------------------------------------------------------------------------
27-JAN-2011 09:56:50    125419448            DDL
SYS
TEST
CREATE TABLE TEST (id NUMBER, text VARCHAR2(25))
TABLESPACE USERS
LOGGING ;

27-JAN-2011 09:56:50    125419451            UNSUPPORTED
SYS
SEG$
Unsupported

27-JAN-2011 09:56:50    125419451            UNSUPPORTED
SYS
SEG$
Unsupported

27-JAN-2011 09:56:50    125419452  125419441 COMMIT

TIMESTAMP                     SCN  START_SCN OPERATION
---------------------- ---------- ---------- --------------------------------
SEG_OWNER
--------------------------------
SEG_NAME
--------------------------------------------------------------------------------
SQL_REDO
--------------------------------------------------------------------------------
commit;

27-JAN-2011 09:56:50    125419453            START

set transaction read write;

27-JAN-2011 09:56:50    125419453            INTERNAL

27-JAN-2011 09:56:50    125419454  125419453 COMMIT

TIMESTAMP                     SCN  START_SCN OPERATION
---------------------- ---------- ---------- --------------------------------
SEG_OWNER
--------------------------------
SEG_NAME
--------------------------------------------------------------------------------
SQL_REDO
--------------------------------------------------------------------------------
commit;

27-JAN-2011 09:56:50    125419456            START

set transaction read write;

27-JAN-2011 09:56:50    125419456            INSERT
SYS
TEST
insert into &quot;SYS&quot;.&quot;TEST&quot;(&quot;ID&quot;,&quot;TEXT&quot;) values ('1','Test1');

27-JAN-2011 09:56:50    125419456            INSERT
SYS
TEST

TIMESTAMP                     SCN  START_SCN OPERATION
---------------------- ---------- ---------- --------------------------------
SEG_OWNER
--------------------------------
SEG_NAME
--------------------------------------------------------------------------------
SQL_REDO
--------------------------------------------------------------------------------
insert into &quot;SYS&quot;.&quot;TEST&quot;(&quot;ID&quot;,&quot;TEXT&quot;) values ('2','Test2');

27-JAN-2011 09:56:50    125419457  125419456 COMMIT

commit;

</pre></p>
<p>As you can see the creation of the table as well as the INSERT statements can be retrieved from the redo log files. You can also see that the CREATE TABLE DDL issues 2 COMMITs internally. After that you see the two INSERT statements I executed. And that&#8217;s not everything. If I look a little bit further up I can also see what the database executed internally in order to create the table:</p>
<p><pre class="brush: sql;">

TIMESTAMP                     SCN  START_SCN OPERATION
---------------------- ---------- ---------- --------------------------------
SEG_OWNER
--------------------------------
SEG_NAME
--------------------------------------------------------------------------------
SQL_REDO
--------------------------------------------------------------------------------
27-JAN-2011 09:56:50    125419441            START

set transaction read write;

27-JAN-2011 09:56:50    125419441            INSERT
SYS
OBJ$
insert into &quot;SYS&quot;.&quot;OBJ$&quot;(&quot;OBJ#&quot;,&quot;DATAOBJ#&quot;,&quot;OWNER#&quot;,&quot;NAME&quot;,&quot;NAMESPACE&quot;,&quot;SUBNAME&quot;
,&quot;TYPE#&quot;,&quot;CTIME&quot;,&quot;MTIME&quot;,&quot;STIME&quot;,&quot;STATUS&quot;,&quot;REMOTEOWNER&quot;,&quot;LINKNAME&quot;,&quot;FLAGS&quot;,&quot;OID$
&quot;,&quot;SPARE1&quot;,&quot;SPARE2&quot;,&quot;SPARE3&quot;,&quot;SPARE4&quot;,&quot;SPARE5&quot;,&quot;SPARE6&quot;) values ('171359','17135
9','0','TEST','1',NULL,'2',TO_DATE('27-JAN-2011 09:56:50', 'DD-MON-YYYY HH24:MI:
SS'),TO_DATE('27-JAN-2011 09:56:50', 'DD-MON-YYYY HH24:MI:SS'),TO_DATE('27-JAN-2
011 09:56:50', 'DD-MON-YYYY HH24:MI:SS'),'1',NULL,NULL,'0',NULL,'6','1','0',NULL
,NULL,NULL);

TIMESTAMP                     SCN  START_SCN OPERATION
---------------------- ---------- ---------- --------------------------------
SEG_OWNER
--------------------------------
SEG_NAME
--------------------------------------------------------------------------------
SQL_REDO
--------------------------------------------------------------------------------
27-JAN-2011 09:56:50    125419441            INTERNAL

27-JAN-2011 09:56:50    125419441            START

set transaction read write;

27-JAN-2011 09:56:50    125419441            INTERNAL

TIMESTAMP                     SCN  START_SCN OPERATION
---------------------- ---------- ---------- --------------------------------
SEG_OWNER
--------------------------------
SEG_NAME
--------------------------------------------------------------------------------
SQL_REDO
--------------------------------------------------------------------------------
27-JAN-2011 09:56:50    125419444            START

set transaction read write;

27-JAN-2011 09:56:50    125419444            UNSUPPORTED
SYS
SEG$
Unsupported

27-JAN-2011 09:56:50    125419445  125419444 COMMIT

commit;

TIMESTAMP                     SCN  START_SCN OPERATION
---------------------- ---------- ---------- --------------------------------
SEG_OWNER
--------------------------------
SEG_NAME
--------------------------------------------------------------------------------
SQL_REDO
--------------------------------------------------------------------------------
27-JAN-2011 09:56:50    125419445            UNSUPPORTED
SYS
SEG$
Unsupported

27-JAN-2011 09:56:50    125419446            START

set transaction read write;

27-JAN-2011 09:56:50    125419446  125419441 COMMIT

commit;

TIMESTAMP                     SCN  START_SCN OPERATION
---------------------- ---------- ---------- --------------------------------
SEG_OWNER
--------------------------------
SEG_NAME
--------------------------------------------------------------------------------
SQL_REDO
--------------------------------------------------------------------------------
27-JAN-2011 09:56:50    125419446            UNSUPPORTED
SYS
TAB$
Unsupported

27-JAN-2011 09:56:50    125419447            UNSUPPORTED
SYS
TAB$
Unsupported

27-JAN-2011 09:56:50    125419447  125419446 COMMIT

commit;

TIMESTAMP                     SCN  START_SCN OPERATION
---------------------- ---------- ---------- --------------------------------
SEG_OWNER
--------------------------------
SEG_NAME
--------------------------------------------------------------------------------
SQL_REDO
--------------------------------------------------------------------------------
27-JAN-2011 09:56:50    125419447            UNSUPPORTED
SYS
COL$
Unsupported

27-JAN-2011 09:56:50    125419447            UNSUPPORTED
SYS
COL$
Unsupported

27-JAN-2011 09:56:50    125419448            DDL
SYS
TEST
CREATE TABLE TEST (id NUMBER, text VARCHAR2(25))
TABLESPACE USERS

</pre></p>
<p>As you can see even the INSERT into the internal OBJ$ table got recorded as well as some unsupported operations into SEG$, TAB$ and COL$.</p>
<p>Important to note again is that LogMiner runs just in the current session. The memory structure required runs within the sessions PGA. That means that no other session can retrieve the information from V$LOGMNR_CONTENTS. If you try it from another session you will get: <strong>ORA-01306: dbms_logmnr.start_logmnr() must be invoked before selecting from v$logmnr_contents</strong></p>
<p>Also important is that you should always call DBMS_LOGMNR.END_LOGMNR(); before you log off. Otherwise you will get a silent ORA-600 [723]&#8230; as the bulletin article &#8220;The LogMiner utility&#8221; (Doc ID: <span style="font-family:helvetica;">62508.1)</span> on MOS says:</p>
<p><em>If you do not call end_logmnr, you will silently get ORA-00600 [723] &#8230;</em><br />
<em>on  logoff. This OERI is triggered because the PGA is bigger at logoff than  it was at logon, which is considered a space leak. The main problem  from a support perspective is that it is silent, i.e. not signalled back  to the user screen, because by then they have logged off. </em></p>
<p><em>The  way to spot LogMiner leaks is that the trace file produced by the OERI  723 will have A PGA heap dumped with many Chunks of type &#8216;Freeable&#8217; with  a description of &#8220;KRVD:alh&#8221;</em></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/venzi.wordpress.com/674/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/venzi.wordpress.com/674/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/venzi.wordpress.com/674/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/venzi.wordpress.com/674/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/venzi.wordpress.com/674/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/venzi.wordpress.com/674/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/venzi.wordpress.com/674/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/venzi.wordpress.com/674/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/venzi.wordpress.com/674/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/venzi.wordpress.com/674/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/venzi.wordpress.com/674/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/venzi.wordpress.com/674/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/venzi.wordpress.com/674/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/venzi.wordpress.com/674/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=venzi.wordpress.com&amp;blog=1622936&amp;post=674&amp;subd=venzi&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://venzi.wordpress.com/2011/01/27/oracle-logminer/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/05428fed193ab92e74a96db995922bbc?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Venzi</media:title>
		</media:content>
	</item>
		<item>
		<title>2010 in review</title>
		<link>http://venzi.wordpress.com/2011/01/02/2010-in-review/</link>
		<comments>http://venzi.wordpress.com/2011/01/02/2010-in-review/#comments</comments>
		<pubDate>Sun, 02 Jan 2011 23:56:09 +0000</pubDate>
		<dc:creator>Venzi</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://venzi.wordpress.com/?p=672</guid>
		<description><![CDATA[The stats helper monkeys at WordPress.com mulled over how this blog did in 2010, and here&#8217;s a high level summary of its overall blog health: The Blog-Health-o-Meter™ reads Fresher than ever. Crunchy numbers The average container ship can carry about 4,500 containers. This blog was viewed about 18,000 times in 2010. If each view were [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=venzi.wordpress.com&amp;blog=1622936&amp;post=672&amp;subd=venzi&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>The stats helper monkeys at WordPress.com mulled over how this blog did in 2010, and here&#8217;s a high level summary of its overall blog health:</p>
<p><img style="border:1px solid #ddd;background:#f5f5f5;padding:20px;" src="http://s0.wp.com/i/annual-recap/meter-healthy3.gif" alt="Healthy blog!" width="250" height="183" /></p>
<p>The <em>Blog-Health-o-Meter™</em> reads Fresher than ever.</p>
<h2>Crunchy numbers</h2>
<p><a href="http://venzi.files.wordpress.com/2008/11/connect-2.png"><img style="max-height:230px;float:right;border:1px solid #ddd;background:#fff;margin:0 0 1em 1em;padding:6px;" src="http://venzi.files.wordpress.com/2008/11/connect-2.png?w=288" alt="Featured image" /></a></p>
<p>The average container ship can carry about 4,500 containers.  This blog was viewed about <strong>18,000</strong> times in 2010.  If each view were a shipping container, your blog would have filled about 4 fully loaded ships.</p>
<p>&nbsp;</p>
<p>In 2010, there were <strong>12</strong> new posts, growing the total archive of this blog to 89 posts. There were <strong>11</strong> pictures uploaded, taking up a total of 164kb. That&#8217;s about a picture per month.</p>
<p>The busiest day of the year was December 10th with <strong>127</strong> views. The most popular post that day was <a style="color:#08c;" href="http://venzi.wordpress.com/2007/09/27/bulk-collect-forall-vs-cursor-for-loop/">BULK COLLECT &amp; FORALL vs. CURSOR &amp; FOR-LOOP</a>.</p>
<h2>Where did they come from?</h2>
<p>The top referring sites in 2010 were <strong>google.co.in</strong>, <strong>google.com</strong>, <strong>forums.oracle.com</strong>, <strong>oracleportal.it</strong>, and <strong>yandex.ru</strong>.</p>
<p>Some visitors came searching, mostly for <strong>bulk collect</strong>, <strong>private strand flush not complete</strong>, <strong>bulk collect forall</strong>, <strong>bulk collect in cursor</strong>, and <strong>enq: dx &#8211; contention</strong>.</p>
<h2>Attractions in 2010</h2>
<p>These are the posts and pages that got the most views in 2010.</p>
<div style="clear:left;float:left;font-size:24pt;line-height:1em;margin:-5px 10px 20px 0;">1</div>
<p><a style="margin-right:10px;" href="http://venzi.wordpress.com/2007/09/27/bulk-collect-forall-vs-cursor-for-loop/">BULK COLLECT &amp; FORALL vs. CURSOR &amp; FOR-LOOP</a> <span style="color:#999;font-size:8pt;">September 2007</span><br />
27 comments</p>
<div style="clear:left;float:left;font-size:24pt;line-height:1em;margin:-5px 10px 20px 0;">2</div>
<p><a style="margin-right:10px;" href="http://venzi.wordpress.com/2009/05/08/oracle-10g-enqueue-waits/">Oracle 10g enqueue waits</a> <span style="color:#999;font-size:8pt;">May 2009</span><br />
1 comment</p>
<div style="clear:left;float:left;font-size:24pt;line-height:1em;margin:-5px 10px 20px 0;">3</div>
<p><a style="margin-right:10px;" href="http://venzi.wordpress.com/2008/10/29/private-strand-flush-not-complete/">Private strand flush not complete</a> <span style="color:#999;font-size:8pt;">October 2008</span></p>
<div style="clear:left;float:left;font-size:24pt;line-height:1em;margin:-5px 10px 20px 0;">4</div>
<p><a style="margin-right:10px;" href="http://venzi.wordpress.com/2008/11/03/finally-a-good-tool-for-data-modeling-oracle-sqldeveloper-data-modeling/">Finally a good tool for Data Modeling: Oracle SqlDeveloper Data Modeling</a> <span style="color:#999;font-size:8pt;">November 2008</span><br />
6 comments</p>
<div style="clear:left;float:left;font-size:24pt;line-height:1em;margin:-5px 10px 20px 0;">5</div>
<p><a style="margin-right:10px;" href="http://venzi.wordpress.com/2007/11/28/prepared-statement-in-batch-mode-vs-forall-in-plsql/">Prepared statement in batch mode vs. FORALL in PL/SQL</a> <span style="color:#999;font-size:8pt;">November 2007</span></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/venzi.wordpress.com/672/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/venzi.wordpress.com/672/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/venzi.wordpress.com/672/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/venzi.wordpress.com/672/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/venzi.wordpress.com/672/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/venzi.wordpress.com/672/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/venzi.wordpress.com/672/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/venzi.wordpress.com/672/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/venzi.wordpress.com/672/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/venzi.wordpress.com/672/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/venzi.wordpress.com/672/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/venzi.wordpress.com/672/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/venzi.wordpress.com/672/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/venzi.wordpress.com/672/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=venzi.wordpress.com&amp;blog=1622936&amp;post=672&amp;subd=venzi&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://venzi.wordpress.com/2011/01/02/2010-in-review/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/05428fed193ab92e74a96db995922bbc?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Venzi</media:title>
		</media:content>

		<media:content url="http://s0.wp.com/i/annual-recap/meter-healthy3.gif" medium="image">
			<media:title type="html">Healthy blog!</media:title>
		</media:content>

		<media:content url="http://venzi.files.wordpress.com/2008/11/connect-2.png?w=288" medium="image">
			<media:title type="html">Featured image</media:title>
		</media:content>
	</item>
		<item>
		<title>Oracle lock types</title>
		<link>http://venzi.wordpress.com/2010/12/30/oracle-lock-types/</link>
		<comments>http://venzi.wordpress.com/2010/12/30/oracle-lock-types/#comments</comments>
		<pubDate>Thu, 30 Dec 2010 21:19:57 +0000</pubDate>
		<dc:creator>Venzi</dc:creator>
				<category><![CDATA[Oracle]]></category>

		<guid isPermaLink="false">http://venzi.wordpress.com/?p=669</guid>
		<description><![CDATA[Did you know that there are 202 different lock types in Oracle 11.2 but only 4 of them which are a direct result of a SQL statement? Here is the list: TYPE NAME IS_USER DESCRIPTION TM DML YES Synchronizes accesses to an object TX Transaction YES Lock held by a transaction to allow other transactions [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=venzi.wordpress.com&amp;blog=1622936&amp;post=669&amp;subd=venzi&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Did you know that there are 202 different lock types in Oracle 11.2 but only 4 of them which are a direct result of a SQL statement? Here is the list:</p>
<table border="1" width="100%">
<tbody>
<tr>
<th align="left">TYPE</th>
<th align="left">NAME</th>
<th align="left">IS_USER</th>
<th align="left">DESCRIPTION</th>
</tr>
<tr>
<td>TM</td>
<td>DML</td>
<td>YES</td>
<td>Synchronizes accesses to an object</td>
</tr>
<tr>
<td>TX</td>
<td>Transaction</td>
<td>YES</td>
<td>Lock held by a transaction to allow other transactions to wait for it</td>
</tr>
<tr>
<td>UL</td>
<td>User-defined</td>
<td>YES</td>
<td>Lock used by user applications</td>
</tr>
<tr>
<td>ZH</td>
<td>Compression Analyzer</td>
<td>YES</td>
<td>Synchronizes analysis and insert into compression$, prevents multiple threads analyzing the same table during a load</td>
</tr>
<tr>
<td>AB</td>
<td>Auto BMR</td>
<td>NO</td>
<td>A general class of locks used by auto BMR for various purposes</td>
</tr>
<tr>
<td>AD</td>
<td>ASM Disk AU Lock</td>
<td>NO</td>
<td>Synchronizes accesses to a specific ASM disk AU</td>
</tr>
<tr>
<td>AE</td>
<td>Edition Lock</td>
<td>NO</td>
<td>Prevent Dropping an edition in use</td>
</tr>
<tr>
<td>AF</td>
<td>Advisor Framework</td>
<td>NO</td>
<td>This enqueue is used to serialize access to an advisor task</td>
</tr>
<tr>
<td>AG</td>
<td>Analytic Workspace Generation</td>
<td>NO</td>
<td>Synchronizes generation use of a particular workspace</td>
</tr>
<tr>
<td>AK</td>
<td>GES Deadlock Test</td>
<td>NO</td>
<td>Lock used for internal testing</td>
</tr>
<tr>
<td>AM</td>
<td>ASM Enqueue</td>
<td>NO</td>
<td>ASM instance general-purpose enqueue</td>
</tr>
<tr>
<td>AO</td>
<td>MultiWriter Object Access</td>
<td>NO</td>
<td>Synchronizes access to objects and scalar variables</td>
</tr>
<tr>
<td>AR</td>
<td>ASM Relocation Lock</td>
<td>NO</td>
<td>Protects locked extent pointers during ASM file relocation</td>
</tr>
<tr>
<td>AS</td>
<td>Service Operations</td>
<td>NO</td>
<td>Synchronizes new service activation</td>
</tr>
<tr>
<td>AT</td>
<td>Alter Tablespace</td>
<td>NO</td>
<td>Serializes &#8216;alter tablespace&#8217; operations</td>
</tr>
<tr>
<td>AU</td>
<td>Audit index file</td>
<td>NO</td>
<td>Lock held to synchronize access XML to audit index file</td>
</tr>
<tr>
<td>AV</td>
<td>ASM volume locks</td>
<td>NO</td>
<td>id1 is for persistent DG number locking. id2 is for other volume serialization</td>
</tr>
<tr>
<td>AW</td>
<td>Analytic Workspace</td>
<td>NO</td>
<td>Synchronizes access to Analytic Workspace resources</td>
</tr>
<tr>
<td>AY</td>
<td>KSXA Test Affinity Dictionary</td>
<td>NO</td>
<td>Affinity Dictionary test affinity synchronization</td>
</tr>
<tr>
<td>BB</td>
<td>Global Transaction Branch</td>
<td>NO</td>
<td>2PC distributed transaction branch across RAC instances</td>
</tr>
<tr>
<td>BF</td>
<td>BLOOM FILTER</td>
<td>NO</td>
<td>Synchronize access to a bloom filter in a parallel statement</td>
</tr>
<tr>
<td>BR</td>
<td>Backup/Restore</td>
<td>NO</td>
<td>Lock held by a backup/restore operation to allow other operations to wait for it</td>
</tr>
<tr>
<td>CA</td>
<td>Calibration</td>
<td>NO</td>
<td>Lock used by IO Calibration</td>
</tr>
<tr>
<td>CF</td>
<td>Controlfile Transaction</td>
<td>NO</td>
<td>Synchronizes accesses to the controlfile</td>
</tr>
<tr>
<td>CI</td>
<td>Cross-Instance Call Invocation</td>
<td>NO</td>
<td>Coordinates cross-instance function invocations</td>
</tr>
<tr>
<td>CL</td>
<td>Label Security cache</td>
<td>NO</td>
<td>Synchronizes accesses to label cache and label tables</td>
</tr>
<tr>
<td>CM</td>
<td>ASM Instance Enqueue</td>
<td>NO</td>
<td>ASM instance and gate enqueue</td>
</tr>
<tr>
<td>CN</td>
<td>KTCN REG enq</td>
<td>NO</td>
<td>Enqueue held for registrations for change notifications</td>
</tr>
<tr>
<td>CO</td>
<td>KTUCLO Master Slave enq</td>
<td>NO</td>
<td>Enqueue held for determining Master Slaves</td>
</tr>
<tr>
<td>CQ</td>
<td>Cleanup querycache registrations</td>
<td>NO</td>
<td>Serializes access to cleanup client query cache registrations</td>
</tr>
<tr>
<td>CR</td>
<td>Reuse Block Range</td>
<td>NO</td>
<td>Coordinates checkpointing of block range reuse</td>
</tr>
<tr>
<td>CT</td>
<td>Block Change Tracking</td>
<td>NO</td>
<td>A general class of locks used by change tracking for various purposes</td>
</tr>
<tr>
<td>CU</td>
<td>Cursor</td>
<td>NO</td>
<td>Recovers cursors in case of death while compiling</td>
</tr>
<tr>
<td>DB</td>
<td>DbsDriver</td>
<td>NO</td>
<td>Synchronizes modification of database wide supplementallogging attributes</td>
</tr>
<tr>
<td>DD</td>
<td>ASM Local Disk Group</td>
<td>NO</td>
<td>Synchronizes local accesses to ASM disk groups</td>
</tr>
<tr>
<td>DF</td>
<td>Datafile Online in RAC</td>
<td>NO</td>
<td>Enqueue held by foreground or DBWR when a datafile is brought online in RAC</td>
</tr>
<tr>
<td>DG</td>
<td>ASM Disk Group Modification</td>
<td>NO</td>
<td>Synchronizes accesses to ASM disk groups</td>
</tr>
<tr>
<td>DI</td>
<td>GES Internal</td>
<td>NO</td>
<td>Coordinates Global Enqueue Service deadlock detection</td>
</tr>
<tr>
<td>DL</td>
<td>Direct Loader Index Creation</td>
<td>NO</td>
<td>Lock to prevent index DDL during direct load</td>
</tr>
<tr>
<td>DM</td>
<td>Database Mount/Open</td>
<td>NO</td>
<td>Enqueue held by foreground or DBWR to synchronize database mount/open with other operations</td>
</tr>
<tr>
<td>DN</td>
<td>Diskgroup number generator</td>
<td>NO</td>
<td>Serializes Group number generations</td>
</tr>
<tr>
<td>DO</td>
<td>ASM Disk Online Lock</td>
<td>NO</td>
<td>Synchronizes disk onlines and their recovery</td>
</tr>
<tr>
<td>DP</td>
<td>LDAP Parameter</td>
<td>NO</td>
<td>Synchronizes access to LDAP parameters</td>
</tr>
<tr>
<td>DQ</td>
<td>ASM RBAL doorbell</td>
<td>NO</td>
<td>Inter-RBAL process metadata invalidation notification</td>
</tr>
<tr>
<td>DR</td>
<td>Distributed Recovery</td>
<td>NO</td>
<td>Serializes the active distributed recovery operation</td>
</tr>
<tr>
<td>DS</td>
<td>Database Suspend</td>
<td>NO</td>
<td>Prevents a database suspend during LMON reconfiguration</td>
</tr>
<tr>
<td>DT</td>
<td>Default Temporary Tablespace</td>
<td>NO</td>
<td>Serializes changing the default temporary table space and user creation</td>
</tr>
<tr>
<td>DV</td>
<td>Diana Versioning</td>
<td>NO</td>
<td>Synchronizes access to lower-version Diana (PL/SQL intermediate representation)</td>
</tr>
<tr>
<td>DW</td>
<td>In memory Dispenser</td>
<td>NO</td>
<td>Serialize in memory dispenser operations</td>
</tr>
<tr>
<td>DX</td>
<td>Distributed Transaction</td>
<td>NO</td>
<td>Serializes tightly coupled distributed transaction branches</td>
</tr>
<tr>
<td>E</td>
<td>Library Cache Lock 2</td>
<td>NO</td>
<td>Synchronizes accesses to library cache objects</td>
</tr>
<tr>
<td>FA</td>
<td>ASM File Access Lock</td>
<td>NO</td>
<td>Synchronizes accesses to open ASM files</td>
</tr>
<tr>
<td>FB</td>
<td>Format Block</td>
<td>NO</td>
<td>Ensures that only one process can format data blocks in auto segment space managed tablespaces</td>
</tr>
<tr>
<td>FC</td>
<td>Disk Group Chunk Mount</td>
<td>NO</td>
<td>controls access to an ACD chunk</td>
</tr>
<tr>
<td>FD</td>
<td>Flashback Database</td>
<td>NO</td>
<td>Coordinate flashback database</td>
</tr>
<tr>
<td>FE</td>
<td>KTFA Recovery</td>
<td>NO</td>
<td>Flashback archive Enqueue to serialize recovery</td>
</tr>
<tr>
<td>FG</td>
<td>ACD Relocation Gate Enqueue</td>
<td>NO</td>
<td>ACD relocation serialization</td>
</tr>
<tr>
<td>FL</td>
<td>Flashback database log</td>
<td>NO</td>
<td>Synchronize access to flashback database log</td>
</tr>
<tr>
<td>FM</td>
<td>File Mapping</td>
<td>NO</td>
<td>Synchronizes access to global file mapping state</td>
</tr>
<tr>
<td>FP</td>
<td>File Object</td>
<td>NO</td>
<td>Synchronizes various File Object(FOB) operations</td>
</tr>
<tr>
<td>FR</td>
<td>Disk Group Recovery</td>
<td>NO</td>
<td>enqueue to control ASM recovery</td>
</tr>
<tr>
<td>FS</td>
<td>File Set / Dictionary Check</td>
<td>NO</td>
<td>Enqueue used to synchronize recovery and file operations or synchronize dictionary check</td>
</tr>
<tr>
<td>FT</td>
<td>Disk Group Redo Generation</td>
<td>NO</td>
<td>controls the privilege to generate redo in a thread</td>
</tr>
<tr>
<td>FU</td>
<td>DBFUS</td>
<td>NO</td>
<td>This enqueue is used to serialize the capture of the DB Feature           Usage and High Water Mark Statistics</td>
</tr>
<tr>
<td>FW</td>
<td>Flashback Writer</td>
<td>NO</td>
<td>Coordinate RVWR on multiple instances</td>
</tr>
<tr>
<td>FX</td>
<td>ACD Xtnt Info CIC</td>
<td>NO</td>
<td>serialize ACD relocation CIC</td>
</tr>
<tr>
<td>FZ</td>
<td>ASM Freezing Cache Lock</td>
<td>NO</td>
<td>Freezes ASM Cache for a diskgroup</td>
</tr>
<tr>
<td>G</td>
<td>Library Cache Pin 2</td>
<td>NO</td>
<td>Synchronizes accesses to the contents of library cache objects</td>
</tr>
<tr>
<td>HD</td>
<td>ASM Disk Header</td>
<td>NO</td>
<td>Serializes accesses to ASM SGA data structures</td>
</tr>
<tr>
<td>HP</td>
<td>Queue Page</td>
<td>NO</td>
<td>Synchronizes accesses to queue pages</td>
</tr>
<tr>
<td>HQ</td>
<td>Hash Queue</td>
<td>NO</td>
<td>Synchronizes the creation of new queue IDs</td>
</tr>
<tr>
<td>HV</td>
<td>Direct Loader High Water Mark</td>
<td>NO</td>
<td>Lock used to broker the high water mark during parallel inserts</td>
</tr>
<tr>
<td>HW</td>
<td>Segment High Water Mark</td>
<td>NO</td>
<td>Lock used to broker the high water mark during parallel inserts</td>
</tr>
<tr>
<td>IA</td>
<td>Internal</td>
<td>NO</td>
<td></td>
</tr>
<tr>
<td>ID</td>
<td>NID</td>
<td>NO</td>
<td>Lock held by a NID operation to allow other operations to wait for it</td>
</tr>
<tr>
<td>IL</td>
<td>Label Security</td>
<td>NO</td>
<td>Synchronizes accesses to internal label data structures</td>
</tr>
<tr>
<td>IM</td>
<td>Kti blr lock</td>
<td>NO</td>
<td>Serializes block recovery for an IMU txn</td>
</tr>
<tr>
<td>IR</td>
<td>Instance Recovery</td>
<td>NO</td>
<td>Synchronizes instance recovery</td>
</tr>
<tr>
<td>IS</td>
<td>Instance State</td>
<td>NO</td>
<td>Enqueue used to synchronize instance state changes</td>
</tr>
<tr>
<td>IT</td>
<td>In-Mem Temp Table Meta Creation</td>
<td>NO</td>
<td>Synchronizes accesses to a temp object&#8217;s metadata</td>
</tr>
<tr>
<td>IV</td>
<td>Library Cache Invalidation</td>
<td>NO</td>
<td>Synchronizes library cache object invalidations across instances</td>
</tr>
<tr>
<td>IZ</td>
<td>INSTANCE LOCK</td>
<td>NO</td>
<td>Proctects the lock name space used by the instance</td>
</tr>
<tr>
<td>JD</td>
<td>Job Queue Date</td>
<td>NO</td>
<td>Synchronizes dates between job queue coordinator and slave processes</td>
</tr>
<tr>
<td>JI</td>
<td>Materialized View</td>
<td>NO</td>
<td>Lock held during materialized view operations (like refresh, alter) to prevent concurrent operations on the same materialized view</td>
</tr>
<tr>
<td>JQ</td>
<td>Job Queue</td>
<td>NO</td>
<td>Lock to prevent multiple instances from running a single job</td>
</tr>
<tr>
<td>JS</td>
<td>Job Scheduler</td>
<td>NO</td>
<td>Synchronizes accesses to the job cache</td>
</tr>
<tr>
<td>JX</td>
<td>SQL STATEMENT QUEUE</td>
<td>NO</td>
<td>synchronize SQL statement queue operations</td>
</tr>
<tr>
<td>KD</td>
<td>Scheduler Master DBRM</td>
<td>NO</td>
<td>Determine DBRM master</td>
</tr>
<tr>
<td>KE</td>
<td>ASM Cached Attributes</td>
<td>NO</td>
<td>Synchronization of ASM cached attributes</td>
</tr>
<tr>
<td>KK</td>
<td>Kick Instance to Switch Logs</td>
<td>NO</td>
<td>Lock held by open redo thread, used by other instances to force a log switch</td>
</tr>
<tr>
<td>KL</td>
<td>LOB KSI LOCK</td>
<td>NO</td>
<td>KSI lock for buffer cache and wgc concurrency</td>
</tr>
<tr>
<td>KM</td>
<td>Scheduler</td>
<td>NO</td>
<td>Synchronizes various Resource Manager operations</td>
</tr>
<tr>
<td>KO</td>
<td>Multiple Object Checkpoint</td>
<td>NO</td>
<td>Coordinates checkpointing of multiple objects</td>
</tr>
<tr>
<td>KP</td>
<td>Kupp Process Startup</td>
<td>NO</td>
<td>Synchronizes kupp process startup</td>
</tr>
<tr>
<td>KQ</td>
<td>ASM Attributes Enque</td>
<td>NO</td>
<td>Single Inst Sync of ASM attributes</td>
</tr>
<tr>
<td>KT</td>
<td>Scheduler Plan</td>
<td>NO</td>
<td>Synchronizes accesses to the current Resource Manager plan</td>
</tr>
<tr>
<td>L</td>
<td>Library Cache Lock 1</td>
<td>NO</td>
<td>Synchronizes accesses to library cache objects</td>
</tr>
<tr>
<td>MD</td>
<td>Materialized View Log DDL</td>
<td>NO</td>
<td>Lock held during materialized view log DDL statements</td>
</tr>
<tr>
<td>MH</td>
<td>AQ Notification Mail Host</td>
<td>NO</td>
<td>Lock used for recovery when setting Mail Host for AQ e-mail notifications</td>
</tr>
<tr>
<td>MK</td>
<td>Master Key</td>
<td>NO</td>
<td>Serializes enc$ access</td>
</tr>
<tr>
<td>ML</td>
<td>AQ Notification Mail Port</td>
<td>NO</td>
<td>Lock used for recovery when setting Mail Port for AQ e-mail notifications</td>
</tr>
<tr>
<td>MN</td>
<td>LogMiner</td>
<td>NO</td>
<td>Synchronizes updates to the LogMiner dictionary and prevents multiple instances from preparing the same LogMiner session</td>
</tr>
<tr>
<td>MO</td>
<td>MMON restricted session</td>
<td>NO</td>
<td>Serialize MMON operations for restricted sessions</td>
</tr>
<tr>
<td>MR</td>
<td>Media Recovery</td>
<td>NO</td>
<td>Lock used to coordinate media recovery with other uses of datafiles</td>
</tr>
<tr>
<td>MS</td>
<td>Materialized View Refresh Log</td>
<td>NO</td>
<td>Lock held during materialized view refresh to setup MV log</td>
</tr>
<tr>
<td>MV</td>
<td>Online Datafile Move</td>
<td>NO</td>
<td>Synchronizes online datafile move operation or cleanup</td>
</tr>
<tr>
<td>MW</td>
<td>MWIN Schedule</td>
<td>NO</td>
<td>This enqueue is used to serialize the calibration of the           manageability schedules with the Maintenance Window</td>
</tr>
<tr>
<td>MX</td>
<td>ksz synch</td>
<td>NO</td>
<td>Used to synchronize storage server info across all nodes</td>
</tr>
<tr>
<td>N</td>
<td>Library Cache Pin 1</td>
<td>NO</td>
<td>Synchronizes accesses to the contents of library cache objects</td>
</tr>
<tr>
<td>OC</td>
<td>Outline Cache</td>
<td>NO</td>
<td>Synchronizes write accesses to the outline cache</td>
</tr>
<tr>
<td>OD</td>
<td>Online DDLs</td>
<td>NO</td>
<td>Lock to prevent concurrent online DDLs</td>
</tr>
<tr>
<td>OL</td>
<td>Outline Name</td>
<td>NO</td>
<td>Synchronizes accesses to a particular outline name</td>
</tr>
<tr>
<td>OQ</td>
<td>OLAPI Histories</td>
<td>NO</td>
<td>Synchronizes access to olapi history resources</td>
</tr>
<tr>
<td>OW</td>
<td>Encryption Wallet</td>
<td>NO</td>
<td>Serializes wallet initialization and access</td>
</tr>
<tr>
<td>PD</td>
<td>Property Lock</td>
<td>NO</td>
<td>Serializes property update</td>
</tr>
<tr>
<td>PE</td>
<td>Parameter</td>
<td>NO</td>
<td>Synchronizes system parameter updates</td>
</tr>
<tr>
<td>PF</td>
<td>Password File</td>
<td>NO</td>
<td>Synchronizes accesses to the password file</td>
</tr>
<tr>
<td>PG</td>
<td>Global Parameter</td>
<td>NO</td>
<td>Synchronizes global system parameter updates</td>
</tr>
<tr>
<td>PH</td>
<td>AQ Notification Proxy</td>
<td>NO</td>
<td>Lock used for recovery when setting Proxy for AQ HTTP notifications</td>
</tr>
<tr>
<td>PI</td>
<td>Remote PX Process Spawn Status</td>
<td>NO</td>
<td>Communicates remote Parallel Execution Server Process creation status</td>
</tr>
<tr>
<td>PL</td>
<td>Transportable Tablespace</td>
<td>NO</td>
<td>Coordinates plug-in operation of transportable tablespaces</td>
</tr>
<tr>
<td>PM</td>
<td>ASM PST Signalling</td>
<td>NO</td>
<td>Signals inter-instance access to ASM PST metadata</td>
</tr>
<tr>
<td>PR</td>
<td>Process Startup</td>
<td>NO</td>
<td>Synchronizes process startup</td>
</tr>
<tr>
<td>PS</td>
<td>PX Process Reservation</td>
<td>NO</td>
<td>Parallel Execution Server Process reservation and synchronization</td>
</tr>
<tr>
<td>PT</td>
<td>ASM Partnership and Status Table</td>
<td>NO</td>
<td>Gates inter-node synchronization of ASM PST metadata</td>
</tr>
<tr>
<td>PV</td>
<td>KSV slave startup</td>
<td>NO</td>
<td>Synchronizes slave start_shut</td>
</tr>
<tr>
<td>PW</td>
<td>Buffer Cache PreWarm</td>
<td>NO</td>
<td>Coordinates Direct Loads with Prewarmed cache buffers</td>
</tr>
<tr>
<td>Q</td>
<td>Row Cache</td>
<td>NO</td>
<td>Coordinates updates and accesses to row cache objects</td>
</tr>
<tr>
<td>RB</td>
<td>ASM Rollback Recovery</td>
<td>NO</td>
<td>Serializes ASM rollback recovery operations</td>
</tr>
<tr>
<td>RC</td>
<td>Result Cache: Enqueue</td>
<td>NO</td>
<td>Accessing a result in the result-set cache</td>
</tr>
<tr>
<td>RD</td>
<td>RAC Load</td>
<td>NO</td>
<td>synchronize update of RAC load info</td>
</tr>
<tr>
<td>RE</td>
<td>Block Repair/Resilvering</td>
<td>NO</td>
<td>Synchronizes block repair/mirror resilvering operations</td>
</tr>
<tr>
<td>RF</td>
<td>Data Guard Broker</td>
<td>NO</td>
<td>Synchronizes broker lock operation involving lock value</td>
</tr>
<tr>
<td>RK</td>
<td>wallet_set_mkey</td>
<td>NO</td>
<td>Serializes wallet master key rekey</td>
</tr>
<tr>
<td>RL</td>
<td>RAC Encryption Wallet Lock</td>
<td>NO</td>
<td>RAC encryption wallet lock</td>
</tr>
<tr>
<td>RM</td>
<td>GES Resource Remastering</td>
<td>NO</td>
<td>Coordinates Global Enqueue Service resource remastering</td>
</tr>
<tr>
<td>RN</td>
<td>Redo Log Nab Computation</td>
<td>NO</td>
<td>Coordinates nab computations of online logs during recovery</td>
</tr>
<tr>
<td>RO</td>
<td>Multiple Object Reuse</td>
<td>NO</td>
<td>Coordinates flushing of multiple objects</td>
</tr>
<tr>
<td>RP</td>
<td>Resilver / Repair</td>
<td>NO</td>
<td>Enqueue held when resilvering is needed or when datablock is repaired from mirror</td>
</tr>
<tr>
<td>RR</td>
<td>Workload Capture and Replay</td>
<td>NO</td>
<td>Prevents concurrent invokers of DBMS_WORKLOAD_*</td>
</tr>
<tr>
<td>RS</td>
<td>Reclaimable Space</td>
<td>NO</td>
<td>Lock held by a space reclaimable operation to allow other operations to wait for it</td>
</tr>
<tr>
<td>RT</td>
<td>Redo Thread</td>
<td>NO</td>
<td>Thread locks held by LGWR, DBW0, and RVWR to indicate mounted or open status</td>
</tr>
<tr>
<td>RU</td>
<td>Rolling Migration</td>
<td>NO</td>
<td>Serilized rolling migration operations</td>
</tr>
<tr>
<td>RW</td>
<td>Materialized View Flags</td>
<td>NO</td>
<td>Lock used when creating or readingmaterialized view flags in detail tables</td>
</tr>
<tr>
<td>RX</td>
<td>ASM Extent Relocation Lock</td>
<td>NO</td>
<td>Synchronizes relocating ASM extents</td>
</tr>
<tr>
<td>SB</td>
<td>LogicalStandby</td>
<td>NO</td>
<td>Synchronizes Logical Standby metadata operations</td>
</tr>
<tr>
<td>SC</td>
<td>System Change Number</td>
<td>NO</td>
<td>Coordinates system change number generation on multiple instances</td>
</tr>
<tr>
<td>SE</td>
<td>Session Migration</td>
<td>NO</td>
<td>Lock used by transparent session migration</td>
</tr>
<tr>
<td>SF</td>
<td>AQ Notification Sender</td>
<td>NO</td>
<td>Lock used for recovery when setting Sender for AQ e-mail notifications</td>
</tr>
<tr>
<td>SH</td>
<td>Active Session History Flushing</td>
<td>NO</td>
<td>To prevent multiple concurrent flushers</td>
</tr>
<tr>
<td>SI</td>
<td>Streams Table Instantiation</td>
<td>NO</td>
<td>Prevents muiltiple streams table instantiations</td>
</tr>
<tr>
<td>SJ</td>
<td>KTSJ Slave Task Cancel</td>
<td>NO</td>
<td>Serializes cancelling task executed by slave process</td>
</tr>
<tr>
<td>SK</td>
<td>Shrink Segment</td>
<td>NO</td>
<td>Serialize shrink of a segment</td>
</tr>
<tr>
<td>SL</td>
<td>Serialize Lock request</td>
<td>NO</td>
<td>Request serialization to LCK0</td>
</tr>
<tr>
<td>SM</td>
<td>SMON Serialization</td>
<td>NO</td>
<td>Lock to check SMON global work in RAC</td>
</tr>
<tr>
<td>SO</td>
<td>Shared Object</td>
<td>NO</td>
<td>Synchronizes access to Shared Object(PL/SQL Shared Object Manager)</td>
</tr>
<tr>
<td>SP</td>
<td>Spare Enqueue</td>
<td>NO</td>
<td>Spare enqueue for one-off backports</td>
</tr>
<tr>
<td>SQ</td>
<td>Sequence Cache</td>
<td>NO</td>
<td>Lock to ensure that only one process can replenish the sequence cache</td>
</tr>
<tr>
<td>SR</td>
<td>Synchronized Replication</td>
<td>NO</td>
<td>Coordinates replication / streams operations</td>
</tr>
<tr>
<td>SS</td>
<td>Sort Segment</td>
<td>NO</td>
<td>Ensures that sort segments created during parallel DML operations aren&#8217;t prematurely cleaned up</td>
</tr>
<tr>
<td>ST</td>
<td>Space Transaction</td>
<td>NO</td>
<td>Synchronizes space management activities in dictionary-managed tablespaces</td>
</tr>
<tr>
<td>SU</td>
<td>SaveUndo Segment</td>
<td>NO</td>
<td>Serializes access to SaveUndo Segment</td>
</tr>
<tr>
<td>SV</td>
<td>Sequence Ordering</td>
<td>NO</td>
<td>Lock to ensure ordered sequence allocation in RAC mode</td>
</tr>
<tr>
<td>SW</td>
<td>Suspend Writes</td>
<td>NO</td>
<td>Coordinates the &#8216;alter system suspend&#8217; operation</td>
</tr>
<tr>
<td>TA</td>
<td>Instance Undo</td>
<td>NO</td>
<td>Serializes operations on undo segments and undo tablespaces</td>
</tr>
<tr>
<td>TB</td>
<td>SQL Tuning Base Existence Cache</td>
<td>NO</td>
<td>Synchronizes writes to the SQL Tuning Base Existence Cache</td>
</tr>
<tr>
<td>TC</td>
<td>Tablespace Checkpoint</td>
<td>NO</td>
<td>Lock held to guarantee uniqueness of a tablespace checkpoint</td>
</tr>
<tr>
<td>TD</td>
<td>KTF map table enqueue</td>
<td>NO</td>
<td>Serializes updates and inserts to the SMON_SCN_TIME mapping table</td>
</tr>
<tr>
<td>TE</td>
<td>KTF broadcast</td>
<td>NO</td>
<td>Serializes broadcasts for flushes to SMON_SCN_TIME</td>
</tr>
<tr>
<td>TF</td>
<td>Temporary File</td>
<td>NO</td>
<td>Serializes dropping of a temporary file</td>
</tr>
<tr>
<td>TH</td>
<td>Threshold Chain</td>
<td>NO</td>
<td>Serializes threshold in-memory chain access</td>
</tr>
<tr>
<td>TK</td>
<td>Auto Task Serialization</td>
<td>NO</td>
<td>Prevents more than one AutoTask Background Slave from being spawned</td>
</tr>
<tr>
<td>TL</td>
<td>Log Lock</td>
<td>NO</td>
<td>Serializes threshold log table read and update</td>
</tr>
<tr>
<td>TO</td>
<td>Temp Object</td>
<td>NO</td>
<td>Synchronizes DDL and DML operations on a temp object</td>
</tr>
<tr>
<td>TP</td>
<td>Runtime Fixed Table Purge</td>
<td>NO</td>
<td>Lock used for fixed runtime table purge and definition</td>
</tr>
<tr>
<td>TQ</td>
<td>Queue table enqueue</td>
<td>NO</td>
<td>Synchronizes access to queue table</td>
</tr>
<tr>
<td>TS</td>
<td>Temporary Segment</td>
<td>NO</td>
<td>Serializes accesses to temp segments</td>
</tr>
<tr>
<td>TT</td>
<td>Tablespace</td>
<td>NO</td>
<td>Serializes DDL operations on tablespaces</td>
</tr>
<tr>
<td>TW</td>
<td>Cross-Instance Transaction</td>
<td>NO</td>
<td>Lock held by one instance to wait for transactions on all instances to finish</td>
</tr>
<tr>
<td>US</td>
<td>Undo Segment</td>
<td>NO</td>
<td>Lock held to perform DDL on the undo segment</td>
</tr>
<tr>
<td>V</td>
<td>Library Cache Lock 3</td>
<td>NO</td>
<td>Synchronizes accesses to library cache objects</td>
</tr>
<tr>
<td>WA</td>
<td>AQ Notification Watermark</td>
<td>NO</td>
<td>Lock used for recovery when setting Watermark for memory usage in AQ notifications</td>
</tr>
<tr>
<td>WF</td>
<td>AWR Flush</td>
<td>NO</td>
<td>This enqueue is used to serialize the flushing of snapshots</td>
</tr>
<tr>
<td>WG</td>
<td>Write gather local enqueue</td>
<td>NO</td>
<td>Long term lock on wgc file state</td>
</tr>
<tr>
<td>WL</td>
<td>Being Written Redo Log</td>
<td>NO</td>
<td>Coordinates access to redo log files and archive logs</td>
</tr>
<tr>
<td>WM</td>
<td>WLM Plan Operations</td>
<td>NO</td>
<td>Synchronizes new WLM Plan activation</td>
</tr>
<tr>
<td>WP</td>
<td>AWR Purge</td>
<td>NO</td>
<td>This enqueue handles concurrency between purging and baselines</td>
</tr>
<tr>
<td>WR</td>
<td>LNS archiving log</td>
<td>NO</td>
<td>Coordinates access to logs by Async LNS and ARCH/FG</td>
</tr>
<tr>
<td>WS</td>
<td>LogWriter Standby</td>
<td>NO</td>
<td>Used by LogWriter to coordinate communication to standby databases</td>
</tr>
<tr>
<td>XB</td>
<td>ASM Group Block lock</td>
<td>NO</td>
<td>Prevents client diskgroup use during storage reconfiguration</td>
</tr>
<tr>
<td>XC</td>
<td>XDB Configuration</td>
<td>NO</td>
<td>Synchronization access to XDB configuration</td>
</tr>
<tr>
<td>XD</td>
<td>Auto Online Exadata disks</td>
<td>NO</td>
<td>Serialize Auto Management of Exadata disks</td>
</tr>
<tr>
<td>XH</td>
<td>AQ Notification No-Proxy</td>
<td>NO</td>
<td>Lock used for recovery when setting No Proxy Domains for AQ HTTP notifications</td>
</tr>
<tr>
<td>XL</td>
<td>ASM Extent Fault Lock</td>
<td>NO</td>
<td>Keep multiple processes from faulting in the same extent chunk</td>
</tr>
<tr>
<td>XQ</td>
<td>ASM Extent Relocation Enqueue</td>
<td>NO</td>
<td>ASM extent relocation</td>
</tr>
<tr>
<td>XR</td>
<td>Quiesce / Force Logging</td>
<td>NO</td>
<td>Lock held during database quiesce or for database force logging</td>
</tr>
<tr>
<td>XY</td>
<td>Internal Test</td>
<td>NO</td>
<td>Lock used for internal testing</td>
</tr>
<tr>
<td>Y</td>
<td>Library Cache Pin 3</td>
<td>NO</td>
<td>Synchronizes accesses to the contents of library cache objects</td>
</tr>
<tr>
<td>ZA</td>
<td>Audit Partition</td>
<td>NO</td>
<td>Lock held for adding partition to Aud table</td>
</tr>
<tr>
<td>ZF</td>
<td>FGA Partition</td>
<td>NO</td>
<td>Lock held for adding partition to Fga table</td>
</tr>
<tr>
<td>ZG</td>
<td>File Group</td>
<td>NO</td>
<td>Coordinates file group operations</td>
</tr>
<tr>
<td>ZZ</td>
<td>Global Context Action</td>
<td>NO</td>
<td>Lock held for updating Global context hash tables</td>
</tr>
</tbody>
</table>
<p>The SQL to retrieve them:</p>
<p><pre class="brush: sql;">

SELECT type, name, is_user, description FROM V$LOCK_TYPE ORDER BY is_user DESC, type;

</pre></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/venzi.wordpress.com/669/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/venzi.wordpress.com/669/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/venzi.wordpress.com/669/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/venzi.wordpress.com/669/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/venzi.wordpress.com/669/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/venzi.wordpress.com/669/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/venzi.wordpress.com/669/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/venzi.wordpress.com/669/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/venzi.wordpress.com/669/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/venzi.wordpress.com/669/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/venzi.wordpress.com/669/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/venzi.wordpress.com/669/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/venzi.wordpress.com/669/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/venzi.wordpress.com/669/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=venzi.wordpress.com&amp;blog=1622936&amp;post=669&amp;subd=venzi&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://venzi.wordpress.com/2010/12/30/oracle-lock-types/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/05428fed193ab92e74a96db995922bbc?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Venzi</media:title>
		</media:content>
	</item>
		<item>
		<title>Why my job is safe</title>
		<link>http://venzi.wordpress.com/2010/12/28/why-my-job-is-safe/</link>
		<comments>http://venzi.wordpress.com/2010/12/28/why-my-job-is-safe/#comments</comments>
		<pubDate>Tue, 28 Dec 2010 19:43:45 +0000</pubDate>
		<dc:creator>Venzi</dc:creator>
				<category><![CDATA[Performance]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://venzi.wordpress.com/?p=653</guid>
		<description><![CDATA[I spent the last couple of days with coding a new registration module for a private website that I administrate. The requirements were the very basic ones: Make an HTML form Validate the inputs Send a confirmation email with a link On link activation: Retrieve the data and write it into a table in the [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=venzi.wordpress.com&amp;blog=1622936&amp;post=653&amp;subd=venzi&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I spent the last couple of days with coding a new registration module for a private website that I administrate. The requirements were the very basic ones:</p>
<ul>
<li> Make an HTML form</li>
<li>Validate the inputs</li>
<li>Send a confirmation email with a link</li>
<li>On link activation: Retrieve the data and write it into a table in the database</li>
</ul>
<p>As those requirements are common in so many registration forms all over the web, I thought: Before coding something again, just have a look at Google and see if  you can find something useful to embed. And I found stuff, lots of stuff but surprisingly every example I found did the following:</p>
<ul>
<li>HTML form</li>
<li>Write data into the table with an &#8220;active&#8221; column set to false</li>
<li>Send a confirmation email with an link with an unique identifier for the inserted row (most times a md5 hash value)</li>
<li>On link activation: Retrieve the unique identifier</li>
<li>Update the row in the database with active flag set to true</li>
</ul>
<p>And, at least some examples, took also care about the house keeping and cleaned the inactive rows from time to time.</p>
<p>Well, this does the job of course but the way how it does it is simply dirty &#8211; very dirty!</p>
<p>From the functional aspect there are following issues:</p>
<ul>
<li>Every SQL statement for retrieving the active data has to make sure to include &#8221; AND active = TRUE&#8221; in the WHERE clause</li>
<li>If an user is unlucky, the cleanup process removes his data before he can click the activation link if the process doesn&#8217;t implement a time range</li>
</ul>
<p>From the performance side however:</p>
<p>All I want to do is:</p>
<ul>
<li>Validate the data from the form</li>
<li>Save it temporarily until the link is clicked or the data gets expired</li>
<li>Write it into the database</li>
</ul>
<p>With those solutions found on the internet however I would have done following:</p>
<ul>
<li>Validate the data</li>
<li>Write it into the database (with an column extension for an active flag)</li>
<li>Retrieve the data again and update it to set it active</li>
<li>Create a cleanup job to purge inactive data</li>
<li>Extend all my SQLs against that table with a &#8220;AND active = TRUE&#8221; WHERE clause</li>
</ul>
<p>So I have more steps, more unnecessary hops to the database, probably maintain another index over time for the cleanup job. Sometimes I wonder why programmers don&#8217;t think first before the code. Of course many roads lead to Rome but that doesn&#8217;t mean that you should just take a random one. But as long as there are programmers out there who don&#8217;t think or don&#8217;t think hard enough there will be always performance problems and people like me needed to solve them. So I guess I shouldn&#8217;t complain but my dream of the perfect IT world is still alive&#8230;</p>
<p>Well, the webpage in my case is made in PHP which has one nice feature called: <a title="PHP Sessions" href="http://php.net/manual/en/book.session.php" target="_blank">Sessions</a><br />
That does the job perfectly fine and most important: Clean! It is enabled by default, allows you to store data within a session and includes also an expire functionality which is also enabled by default. It supports two ways of storing the session id: Either within a cookie in the browser (enabled by default) or you can also pass the session id over POST and GET requests. As I use a confirmation email to activate the registration I just had to make sure to deactivate the cookie storage feature first as I pass the session id over a link/GET request. I wouldn&#8217;t have to deactivate the cookie storage from a functional point of view as the cookie would be just never read again and would expire some time but from security and the &#8220;do it right&#8221; aspect this has to be deactivated. So all I did was following:</p>
<p><pre class="brush: php;">
// Disable cookie storage
ini_set(&quot;session.use_cookies&quot;,0);
// Start the session
session_start();

// Save the data within the session
$_SESSION[&quot;Title&quot;] = $Title;
$_SESSION[&quot;FirstName&quot;] = $FistName;
$_SESSION[&quot;LastName&quot;] = $LastName;

//Send the email with the activation link
if (mail($Email, &quot;Please activate your registration&quot;, &quot;http://www.mywebsite.com/activate.php?sid=&quot;.htmlspecialchars (session_id()))
{
 // If sending the mail was successful, store all session data and close the session
 session_write_close();
}
else
{
 // If sending the mail failed, report an error, delete the session data and destroy the session!
 // Error reporting....
 session_unset();
 session_destroy();
}
</pre></p>
<p>And all the activation.php file does, is:</p>
<p><pre class="brush: php;">

// Disable cookie storage
ini_set(&quot;session.use_cookies&quot;,0);
// Set the session id from GET request
session_id($_GET[&quot;sid&quot;]);
// Start session
session_start();
// Get variables
$Title = $_SESSION[&quot;Title&quot;];
$FistName = $_SESSION[&quot;FirstName&quot;];
$LastName = $_SESSION[&quot;LastName&quot;];

// Connect to database
$hDB = @mysql_connect(&quot;localhost&quot;, &quot;user&quot;,&quot;password&quot;);
mysql_select_db(&quot;myDB&quot;, $hDB);

// Insert data into database
if (mysql_query(&quot;INSERT INTO table (Title, FirstName, LastName) VALUES ('&quot;.mysql_real_escape_string($Title).&quot;','&quot;.mysql_real_escape_string($FirstName).&quot;','&quot;.mysql_real_escape_string($LastName).&quot;'&quot;)
{
 // Destroy session
 session_unset();
 session_destroy();
}
</pre></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/venzi.wordpress.com/653/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/venzi.wordpress.com/653/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/venzi.wordpress.com/653/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/venzi.wordpress.com/653/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/venzi.wordpress.com/653/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/venzi.wordpress.com/653/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/venzi.wordpress.com/653/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/venzi.wordpress.com/653/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/venzi.wordpress.com/653/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/venzi.wordpress.com/653/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/venzi.wordpress.com/653/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/venzi.wordpress.com/653/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/venzi.wordpress.com/653/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/venzi.wordpress.com/653/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=venzi.wordpress.com&amp;blog=1622936&amp;post=653&amp;subd=venzi&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://venzi.wordpress.com/2010/12/28/why-my-job-is-safe/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/05428fed193ab92e74a96db995922bbc?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Venzi</media:title>
		</media:content>
	</item>
		<item>
		<title>Oracle 11gR2 enqueue waits</title>
		<link>http://venzi.wordpress.com/2010/12/10/oracle-11gr2-enqueue-waits/</link>
		<comments>http://venzi.wordpress.com/2010/12/10/oracle-11gr2-enqueue-waits/#comments</comments>
		<pubDate>Fri, 10 Dec 2010 14:24:18 +0000</pubDate>
		<dc:creator>Venzi</dc:creator>
				<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Performance]]></category>

		<guid isPermaLink="false">http://venzi.wordpress.com/?p=647</guid>
		<description><![CDATA[Over 1 and a half year ago I posted the enqueue waits for Oracle 10g. Well, a lot has changed in 11g including the enqueue waits. This is the new list of enqueue waits in 11gR2: Group Enqueue Type Description Auto BMR enq: AB &#8211; ABMR process initialized Lock held to ensure that ABMR process [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=venzi.wordpress.com&amp;blog=1622936&amp;post=647&amp;subd=venzi&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Over 1 and a half year ago I posted the <a title="Oracle 10g enqueue waits" href="http://venzi.wordpress.com/2009/05/08/oracle-10g-enqueue-waits/" target="_blank">enqueue waits for Oracle 10g</a>. Well, a lot has changed in 11g including the enqueue waits. This is the new list of enqueue waits in 11gR2:</p>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<th>Group</th>
<th>Enqueue Type</th>
<th>Description</th>
</tr>
</tbody>
<tbody>
<tr>
<td>Auto BMR</td>
<td>enq: AB &#8211; ABMR process initialized</td>
<td>Lock held to ensure that ABMR process is initialized</td>
</tr>
<tr>
<td>Auto BMR</td>
<td>enq: AB &#8211; ABMR process start/stop</td>
<td>Lock held to ensure that only one ABMR is started in the cluster</td>
</tr>
<tr>
<td>ASM Disk AU Lock</td>
<td>enq: AD &#8211; allocate AU</td>
<td>Synchronizes accesses to a specific ASM disk AU</td>
</tr>
<tr>
<td>ASM Disk AU Lock</td>
<td>enq: AD &#8211; deallocate AU</td>
<td>Synchronizes accesses to a specific ASM disk AU</td>
</tr>
<tr>
<td>ASM Disk AU Lock</td>
<td>enq: AD &#8211; relocate AU</td>
<td>Synchronizes accesses to a specific ASM disk AU</td>
</tr>
<tr>
<td>Edition Lock</td>
<td>enq: AE &#8211; lock</td>
<td>Prevent Dropping an edition in use</td>
</tr>
<tr>
<td>Advisor Framework</td>
<td>enq: AF &#8211; task serialization</td>
<td>This enqueue is used to serialize access to an advisor task</td>
</tr>
<tr>
<td>Analytic Workspace Generation</td>
<td>enq: AG &#8211; contention</td>
<td>Synchronizes generation use of a particular workspace</td>
</tr>
<tr>
<td>ASM Enqueue</td>
<td>enq: AM &#8211; ASM ACD Relocation</td>
<td>Block ASM cache freeze</td>
</tr>
<tr>
<td>ASM Enqueue</td>
<td>enq: AM &#8211; ASM Amdu Dump</td>
<td>Allow only one AMDU dump when block read failure</td>
</tr>
<tr>
<td>ASM Enqueue</td>
<td>enq: AM &#8211; ASM File Destroy</td>
<td>Prevent same file deletion race</td>
</tr>
<tr>
<td>ASM Enqueue</td>
<td>enq: AM &#8211; ASM Password File Update</td>
<td>Allow one ASM password file update per cluster at a time</td>
</tr>
<tr>
<td>ASM Enqueue</td>
<td>enq: AM &#8211; ASM User</td>
<td>Prevents a user from being dropped if it owns any open files</td>
</tr>
<tr>
<td>ASM Enqueue</td>
<td>enq: AM &#8211; ASM cache freeze</td>
<td>Start ASM cache freeze</td>
</tr>
<tr>
<td>ASM Enqueue</td>
<td>enq: AM &#8211; PST split check</td>
<td>Synchronizes check for Storage (PST) split in disk groups</td>
</tr>
<tr>
<td>ASM Enqueue</td>
<td>enq: AM &#8211; background COD reservation</td>
<td>Reserve a background COD entry</td>
</tr>
<tr>
<td>ASM Enqueue</td>
<td>enq: AM &#8211; client registration</td>
<td>Registers DB instance to ASM client state object hash</td>
</tr>
<tr>
<td>ASM Enqueue</td>
<td>enq: AM &#8211; disk offline</td>
<td>Synchronizes disk offlines</td>
</tr>
<tr>
<td>ASM Enqueue</td>
<td>enq: AM &#8211; group block</td>
<td>ASM group block</td>
</tr>
<tr>
<td>ASM Enqueue</td>
<td>enq: AM &#8211; group use</td>
<td>Client group use</td>
</tr>
<tr>
<td>ASM Enqueue</td>
<td>enq: AM &#8211; rollback COD reservation</td>
<td>Reserve a rollback COD entry</td>
</tr>
<tr>
<td>ASM Enqueue</td>
<td>enq: AM &#8211; shutdown</td>
<td>Prevent DB instance registration during ASM instance shutdown</td>
</tr>
<tr>
<td>MultiWriter Object Access</td>
<td>enq: AO &#8211; contention</td>
<td>Synchornizes access to objects and scalar variables</td>
</tr>
<tr>
<td>Service Operations</td>
<td>enq: AS &#8211; service activation</td>
<td>Synchronizes new service activation</td>
</tr>
<tr>
<td>Alter Tablespace</td>
<td>enq: AT &#8211; contention</td>
<td>Serializes &#8216;alter tablespace&#8217; operations</td>
</tr>
<tr>
<td>Audit index file</td>
<td>enq: AU &#8211; audit index file</td>
<td>lock held to operate on the audit index file</td>
</tr>
<tr>
<td>ASM volume locks</td>
<td>enq: AV &#8211; AVD client registration</td>
<td>Serialize inst reg and first DG use</td>
</tr>
<tr>
<td>ASM volume locks</td>
<td>enq: AV &#8211; add/enable first volume in DG</td>
<td>Serialize taking the AVD DG enqueue</td>
</tr>
<tr>
<td>ASM volume locks</td>
<td>enq: AV &#8211; persistent DG number</td>
<td>prevent DG number collisions</td>
</tr>
<tr>
<td>ASM volume locks</td>
<td>enq: AV &#8211; volume relocate</td>
<td>Serialize relocating volume extents</td>
</tr>
<tr>
<td>Analytic Workspace</td>
<td>enq: AW &#8211; AW generation lock</td>
<td>In-use generation state for a particular workspace</td>
</tr>
<tr>
<td>Analytic Workspace</td>
<td>enq: AW &#8211; AW state lock</td>
<td>Row lock synchronization for the AW$ table</td>
</tr>
<tr>
<td>Analytic Workspace</td>
<td>enq: AW &#8211; AW$ table lock</td>
<td>Global access synchronization to the AW$ table</td>
</tr>
<tr>
<td>Analytic Workspace</td>
<td>enq: AW &#8211; user access for AW</td>
<td>Synchronizes user accesses to a particular workspace</td>
</tr>
<tr>
<td>KSXA Test Affinity Dictionary</td>
<td>enq: AY &#8211; contention</td>
<td>Affinity Dictionary test affinity synchronization</td>
</tr>
<tr>
<td>Global Transaction Branch</td>
<td>enq: BB &#8211; 2PC across RAC instances</td>
<td>2PC distributed transaction branch across RAC instances</td>
</tr>
<tr>
<td>BLOOM FILTER</td>
<td>enq: BF &#8211; PMON Join Filter cleanup</td>
<td>PMON bloom filter recovery</td>
</tr>
<tr>
<td>BLOOM FILTER</td>
<td>enq: BF &#8211; allocation contention</td>
<td>Allocate a bloom filter in a parallel statement</td>
</tr>
<tr>
<td>Backup/Restore</td>
<td>enq: BR &#8211; file shrink</td>
<td>Lock held to prevent file from decreasing in physical size during RMAN backup</td>
</tr>
<tr>
<td>Backup/Restore</td>
<td>enq: BR &#8211; multi-section restore header</td>
<td>Lock held to serialize file header access during multi-section restore</td>
</tr>
<tr>
<td>Backup/Restore</td>
<td>enq: BR &#8211; multi-section restore section</td>
<td>Lock held to serialize section access during multi-section restore</td>
</tr>
<tr>
<td>Backup/Restore</td>
<td>enq: BR &#8211; perform autobackup</td>
<td>Lock held to perform a new controlfile autobackup</td>
</tr>
<tr>
<td>Backup/Restore</td>
<td>enq: BR &#8211; proxy-copy</td>
<td>Lock held to allow cleanup from backup mode during an RMAN proxy-copy backup</td>
</tr>
<tr>
<td>Backup/Restore</td>
<td>enq: BR &#8211; request autobackup</td>
<td>Lock held to request controlfile autobackups</td>
</tr>
<tr>
<td>Backup/Restore</td>
<td>enq: BR &#8211; space info datafile hdr update</td>
<td>Lock held to prevent multiple process to update the headers at the same time</td>
</tr>
<tr>
<td>Calibration</td>
<td>enq: CA &#8211; contention</td>
<td>Synchronizes various IO calibration runs</td>
</tr>
<tr>
<td>Controlfile Transaction</td>
<td>enq: CF &#8211; contention</td>
<td>Synchronizes accesses to the controlfile</td>
</tr>
<tr>
<td>Cross-Instance Call Invocation</td>
<td>enq: CI &#8211; contention</td>
<td>Coordinates cross-instance function invocations</td>
</tr>
<tr>
<td>Label Security cache</td>
<td>enq: CL &#8211; compare labels</td>
<td>Synchronizes accesses to label cache for label comparison</td>
</tr>
<tr>
<td>Label Security cache</td>
<td>enq: CL &#8211; drop label</td>
<td>Synchronizes accesses to label cache when dropping a label</td>
</tr>
<tr>
<td>ASM Instance Enqueue</td>
<td>enq: CM &#8211; gate</td>
<td>serialize access to instance enqueue</td>
</tr>
<tr>
<td>ASM Instance Enqueue</td>
<td>enq: CM &#8211; instance</td>
<td>indicate ASM diskgroup is mounted</td>
</tr>
<tr>
<td>KTCN REG enq</td>
<td>enq: CN &#8211; race with init</td>
<td>during descriptor initialization</td>
</tr>
<tr>
<td>KTCN REG enq</td>
<td>enq: CN &#8211; race with reg</td>
<td>during transaction commit to see concurrent registrations</td>
</tr>
<tr>
<td>KTCN REG enq</td>
<td>enq: CN &#8211; race with txn</td>
<td>during registration</td>
</tr>
<tr>
<td>KTUCLO Master Slave enq</td>
<td>enq: CO &#8211; master slave det</td>
<td>enqueue held be Master in Cleanout Optim</td>
</tr>
<tr>
<td>Cleanup querycache registrations</td>
<td>enq: CQ &#8211; contention</td>
<td>Serializes access to cleanup client query cache registrations</td>
</tr>
<tr>
<td>Reuse Block Range</td>
<td>enq: CR &#8211; block range reuse ckpt</td>
<td>Coordinates fast block range reuse ckpt</td>
</tr>
<tr>
<td>Block Change Tracking</td>
<td>enq: CT &#8211; CTWR process start/stop</td>
<td>Lock held to ensure that only one CTWR process is started in a single instance</td>
</tr>
<tr>
<td>Block Change Tracking</td>
<td>enq: CT &#8211; change stream ownership</td>
<td>Lock held by one instance while change tracking is enabled, to guarantee access to thread-specific resources</td>
</tr>
<tr>
<td>Block Change Tracking</td>
<td>enq: CT &#8211; global space management</td>
<td>Lock held during change tracking space management operations that affect the entire change tracking file</td>
</tr>
<tr>
<td>Block Change Tracking</td>
<td>enq: CT &#8211; local space management</td>
<td>Lock held during change tracking space management operations that affect just the data for one thread</td>
</tr>
<tr>
<td>Block Change Tracking</td>
<td>enq: CT &#8211; reading</td>
<td>Lock held to ensure that change tracking data remains in existence until a reader is done with it</td>
</tr>
<tr>
<td>Block Change Tracking</td>
<td>enq: CT &#8211; state</td>
<td>Lock held while enabling or disabling change tracking, to ensure that it is only enabled or disabled by one user at a time</td>
</tr>
<tr>
<td>Block Change Tracking</td>
<td>enq: CT &#8211; state change gate 1</td>
<td>Lock held while enabling or disabling change tracking in RAC</td>
</tr>
<tr>
<td>Block Change Tracking</td>
<td>enq: CT &#8211; state change gate 2</td>
<td>Lock held while enabling or disabling change tracking in RAC</td>
</tr>
<tr>
<td>Cursor</td>
<td>enq: CU &#8211; contention</td>
<td>Recovers cursors in case of death while compiling</td>
</tr>
<tr>
<td>DbsDriver</td>
<td>enq: DB &#8211; contention</td>
<td>Synchronizes modification of database wide supplementallogging attributes</td>
</tr>
<tr>
<td>ASM Local Disk Group</td>
<td>enq: DD &#8211; contention</td>
<td>Synchronizes local accesses to ASM disk groups</td>
</tr>
<tr>
<td>Datafile Online in RAC</td>
<td>enq: DF &#8211; contention</td>
<td>Enqueue held by foreground or DBWR when a datafile is brought online in RAC</td>
</tr>
<tr>
<td>ASM Disk Group Modification</td>
<td>enq: DG &#8211; contention</td>
<td>Synchronizes accesses to ASM disk groups</td>
</tr>
<tr>
<td>Direct Loader Index Creation</td>
<td>enq: DL &#8211; contention</td>
<td>Lock to prevent index DDL during direct load</td>
</tr>
<tr>
<td>Database Mount/Open</td>
<td>enq: DM &#8211; contention</td>
<td>Enqueue held by foreground or DBWR to syncrhonize database mount/open with other operations</td>
</tr>
<tr>
<td>Diskgroup number generator</td>
<td>enq: DN &#8211; contention</td>
<td>Serializes group number generations</td>
</tr>
<tr>
<td>ASM Disk Online Lock</td>
<td>enq: DO &#8211; Staleness Registry create</td>
<td>Synchronizes Staleness Registry creation</td>
</tr>
<tr>
<td>ASM Disk Online Lock</td>
<td>enq: DO &#8211; disk online</td>
<td>Synchronizes disk onlines and their recovery</td>
</tr>
<tr>
<td>ASM Disk Online Lock</td>
<td>enq: DO &#8211; disk online operation</td>
<td>Represents an active disk online operation</td>
</tr>
<tr>
<td>ASM Disk Online Lock</td>
<td>enq: DO &#8211; disk online recovery</td>
<td>Synchronizes disk onlines and their recovery</td>
</tr>
<tr>
<td>ASM Disk Online Lock</td>
<td>enq: DO &#8211; startup of MARK process</td>
<td>Synchronizes startup of MARK process</td>
</tr>
<tr>
<td>LDAP Parameter</td>
<td>enq: DP &#8211; contention</td>
<td>Synchronizes access to LDAP parameters</td>
</tr>
<tr>
<td>Distributed Recovery</td>
<td>enq: DR &#8211; contention</td>
<td>Serializes the active distributed recovery operation</td>
</tr>
<tr>
<td>Database Suspend</td>
<td>enq: DS &#8211; contention</td>
<td>Prevents a database suspend during LMON reconfiguration</td>
</tr>
<tr>
<td>Default Temporary Tablespace</td>
<td>enq: DT &#8211; contention</td>
<td>Serializes changing the default temporary table spaceand user creation</td>
</tr>
<tr>
<td>Diana Versioning</td>
<td>enq: DV &#8211; contention</td>
<td>Synchronizes access to lower-version Diana (PL/SQL intermediate representation)</td>
</tr>
<tr>
<td>In memory Dispenser</td>
<td>enq: DW &#8211; contention</td>
<td>Serialize in memory dispenser operations</td>
</tr>
<tr>
<td>Distributed Transaction</td>
<td>enq: DX &#8211; contention</td>
<td>Serializes tightly coupled distributed transaction branches</td>
</tr>
<tr>
<td>ASM File Access Lock</td>
<td>enq: FA &#8211; access file</td>
<td>Synchronizes accesses to open ASM files</td>
</tr>
<tr>
<td>Format Block</td>
<td>enq: FB &#8211; contention</td>
<td>Ensures that only one process can format data blcoks in auto segment space managed tablespaces</td>
</tr>
<tr>
<td>Disk Group Chunk Mount</td>
<td>enq: FC &#8211; open an ACD thread</td>
<td>LGWR opens an ACD thread</td>
</tr>
<tr>
<td>Disk Group Chunk Mount</td>
<td>enq: FC &#8211; recover an ACD thread</td>
<td>SMON recovers an ACD thread</td>
</tr>
<tr>
<td>Flashback Database</td>
<td>enq: FD &#8211; Flashback coordinator</td>
<td>Synchronization</td>
</tr>
<tr>
<td>Flashback Database</td>
<td>enq: FD &#8211; Flashback logical operations</td>
<td>Synchronization</td>
</tr>
<tr>
<td>Flashback Database</td>
<td>enq: FD &#8211; Flashback on/off</td>
<td>Synchronization</td>
</tr>
<tr>
<td>Flashback Database</td>
<td>enq: FD &#8211; Marker generation</td>
<td>Synchronization</td>
</tr>
<tr>
<td>Flashback Database</td>
<td>enq: FD &#8211; Restore point create/drop</td>
<td>Synchronization</td>
</tr>
<tr>
<td>Flashback Database</td>
<td>enq: FD &#8211; Tablespace flashback on/off</td>
<td>Synchronization</td>
</tr>
<tr>
<td>KTFA Recovery</td>
<td>enq: FE &#8211; contention</td>
<td>Serializes flashback archive recovery</td>
</tr>
<tr>
<td>ACD Relocation Gate Enqueue</td>
<td>enq: FG &#8211; FG redo generation enq race</td>
<td>resolve race condition to acquire Disk Group Redo Generation Enqueue</td>
</tr>
<tr>
<td>ACD Relocation Gate Enqueue</td>
<td>enq: FG &#8211; LGWR redo generation enq race</td>
<td>resolve race condition to acquire Disk Group Redo Generation Enqueue</td>
</tr>
<tr>
<td>ACD Relocation Gate Enqueue</td>
<td>enq: FG &#8211; serialize ACD relocate</td>
<td>only 1 process in the cluster may do ACD relocation in a disk group</td>
</tr>
<tr>
<td>Flashback database log</td>
<td>enq: FL &#8211; Flashback database log</td>
<td>Synchronization</td>
</tr>
<tr>
<td>Flashback database log</td>
<td>enq: FL &#8211; Flashback db command</td>
<td>Enqueue used to synchronize Flashback Database and and deletion of flashback logs.</td>
</tr>
<tr>
<td>File Mapping</td>
<td>enq: FM &#8211; contention</td>
<td>Synchronizes access to global file mapping state</td>
</tr>
<tr>
<td>File Object</td>
<td>enq: FP &#8211; global fob contention</td>
<td>Synchronizes various File Object(FOB) operations</td>
</tr>
<tr>
<td>Disk Group Recovery</td>
<td>enq: FR &#8211; contention</td>
<td>begin recovery of disk group</td>
</tr>
<tr>
<td>Disk Group Recovery</td>
<td>enq: FR &#8211; recover the thread</td>
<td>wait for lock domain detach</td>
</tr>
<tr>
<td>Disk Group Recovery</td>
<td>enq: FR &#8211; use the thread</td>
<td>indicate this ACD thread is alive</td>
</tr>
<tr>
<td>File Set / Dictionary Check</td>
<td>enq: FS &#8211; contention</td>
<td>Enqueue used to synchronize recovery and file operations or synchronize dictionary check</td>
</tr>
<tr>
<td>Disk Group Redo Generation</td>
<td>enq: FT &#8211; allow LGWR writes</td>
<td>allow LGWR to generate redo in this thread</td>
</tr>
<tr>
<td>Disk Group Redo Generation</td>
<td>enq: FT &#8211; disable LGWR writes</td>
<td>prevent LGWR from generating redo in this thread</td>
</tr>
<tr>
<td>DBFUS</td>
<td>enq: FU &#8211; contention</td>
<td>This enqueue is used to serialize the capture of the DB Feature           Usage and High Water Mark Statistics</td>
</tr>
<tr>
<td>ACD Xtnt Info CIC</td>
<td>enq: FX &#8211; issue ACD Xtnt Relocation CIC</td>
<td>ARB relocates ACD extent</td>
</tr>
<tr>
<td>ASM Disk Header</td>
<td>enq: HD &#8211; contention</td>
<td>Serializes accesses to ASM SGA data structures</td>
</tr>
<tr>
<td>Queue Page</td>
<td>enq: HP &#8211; contention</td>
<td>Synchronizes accesses to queue pages</td>
</tr>
<tr>
<td>Hash Queue</td>
<td>enq: HQ &#8211; contention</td>
<td>Synchronizes the creation of new queue IDs</td>
</tr>
<tr>
<td>Direct Loader High Water Mark</td>
<td>enq: HV &#8211; contention</td>
<td>Lock used to broker the high water mark during parallel inserts</td>
</tr>
<tr>
<td>Segment High Water Mark</td>
<td>enq: HW &#8211; contention</td>
<td>Lock used to broker the high water mark during parallel inserts</td>
</tr>
<tr>
<td>Internal</td>
<td>enq: IA &#8211; contention</td>
<td></td>
</tr>
<tr>
<td>NID</td>
<td>enq: ID &#8211; contention</td>
<td>Lock held to prevent other processes from performing controlfile transaction while NID is running</td>
</tr>
<tr>
<td>Label Security</td>
<td>enq: IL &#8211; contention</td>
<td>Synchronizes accesses to internal label data structures</td>
</tr>
<tr>
<td>Kti blr lock</td>
<td>enq: IM &#8211; contention for blr</td>
<td>Serializes block recovery for IMU txn</td>
</tr>
<tr>
<td>Instance Recovery</td>
<td>enq: IR &#8211; contention</td>
<td>Synchronizes instance recovery</td>
</tr>
<tr>
<td>Instance Recovery</td>
<td>enq: IR &#8211; contention2</td>
<td>Synchronizes parallel instance recovery and shutdown immediate</td>
</tr>
<tr>
<td>Instance State</td>
<td>enq: IS &#8211; contention</td>
<td>Enqueue used to synchronize instance state changes</td>
</tr>
<tr>
<td>In-Mem Temp Table Meta Creation</td>
<td>enq: IT &#8211; contention</td>
<td>Synchronizes accesses to a temp object&#8217;s metadata</td>
</tr>
<tr>
<td>Job Queue Date</td>
<td>enq: JD &#8211; contention</td>
<td>Synchronizes dates between job queue coordinator and slave processes</td>
</tr>
<tr>
<td>Materialized View</td>
<td>enq: JI &#8211; contention</td>
<td>Lock held during materialized view operations (like refresh, alter) to prevent concurrent operations on the same materialized view</td>
</tr>
<tr>
<td>Job Queue</td>
<td>enq: JQ &#8211; contention</td>
<td>Lock to prevent multiple instances from running a single job</td>
</tr>
<tr>
<td>Job Scheduler</td>
<td>enq: JS &#8211; aq sync</td>
<td>Scheduler evt code and AQ sync</td>
</tr>
<tr>
<td>Job Scheduler</td>
<td>enq: JS &#8211; contention</td>
<td>Synchronizes accesses to the job cache</td>
</tr>
<tr>
<td>Job Scheduler</td>
<td>enq: JS &#8211; evt notify</td>
<td>Lock got during event notification</td>
</tr>
<tr>
<td>Job Scheduler</td>
<td>enq: JS &#8211; evtsub add</td>
<td>Lock got when adding subscriber to event q</td>
</tr>
<tr>
<td>Job Scheduler</td>
<td>enq: JS &#8211; evtsub drop</td>
<td>Lock got when dropping subscriber to event q</td>
</tr>
<tr>
<td>Job Scheduler</td>
<td>enq: JS &#8211; job recov lock</td>
<td>Lock to recover jobs running on crashed RAC inst</td>
</tr>
<tr>
<td>Job Scheduler</td>
<td>enq: JS &#8211; job run lock &#8211; synchronize</td>
<td>Lock to prevent job from running elsewhere</td>
</tr>
<tr>
<td>Job Scheduler</td>
<td>enq: JS &#8211; q mem clnup lck</td>
<td>Lock obtained when cleaning up q memory</td>
</tr>
<tr>
<td>Job Scheduler</td>
<td>enq: JS &#8211; queue lock</td>
<td>Lock on internal scheduler queue</td>
</tr>
<tr>
<td>Job Scheduler</td>
<td>enq: JS &#8211; sch locl enqs</td>
<td>Scheduler non-global enqueues</td>
</tr>
<tr>
<td>Job Scheduler</td>
<td>enq: JS &#8211; wdw op</td>
<td>Lock got when doing window open/close</td>
</tr>
<tr>
<td>SQL STATEMENT QUEUE</td>
<td>enq: JX &#8211; SQL statement queue</td>
<td>statement</td>
</tr>
<tr>
<td>SQL STATEMENT QUEUE</td>
<td>enq: JX &#8211; cleanup of  queue</td>
<td>release SQL statement resources</td>
</tr>
<tr>
<td>Scheduler Master DBRM</td>
<td>enq: KD &#8211; determine DBRM master</td>
<td>Determine DBRM master</td>
</tr>
<tr>
<td>Scheduler</td>
<td>enq: KM &#8211; contention</td>
<td>Synchronizes various Resource Manager operations</td>
</tr>
<tr>
<td>Multiple Object Checkpoint</td>
<td>enq: KO &#8211; fast object checkpoint</td>
<td>Coordinates fast object checkpoint</td>
</tr>
<tr>
<td>Kupp Process Startup</td>
<td>enq: KP &#8211; contention</td>
<td>Synchronizes kupp process startup</td>
</tr>
<tr>
<td>ASM Attributes Enque</td>
<td>enq: KQ &#8211; access ASM attribute</td>
<td>Synchronization of ASM cached attributes</td>
</tr>
<tr>
<td>Scheduler Plan</td>
<td>enq: KT &#8211; contention</td>
<td>Synchronizes accesses to the current Resource Manager plan</td>
</tr>
<tr>
<td>Materialized View Log DDL</td>
<td>enq: MD &#8211; contention</td>
<td>Lock held during materialized view log DDL statements</td>
</tr>
<tr>
<td>AQ Notification Mail Host</td>
<td>enq: MH &#8211; contention</td>
<td>Lock used for recovery when setting Mail Host for AQ e-mail notifications</td>
</tr>
<tr>
<td>Master Key</td>
<td>enq: MK &#8211; contention</td>
<td>changing values in enc$</td>
</tr>
<tr>
<td>AQ Notification Mail Port</td>
<td>enq: ML &#8211; contention</td>
<td>Lock used for recovery when setting Mail Port for AQ e-mail notifications</td>
</tr>
<tr>
<td>LogMiner</td>
<td>enq: MN &#8211; contention</td>
<td>Synchronizes updates to the LogMiner dictionary and prevents multiple instances from preparing the same LogMiner session</td>
</tr>
<tr>
<td>MMON restricted session</td>
<td>enq: MO &#8211; contention</td>
<td>Serialize MMON operations for restricted sessions</td>
</tr>
<tr>
<td>Media Recovery</td>
<td>enq: MR &#8211; contention</td>
<td>Lock used to coordinate media recovery with other uses of datafiles</td>
</tr>
<tr>
<td>Media Recovery</td>
<td>enq: MR &#8211; standby role transition</td>
<td>Lock used to disallow concurrent standby role transition attempt</td>
</tr>
<tr>
<td>Materialized View Refresh Log</td>
<td>enq: MS &#8211; contention</td>
<td>Lock held during materialized view refresh to setup MV log</td>
</tr>
<tr>
<td>Online Datafile Move</td>
<td>enq: MV &#8211; datafile move</td>
<td>Held during online datafile move operation or cleanup</td>
</tr>
<tr>
<td>MWIN Schedule</td>
<td>enq: MW &#8211; contention</td>
<td>This enqueue is used to serialize the calibration of the           manageability schedules with the Maintenance Window</td>
</tr>
<tr>
<td>ksz synch</td>
<td>enq: MX &#8211; sync storage server info</td>
<td>Lock held to generate a response to the storage server information request when an instance is starting up</td>
</tr>
<tr>
<td>Outline Cache</td>
<td>enq: OC &#8211; contention</td>
<td>Synchronizes write accesses to the outline cache</td>
</tr>
<tr>
<td>Online DDLs</td>
<td>enq: OD &#8211; Serializing DDLs</td>
<td>Lock to prevent concurrent online DDLs</td>
</tr>
<tr>
<td>Outline Name</td>
<td>enq: OL &#8211; contention</td>
<td>Synchronizes accesses to a particular outline name</td>
</tr>
<tr>
<td>OLAPI Histories</td>
<td>enq: OQ &#8211; xsoq*histrecb</td>
<td>Synchronizes access to olapi history parameter CB</td>
</tr>
<tr>
<td>OLAPI Histories</td>
<td>enq: OQ &#8211; xsoqhiAlloc</td>
<td>Synchronizes access to olapi history allocation</td>
</tr>
<tr>
<td>OLAPI Histories</td>
<td>enq: OQ &#8211; xsoqhiClose</td>
<td>Synchronizes access to olapi history closing</td>
</tr>
<tr>
<td>OLAPI Histories</td>
<td>enq: OQ &#8211; xsoqhiFlush</td>
<td>Synchronizes access to olapi history flushing</td>
</tr>
<tr>
<td>OLAPI Histories</td>
<td>enq: OQ &#8211; xsoqhistrecb</td>
<td>Synchronizes access to olapi history globals</td>
</tr>
<tr>
<td>Encryption Wallet</td>
<td>enq: OW &#8211; initialization</td>
<td>initializing the wallet context</td>
</tr>
<tr>
<td>Encryption Wallet</td>
<td>enq: OW &#8211; termination</td>
<td>terminate the wallet context</td>
</tr>
<tr>
<td>Property Lock</td>
<td>enq: PD &#8211; contention</td>
<td>Prevents others from updating the same property</td>
</tr>
<tr>
<td>Parameter</td>
<td>enq: PE &#8211; contention</td>
<td>Synchronizes system parameter updates</td>
</tr>
<tr>
<td>Password File</td>
<td>enq: PF &#8211; contention</td>
<td>Synchronizes accesses to the password file</td>
</tr>
<tr>
<td>Global Parameter</td>
<td>enq: PG &#8211; contention</td>
<td>Synchronizes global system parameter updates</td>
</tr>
<tr>
<td>AQ Notification Proxy</td>
<td>enq: PH &#8211; contention</td>
<td>Lock used for recovery when setting Proxy for AQ HTTP notifications</td>
</tr>
<tr>
<td>Remote PX Process Spawn Status</td>
<td>enq: PI &#8211; contention</td>
<td>Communicates remote Parallel Execution Server Process creation status</td>
</tr>
<tr>
<td>Transportable Tablespace</td>
<td>enq: PL &#8211; contention</td>
<td>Coordinates plug-in operation of transportable tablespaces</td>
</tr>
<tr>
<td>Process Startup</td>
<td>enq: PR &#8211; contention</td>
<td>Synchronizes process startup</td>
</tr>
<tr>
<td>PX Process Reservation</td>
<td>enq: PS &#8211; contention</td>
<td>Parallel Execution Server Process reservation and synchronization</td>
</tr>
<tr>
<td>ASM Partnership and Status Table</td>
<td>enq: PT &#8211; contention</td>
<td>Synchronizes access to ASM PST metadata</td>
</tr>
<tr>
<td>KSV slave startup</td>
<td>enq: PV &#8211; syncshut</td>
<td>Synchronizes instance shutdown_slvstart</td>
</tr>
<tr>
<td>KSV slave startup</td>
<td>enq: PV &#8211; syncstart</td>
<td>Synchronizes slave start_shutdown</td>
</tr>
<tr>
<td>Buffer Cache PreWarm</td>
<td>enq: PW &#8211; flush prewarm buffers</td>
<td>Direct Load needs to flush prewarmed buffers if DBWR 0 holds enqueue</td>
</tr>
<tr>
<td>Buffer Cache PreWarm</td>
<td>enq: PW &#8211; perwarm status in dbw0</td>
<td>DBWR 0 holds enqueue indicating prewarmed buffers present in cache</td>
</tr>
<tr>
<td>ASM Rollback Recovery</td>
<td>enq: RB &#8211; contention</td>
<td>Serializes ASM rollback recovery operations</td>
</tr>
<tr>
<td>Result Cache: Enqueue</td>
<td>enq: RC &#8211; Result Cache: Contention</td>
<td>Coordinates access to a result-set</td>
</tr>
<tr>
<td>RAC Load</td>
<td>enq: RD &#8211; RAC load</td>
<td>update RAC load info</td>
</tr>
<tr>
<td>Block Repair/Resilvering</td>
<td>enq: RE &#8211; block repair contention</td>
<td>Synchronize block repair/resilvering operations</td>
</tr>
<tr>
<td>Data Guard Broker</td>
<td>enq: RF &#8211; DG Broker Current File ID</td>
<td>Identifies which configuration metadata file is current</td>
</tr>
<tr>
<td>Data Guard Broker</td>
<td>enq: RF &#8211; FSFO Observer Heartbeat</td>
<td>Captures recent Fast-Start Failover Observer heartbeat information</td>
</tr>
<tr>
<td>Data Guard Broker</td>
<td>enq: RF &#8211; RF &#8211; Database Automatic Disable</td>
<td>Means for detecting when database is being automatically disabled</td>
</tr>
<tr>
<td>Data Guard Broker</td>
<td>enq: RF &#8211; atomicity</td>
<td>Ensures atomicity of log transport setup</td>
</tr>
<tr>
<td>Data Guard Broker</td>
<td>enq: RF &#8211; new AI</td>
<td>Synchronizes selection of the new apply instance</td>
</tr>
<tr>
<td>Data Guard Broker</td>
<td>enq: RF &#8211; synch: DG Broker metadata</td>
<td>Ensures r/w atomicity of DG configuration metadata</td>
</tr>
<tr>
<td>Data Guard Broker</td>
<td>enq: RF &#8211; synchronization: aifo master</td>
<td>Synchronizes apply instance failure detection and failover operation</td>
</tr>
<tr>
<td>Data Guard Broker</td>
<td>enq: RF &#8211; synchronization: critical ai</td>
<td>Synchronizes critical apply instance among primary instances</td>
</tr>
<tr>
<td>wallet_set_mkey</td>
<td>enq: RK &#8211; set key</td>
<td>wallet master key rekey</td>
</tr>
<tr>
<td>RAC Encryption Wallet Lock</td>
<td>enq: RL &#8211; RAC wallet lock</td>
<td>RAC wallet lock</td>
</tr>
<tr>
<td>Redo Log Nab Computation</td>
<td>enq: RN &#8211; contention</td>
<td>Coordinates nab computations of online logs during recovery</td>
</tr>
<tr>
<td>Multiple Object Reuse</td>
<td>enq: RO &#8211; contention</td>
<td>Coordinates flushing of multiple objects</td>
</tr>
<tr>
<td>Multiple Object Reuse</td>
<td>enq: RO &#8211; fast object reuse</td>
<td>Coordinates fast object reuse</td>
</tr>
<tr>
<td>Resilver / Repair</td>
<td>enq: RP &#8211; contention</td>
<td>Enqueue held when resilvering is needed or when datablock is repaired from mirror</td>
</tr>
<tr>
<td>Workload Capture and Replay</td>
<td>enq: RR &#8211; contention</td>
<td>Concurrent invocation of DBMS_WORKLOAD_* package API</td>
</tr>
<tr>
<td>Reclaimable Space</td>
<td>enq: RS &#8211; file delete</td>
<td>Lock held to prevent file from accessing during space reclaimation</td>
</tr>
<tr>
<td>Reclaimable Space</td>
<td>enq: RS &#8211; persist alert level</td>
<td>Lock held to make alert level persistent</td>
</tr>
<tr>
<td>Reclaimable Space</td>
<td>enq: RS &#8211; prevent aging list update</td>
<td>Lock held to prevent aging list update</td>
</tr>
<tr>
<td>Reclaimable Space</td>
<td>enq: RS &#8211; prevent file delete</td>
<td>Lock held to prevent deleting file to reclaim space</td>
</tr>
<tr>
<td>Reclaimable Space</td>
<td>enq: RS &#8211; read alert level</td>
<td>Lock held to read alert level</td>
</tr>
<tr>
<td>Reclaimable Space</td>
<td>enq: RS &#8211; record reuse</td>
<td>Lock held to prevent file from accessing while reusing circular record</td>
</tr>
<tr>
<td>Reclaimable Space</td>
<td>enq: RS &#8211; write alert level</td>
<td>Lock held to write alert level</td>
</tr>
<tr>
<td>Redo Thread</td>
<td>enq: RT &#8211; contention</td>
<td>Thread locks held by LGWR, DBW0, and RVWR to indicate mounted or open status</td>
</tr>
<tr>
<td>Redo Thread</td>
<td>enq: RT &#8211; thread internal enable/disable</td>
<td>Thread locks held by CKPT to synchronize thread enable and disable</td>
</tr>
<tr>
<td>Rolling Migration</td>
<td>enq: RU &#8211; contention</td>
<td>Serializes rolling migration operations</td>
</tr>
<tr>
<td>Rolling Migration</td>
<td>enq: RU &#8211; waiting</td>
<td>Results of rolling migration CIC</td>
</tr>
<tr>
<td>Materialized View Flags</td>
<td>enq: RW &#8211; MV metadata contention</td>
<td>Lock held by CREATE/ALTER/DROP materialized viewwhile updating materialized view flags in detail tables</td>
</tr>
<tr>
<td>ASM Extent Relocation Lock</td>
<td>enq: RX &#8211; relocate extent</td>
<td>Synchronizes relocating ASM extents</td>
</tr>
<tr>
<td>LogicalStandby</td>
<td>enq: SB &#8211; contention</td>
<td>Synchronizes Logical Standby metadata operations</td>
</tr>
<tr>
<td>Session Migration</td>
<td>enq: SE &#8211; contention</td>
<td>Synchronizes transparent session migration operations</td>
</tr>
<tr>
<td>AQ Notification Sender</td>
<td>enq: SF &#8211; contention</td>
<td>Lock used for recovery when setting Sender for AQ e-mail notifications</td>
</tr>
<tr>
<td>Active Session History Flushing</td>
<td>enq: SH &#8211; contention</td>
<td>Should seldom see this contention as this Enqueue is always  acquired in no-wait mode</td>
</tr>
<tr>
<td>Streams Table Instantiation</td>
<td>enq: SI &#8211; contention</td>
<td>Prevents multiple streams tabel instantiations</td>
</tr>
<tr>
<td>KTSJ Slave Task Cancel</td>
<td>enq: SJ &#8211; Slave Task Cancel</td>
<td>Serializes cancelling task executed by slave process</td>
</tr>
<tr>
<td>Shrink Segment</td>
<td>enq: SK &#8211; contention</td>
<td>Serialize shrink of a segment</td>
</tr>
<tr>
<td>Serialize Lock request</td>
<td>enq: SL &#8211; escalate lock</td>
<td>sending lock escalate to LCK0</td>
</tr>
<tr>
<td>Serialize Lock request</td>
<td>enq: SL &#8211; get lock</td>
<td>sending lock req to LCK0</td>
</tr>
<tr>
<td>Serialize Lock request</td>
<td>enq: SL &#8211; get lock for undo</td>
<td>sending lock req for undo to LCK0</td>
</tr>
<tr>
<td>Shared Object</td>
<td>enq: SO &#8211; contention</td>
<td>Synchronizes access to Shared Object (PL/SQL Shared Object Manager)</td>
</tr>
<tr>
<td>Spare Enqueue</td>
<td>enq: SP &#8211; contention</td>
<td>(1) due to one-off patch</td>
</tr>
<tr>
<td>Spare Enqueue</td>
<td>enq: SP &#8211; contention 2</td>
<td>(2) due to one-off patch</td>
</tr>
<tr>
<td>Spare Enqueue</td>
<td>enq: SP &#8211; contention 3</td>
<td>(3) due to one-off patch</td>
</tr>
<tr>
<td>Spare Enqueue</td>
<td>enq: SP &#8211; contention 4</td>
<td>(4) due to one-off patch</td>
</tr>
<tr>
<td>Sequence Cache</td>
<td>enq: SQ &#8211; contention</td>
<td>Lock to ensure that only one process can replenish the sequence cache</td>
</tr>
<tr>
<td>Synchronized Replication</td>
<td>enq: SR &#8211; contention</td>
<td>Coordinates replication / streams operations</td>
</tr>
<tr>
<td>Sort Segment</td>
<td>enq: SS &#8211; contention</td>
<td>Ensures that sort segments created during parallel DML operations aren&#8217;t prematurely cleaned up</td>
</tr>
<tr>
<td>Space Transaction</td>
<td>enq: ST &#8211; contention</td>
<td>Synchronizes space management activities in dictionary-managed tablespaces</td>
</tr>
<tr>
<td>SaveUndo Segment</td>
<td>enq: SU &#8211; contention</td>
<td>Serializes access to SaveUndo Segment</td>
</tr>
<tr>
<td>Suspend Writes</td>
<td>enq: SW &#8211; contention</td>
<td>Coordinates the &#8216;alter system suspend&#8217; operation</td>
</tr>
<tr>
<td>Instance Undo</td>
<td>enq: TA &#8211; contention</td>
<td>Serializes operations on undo segments and undo tablespaces</td>
</tr>
<tr>
<td>SQL Tuning Base Existence Cache</td>
<td>enq: TB &#8211; SQL Tuning Base Cache Load</td>
<td>Synchronizes writes to the SQL Tuning Base Existence Cache</td>
</tr>
<tr>
<td>SQL Tuning Base Existence Cache</td>
<td>enq: TB &#8211; SQL Tuning Base Cache Update</td>
<td>Synchronizes writes to the SQL Tuning Base Existence Cache</td>
</tr>
<tr>
<td>Tablespace Checkpoint</td>
<td>enq: TC &#8211; contention</td>
<td>Lock held to guarantee uniqueness of a tablespace checkpoint</td>
</tr>
<tr>
<td>Tablespace Checkpoint</td>
<td>enq: TC &#8211; contention2</td>
<td>Lock of setup of a unqiue tablespace checkpoint in null mode</td>
</tr>
<tr>
<td>KTF map table enqueue</td>
<td>enq: TD &#8211; KTF dump entries</td>
<td>KTF dumping time/scn mappings in SMON_SCN_TIME table</td>
</tr>
<tr>
<td>KTF broadcast</td>
<td>enq: TE &#8211; KTF broadcast</td>
<td>KTF broadcasting</td>
</tr>
<tr>
<td>Temporary File</td>
<td>enq: TF &#8211; contention</td>
<td>Serializes dropping of a temporary file</td>
</tr>
<tr>
<td>Threshold Chain</td>
<td>enq: TH &#8211; metric threshold evaluation</td>
<td>Serializes threshold in-memory chain access</td>
</tr>
<tr>
<td>Auto Task Serialization</td>
<td>enq: TK &#8211; Auto Task Serialization</td>
<td>Lock held by MMON to prevent other MMON spawning of Autotask Slave</td>
</tr>
<tr>
<td>Auto Task Serialization</td>
<td>enq: TK &#8211; Auto Task Slave Lockout</td>
<td>Serializes spawned Autotask Slaves</td>
</tr>
<tr>
<td>Log Lock</td>
<td>enq: TL &#8211; contention</td>
<td>Serializes threshold log table read and update</td>
</tr>
<tr>
<td>DML</td>
<td>enq: TM &#8211; contention</td>
<td>Synchronizes accesses to an object</td>
</tr>
<tr>
<td>Temp Object</td>
<td>enq: TO &#8211; contention</td>
<td>Synchronizes DDL and DML operations on a temp object</td>
</tr>
<tr>
<td>Runtime Fixed Table Purge</td>
<td>enq: TP &#8211; contention</td>
<td>Lock held during purge and dynamic reconfiguration of fixed tables.</td>
</tr>
<tr>
<td>Queue table enqueue</td>
<td>enq: TQ &#8211; DDL contention</td>
<td>TM access to the queue table</td>
</tr>
<tr>
<td>Queue table enqueue</td>
<td>enq: TQ &#8211; DDL-INI contention</td>
<td>Streams DDL on queue table</td>
</tr>
<tr>
<td>Queue table enqueue</td>
<td>enq: TQ &#8211; INI contention</td>
<td>TM access to the queue table</td>
</tr>
<tr>
<td>Queue table enqueue</td>
<td>enq: TQ &#8211; TM contention</td>
<td>TM access to the queue table</td>
</tr>
<tr>
<td>Temporary Segment</td>
<td>enq: TS &#8211; contention</td>
<td>Serializes accesses to temp segments</td>
</tr>
<tr>
<td>Tablespace</td>
<td>enq: TT &#8211; contention</td>
<td>Serializes DDL operations on tablespaces</td>
</tr>
<tr>
<td>Cross-Instance Transaction</td>
<td>enq: TW &#8211; contention</td>
<td>Lock held by one instance to wait for transactions on all instances to finish</td>
</tr>
<tr>
<td>Transaction</td>
<td>enq: TX &#8211; allocate ITL entry</td>
<td>Allocating an ITL entry in order to begin a transaction</td>
</tr>
<tr>
<td>Transaction</td>
<td>enq: TX &#8211; contention</td>
<td>Lock held by a transaction to allow other transactions to wait for it</td>
</tr>
<tr>
<td>Transaction</td>
<td>enq: TX &#8211; index contention</td>
<td>Lock held on an index during a split to prevent other operations on it</td>
</tr>
<tr>
<td>Transaction</td>
<td>enq: TX &#8211; row lock contention</td>
<td>Lock held on a particular row by a transaction to prevent other transactions from modifying it</td>
</tr>
<tr>
<td>User-defined</td>
<td>enq: UL &#8211; contention</td>
<td>Lock used by user applications</td>
</tr>
<tr>
<td>Undo Segment</td>
<td>enq: US &#8211; contention</td>
<td>Lock held to perform DDL on the undo segment</td>
</tr>
<tr>
<td>AQ Notification Watermark</td>
<td>enq: WA &#8211; contention</td>
<td>Lock used for recovery when setting Watermark for memory usage in AQ notifications</td>
</tr>
<tr>
<td>AWR Flush</td>
<td>enq: WF &#8211; contention</td>
<td>This enqueue is used to serialize the flushing of snapshots</td>
</tr>
<tr>
<td>Write gather local enqueue</td>
<td>enq: WG &#8211; delete fso</td>
<td>acquire lobid local enqueue when deleting fso</td>
</tr>
<tr>
<td>Write gather local enqueue</td>
<td>enq: WG &#8211; lock fso</td>
<td>acquire lobid local enqueue when locking fso</td>
</tr>
<tr>
<td>Being Written Redo Log</td>
<td>enq: WL &#8211; RAC-wide SGA contention</td>
<td>Serialize access to RAC-wide SGA</td>
</tr>
<tr>
<td>Being Written Redo Log</td>
<td>enq: WL &#8211; RFS global state contention</td>
<td>Serialize access to RFS global state</td>
</tr>
<tr>
<td>Being Written Redo Log</td>
<td>enq: WL &#8211; Test access/locking</td>
<td>Testing redo transport access/locking</td>
</tr>
<tr>
<td>Being Written Redo Log</td>
<td>enq: WL &#8211; contention</td>
<td>Coordinates access to redo log files and archive logs</td>
</tr>
<tr>
<td>WLM Plan Operations</td>
<td>enq: WM &#8211; WLM Plan activation</td>
<td>Synchronizes new WLM Plan activation</td>
</tr>
<tr>
<td>AWR Purge</td>
<td>enq: WP &#8211; contention</td>
<td>This enqueue handles concurrency between purging and baselines</td>
</tr>
<tr>
<td>LNS archiving log</td>
<td>enq: WR &#8211; contention</td>
<td>Coordinates access to logs by Async LNS and ARCH/FG</td>
</tr>
<tr>
<td>XDB Configuration</td>
<td>enq: XC &#8211; XDB Configuration</td>
<td>Lock obtained when incrementing XDB configuration version number</td>
</tr>
<tr>
<td>Auto Online Exadata disks</td>
<td>enq: XD &#8211; ASM disk drop/add</td>
<td>Serialize Auto Drop/Add Exadata disk operations</td>
</tr>
<tr>
<td>AQ Notification No-Proxy</td>
<td>enq: XH &#8211; contention</td>
<td>Lock used for recovery when setting No Proxy Domains for AQ HTTP notifications</td>
</tr>
<tr>
<td>ASM Extent Fault Lock</td>
<td>enq: XL &#8211; fault extent map</td>
<td>Keep multiple processes from faulting in the same extent chunk</td>
</tr>
<tr>
<td>ASM Extent Relocation Enqueue</td>
<td>enq: XQ &#8211; purification</td>
<td>wait for relocation before doing block purification</td>
</tr>
<tr>
<td>ASM Extent Relocation Enqueue</td>
<td>enq: XQ &#8211; recovery</td>
<td>prevent relocation during _recovery_asserts checking</td>
</tr>
<tr>
<td>ASM Extent Relocation Enqueue</td>
<td>enq: XQ &#8211; relocation</td>
<td>wait for recovery before doing relocation</td>
</tr>
<tr>
<td>Quiesce / Force Logging</td>
<td>enq: XR &#8211; database force logging</td>
<td>Lock held during database force logging mode</td>
</tr>
<tr>
<td>Quiesce / Force Logging</td>
<td>enq: XR &#8211; quiesce database</td>
<td>Lock held during database quiesce</td>
</tr>
<tr>
<td>Internal Test</td>
<td>enq: XY &#8211; contention</td>
<td>Lock used for internal testing</td>
</tr>
<tr>
<td>Audit Partition</td>
<td>enq: ZA &#8211; add std audit table partition</td>
<td>lock held to add partition to std audit table</td>
</tr>
<tr>
<td>FGA Partition</td>
<td>enq: ZF &#8211; add fga audit table partition</td>
<td>lock held to add partition to fga audit table</td>
</tr>
<tr>
<td>File Group</td>
<td>enq: ZG &#8211; contention</td>
<td>Coordinates file group operations</td>
</tr>
<tr>
<td>Compression Analyzer</td>
<td>enq: ZH &#8211; compression analysis</td>
<td>Synchronizes analysis and insert into compression$, prevents multiple threads analyzing the same table during a load</td>
</tr>
<tr>
<td>Global Context Action</td>
<td>enq: ZZ &#8211; update hash tables</td>
<td>lock held for updating global context hash tables</td>
</tr>
</tbody>
</table>
<p>For those who made it all to the bottom here a little extra:</p>
<p>While I just found the enqueue waits for 10g on the internet I managed to find out how to retrieve that information. And believe it or not &#8211; it&#8217;s available just over a simple query:</p>
<p><pre class="brush: sql;">
SELECT eq_name &quot;Group&quot;, ev.name &quot;Enqueue Type&quot;, eq.req_description &quot;Description&quot;
 FROM v$enqueue_statistics eq, v$event_name ev
 WHERE eq.event#=ev.event#
 ORDER BY ev.name;
</pre></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/venzi.wordpress.com/647/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/venzi.wordpress.com/647/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/venzi.wordpress.com/647/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/venzi.wordpress.com/647/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/venzi.wordpress.com/647/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/venzi.wordpress.com/647/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/venzi.wordpress.com/647/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/venzi.wordpress.com/647/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/venzi.wordpress.com/647/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/venzi.wordpress.com/647/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/venzi.wordpress.com/647/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/venzi.wordpress.com/647/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/venzi.wordpress.com/647/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/venzi.wordpress.com/647/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=venzi.wordpress.com&amp;blog=1622936&amp;post=647&amp;subd=venzi&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://venzi.wordpress.com/2010/12/10/oracle-11gr2-enqueue-waits/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/05428fed193ab92e74a96db995922bbc?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Venzi</media:title>
		</media:content>
	</item>
		<item>
		<title>Ask Tom search engine</title>
		<link>http://venzi.wordpress.com/2010/11/29/ask-tom-search-engine/</link>
		<comments>http://venzi.wordpress.com/2010/11/29/ask-tom-search-engine/#comments</comments>
		<pubDate>Mon, 29 Nov 2010 23:09:57 +0000</pubDate>
		<dc:creator>Venzi</dc:creator>
				<category><![CDATA[Oracle]]></category>

		<guid isPermaLink="false">http://venzi.wordpress.com/?p=626</guid>
		<description><![CDATA[Today my boss asked me if I know how to fix the search engine for FireFox for AskTom.oracle.com since Tom Kyte has moved it to APEX. Actually I didn&#8217;t have the search engine even installed anymore (hope that means that I&#8217;m already so good with Oracle myself ) but thought that it would be nice [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=venzi.wordpress.com&amp;blog=1622936&amp;post=626&amp;subd=venzi&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Today my boss asked me if I know how to fix the search engine for FireFox for <a title="Ask Tom" href="http://asktom.oracle.com" target="_blank">AskTom.oracle.com</a> since Tom Kyte has moved it to APEX. Actually I didn&#8217;t have the search engine even installed anymore (hope that means that I&#8217;m already so good with Oracle myself <img src='http://s1.wp.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  ) but thought that it would be nice to have it again.</p>
<p>Therefore I quickly build the search engine for the new Ask Tom site.</p>
<p>To install it, download this file by right-clicking on it and choosing &#8220;Save Link As&#8221;:</p>
<p><a title="Search Engine installer" href="http://venzi.files.wordpress.com/2010/11/searchengineinstaller.png">SearchEngineInstaller.png</a></p>
<p>Unfortunately &#8211; or better fortunately &#8211; WordPress doesn&#8217;t allow Javascript within posts nor xml files as media. Therefore I have to work with faked png files here.<br />
After you download the file rename it to &#8220;SearchEngineInstaller.html&#8221; and open the file in your browser.<br />
Then click on &#8220;Install Ask Tom search engine&#8221;, install the engine and &#8220;Mission accomplished&#8221;!</p>
<p>If you are interested in the &#8220;code&#8221; you can download the search engine file here: <a title="Ask Tom Search Engine" href="http://venzi.files.wordpress.com/2010/11/asktomsearchengine.png">AskTomSearchEngine.png</a><br />
Again with right click and &#8220;Save Link As&#8221;. Then rename it to &#8220;AskTomSearchEngine.xml&#8221;</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/venzi.wordpress.com/626/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/venzi.wordpress.com/626/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/venzi.wordpress.com/626/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/venzi.wordpress.com/626/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/venzi.wordpress.com/626/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/venzi.wordpress.com/626/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/venzi.wordpress.com/626/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/venzi.wordpress.com/626/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/venzi.wordpress.com/626/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/venzi.wordpress.com/626/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/venzi.wordpress.com/626/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/venzi.wordpress.com/626/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/venzi.wordpress.com/626/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/venzi.wordpress.com/626/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=venzi.wordpress.com&amp;blog=1622936&amp;post=626&amp;subd=venzi&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://venzi.wordpress.com/2010/11/29/ask-tom-search-engine/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/05428fed193ab92e74a96db995922bbc?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Venzi</media:title>
		</media:content>
	</item>
		<item>
		<title>A few facts about TimesTen</title>
		<link>http://venzi.wordpress.com/2010/08/12/a-few-facts-about-timesten/</link>
		<comments>http://venzi.wordpress.com/2010/08/12/a-few-facts-about-timesten/#comments</comments>
		<pubDate>Thu, 12 Aug 2010 20:11:32 +0000</pubDate>
		<dc:creator>Venzi</dc:creator>
				<category><![CDATA[Oracle]]></category>

		<guid isPermaLink="false">http://venzi.wordpress.com/?p=623</guid>
		<description><![CDATA[TimesTen gets usually deployed in the Middle Tier &#8211; same location where the application runs TimesTen is persistent and can run as the only database on a system TimesTen persists to the disk over a background process TimesTen supports High Availability TimesTen can be used as cache between the application and the Oracle database TimesTen [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=venzi.wordpress.com&amp;blog=1622936&amp;post=623&amp;subd=venzi&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<ul>
<li>TimesTen gets usually deployed in the Middle Tier &#8211; same location where the application runs</li>
<li>TimesTen is persistent and can run as the only database on a system</li>
<li>TimesTen persists to the disk over a background process</li>
<li>TimesTen supports High Availability</li>
<li>TimesTen can be used as cache between the application and the Oracle database</li>
<li>TimesTen can be linked into applications directly &#8211; the calls to TimesTen happens over normal subroutine calls in the code which require no context switches on the system</li>
<li>You can cache either a group of related tables or even a subset of specific rows</li>
<li>TimesTen supports read-only and update able caches</li>
<li>TimesTen supports &#8220;DynamicLoad&#8221; which loads the data from Oracle when you need it</li>
<li>You can have as much read-only subscribers as you want</li>
<li>TimesTen supports SQL and PL/SQL</li>
<li>TimesTen is certified on all main application servers and OR-Mapping tools like Hibernate</li>
</ul>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/venzi.wordpress.com/623/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/venzi.wordpress.com/623/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/venzi.wordpress.com/623/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/venzi.wordpress.com/623/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/venzi.wordpress.com/623/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/venzi.wordpress.com/623/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/venzi.wordpress.com/623/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/venzi.wordpress.com/623/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/venzi.wordpress.com/623/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/venzi.wordpress.com/623/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/venzi.wordpress.com/623/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/venzi.wordpress.com/623/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/venzi.wordpress.com/623/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/venzi.wordpress.com/623/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=venzi.wordpress.com&amp;blog=1622936&amp;post=623&amp;subd=venzi&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://venzi.wordpress.com/2010/08/12/a-few-facts-about-timesten/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/05428fed193ab92e74a96db995922bbc?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Venzi</media:title>
		</media:content>
	</item>
	</channel>
</rss>
