<?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: Inserts Experiencing an Increasing CPU Consumption</title>
	<atom:link href="http://www.antognini.ch/2010/03/inserts-experiencing-an-increasing-cpu-consumption/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.antognini.ch/2010/03/inserts-experiencing-an-increasing-cpu-consumption/</link>
	<description></description>
	<lastBuildDate>Thu, 17 May 2012 06:56:24 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	
	<item>
		<title>By: Blogroll Report 05/02/2010 – 12/03/2010 &#171; Coskan&#8217;s Approach to Oracle</title>
		<link>http://www.antognini.ch/2010/03/inserts-experiencing-an-increasing-cpu-consumption/#comment-356</link>
		<dc:creator>Blogroll Report 05/02/2010 – 12/03/2010 &#171; Coskan&#8217;s Approach to Oracle</dc:creator>
		<pubDate>Fri, 23 Apr 2010 01:07:36 +0000</pubDate>
		<guid isPermaLink="false">http://antognini.ch/?p=941#comment-356</guid>
		<description>[...] 6-Unusual CPU/time consumption during inserts on a table with trigger (scalibility problem related with bug 6400175 in 11.1.0.6)  Christian Antognini-Inserts Experiencing an Increasing CPU Consumption [...] </description>
		<content:encoded><![CDATA[<p>[...] 6-Unusual CPU/time consumption during inserts on a table with trigger (scalibility problem related with bug 6400175 in 11.1.0.6)  Christian Antognini-Inserts Experiencing an Increasing CPU Consumption [...] </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: qube</title>
		<link>http://www.antognini.ch/2010/03/inserts-experiencing-an-increasing-cpu-consumption/#comment-355</link>
		<dc:creator>qube</dc:creator>
		<pubDate>Mon, 12 Apr 2010 10:30:28 +0000</pubDate>
		<guid isPermaLink="false">http://antognini.ch/?p=941#comment-355</guid>
		<description>Hi All,

 I&#039;ve faced a lot of issues with using of triggers incorrectly. Actually the problem is not only in integrity constraint but in supporting whole bussiness rules by triggers. It&#039;s quite often when developers use the triggers as a kind of simplest way to organize the rule support as result tables overgrowns with triggers. The core of the problem is that it&#039;s impossible to manage that kind of integrity constraitns and overgrown leads to large number of locks and even deadlocks in highly concurrent systems. I could call it as triggers&#039; shower. Another way to get poor perfomance with triggers to use large number of operations in the trigger&#039;s body it&#039;s common as well which seems to be almost the same problem.

Kind regards,
Iliya</description>
		<content:encoded><![CDATA[<p>Hi All,</p>
<p> I&#8217;ve faced a lot of issues with using of triggers incorrectly. Actually the problem is not only in integrity constraint but in supporting whole bussiness rules by triggers. It&#8217;s quite often when developers use the triggers as a kind of simplest way to organize the rule support as result tables overgrowns with triggers. The core of the problem is that it&#8217;s impossible to manage that kind of integrity constraitns and overgrown leads to large number of locks and even deadlocks in highly concurrent systems. I could call it as triggers&#8217; shower. Another way to get poor perfomance with triggers to use large number of operations in the trigger&#8217;s body it&#8217;s common as well which seems to be almost the same problem.</p>
<p>Kind regards,<br />
Iliya</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Houri Mohamed</title>
		<link>http://www.antognini.ch/2010/03/inserts-experiencing-an-increasing-cpu-consumption/#comment-354</link>
		<dc:creator>Houri Mohamed</dc:creator>
		<pubDate>Tue, 30 Mar 2010 07:18:17 +0000</pubDate>
		<guid isPermaLink="false">http://antognini.ch/?p=941#comment-354</guid>
		<description>Dears,

We should never user triggers to enforce integrity. Because to do so correctly, you
need to lock the table (not at the row level but at the table level).
You know why? because of this fundamental principle of read-consistency : readers do
not block writers and writers do not block readers. In a mutli-user concurency systems
enforcing integrity in triggers is almost  wrong.

Instead if you implement an indexed Foreign key (with not null foreign key columns if possible),
then you are 100% sure that your integrity constraint is always validated by Oracle and without any locking

Triggers can also be used to do DML. I have used them very often to log the modifications done on a table.
I have always used insert into values() in this audit triggers.

Regards

Mohamed Houri</description>
		<content:encoded><![CDATA[<p>Dears,</p>
<p>We should never user triggers to enforce integrity. Because to do so correctly, you<br />
need to lock the table (not at the row level but at the table level).<br />
You know why? because of this fundamental principle of read-consistency : readers do<br />
not block writers and writers do not block readers. In a mutli-user concurency systems<br />
enforcing integrity in triggers is almost  wrong.</p>
<p>Instead if you implement an indexed Foreign key (with not null foreign key columns if possible),<br />
then you are 100% sure that your integrity constraint is always validated by Oracle and without any locking</p>
<p>Triggers can also be used to do DML. I have used them very often to log the modifications done on a table.<br />
I have always used insert into values() in this audit triggers.</p>
<p>Regards</p>
<p>Mohamed Houri</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Christian Antognini</title>
		<link>http://www.antognini.ch/2010/03/inserts-experiencing-an-increasing-cpu-consumption/#comment-353</link>
		<dc:creator>Christian Antognini</dc:creator>
		<pubDate>Tue, 09 Mar 2010 13:21:44 +0000</pubDate>
		<guid isPermaLink="false">http://antognini.ch/?p=941#comment-353</guid>
		<description>Hi Timur

Thank you for the information. The description matches what we are experiencing...

Cheers,
Chris</description>
		<content:encoded><![CDATA[<p>Hi Timur</p>
<p>Thank you for the information. The description matches what we are experiencing&#8230;</p>
<p>Cheers,<br />
Chris</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Christian Antognini</title>
		<link>http://www.antognini.ch/2010/03/inserts-experiencing-an-increasing-cpu-consumption/#comment-352</link>
		<dc:creator>Christian Antognini</dc:creator>
		<pubDate>Tue, 09 Mar 2010 13:07:03 +0000</pubDate>
		<guid isPermaLink="false">http://antognini.ch/?p=941#comment-352</guid>
		<description>Hi Toon

About triggers and constrains... I only agree with you when the constraint cannot be implemented with a simple foreign key. In other words, when a foreign key can be used the solution with a trigger is a no-go for me.
About DML and triggers... It really depends, there are situations where it is &quot;fine&quot; (or, at least, not that bad). In this case, since the tables are loaded by ETL jobs, it is not good at all.

Cheers,
Chris</description>
		<content:encoded><![CDATA[<p>Hi Toon</p>
<p>About triggers and constrains&#8230; I only agree with you when the constraint cannot be implemented with a simple foreign key. In other words, when a foreign key can be used the solution with a trigger is a no-go for me.<br />
About DML and triggers&#8230; It really depends, there are situations where it is &#8220;fine&#8221; (or, at least, not that bad). In this case, since the tables are loaded by ETL jobs, it is not good at all.</p>
<p>Cheers,<br />
Chris</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Timur Akhmadeev</title>
		<link>http://www.antognini.ch/2010/03/inserts-experiencing-an-increasing-cpu-consumption/#comment-351</link>
		<dc:creator>Timur Akhmadeev</dc:creator>
		<pubDate>Tue, 09 Mar 2010 07:33:46 +0000</pubDate>
		<guid isPermaLink="false">http://antognini.ch/?p=941#comment-351</guid>
		<description>Hi Christian,

yes, it&#039;s a &lt;a href=&quot;http://forums.oracle.com/forums/thread.jspa?messageID=3516916&quot; rel=&quot;nofollow&quot;&gt;bug&lt;/a&gt;.</description>
		<content:encoded><![CDATA[<p>Hi Christian,</p>
<p>yes, it&#8217;s a <a href="http://forums.oracle.com/forums/thread.jspa?messageID=3516916" rel="nofollow">bug</a>.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Toon Koppelaars</title>
		<link>http://www.antognini.ch/2010/03/inserts-experiencing-an-increasing-cpu-consumption/#comment-350</link>
		<dc:creator>Toon Koppelaars</dc:creator>
		<pubDate>Tue, 09 Mar 2010 06:26:57 +0000</pubDate>
		<guid isPermaLink="false">http://antognini.ch/?p=941#comment-350</guid>
		<description>Off topic, but I can not resist it.

&gt; it (the trigger) exists just because triggers are used to implement integrity constraints (something you should avoid, by the way…)

No, no, no...
What should be avoided is: triggers that perform DML. Because then things automagically start happening.
Triggers that implement integrity constraints on the other hand, only execute queries: *which is fine*!.
What&#039;s wrong is the trigger on T1: it performs DML...
Just my opinion.</description>
		<content:encoded><![CDATA[<p>Off topic, but I can not resist it.</p>
<p>&gt; it (the trigger) exists just because triggers are used to implement integrity constraints (something you should avoid, by the way…)</p>
<p>No, no, no&#8230;<br />
What should be avoided is: triggers that perform DML. Because then things automagically start happening.<br />
Triggers that implement integrity constraints on the other hand, only execute queries: *which is fine*!.<br />
What&#8217;s wrong is the trigger on T1: it performs DML&#8230;<br />
Just my opinion.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

