<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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/"
		>
<channel>
	<title>Comments on: Enqueue &#8211; is it a PK, FK or Bitmap Index problem?</title>
	<atom:link href="/2012/11/30/enqueue-is-it-a-pk-fk-or-bitmap-index-problem/feed/" rel="self" type="application/rss+xml" />
	<link>http://dboptimizer.com/2012/11/30/enqueue-is-it-a-pk-fk-or-bitmap-index-problem/</link>
	<description>database performance, SQL tuning and data visualizatoin</description>
	<lastBuildDate>Sat, 03 Mar 2018 05:02:37 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.6</generator>
	<item>
		<title>By: coach handbags under $50 ymca</title>
		<link>http://dboptimizer.com/2012/11/30/enqueue-is-it-a-pk-fk-or-bitmap-index-problem/#comment-154104</link>
		<dc:creator>coach handbags under $50 ymca</dc:creator>
		<pubDate>Wed, 16 Aug 2017 18:06:24 +0000</pubDate>
		<guid isPermaLink="false">http://dboptimizer.com/?p=2279#comment-154104</guid>
		<description><![CDATA[I was curious if you ever considered changing the layout of your site? Its very well written; I love what youve got to say. But maybe you could a little more in the way of content so people could connect with it better. Youve got an awful lot of text for only having one or two images. Maybe you could space it out better?]]></description>
		<content:encoded><![CDATA[<p>I was curious if you ever considered changing the layout of your site? Its very well written; I love what youve got to say. But maybe you could a little more in the way of content so people could connect with it better. Youve got an awful lot of text for only having one or two images. Maybe you could space it out better?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Log Buffer #298, A Carnival of the Vanities for DBAs &#124; The Pythian Blog</title>
		<link>http://dboptimizer.com/2012/11/30/enqueue-is-it-a-pk-fk-or-bitmap-index-problem/#comment-10334</link>
		<dc:creator>Log Buffer #298, A Carnival of the Vanities for DBAs &#124; The Pythian Blog</dc:creator>
		<pubDate>Fri, 07 Dec 2012 07:16:52 +0000</pubDate>
		<guid isPermaLink="false">http://dboptimizer.com/?p=2279#comment-10334</guid>
		<description><![CDATA[[...] – is it a PK, FK or Bitmap Index problem? Kyle [...]]]></description>
		<content:encoded><![CDATA[<p>[...] – is it a PK, FK or Bitmap Index problem? Kyle [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Kyle Hailey</title>
		<link>http://dboptimizer.com/2012/11/30/enqueue-is-it-a-pk-fk-or-bitmap-index-problem/#comment-10161</link>
		<dc:creator>Kyle Hailey</dc:creator>
		<pubDate>Mon, 03 Dec 2012 23:30:33 +0000</pubDate>
		<guid isPermaLink="false">http://dboptimizer.com/?p=2279#comment-10161</guid>
		<description><![CDATA[Hi Dominic,

   Yes, there are issues with some fields in ASH not getting cleared out from previous waits which is unfortunate. Some fields such as

 CURRENT_OBJ#       
 CURRENT_FILE#     
 CURRENT_BLOCK#   
 CURRENT_ROW#   

only get populated for certain waits. Those waits are 

 Buffer Busy Waits
 IO Waits
 Enqueue TX

So for example, although it would be tempting to use these for something like &quot;latch: cache buffers chains&quot; it most likely will be misleading and left over from previous waits.

If there is a &quot;-1&quot; in the current object especially withe current file and block being 0, I interpret that as the field actually being successfully cleared out. 
 Since above waits are TX enqueue waits i would expect the data to be dependable but I have found issues as well. For example with buffer busy waits on temporary table space header block, the object number is sometimes filled, when the problem is not a object per say. Here is output form ASH (the query is on ashmasters.com called ash_bbw.sql

Time   P1  P2 OBJN OTYPE FN BLOCKN BLOCK_TYPE
----- --- --- ---- ----- -- ------ -----------------
11:44 202   2 TOTO TABLE  1  60218 file header bloc

The P1 is the file number. This database only had 10 datafiles, so file #202 is a temporary file, not a data file. Temporary datafiles start counting at db_files+tempfile_number. The block type is correct but the CURRENT_OBJ#, CURRENT_FILE# ,  CURRENT_BLOCK#   are all incorrect even though Oracle is suppose to fill these in for buffer busy waits AFAIK. Any know if Oracle clearly documents when CURRENT_OBJ# , CURRENT_FILE#   ,CURRENT_BLOCK#   are suppose to be filled in?
   But the whole point of the above locking examples on index was to show that they have a distinct profile, at least in this version of Oracle, 10.2.0.3, but that due to the nature of ASH and instrumentation changes this profile might be different in different versions.
- Kyle]]></description>
		<content:encoded><![CDATA[<p>Hi Dominic,</p>
<p>   Yes, there are issues with some fields in ASH not getting cleared out from previous waits which is unfortunate. Some fields such as</p>
<p> CURRENT_OBJ#<br />
 CURRENT_FILE#<br />
 CURRENT_BLOCK#<br />
 CURRENT_ROW#   </p>
<p>only get populated for certain waits. Those waits are </p>
<p> Buffer Busy Waits<br />
 IO Waits<br />
 Enqueue TX</p>
<p>So for example, although it would be tempting to use these for something like &#8220;latch: cache buffers chains&#8221; it most likely will be misleading and left over from previous waits.</p>
<p>If there is a &#8220;-1&#8243; in the current object especially withe current file and block being 0, I interpret that as the field actually being successfully cleared out.<br />
 Since above waits are TX enqueue waits i would expect the data to be dependable but I have found issues as well. For example with buffer busy waits on temporary table space header block, the object number is sometimes filled, when the problem is not a object per say. Here is output form ASH (the query is on ashmasters.com called ash_bbw.sql</p>
<p>Time   P1  P2 OBJN OTYPE FN BLOCKN BLOCK_TYPE<br />
&#8212;&#8211; &#8212; &#8212; &#8212;- &#8212;&#8211; &#8212; &#8212;&#8212; &#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
11:44 202   2 TOTO TABLE  1  60218 file header bloc</p>
<p>The P1 is the file number. This database only had 10 datafiles, so file #202 is a temporary file, not a data file. Temporary datafiles start counting at db_files+tempfile_number. The block type is correct but the CURRENT_OBJ#, CURRENT_FILE# ,  CURRENT_BLOCK#   are all incorrect even though Oracle is suppose to fill these in for buffer busy waits AFAIK. Any know if Oracle clearly documents when CURRENT_OBJ# , CURRENT_FILE#   ,CURRENT_BLOCK#   are suppose to be filled in?<br />
   But the whole point of the above locking examples on index was to show that they have a distinct profile, at least in this version of Oracle, 10.2.0.3, but that due to the nature of ASH and instrumentation changes this profile might be different in different versions.<br />
- Kyle</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dominic Brooks</title>
		<link>http://dboptimizer.com/2012/11/30/enqueue-is-it-a-pk-fk-or-bitmap-index-problem/#comment-10083</link>
		<dc:creator>Dominic Brooks</dc:creator>
		<pubDate>Sat, 01 Dec 2012 21:51:03 +0000</pubDate>
		<guid isPermaLink="false">http://dboptimizer.com/?p=2279#comment-10083</guid>
		<description><![CDATA[Kyle,


Nice test cases and observations.

In my experience, isolated tests cases which result in a &quot;-1&quot; for object id will often result in a misleading object id in real-world scenarios because in the test case the &quot;-1&quot; will be something that was not relevantly populated in the run up to the tested scenario whereas often in the real world, the immediately preceding event had an appropriate object id set and just not overwritten. 

Not sure if that description makes as much sense as I&#039;d like it to.
But, for example, I modelled a real-world ETL problem recently here:
https://orastory.wordpress.com/2012/11/02/modelling-a-simple-itl-problem/
where my test case resulted in a &quot;-1&quot; object id but the real world ash capture was just am id from a previous wait that was not overwritten by the itl wait.

Cheers,
Dominic]]></description>
		<content:encoded><![CDATA[<p>Kyle,</p>
<p>Nice test cases and observations.</p>
<p>In my experience, isolated tests cases which result in a &#8220;-1&#8243; for object id will often result in a misleading object id in real-world scenarios because in the test case the &#8220;-1&#8243; will be something that was not relevantly populated in the run up to the tested scenario whereas often in the real world, the immediately preceding event had an appropriate object id set and just not overwritten. </p>
<p>Not sure if that description makes as much sense as I&#8217;d like it to.<br />
But, for example, I modelled a real-world ETL problem recently here:<br />
<a href="https://orastory.wordpress.com/2012/11/02/modelling-a-simple-itl-problem/" rel="nofollow">https://orastory.wordpress.com/2012/11/02/modelling-a-simple-itl-problem/</a><br />
where my test case resulted in a &#8220;-1&#8243; object id but the real world ash capture was just am id from a previous wait that was not overwritten by the itl wait.</p>
<p>Cheers,<br />
Dominic</p>
]]></content:encoded>
	</item>
</channel>
</rss>
