<?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: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>Comments on: Quiz Night</title>
	<atom:link href="http://jonathanlewis.wordpress.com/2012/03/30/quiz-night-17/feed/" rel="self" type="application/rss+xml" />
	<link>http://jonathanlewis.wordpress.com/2012/03/30/quiz-night-17/</link>
	<description>Just another Oracle weblog</description>
	<lastBuildDate>Mon, 20 May 2013 17:10:14 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
	<item>
		<title>By: Alex White</title>
		<link>http://jonathanlewis.wordpress.com/2012/03/30/quiz-night-17/#comment-46021</link>
		<dc:creator><![CDATA[Alex White]]></dc:creator>
		<pubDate>Wed, 11 Apr 2012 17:27:00 +0000</pubDate>
		<guid isPermaLink="false">http://jonathanlewis.wordpress.com/?p=8747#comment-46021</guid>
		<description><![CDATA[Don&#039;t bother posting an SR, it already exists.
    Bug #8270070: 255+ columns row split in several blocks after add/update new columns
I&#039;ve had an SR outstanding on this since Sept 30th, 2010.
It has been escalated, and de-escalated.
On Aug 24th, 2011 the SR was updated with: The developer updated stating this is at the top of his backlog now.
However, as of now, it is still outstanding.  I&#039;d almost forgotten about it.]]></description>
		<content:encoded><![CDATA[<p>Don&#8217;t bother posting an SR, it already exists.<br />
    Bug #8270070: 255+ columns row split in several blocks after add/update new columns<br />
I&#8217;ve had an SR outstanding on this since Sept 30th, 2010.<br />
It has been escalated, and de-escalated.<br />
On Aug 24th, 2011 the SR was updated with: The developer updated stating this is at the top of his backlog now.<br />
However, as of now, it is still outstanding.  I&#8217;d almost forgotten about it.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jan-Marten Spit</title>
		<link>http://jonathanlewis.wordpress.com/2012/03/30/quiz-night-17/#comment-45880</link>
		<dc:creator><![CDATA[Jan-Marten Spit]]></dc:creator>
		<pubDate>Mon, 02 Apr 2012 12:46:17 +0000</pubDate>
		<guid isPermaLink="false">http://jonathanlewis.wordpress.com/?p=8747#comment-45880</guid>
		<description><![CDATA[typo in the above;

&quot;so although it reports “1 table scan rows gotten”, if i grep ^nrow= on the 11.2.0.3 trace file, i still see 894 pieces.&quot;

should be

&quot;so although it reports “1 table scan rows gotten”, if i grep ^nrow= on the 11.2.0.3 trace file, i still see 8092 pieces.&quot;]]></description>
		<content:encoded><![CDATA[<p>typo in the above;</p>
<p>&#8220;so although it reports “1 table scan rows gotten”, if i grep ^nrow= on the 11.2.0.3 trace file, i still see 894 pieces.&#8221;</p>
<p>should be</p>
<p>&#8220;so although it reports “1 table scan rows gotten”, if i grep ^nrow= on the 11.2.0.3 trace file, i still see 8092 pieces.&#8221;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jan-Marten Spit</title>
		<link>http://jonathanlewis.wordpress.com/2012/03/30/quiz-night-17/#comment-45879</link>
		<dc:creator><![CDATA[Jan-Marten Spit]]></dc:creator>
		<pubDate>Mon, 02 Apr 2012 12:41:48 +0000</pubDate>
		<guid isPermaLink="false">http://jonathanlewis.wordpress.com/?p=8747#comment-45879</guid>
		<description><![CDATA[ran your test on 10.2.0.5 64bit linux; bs=8192 (2 node RAC, crs=11.2.0.3)

112 blocks in segment;

select * from t2;

	    1 opened cursors cumulative
	    3 user calls
	10113 session logical reads
	    2 CPU used when call started
	    2 CPU used by this session
	    2 DB time
	    1 global enqueue gets sync
	    1 global enqueue releases
	10113 consistent gets
	10113 consistent gets from cache
	    5 calls to get snapshot scn: kcmgss
	10109 no work - consistent read gets
	    1 table scans (short tables)
	10095 table scan rows gotten
	  109 table scan blocks gotten
	 9999 table fetch continued row
	    1 cursor authentications
	10000 buffer is not pinned count
	    1 parse count (total)
	    1 execute count
	  508 bytes sent via SQL*Net to client
	  273 bytes received via SQL*Net from client
	    2 SQL*Net roundtrips to/from client

grep ^nrow=, add up gives 10001 pieces.

and on 11.2.0.3 64 bit linux, bs=8192 (2 node RAC, crs=11.2.0.3)

112 blocks in segment;

	    2 Requests to/from client
	    1 opened cursors cumulative
	    3 user calls
	10113 session logical reads
	    2 CPU used when call started
	    2 CPU used by this session
	    2 DB time
	   14 non-idle wait count
	    2 global enqueue gets sync
	    2 global enqueue releases
	10113 consistent gets
	10113 consistent gets from cache
	 9933 consistent gets from cache (fastpath)
     82845696 logical read bytes from cache
	    4 calls to kcmgcs
	    1 calls to get snapshot scn: kcmgss
	10109 no work - consistent read gets
	    1 table scans (short tables)
	    1 table scan rows gotten
	  109 table scan blocks gotten
	 9999 table fetch continued row
	    1 cursor authentications
	10109 buffer is not pinned count
	    1 parse time cpu
	    1 parse time elapsed
	    1 parse count (total)
	    1 execute count
       100523 bytes sent via SQL*Net to client
	  298 bytes received via SQL*Net from client
	    2 SQL*Net roundtrips to/from client

so although it reports &quot;1 table scan rows gotten&quot;, if i grep ^nrow= on the 11.2.0.3 trace file, i still see 894  pieces.
also, the table fetch continued row is the same as on 10.2.0.5.

so the fix seems to be just in changing the def for &quot;table scan rows gotten&quot;, or i am missing a patch?]]></description>
		<content:encoded><![CDATA[<p>ran your test on 10.2.0.5 64bit linux; bs=8192 (2 node RAC, crs=11.2.0.3)</p>
<p>112 blocks in segment;</p>
<p>select * from t2;</p>
<p>	    1 opened cursors cumulative<br />
	    3 user calls<br />
	10113 session logical reads<br />
	    2 CPU used when call started<br />
	    2 CPU used by this session<br />
	    2 DB time<br />
	    1 global enqueue gets sync<br />
	    1 global enqueue releases<br />
	10113 consistent gets<br />
	10113 consistent gets from cache<br />
	    5 calls to get snapshot scn: kcmgss<br />
	10109 no work &#8211; consistent read gets<br />
	    1 table scans (short tables)<br />
	10095 table scan rows gotten<br />
	  109 table scan blocks gotten<br />
	 9999 table fetch continued row<br />
	    1 cursor authentications<br />
	10000 buffer is not pinned count<br />
	    1 parse count (total)<br />
	    1 execute count<br />
	  508 bytes sent via SQL*Net to client<br />
	  273 bytes received via SQL*Net from client<br />
	    2 SQL*Net roundtrips to/from client</p>
<p>grep ^nrow=, add up gives 10001 pieces.</p>
<p>and on 11.2.0.3 64 bit linux, bs=8192 (2 node RAC, crs=11.2.0.3)</p>
<p>112 blocks in segment;</p>
<p>	    2 Requests to/from client<br />
	    1 opened cursors cumulative<br />
	    3 user calls<br />
	10113 session logical reads<br />
	    2 CPU used when call started<br />
	    2 CPU used by this session<br />
	    2 DB time<br />
	   14 non-idle wait count<br />
	    2 global enqueue gets sync<br />
	    2 global enqueue releases<br />
	10113 consistent gets<br />
	10113 consistent gets from cache<br />
	 9933 consistent gets from cache (fastpath)<br />
     82845696 logical read bytes from cache<br />
	    4 calls to kcmgcs<br />
	    1 calls to get snapshot scn: kcmgss<br />
	10109 no work &#8211; consistent read gets<br />
	    1 table scans (short tables)<br />
	    1 table scan rows gotten<br />
	  109 table scan blocks gotten<br />
	 9999 table fetch continued row<br />
	    1 cursor authentications<br />
	10109 buffer is not pinned count<br />
	    1 parse time cpu<br />
	    1 parse time elapsed<br />
	    1 parse count (total)<br />
	    1 execute count<br />
       100523 bytes sent via SQL*Net to client<br />
	  298 bytes received via SQL*Net from client<br />
	    2 SQL*Net roundtrips to/from client</p>
<p>so although it reports &#8220;1 table scan rows gotten&#8221;, if i grep ^nrow= on the 11.2.0.3 trace file, i still see 894  pieces.<br />
also, the table fetch continued row is the same as on 10.2.0.5.</p>
<p>so the fix seems to be just in changing the def for &#8220;table scan rows gotten&#8221;, or i am missing a patch?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jonathan Lewis</title>
		<link>http://jonathanlewis.wordpress.com/2012/03/30/quiz-night-17/#comment-45877</link>
		<dc:creator><![CDATA[Jonathan Lewis]]></dc:creator>
		<pubDate>Mon, 02 Apr 2012 07:27:56 +0000</pubDate>
		<guid isPermaLink="false">http://jonathanlewis.wordpress.com/?p=8747#comment-45877</guid>
		<description><![CDATA[Valentin,

Very clever - and I like the way you&#039;ve used the &#039;collapse=&quot;true&quot;&#039; on the results, it makes the whole thing tidier and easier to read.

I ran your test on 11.2.0.3 and it still produced the 10,000 pieces - but I was using an 8KB block size rather than the 16KB you mentioned in your follow-up.  

I suspect, but haven&#039;t tested yet, that you could reproduce the effect in th 16KB block size if you created the table with 4 populated columns (which would give you an immediate chain) then added, updated, and dropped 5 columns at a time, so that each update introduced a new chain and the drop had to apply to the previous block in the chain.]]></description>
		<content:encoded><![CDATA[<p>Valentin,</p>
<p>Very clever &#8211; and I like the way you&#8217;ve used the &#8216;collapse=&#8221;true&#8221;&#8216; on the results, it makes the whole thing tidier and easier to read.</p>
<p>I ran your test on 11.2.0.3 and it still produced the 10,000 pieces &#8211; but I was using an 8KB block size rather than the 16KB you mentioned in your follow-up.  </p>
<p>I suspect, but haven&#8217;t tested yet, that you could reproduce the effect in th 16KB block size if you created the table with 4 populated columns (which would give you an immediate chain) then added, updated, and dropped 5 columns at a time, so that each update introduced a new chain and the drop had to apply to the previous block in the chain.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Valentin Nikotin</title>
		<link>http://jonathanlewis.wordpress.com/2012/03/30/quiz-night-17/#comment-45869</link>
		<dc:creator><![CDATA[Valentin Nikotin]]></dc:creator>
		<pubDate>Sun, 01 Apr 2012 22:00:12 +0000</pubDate>
		<guid isPermaLink="false">http://jonathanlewis.wordpress.com/?p=8747#comment-45869</guid>
		<description><![CDATA[&gt;When I checked it on 11.2.0.3 – there was only one piece, i.e. Oracle fixed this.
It was db_block_size = 16K :-) But the case that raises ORA-03106 is probably fixed.]]></description>
		<content:encoded><![CDATA[<p>&gt;When I checked it on 11.2.0.3 – there was only one piece, i.e. Oracle fixed this.<br />
It was db_block_size = 16K :-) But the case that raises ORA-03106 is probably fixed.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Valentin Nikotin</title>
		<link>http://jonathanlewis.wordpress.com/2012/03/30/quiz-night-17/#comment-45868</link>
		<dc:creator><![CDATA[Valentin Nikotin]]></dc:creator>
		<pubDate>Sun, 01 Apr 2012 21:34:15 +0000</pubDate>
		<guid isPermaLink="false">http://jonathanlewis.wordpress.com/?p=8747#comment-45868</guid>
		<description><![CDATA[My test was:
[sourcecode language=&quot;SQL&quot;]
drop table t2 purge;
create table t2 (v0 varchar2(4000));
insert into t2 values(lpad(1,4000));
declare
  j number := 1e4;
begin
  for i in 1 .. j loop
    execute immediate &#039;alter table t2 add v&#039;&#124;&#124;i&#124;&#124;&#039; varchar(4000)&#039;;
    execute immediate &#039;update t2 set v&#039;&#124;&#124;i&#124;&#124;&#039; = lpad(1,4000)&#039;;
    execute immediate &#039;alter table t2 drop column v&#039;&#124;&#124;(i-1);
  end loop;
  execute immediate &#039;alter table t2 add n number(1)&#039;;
  execute immediate &#039;alter table t2 drop column v&#039;&#124;&#124;j;
  execute immediate &#039;update t2 set n = 1&#039;;
end;
/
desc t2
select blocks from user_segments where segment_name = &#039;T2&#039;;
begin
  for rec in 
  (
    select file_id fn, block_id minbn, block_id + blocks  - 1 maxbn
    from dba_extents 
    where owner = user and segment_name = &#039;T2&#039;
  ) loop
    execute immediate &#039;alter system dump datafile &#039;&#124;&#124;rec.fn&#124;&#124;&#039; block min &#039;&#124;&#124;rec.minbn&#124;&#124;&#039; block max &#039;&#124;&#124;rec.maxbn;
  end loop;
end;
/
set autot on
select * from t2;
[/sourcecode]
As result I had table with 1 row and col that had 10k pieces.
When I cheked it on 11.2.0.3 - there was only one piece, i.e. Oracle fixed this.
Here is the result for 11.2.0.1:
[sourcecode language=&quot;SQL&quot; collapse=&quot;true&quot;]
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP and Data Mining options

SQL&gt; create table t2 (v0 varchar2(4000));

Table created.

SQL&gt; insert into t2 values(lpad(1,4000));

1 row created.

SQL&gt; declare
  2    j number := 1e4;
  3  begin
  4    for i in 1 .. j loop
  5      execute immediate &#039;alter table t2 add v&#039;&#124;&#124;i&#124;&#124;&#039; varchar(4000)&#039;;
  6      execute immediate &#039;update t2 set v&#039;&#124;&#124;i&#124;&#124;&#039; = lpad(1,4000)&#039;;
  7      execute immediate &#039;alter table t2 drop column v&#039;&#124;&#124;(i-1);
  8    end loop;
  9    execute immediate &#039;alter table t2 add n number(1)&#039;;
 10    execute immediate &#039;alter table t2 drop column v&#039;&#124;&#124;j;
 11    execute immediate &#039;update t2 set n = 1&#039;;
 12  end;
 13  /

PL/SQL procedure successfully completed.

SQL&gt; desc t2
 Name  Null?  Type
 ----- ------ ---------
 N            NUMBER(1)

SQL&gt; select blocks from user_segments where segment_name = &#039;T2&#039;;

    BLOCKS
----------
       120

SQL&gt; begin
  2    for rec in
  3    (
  4      select file_id fn, block_id minbn, block_id + blocks  - 1 maxbn
  5      from dba_extents
  6      where owner = user and segment_name = &#039;T2&#039;
  7    ) loop
  8      execute immediate &#039;alter system dump datafile &#039;&#124;&#124;rec.fn&#124;&#124;&#039; block min &#039;&#124;&#124;rec.minbn&#124;&#124;&#039; block max &#039;&#124;&#124;rec.maxbn;
  9    end loop;
 10  end;
 11  /

PL/SQL procedure successfully completed.

/***************************************************/
block_row_dump:
tab 0, row 0, @0x16d7
tl: 9 fb: --H-F--- lb: 0x31  cc: 0
nrid:  0x01002755.0
tab 0, row 1, @0x16ce
tl: 9 fb: -------- lb: 0x0  cc: 0
nrid:  0x01002755.1

...

tab 0, row 68, @0x169b
tl: 9 fb: -------- lb: 0x0  cc: 0
nrid:  0x01012ad5.44
tab 0, row 69, @0x6ef
tl: 6 fb: -----L-- lb: 0xa  cc: 1
col  0: [ 2]  c1 02
/***************************************************/

SQL&gt; set autot on
SQL&gt; select * from t2;

         N
----------
         1

...

Statistics
----------------------------------------------------------
          4  recursive calls
          0  db block gets
      10181  consistent gets
          0  physical reads
          0  redo size
     100523  bytes sent via SQL*Net to client
        520  bytes received via SQL*Net from client
          2  SQL*Net roundtrips to/from client
          0  sorts (memory)
          0  sorts (disk)
          1  rows processed
[/sourcecode]


On 11.2.0.1, if I didn&#039;t add the update statement for the last col I would get &lt;strong&gt;&quot;ORA-03106: fatal two-task communication protocol error&quot;&lt;/strong&gt;, it also happens in the simpler situation (and I&#039;ve seen similar bugs for 11.2.0.1 on MOS):
[sourcecode language=&quot;SQL&quot; collapse=&quot;true&quot;]
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP and Data Mining options

SQL&gt; create table t1 (v0 varchar2(4000));

Table created.

SQL&gt; insert into t1 values(lpad(1,4000));

1 row created.

SQL&gt; alter table t1 add v1 varchar(4000);

Table altered.

SQL&gt; update t1 set v1 = lpad(1,4000);

1 row updated.

SQL&gt; alter table t1 drop column v0;

Table altered.

SQL&gt; alter table t1 add n number(1);

Table altered.

SQL&gt; alter table t1 drop column v1;

Table altered.

SQL&gt; select * from t1;
select * from t1
*
ERROR at line 1:
ORA-03106: fatal two-task communication protocol error

SQL&gt; update t1 set n = 1;

1 row updated.

SQL&gt; select * from t1;

         N
----------
         1
[/sourcecode]]]></description>
		<content:encoded><![CDATA[<p>My test was:</p>
<pre class="brush: sql; title: ; notranslate">
drop table t2 purge;
create table t2 (v0 varchar2(4000));
insert into t2 values(lpad(1,4000));
declare
  j number := 1e4;
begin
  for i in 1 .. j loop
    execute immediate 'alter table t2 add v'||i||' varchar(4000)';
    execute immediate 'update t2 set v'||i||' = lpad(1,4000)';
    execute immediate 'alter table t2 drop column v'||(i-1);
  end loop;
  execute immediate 'alter table t2 add n number(1)';
  execute immediate 'alter table t2 drop column v'||j;
  execute immediate 'update t2 set n = 1';
end;
/
desc t2
select blocks from user_segments where segment_name = 'T2';
begin
  for rec in 
  (
    select file_id fn, block_id minbn, block_id + blocks  - 1 maxbn
    from dba_extents 
    where owner = user and segment_name = 'T2'
  ) loop
    execute immediate 'alter system dump datafile '||rec.fn||' block min '||rec.minbn||' block max '||rec.maxbn;
  end loop;
end;
/
set autot on
select * from t2;
</pre>
<p>As result I had table with 1 row and col that had 10k pieces.<br />
When I cheked it on 11.2.0.3 &#8211; there was only one piece, i.e. Oracle fixed this.<br />
Here is the result for 11.2.0.1:</p>
<pre class="brush: sql; collapse: true; light: false; title: ; toolbar: true; notranslate">
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP and Data Mining options

SQL&gt; create table t2 (v0 varchar2(4000));

Table created.

SQL&gt; insert into t2 values(lpad(1,4000));

1 row created.

SQL&gt; declare
  2    j number := 1e4;
  3  begin
  4    for i in 1 .. j loop
  5      execute immediate 'alter table t2 add v'||i||' varchar(4000)';
  6      execute immediate 'update t2 set v'||i||' = lpad(1,4000)';
  7      execute immediate 'alter table t2 drop column v'||(i-1);
  8    end loop;
  9    execute immediate 'alter table t2 add n number(1)';
 10    execute immediate 'alter table t2 drop column v'||j;
 11    execute immediate 'update t2 set n = 1';
 12  end;
 13  /

PL/SQL procedure successfully completed.

SQL&gt; desc t2
 Name  Null?  Type
 ----- ------ ---------
 N            NUMBER(1)

SQL&gt; select blocks from user_segments where segment_name = 'T2';

    BLOCKS
----------
       120

SQL&gt; begin
  2    for rec in
  3    (
  4      select file_id fn, block_id minbn, block_id + blocks  - 1 maxbn
  5      from dba_extents
  6      where owner = user and segment_name = 'T2'
  7    ) loop
  8      execute immediate 'alter system dump datafile '||rec.fn||' block min '||rec.minbn||' block max '||rec.maxbn;
  9    end loop;
 10  end;
 11  /

PL/SQL procedure successfully completed.

/***************************************************/
block_row_dump:
tab 0, row 0, @0x16d7
tl: 9 fb: --H-F--- lb: 0x31  cc: 0
nrid:  0x01002755.0
tab 0, row 1, @0x16ce
tl: 9 fb: -------- lb: 0x0  cc: 0
nrid:  0x01002755.1

...

tab 0, row 68, @0x169b
tl: 9 fb: -------- lb: 0x0  cc: 0
nrid:  0x01012ad5.44
tab 0, row 69, @0x6ef
tl: 6 fb: -----L-- lb: 0xa  cc: 1
col  0: [ 2]  c1 02
/***************************************************/

SQL&gt; set autot on
SQL&gt; select * from t2;

         N
----------
         1

...

Statistics
----------------------------------------------------------
          4  recursive calls
          0  db block gets
      10181  consistent gets
          0  physical reads
          0  redo size
     100523  bytes sent via SQL*Net to client
        520  bytes received via SQL*Net from client
          2  SQL*Net roundtrips to/from client
          0  sorts (memory)
          0  sorts (disk)
          1  rows processed
</pre>
<p>On 11.2.0.1, if I didn&#8217;t add the update statement for the last col I would get <strong>&#8220;ORA-03106: fatal two-task communication protocol error&#8221;</strong>, it also happens in the simpler situation (and I&#8217;ve seen similar bugs for 11.2.0.1 on MOS):</p>
<pre class="brush: sql; collapse: true; light: false; title: ; toolbar: true; notranslate">
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP and Data Mining options

SQL&gt; create table t1 (v0 varchar2(4000));

Table created.

SQL&gt; insert into t1 values(lpad(1,4000));

1 row created.

SQL&gt; alter table t1 add v1 varchar(4000);

Table altered.

SQL&gt; update t1 set v1 = lpad(1,4000);

1 row updated.

SQL&gt; alter table t1 drop column v0;

Table altered.

SQL&gt; alter table t1 add n number(1);

Table altered.

SQL&gt; alter table t1 drop column v1;

Table altered.

SQL&gt; select * from t1;
select * from t1
*
ERROR at line 1:
ORA-03106: fatal two-task communication protocol error

SQL&gt; update t1 set n = 1;

1 row updated.

SQL&gt; select * from t1;

         N
----------
         1
</pre>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jithin Sarath</title>
		<link>http://jonathanlewis.wordpress.com/2012/03/30/quiz-night-17/#comment-45867</link>
		<dc:creator><![CDATA[Jithin Sarath]]></dc:creator>
		<pubDate>Sun, 01 Apr 2012 19:43:20 +0000</pubDate>
		<guid isPermaLink="false">http://jonathanlewis.wordpress.com/?p=8747#comment-45867</guid>
		<description><![CDATA[Reblogged this on &lt;a href=&quot;http://oracletuningcorner.com/2012/04/02/120/&quot; rel=&quot;nofollow&quot;&gt;Jithin&#039;s Oracle Tuning Corner&lt;/a&gt; and commented: 
Some interesting facts I never know about rows in Oracle and how they are stored.. In my quest to answer this question, I learnt a lot about rows, row blocks, how they are composed of and some oracle anomalies.
I&#039;m glad that I looked at the question and got hooked. I am yet to reproduce and understand the  final bit in this post, but will do it when I get a few hours time.]]></description>
		<content:encoded><![CDATA[<p>Reblogged this on <a href="http://oracletuningcorner.com/2012/04/02/120/" rel="nofollow">Jithin&#039;s Oracle Tuning Corner</a> and commented:<br />
Some interesting facts I never know about rows in Oracle and how they are stored.. In my quest to answer this question, I learnt a lot about rows, row blocks, how they are composed of and some oracle anomalies.<br />
I&#8217;m glad that I looked at the question and got hooked. I am yet to reproduce and understand the  final bit in this post, but will do it when I get a few hours time.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jonathan Lewis</title>
		<link>http://jonathanlewis.wordpress.com/2012/03/30/quiz-night-17/#comment-45865</link>
		<dc:creator><![CDATA[Jonathan Lewis]]></dc:creator>
		<pubDate>Sun, 01 Apr 2012 19:35:36 +0000</pubDate>
		<guid isPermaLink="false">http://jonathanlewis.wordpress.com/?p=8747#comment-45865</guid>
		<description><![CDATA[Jan-Marten,

I&#039;ve just done a quick search on MOS and found note 238519.1, dated August 2004: &lt;em&gt;&lt;strong&gt;&quot;Updating a Row with More Than 255 Columns Causes Row Chaining [ID 238519.1]&quot;&lt;/strong&gt;&lt;/em&gt; One of the suggested fixes is to ensure that the last column of the row is populated on insert. It&#039;s easy to make a good case for not doing this, and it probably won&#039;t stop all sorts of odd chaining and migration effects relating to lots of null columns being updated to non-null, but it might stop some of the extreme cases like my 746 block chain.]]></description>
		<content:encoded><![CDATA[<p>Jan-Marten,</p>
<p>I&#8217;ve just done a quick search on MOS and found note 238519.1, dated August 2004: <em><strong>&#8220;Updating a Row with More Than 255 Columns Causes Row Chaining [ID 238519.1]&#8220;</strong></em> One of the suggested fixes is to ensure that the last column of the row is populated on insert. It&#8217;s easy to make a good case for not doing this, and it probably won&#8217;t stop all sorts of odd chaining and migration effects relating to lots of null columns being updated to non-null, but it might stop some of the extreme cases like my 746 block chain.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Todor Botev</title>
		<link>http://jonathanlewis.wordpress.com/2012/03/30/quiz-night-17/#comment-45861</link>
		<dc:creator><![CDATA[Todor Botev]]></dc:creator>
		<pubDate>Sun, 01 Apr 2012 14:55:44 +0000</pubDate>
		<guid isPermaLink="false">http://jonathanlewis.wordpress.com/?p=8747#comment-45861</guid>
		<description><![CDATA[Valentin,
Do you mean:

&quot;Moreover it is sufficient to have only 1 ROW in the table&quot;
?]]></description>
		<content:encoded><![CDATA[<p>Valentin,<br />
Do you mean:</p>
<p>&#8220;Moreover it is sufficient to have only 1 ROW in the table&#8221;<br />
?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jan-Marten Spit</title>
		<link>http://jonathanlewis.wordpress.com/2012/03/30/quiz-night-17/#comment-45858</link>
		<dc:creator><![CDATA[Jan-Marten Spit]]></dc:creator>
		<pubDate>Sun, 01 Apr 2012 11:39:38 +0000</pubDate>
		<guid isPermaLink="false">http://jonathanlewis.wordpress.com/?p=8747#comment-45858</guid>
		<description><![CDATA[Jonathan,

i mentioned the SR because i was really surprised to see this, and the behaviour appears to be &#039;stupid&#039; at first sight. I did not mean it literally :D

thx for this fun example!]]></description>
		<content:encoded><![CDATA[<p>Jonathan,</p>
<p>i mentioned the SR because i was really surprised to see this, and the behaviour appears to be &#8216;stupid&#8217; at first sight. I did not mean it literally :D</p>
<p>thx for this fun example!</p>
]]></content:encoded>
	</item>
</channel>
</rss>
