<?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: SQL*Net message to client vs SQL*Net more data to client</title>
	<atom:link href="http://blog.tanelpoder.com/2008/02/10/sqlnet-message-to-client-vs-sqlnet-more-data-to-client/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.tanelpoder.com/2008/02/10/sqlnet-message-to-client-vs-sqlnet-more-data-to-client/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=sqlnet-message-to-client-vs-sqlnet-more-data-to-client</link>
	<description>Oracle, Exadata, Performance, Troubleshooting - Mobile Life and Productivity.</description>
	<lastBuildDate>Wed, 08 Feb 2012 08:03:50 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
	<item>
		<title>By: Srini</title>
		<link>http://blog.tanelpoder.com/2008/02/10/sqlnet-message-to-client-vs-sqlnet-more-data-to-client/comment-page-1/#comment-5416</link>
		<dc:creator>Srini</dc:creator>
		<pubDate>Mon, 18 Oct 2010 17:26:44 +0000</pubDate>
		<guid isPermaLink="false">http://tanelpoder.wordpress.com/2008/02/10/sqlnet-message-to-client-vs-sqlnet-more-data-to-client/#comment-5416</guid>
		<description>&lt;a href=&quot;#comment-1579&quot; rel=&quot;nofollow&quot;&gt;@Tanel Poder &lt;/a&gt; 
Hi,
In one of your notes on &quot;sql*net message to client&quot; wait events you quoted as below.
I donot understand about Oracle Net SDU size, can you please give more info on Oracle Net SDU size.

&quot;So, whether and how much of the “SQL*Net more data to client” vs “SQL*Net message to client” waits you see depends on two things:

