<?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/"
	xmlns:media="http://search.yahoo.com/mrss/"
		>
<channel>
	<title>Comments on: Oracle Undo size: 10g 10.2.0.3 vs 9i 9.2.0.6</title>
	<atom:link href="http://oraclezone.wordpress.com/2007/12/19/oracle-undo-size-10g-10203-vs-9i-9206/feed/" rel="self" type="application/rss+xml" />
	<link>http://oraclezone.wordpress.com/2007/12/19/oracle-undo-size-10g-10203-vs-9i-9206/</link>
	<description>~my references and inferences of Oracle</description>
	<lastBuildDate>Tue, 16 Sep 2008 05:09:44 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Carl Bruneau</title>
		<link>http://oraclezone.wordpress.com/2007/12/19/oracle-undo-size-10g-10203-vs-9i-9206/#comment-13</link>
		<dc:creator>Carl Bruneau</dc:creator>
		<pubDate>Tue, 08 Jul 2008 15:31:13 +0000</pubDate>
		<guid isPermaLink="false">http://oraclezone.wordpress.com/2007/12/19/oracle-undo-size-10g-10203-vs-9i-9206/#comment-13</guid>
		<description>Hi Arul,

On my side I tested how much UNDO is generated for an UPDATE statement (updating a single integer column).

Running these queries:

SELECT to_char(sysdate, &#039;HH24:MI:SS&#039;), b.used_urec, b.used_ublk

  2  FROM v$session a inner join v$transaction b ON a.saddr = b.ses_addr

  3* WHERE a.sid = 1081

Give us back:

41867461 undo records used and 529654 undo block used.

AND:

SELECT to_char(sysdate, &#039;HH24:MI:SS&#039;), a.sid, b.name, a.value

  2  FROM v$sesstat a inner join v$statname b ON  a.statistic# = b.statistic#

  3  WHERE a.statistic# = 208 AND

  4        a.sid = 1081;


Give us back: 

4216598256 for the value of &quot;undo change vector size&quot;.

How a table of 2.2GB that uses 292224 blocks can require about 4GB of undo space to be updated (and 529654 undo block)?

We have tested on 10G R2 and on 11G with both using automatic UNDO management.

Best regards.

Carl</description>
		<content:encoded><![CDATA[<p>Hi Arul,</p>
<p>On my side I tested how much UNDO is generated for an UPDATE statement (updating a single integer column).</p>
<p>Running these queries:</p>
<p>SELECT to_char(sysdate, &#8216;HH24:MI:SS&#8217;), b.used_urec, b.used_ublk</p>
<p>  2  FROM v$session a inner join v$transaction b ON a.saddr = b.ses_addr</p>
<p>  3* WHERE a.sid = 1081</p>
<p>Give us back:</p>
<p>41867461 undo records used and 529654 undo block used.</p>
<p>AND:</p>
<p>SELECT to_char(sysdate, &#8216;HH24:MI:SS&#8217;), a.sid, b.name, a.value</p>
<p>  2  FROM v$sesstat a inner join v$statname b ON  a.statistic# = b.statistic#</p>
<p>  3  WHERE a.statistic# = 208 AND</p>
<p>  4        a.sid = 1081;</p>
<p>Give us back: </p>
<p>4216598256 for the value of &#8220;undo change vector size&#8221;.</p>
<p>How a table of 2.2GB that uses 292224 blocks can require about 4GB of undo space to be updated (and 529654 undo block)?</p>
<p>We have tested on 10G R2 and on 11G with both using automatic UNDO management.</p>
<p>Best regards.</p>
<p>Carl</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Arul Ramachandran</title>
		<link>http://oraclezone.wordpress.com/2007/12/19/oracle-undo-size-10g-10203-vs-9i-9206/#comment-12</link>
		<dc:creator>Arul Ramachandran</dc:creator>
		<pubDate>Tue, 11 Mar 2008 01:23:44 +0000</pubDate>
		<guid isPermaLink="false">http://oraclezone.wordpress.com/2007/12/19/oracle-undo-size-10g-10203-vs-9i-9206/#comment-12</guid>
		<description>Hi Jonathan,

Thanks for the response. 

It&#039;s been a while and I am at a different work site now, I do not have access to the specific details related to this. IIRC, there were no special adjustments to the spfile, I recall the database was set up for Automatic Undo, the tablespace for the table was in LMT (possibly with ASSM).

The only thing I am not sure is, I might have set up the database for supplemental logging as I was testing some stuff related to Oracle Streams.

Regards,
Arul</description>
		<content:encoded><![CDATA[<p>Hi Jonathan,</p>
<p>Thanks for the response. </p>
<p>It&#8217;s been a while and I am at a different work site now, I do not have access to the specific details related to this. IIRC, there were no special adjustments to the spfile, I recall the database was set up for Automatic Undo, the tablespace for the table was in LMT (possibly with ASSM).</p>
<p>The only thing I am not sure is, I might have set up the database for supplemental logging as I was testing some stuff related to Oracle Streams.</p>
<p>Regards,<br />
Arul</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jonathan Lewis</title>
		<link>http://oraclezone.wordpress.com/2007/12/19/oracle-undo-size-10g-10203-vs-9i-9206/#comment-11</link>
		<dc:creator>Jonathan Lewis</dc:creator>
		<pubDate>Sat, 08 Mar 2008 13:27:05 +0000</pubDate>
		<guid isPermaLink="false">http://oraclezone.wordpress.com/2007/12/19/oracle-undo-size-10g-10203-vs-9i-9206/#comment-11</guid>
		<description>This is a surprising result as 10g has an optimisation for updates that reduces the number of undo records needed. If you do several updates to a block at the same time (e.g. updating several rows in the block without leaving the block to update the indexes) then all the changes for the block can be recorded in a single undo record.

Since your rows are about 40 bytes, you should have about 200 per 8Kb block, which means about 5,000 blocks in the table - so I would expect to see about 5,000 records in the 10.2.0.3 test.  (And this is what I got when I repeated your test - although I got 200,000 when I recreated the table as an index organized table with both columns in the primary key).

Have you installed your database with any special adjustments to the spfile ?

Regards
Jonathan Lewis
http://jonathanlewis.wordpress.com
http://www.jlcomp.demon.co.uk</description>
		<content:encoded><![CDATA[<p>This is a surprising result as 10g has an optimisation for updates that reduces the number of undo records needed. If you do several updates to a block at the same time (e.g. updating several rows in the block without leaving the block to update the indexes) then all the changes for the block can be recorded in a single undo record.</p>
<p>Since your rows are about 40 bytes, you should have about 200 per 8Kb block, which means about 5,000 blocks in the table &#8211; so I would expect to see about 5,000 records in the 10.2.0.3 test.  (And this is what I got when I repeated your test &#8211; although I got 200,000 when I recreated the table as an index organized table with both columns in the primary key).</p>
<p>Have you installed your database with any special adjustments to the spfile ?</p>
<p>Regards<br />
Jonathan Lewis<br />
<a href="http://jonathanlewis.wordpress.com" rel="nofollow">http://jonathanlewis.wordpress.com</a><br />
<a href="http://www.jlcomp.demon.co.uk" rel="nofollow">http://www.jlcomp.demon.co.uk</a></p>
]]></content:encoded>
	</item>
</channel>
</rss>