Amount of data returned to client per call 
Oracle Net SDU size &quot;</description>
		<content:encoded><![CDATA[<p><a href="#comment-1579" rel="nofollow">@Tanel Poder </a><br />
Hi,<br />
In one of your notes on &#8220;sql*net message to client&#8221; wait events you quoted as below.<br />
I donot understand about Oracle Net SDU size, can you please give more info on Oracle Net SDU size.</p>
<p>&#8220;So, whether and how much of the “SQL*Net more data to client” vs “SQL*Net message to client” waits you see depends on two things:</p>
<p>Amount of data returned to client per call<br />
Oracle Net SDU size &#8220;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Network Monitoring Experimentations 7 &#171; Charles Hooper&#039;s Oracle Notes</title>
		<link>http://blog.tanelpoder.com/2008/02/10/sqlnet-message-to-client-vs-sqlnet-more-data-to-client/comment-page-1/#comment-4982</link>
		<dc:creator>Network Monitoring Experimentations 7 &#171; Charles Hooper&#039;s Oracle Notes</dc:creator>
		<pubDate>Thu, 19 Aug 2010 19:00:10 +0000</pubDate>
		<guid isPermaLink="false">http://tanelpoder.wordpress.com/2008/02/10/sqlnet-message-to-client-vs-sqlnet-more-data-to-client/#comment-4982</guid>
		<description>[...] CPU Time: 0.01 seconds Elapsed Time: 185.38 seconds Rows: 500 Sever-side waits: 0.03 seconds SQL*Net more data to client: 185.32 seconds, 5.13 seconds max wait, 373 waits SQL*Net message from client: 10.50 seconds, 5.02 [...]</description>
		<content:encoded><![CDATA[<p>[...] CPU Time: 0.01 seconds Elapsed Time: 185.38 seconds Rows: 500 Sever-side waits: 0.03 seconds SQL*Net more data to client: 185.32 seconds, 5.13 seconds max wait, 373 waits SQL*Net message from client: 10.50 seconds, 5.02 [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: shenglin.du</title>
		<link>http://blog.tanelpoder.com/2008/02/10/sqlnet-message-to-client-vs-sqlnet-more-data-to-client/comment-page-1/#comment-4715</link>
		<dc:creator>shenglin.du</dc:creator>
		<pubDate>Sun, 30 May 2010 13:45:27 +0000</pubDate>
		<guid isPermaLink="false">http://tanelpoder.wordpress.com/2008/02/10/sqlnet-message-to-client-vs-sqlnet-more-data-to-client/#comment-4715</guid>
		<description>Hi Tanel,
  
  I hit a network issue on May 26th. PD complained the slowness of their job at that time. I checked the running session using v$session_event and found the most time waiting for &#039;SQL*Net more data to client&#039; and &#039;virtual circuit status&#039;(We use MTS). Using the stats$system_event(we use statspack with 15 minutes sampling), I found the average wait time(TIME_WAITED_MICRO/TOTAL_WAITS) of &#039;SQL*Net more data to client&#039; increased from 200 to about 600. However, the average wait time of &#039;SQL*Net message to client&#039; was always 4-5. Finally, I found the root cause is the network issue caused by failed switch. 

My questions are,

1. Can we use average wait time of &#039;SQL*Net more data to client&#039; to measure the network latency? (it&#039;s not the first time we use this to detect the network issue).

2. Why the average wait time of &#039;SQL*Net message to client&#039; didn&#039;t change during the network issue since the &#039;SQL*Net more data to client&#039; is just used to send more data over first SDU buffer as you stated above?

PS. the system event of &#039;SQL*Net more data to client&#039;
SNAP_TIME        TIME_WAITED_MICRO TOTAL_WAITS TIME_WAITED_MICRO/TOTAL_WAITS
---------------- ----------------- ----------- -----------------------------
2010-05-25 01:00        1128567822     4496478                     250.98929
............
2010-05-25 23:15        1231169379     4703941                    261.731467
2010-05-25 23:30        1282636291     4639954                    276.432976
2010-05-25 23:45        1360151005     4496391                    302.498383
2010-05-26 00:00         912223796     4210939                    216.631919
2010-05-26 00:15        1507247039     5024973                    299.951271
2010-05-26 00:30        1524815181     5234298                     291.31226
2010-05-26 00:45        2691204366     5108648                    526.793853
2010-05-26 01:00        3125441997     4723104                     661.73474


the system event of &#039;SQL*Net message to client&#039;
 SNAP_TIME        TIME_WAITED_MICRO TOTAL_WAITS TIME_WAITED_MICRO/TOTAL_WAITS
---------------- ----------------- ----------- -----------------------------
2010-05-25 01:00          15541619     3162845                    4.91380988
..........
2010-05-25 23:15          14801067     3046039                    4.85911933
2010-05-25 23:30          14479453     2967351                     4.8795889
2010-05-25 23:45          14589455     3004230                    4.85630428
2010-05-26 00:00          14219425     2924318                    4.86247563
2010-05-26 00:15          16295497     3308064                    4.92599206
2010-05-26 00:30          18020082     3661416                    4.92161557
2010-05-26 00:45          17216179     3507996                     4.9076963
2010-05-26 01:00          16622061     3371335                    4.93040917


Thanks for your help on this in advance.

Shenglin</description>
		<content:encoded><![CDATA[<p>Hi Tanel,</p>
<p>  I hit a network issue on May 26th. PD complained the slowness of their job at that time. I checked the running session using v$session_event and found the most time waiting for &#8216;SQL*Net more data to client&#8217; and &#8216;virtual circuit status&#8217;(We use MTS). Using the stats$system_event(we use statspack with 15 minutes sampling), I found the average wait time(TIME_WAITED_MICRO/TOTAL_WAITS) of &#8216;SQL*Net more data to client&#8217; increased from 200 to about 600. However, the average wait time of &#8216;SQL*Net message to client&#8217; was always 4-5. Finally, I found the root cause is the network issue caused by failed switch. </p>
<p>My questions are,</p>
<p>1. Can we use average wait time of &#8216;SQL*Net more data to client&#8217; to measure the network latency? (it&#8217;s not the first time we use this to detect the network issue).</p>
<p>2. Why the average wait time of &#8216;SQL*Net message to client&#8217; didn&#8217;t change during the network issue since the &#8216;SQL*Net more data to client&#8217; is just used to send more data over first SDU buffer as you stated above?</p>
<p>PS. the system event of &#8216;SQL*Net more data to client&#8217;<br />
SNAP_TIME        TIME_WAITED_MICRO TOTAL_WAITS TIME_WAITED_MICRO/TOTAL_WAITS<br />
&#8212;&#8212;&#8212;&#8212;&#8212;- &#8212;&#8212;&#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
2010-05-25 01:00        1128567822     4496478                     250.98929<br />
&#8230;&#8230;&#8230;&#8230;<br />
2010-05-25 23:15        1231169379     4703941                    261.731467<br />
2010-05-25 23:30        1282636291     4639954                    276.432976<br />
2010-05-25 23:45        1360151005     4496391                    302.498383<br />
2010-05-26 00:00         912223796     4210939                    216.631919<br />
2010-05-26 00:15        1507247039     5024973                    299.951271<br />
2010-05-26 00:30        1524815181     5234298                     291.31226<br />
2010-05-26 00:45        2691204366     5108648                    526.793853<br />
2010-05-26 01:00        3125441997     4723104                     661.73474</p>
<p>the system event of &#8216;SQL*Net message to client&#8217;<br />
 SNAP_TIME        TIME_WAITED_MICRO TOTAL_WAITS TIME_WAITED_MICRO/TOTAL_WAITS<br />
&#8212;&#8212;&#8212;&#8212;&#8212;- &#8212;&#8212;&#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
2010-05-25 01:00          15541619     3162845                    4.91380988<br />
&#8230;&#8230;&#8230;.<br />
2010-05-25 23:15          14801067     3046039                    4.85911933<br />
2010-05-25 23:30          14479453     2967351                     4.8795889<br />
2010-05-25 23:45          14589455     3004230                    4.85630428<br />
2010-05-26 00:00          14219425     2924318                    4.86247563<br />
2010-05-26 00:15          16295497     3308064                    4.92599206<br />
2010-05-26 00:30          18020082     3661416                    4.92161557<br />
2010-05-26 00:45          17216179     3507996                     4.9076963<br />
2010-05-26 01:00          16622061     3371335                    4.93040917</p>
<p>Thanks for your help on this in advance.</p>
<p>Shenglin</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Eduardo Legatti</title>
		<link>http://blog.tanelpoder.com/2008/02/10/sqlnet-message-to-client-vs-sqlnet-more-data-to-client/comment-page-1/#comment-1590</link>
		<dc:creator>Eduardo Legatti</dc:creator>
		<pubDate>Mon, 18 May 2009 14:23:51 +0000</pubDate>
		<guid isPermaLink="false">http://tanelpoder.wordpress.com/2008/02/10/sqlnet-message-to-client-vs-sqlnet-more-data-to-client/#comment-1590</guid>
		<description>Hi Tanel,

I only got acceptable export speed when I changed the default buffer size to a high value:

exp user/password buffer=100000000

So, do you think there is some O/S kernel related parameter that I should to review?

Cheers</description>
		<content:encoded><![CDATA[<p>Hi Tanel,</p>
<p>I only got acceptable export speed when I changed the default buffer size to a high value:</p>
<p>exp user/password buffer=100000000</p>
<p>So, do you think there is some O/S kernel related parameter that I should to review?</p>
<p>Cheers</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Eduardo Legatti</title>
		<link>http://blog.tanelpoder.com/2008/02/10/sqlnet-message-to-client-vs-sqlnet-more-data-to-client/comment-page-1/#comment-1583</link>
		<dc:creator>Eduardo Legatti</dc:creator>
		<pubDate>Sat, 16 May 2009 14:10:59 +0000</pubDate>
		<guid isPermaLink="false">http://tanelpoder.wordpress.com/2008/02/10/sqlnet-message-to-client-vs-sqlnet-more-data-to-client/#comment-1583</guid>
		<description>Hi Tanel,

Thanks for the tips, I&#039;ll check it out ...

Cheers</description>
		<content:encoded><![CDATA[<p>Hi Tanel,</p>
<p>Thanks for the tips, I&#8217;ll check it out &#8230;</p>
<p>Cheers</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Tanel Poder</title>
		<link>http://blog.tanelpoder.com/2008/02/10/sqlnet-message-to-client-vs-sqlnet-more-data-to-client/comment-page-1/#comment-1581</link>
		<dc:creator>Tanel Poder</dc:creator>
		<pubDate>Sat, 16 May 2009 08:36:42 +0000</pubDate>
		<guid isPermaLink="false">http://tanelpoder.wordpress.com/2008/02/10/sqlnet-message-to-client-vs-sqlnet-more-data-to-client/#comment-1581</guid>
		<description>While doing your test, also run &quot;tnsping DBNAME 999&quot; so you&#039;d get some latency figures (for small packets)

If you think that everything is configured normally, there is no significant network latency nor application think time then you can look deeper - dump the network packets at client with tcpdump (if on linux) and analyze part of the transmission with Wireshark (www.wireshark.org). This will give you SDU/TDU sizes, resends, packet reassemblies and timestamps you need for finding where the time is going IF it&#039;s a network transport issue.</description>
		<content:encoded><![CDATA[<p>While doing your test, also run &#8220;tnsping DBNAME 999&#8243; so you&#8217;d get some latency figures (for small packets)</p>
<p>If you think that everything is configured normally, there is no significant network latency nor application think time then you can look deeper &#8211; dump the network packets at client with tcpdump (if on linux) and analyze part of the transmission with Wireshark (www.wireshark.org). This will give you SDU/TDU sizes, resends, packet reassemblies and timestamps you need for finding where the time is going IF it&#8217;s a network transport issue.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Tanel Poder</title>
		<link>http://blog.tanelpoder.com/2008/02/10/sqlnet-message-to-client-vs-sqlnet-more-data-to-client/comment-page-1/#comment-1580</link>
		<dc:creator>Tanel Poder</dc:creator>
		<pubDate>Sat, 16 May 2009 08:32:40 +0000</pubDate>
		<guid isPermaLink="false">http://tanelpoder.wordpress.com/2008/02/10/sqlnet-message-to-client-vs-sqlnet-more-data-to-client/#comment-1580</guid>
		<description>Btw, some misconfigured VLANs can driver up latency even in local area networks.</description>
		<content:encoded><![CDATA[<p>Btw, some misconfigured VLANs can driver up latency even in local area networks.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Tanel Poder</title>
		<link>http://blog.tanelpoder.com/2008/02/10/sqlnet-message-to-client-vs-sqlnet-more-data-to-client/comment-page-1/#comment-1579</link>
		<dc:creator>Tanel Poder</dc:creator>
		<pubDate>Sat, 16 May 2009 08:32:04 +0000</pubDate>
		<guid isPermaLink="false">http://tanelpoder.wordpress.com/2008/02/10/sqlnet-message-to-client-vs-sqlnet-more-data-to-client/#comment-1579</guid>
		<description>I don&#039;t know what numbers do you normally see but the numbers you sent earlier show that your exp had done 26000 sqlnet roundtrips which on average took over 10ms each. Note that the sql*net messasge from client wait time includes the following:

1) time the result network packets are &quot;flying&quot; towards the client
2) client application think time - this is important as if you use some pipe for compression on the fly, the think time may become even longer
3) time the next request packet is &quot;flying&quot; towards the server</description>
		<content:encoded><![CDATA[<p>I don&#8217;t know what numbers do you normally see but the numbers you sent earlier show that your exp had done 26000 sqlnet roundtrips which on average took over 10ms each. Note that the sql*net messasge from client wait time includes the following:</p>
<p>1) time the result network packets are &#8220;flying&#8221; towards the client<br />
2) client application think time &#8211; this is important as if you use some pipe for compression on the fly, the think time may become even longer<br />
3) time the next request packet is &#8220;flying&#8221; towards the server</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Eduardo Legatti</title>
		<link>http://blog.tanelpoder.com/2008/02/10/sqlnet-message-to-client-vs-sqlnet-more-data-to-client/comment-page-1/#comment-1577</link>
		<dc:creator>Eduardo Legatti</dc:creator>
		<pubDate>Sat, 16 May 2009 00:21:54 +0000</pubDate>
		<guid isPermaLink="false">http://tanelpoder.wordpress.com/2008/02/10/sqlnet-message-to-client-vs-sqlnet-more-data-to-client/#comment-1577</guid>
		<description>Hi Tanel,

Thanks for the response. In fact, I have never faced this kind of problem before. I&#039;m trying to understand why in the local server the export operation took so fast, and why the export operation from a remote machine took so long. 2 or 3 minutes is acceptable, but 1 hour? For 5 years, we have working in a Oracle 10g installed in another server, and this kind of problem have never happened before. The development team used to take exports (exp) and imports (imp) using default buffers size since then, without problems:

exp user/passwrod@service file=file.dmp ...

The network analyst of the company made some tests using &quot;scp&quot; Linux commands in order to copy big files from that new Oracle 11g server to another server and vice versa without problems. The speed rate of copying a file was normal as expected (10MB/s) in a 100Mbs network.

The SDU/TDU SQLNet configuration is using the default values. The MTU of the LAN is fine too (1500 bytes).

So, I&#039;m not sure how to find out either what could might causing this delay or contention. Maybe looking at Linux Kernel related network parameters? Maybe taking a test ... like connecting a direct crossover cable connection between the server and a client machine?

Well, on next Monday I will try to take more tests ...

Thanks.</description>
		<content:encoded><![CDATA[<p>Hi Tanel,</p>
<p>Thanks for the response. In fact, I have never faced this kind of problem before. I&#8217;m trying to understand why in the local server the export operation took so fast, and why the export operation from a remote machine took so long. 2 or 3 minutes is acceptable, but 1 hour? For 5 years, we have working in a Oracle 10g installed in another server, and this kind of problem have never happened before. The development team used to take exports (exp) and imports (imp) using default buffers size since then, without problems:</p>
<p>exp user/passwrod@service file=file.dmp &#8230;</p>
<p>The network analyst of the company made some tests using &#8220;scp&#8221; Linux commands in order to copy big files from that new Oracle 11g server to another server and vice versa without problems. The speed rate of copying a file was normal as expected (10MB/s) in a 100Mbs network.</p>
<p>The SDU/TDU SQLNet configuration is using the default values. The MTU of the LAN is fine too (1500 bytes).</p>
<p>So, I&#8217;m not sure how to find out either what could might causing this delay or contention. Maybe looking at Linux Kernel related network parameters? Maybe taking a test &#8230; like connecting a direct crossover cable connection between the server and a client machine?</p>
<p>Well, on next Monday I will try to take more tests &#8230;</p>
<p>Thanks.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Tanel Poder</title>
		<link>http://blog.tanelpoder.com/2008/02/10/sqlnet-message-to-client-vs-sqlnet-more-data-to-client/comment-page-1/#comment-1573</link>
		<dc:creator>Tanel Poder</dc:creator>
		<pubDate>Fri, 15 May 2009 19:38:25 +0000</pubDate>
		<guid isPermaLink="false">http://tanelpoder.wordpress.com/2008/02/10/sqlnet-message-to-client-vs-sqlnet-more-data-to-client/#comment-1573</guid>
		<description>Hi Eduardo,

See taht your session had made 26048 roundtrips during session startup. Now if every roundtrip takes let say 100ms then you&#039;ll have ~2600 seconds of response time there. In fact in your case the time spent waiting for client (next fetch) was ~3000 seconds already. So it&#039;s the network latency combined with high number of fetches/network roundtrips.

How did you perform the export? Make your export buffer size larger, this should reduce number of network roundtrips and response time.</description>
		<content:encoded><![CDATA[<p>Hi Eduardo,</p>
<p>See taht your session had made 26048 roundtrips during session startup. Now if every roundtrip takes let say 100ms then you&#8217;ll have ~2600 seconds of response time there. In fact in your case the time spent waiting for client (next fetch) was ~3000 seconds already. So it&#8217;s the network latency combined with high number of fetches/network roundtrips.</p>
<p>How did you perform the export? Make your export buffer size larger, this should reduce number of network roundtrips and response time.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

