<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>Question Re: Poor ADO.net Driver Performance in Technology Q&amp;A</title>
    <link>https://community.sap.com/t5/technology-q-a/poor-ado-net-driver-performance/qaa-p/9760045#M3496321</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Chris,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;gt;&amp;gt; Has there been any progress on the ADO.Net performance issue reported here?&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Just to confirm, are we still referring to Ach's original ADO.NET .Fill() code with the same ADO.NET driver versions?&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;STRONG&gt;&amp;gt;&amp;gt; Does a simple select statement really require 10 messages to be exchanged?&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The answer to his question is really: "it depends" -&amp;nbsp; the programming interface used, the preparation type of the statement, and the &lt;A href="http://en.wikipedia.org/wiki/Maximum_transmission_unit"&gt;MTU size of your TCP network&lt;/A&gt;.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Have you been able to use &lt;A href="http://www.wireshark.org/"&gt;WireShark&lt;/A&gt; or similar to trace out the two database client TCP conversations (WAN vs. LAN) to the database server in order to determine the difference in latency between the packets and if there are any errors associated with transmitting the packets over the WAN?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Also (and I'm not sure why &lt;SPAN __jive_emoticon_name="happy" __jive_macro_name="emoticon" class="jive_macro jive_emote jiveImage" src="https://community.sap.com/568/images/emoticons/happy.gif"&gt;&lt;/SPAN&gt;), we never actually asked about the SQL query being used - what is it and over what types of objects? What happens if you use a 'fake' query instead, does it change the behaviour? i.e.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; &lt;SPAN style="font-family: courier new,courier;"&gt;SELECT row_num FROM sa_rowgenerator( 1, 4000 );&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Jeff Albion&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;SAP Active Global Support&lt;/STRONG&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Fri, 21 Feb 2014 22:31:53 GMT</pubDate>
    <dc:creator>jeff_albion</dc:creator>
    <dc:date>2014-02-21T22:31:53Z</dc:date>
    <item>
      <title>Poor ADO.net Driver Performance</title>
      <link>https://community.sap.com/t5/technology-q-a/poor-ado-net-driver-performance/qaq-p/9760033</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi all,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I wondered whether anyone might be able to help me with a problem. We are using iAnywhere.Data.SQLAnywhere.v3.5.dll versions 11 &amp;amp; 12 to connect to a Sybase database over a LAN which is fast and reliable. However we have recently been using this over a WAN with both Sybase and other drivers. We have noticed a significant decrease in performance when using the Sybase ADO.net driver in comparison to other database platforms and drivers (such as SQL Server's ADO.net driver). The performance issue has been tracked to the Fill method of the Data Adapter. Even small retrieve statements can take seconds compared to near instant retrieves when connected over the LAN or indeed those of other drivers over a WAN. The performance difference is substantial between the Sybase and SQL Server drivers, with SQL being much much quicker. Is there something we are missing, or is this a scenario not supported by Sybase?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;For reference we have also confirmed this issue to be the same with the latest version of Sybase v16. Any advice or comments much appreciated.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;thanks&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Ach&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 14 Oct 2013 08:43:18 GMT</pubDate>
      <guid>https://community.sap.com/t5/technology-q-a/poor-ado-net-driver-performance/qaq-p/9760033</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2013-10-14T08:43:18Z</dc:date>
    </item>
    <item>
      <title>Re: Poor ADO.net Driver Performance</title>
      <link>https://community.sap.com/t5/technology-q-a/poor-ado-net-driver-performance/qaa-p/9760034#M3496310</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Ach,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Which version and builds of the SQL Anywhere ADO.NET driver have you tested specifically for this behaviour? Which version and builds of the database server have you used for your testing?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;From a .NET perspective, how are you actually going about "Fill"ing the data adapter exactly? Can you provide a short code sample of this? Do you need to create a new connection in order to perform the Fill operation?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;When you're comparing SQL Anywhere against other databases, is the time to execute the queries otherwise the "same" and you're just looking at the time to transfer the results over the network...? (e.g. is the time "expected" if everything is executed locally?)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Jeff Albion&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;SAP Active Global Support&lt;/STRONG&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 15 Oct 2013 17:32:38 GMT</pubDate>
      <guid>https://community.sap.com/t5/technology-q-a/poor-ado-net-driver-performance/qaa-p/9760034#M3496310</guid>
      <dc:creator>jeff_albion</dc:creator>
      <dc:date>2013-10-15T17:32:38Z</dc:date>
    </item>
    <item>
      <title>Re: Poor ADO.net Driver Performance</title>
      <link>https://community.sap.com/t5/technology-q-a/poor-ado-net-driver-performance/qaa-p/9760035#M3496311</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks for the reply Jeff. Some answers for you:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;BLOCKQUOTE class="gmail_quote" style="margin: 0 0 0 0.8ex; border-left-width: 1px; border-left-color: #cccccc; border-left-style: solid; padding-left: 1ex;"&gt;&lt;P&gt;Which version and builds of the SQL Anywhere &lt;A href="http://ADO.NET" target="_blank"&gt;ADO.NET&lt;/A&gt; driver have you tested specifically for this behaviour? Which version and builds of the database server have you used for your testing?&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P class="gmail_default"&gt;&lt;/P&gt;&lt;P class="gmail_default" style="font-family: verdana,sans-serif;"&gt;&lt;EM&gt;iAnywhere.Data.SQLAnywhere.v3.5.dll &lt;/EM&gt;&lt;/P&gt;&lt;P class="gmail_default" style="font-family: verdana,sans-serif;"&gt;&amp;nbsp; &lt;EM&gt;versions &lt;/EM&gt;&lt;/P&gt;&lt;P class="gmail_default" style="font-family: verdana,sans-serif;"&gt;&lt;EM&gt;11 (build 11.0.1.24363)&lt;/EM&gt;&lt;/P&gt;&lt;P class="gmail_default" style="font-family: verdana,sans-serif;"&gt;&lt;EM&gt;12 (build 12.0.1.36053)&lt;BR /&gt;&amp;nbsp; &lt;/EM&gt;&lt;/P&gt;&lt;P class="gmail_default" style="font-family: verdana,sans-serif;"&gt;&lt;EM&gt;16 (build 16.0.0.13243)&lt;/EM&gt;&lt;/P&gt;&lt;P class="im"&gt;&lt;/P&gt;&lt;BLOCKQUOTE class="gmail_quote" style="margin: 0 0 0 0.8ex; border-left-width: 1px; border-left-color: #cccccc; border-left-style: solid; padding-left: 1ex;"&gt;&lt;P&gt;From a .NET perspective, how are you actually going about "Fill"ing the data adapter exactly? Can you provide a short code sample of this? Do you need to create a new connection in order to perform the Fill operation?&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;/P&gt;&lt;P class="gmail_default" style="font-family: verdana,sans-serif;"&gt;&lt;EM&gt;We do create a new connection if required yes, w&lt;/EM&gt;&lt;EM&gt;ith that connection we then create our DataAdapter:&lt;/EM&gt;&lt;/P&gt;&lt;P class="gmail_default"&gt;&lt;/P&gt;&lt;DIV class="gmail_default"&gt;&lt;SPAN style="font-family: verdana,sans-serif;"&gt;&lt;EM&gt; &lt;/EM&gt;&lt;/SPAN&gt;&lt;P class="gmail_default"&gt;&lt;SPAN style="font-family: verdana,sans-serif;"&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public TDataAdapter CreateDataAdapter(String commandText)&lt;/EM&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="gmail_default"&gt;&lt;SPAN style="font-family: verdana,sans-serif;"&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/EM&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="gmail_default"&gt;&lt;SPAN style="font-family: verdana,sans-serif;"&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var command = this.CreateCommand(commandText);&lt;/EM&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="gmail_default"&gt;&lt;SPAN style="font-family: verdana,sans-serif;"&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var dataAdapter = new TDataAdapter();&lt;/EM&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="gmail_default"&gt;&lt;SPAN style="font-family: verdana,sans-serif;"&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dataAdapter.SelectCommand = command;&lt;/EM&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="gmail_default"&gt;&lt;SPAN style="font-family: verdana,sans-serif;"&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return dataAdapter;&lt;/EM&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="gmail_default"&gt;&lt;SPAN style="font-family: verdana,sans-serif;"&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/EM&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;&lt;P class="gmail_default" style="font-family: verdana,sans-serif;"&gt;&amp;nbsp; &lt;EM&gt;&lt;BR /&gt;&lt;/EM&gt;&lt;/P&gt;&lt;P class="gmail_default" style="font-family: verdana,sans-serif;"&gt;&lt;EM&gt;Both of which result in something along the lines of:&lt;/EM&gt;&lt;/P&gt;&lt;DIV class="gmail_default"&gt;&lt;DIV class="gmail_default"&gt;&lt;P&gt;&lt;SPAN style="font-family: verdana,sans-serif;"&gt;&lt;EM&gt;&lt;BR /&gt;&lt;/EM&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="gmail_default"&gt;&lt;SPAN style="font-family: verdana,sans-serif;"&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; using (var conn = connectionFactory.CreateConnection())&lt;/EM&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="gmail_default"&gt;&lt;SPAN style="font-family: verdana,sans-serif;"&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/EM&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="gmail_default"&gt;&lt;SPAN style="font-family: verdana,sans-serif;"&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; using (var dataAdapter = conn.CreateDataAdapter(_selectSQL))&lt;/EM&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="gmail_default"&gt;&lt;SPAN style="font-family: verdana,sans-serif;"&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/EM&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="gmail_default"&gt;&lt;EM&gt;&lt;SPAN style="font-family: verdana,sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dataAdapter.Fill(dataSet);&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp; &lt;/EM&gt;&lt;/P&gt;&lt;P class="gmail_default"&gt;&lt;/P&gt;&lt;DIV class="gmail_default"&gt;&lt;SPAN style="font-family: verdana,sans-serif;"&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;P&gt;&lt;/P&gt;&lt;P class="gmail_default"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;/EM&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;P class="im"&gt;&lt;/P&gt;&lt;DIV class="gmail_default" style="font-family: verdana,sans-serif;"&gt;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&lt;BLOCKQUOTE class="gmail_quote" style="margin: 0 0 0 0.8ex; border-left-width: 1px; border-left-color: #cccccc; border-left-style: solid; padding-left: 1ex;"&gt;&lt;P&gt;When you're comparing SQL Anywhere against other databases, is the time to execute the queries otherwise the "same" and you're just looking at the time to transfer the results over the network...? (e.g. is the time "expected" if everything is executed locally?)&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;/DIV&gt;&lt;P class="gmail_default" style="font-family: verdana,sans-serif;"&gt;&lt;EM&gt;The time is largely the same to execute queries. The time difference is in adding the data to the data set. limiting the number of columns and the number of rows returned from a select statement does improve the time slightly although performance is still poor compared with SQL Server. When running locally over the LAN times are roughly comparable.&lt;/EM&gt;&lt;/P&gt;&lt;P class="gmail_default"&gt;&lt;/P&gt;&lt;P class="gmail_default" style="font-family: verdana,sans-serif;"&gt;&lt;EM&gt;Does that help?&lt;/EM&gt;&lt;/P&gt;&lt;P class="gmail_default"&gt;&lt;/P&gt;&lt;P class="gmail_default" style="font-family: verdana,sans-serif;"&gt;&lt;EM&gt;Ach&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&lt;/EM&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 17 Oct 2013 14:16:15 GMT</pubDate>
      <guid>https://community.sap.com/t5/technology-q-a/poor-ado-net-driver-performance/qaa-p/9760035#M3496311</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2013-10-17T14:16:15Z</dc:date>
    </item>
    <item>
      <title>Re: Poor ADO.net Driver Performance</title>
      <link>https://community.sap.com/t5/technology-q-a/poor-ado-net-driver-performance/qaa-p/9760036#M3496312</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Ach,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; How many records are in the result set?&lt;/P&gt;&lt;P&gt;Also, if you are able, can you check the server property "&lt;SPAN style="color: #1f497d; font-family: &amp;amp;quot;Calibri&amp;amp;quot;,&amp;amp;quot;sans-serif&amp;amp;quot;; font-size: 11pt; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;"&gt;RequestsReceived&lt;/SPAN&gt;" before and after the dataAdapter.Fill() call (assuming nothing else is running at the same time)?&amp;nbsp; You can check this property by running SELECT property( '&lt;SPAN style="color: #1f497d; font-family: &amp;amp;quot;Calibri&amp;amp;quot;,&amp;amp;quot;sans-serif&amp;amp;quot;; font-size: 11pt; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;"&gt;RequestsReceived&lt;/SPAN&gt;') FROM DUMMY in a DBISQL session.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This will tell us how many round trips we are doing to the server during the "Fill()" call.&amp;nbsp; As far as I can tell, based on your responses to Jeff's questions, an increased number of roundtrips should be the only reason you see such a performance difference in WAN vs LAN.&lt;/P&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;P&gt;--Jason&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 17 Oct 2013 18:41:58 GMT</pubDate>
      <guid>https://community.sap.com/t5/technology-q-a/poor-ado-net-driver-performance/qaa-p/9760036#M3496312</guid>
      <dc:creator>JasonHinsperger</dc:creator>
      <dc:date>2013-10-17T18:41:58Z</dc:date>
    </item>
    <item>
      <title>Re: Poor ADO.net Driver Performance</title>
      <link>https://community.sap.com/t5/technology-q-a/poor-ado-net-driver-performance/qaa-p/9760037#M3496313</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks for the reply Jason. Between 1 and 1500 records are returned and both before and after the result of RequestsReceived is null.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 18 Oct 2013 14:06:43 GMT</pubDate>
      <guid>https://community.sap.com/t5/technology-q-a/poor-ado-net-driver-performance/qaa-p/9760037#M3496313</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2013-10-18T14:06:43Z</dc:date>
    </item>
    <item>
      <title>Re: Poor ADO.net Driver Performance</title>
      <link>https://community.sap.com/t5/technology-q-a/poor-ado-net-driver-performance/qaa-p/9760038#M3496314</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;Hi Ach,&lt;/DIV&gt;&lt;DIV class="gmail_default" style="font-family: verdana,sans-serif;"&gt;&lt;PRE&gt;&lt;CODE&gt;&lt;EM&gt;Does that help?&lt;/EM&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;/DIV&gt;&lt;DIV&gt; &lt;/DIV&gt;&lt;DIV&gt;Yes, your responses have been very helpful. &lt;SPAN __jive_emoticon_name="happy" __jive_macro_name="emoticon" class="jive_macro jive_emote" src="https://community.sap.com/1904/images/emoticons/happy.gif"&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;PRE&gt;&lt;CODE&gt;&lt;DIV&gt;&lt;EM&gt;We do create a new connection if required yes&lt;/EM&gt;&lt;/DIV&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;DIV&gt; &lt;/DIV&gt;&lt;DIV&gt;Have you been able to separate out any increase in connection times in WAN vs. LAN situations from the time taken by the .Fill() operation? (Are you measuring the total time for all of this code to execute, or have you been able to profile it down to just the .Fill() operation?)&lt;/DIV&gt;&lt;DIV&gt; &lt;/DIV&gt;&lt;DIV&gt;What does your connection string look like? Does it change from the WAN vs. LAN situation? If the connection is already guaranteed to be established, does the time to complete the .Fill() change?&lt;/DIV&gt;&lt;DIV&gt; &lt;/DIV&gt;&lt;PRE&gt;&lt;CODE&gt;&lt;DIV class="gmail_default" style="font-family: verdana,sans-serif;"&gt;&lt;EM&gt;12 (build 12.0.1.36053)&lt;BR /&gt;&lt;/EM&gt;&lt;EM&gt;16 (build 16.0.0.13243)&lt;/EM&gt;&lt;/DIV&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;DIV&gt; &lt;/DIV&gt;&lt;DIV&gt;You may want to try later builds of 12.0.1 and 16.0.0 to solve &lt;A href="http://search.sybase.com/kbx/changerequests?bug_id=743048"&gt;CR #743048&lt;/A&gt;, which improve .Open() times for pooled connections.&lt;/DIV&gt;&lt;DIV&gt; &lt;/DIV&gt;&lt;PRE&gt;&lt;CODE&gt;&lt;DIV&gt;Between 1 and 1500 records are returned&lt;/DIV&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;DIV&gt; &lt;/DIV&gt;&lt;DIV&gt;If you stabilize the size of the result set for testing purposes (pick '1500' ?), what is the time difference we're talking about between LAN and WAN conditions? Is it a 'seconds' difference or 'milliseconds'...? On Microsoft SQL Server when comparing WAN vs. LAN conditions, is there a difference also in execution times and if so, by how much?&lt;/DIV&gt;&lt;DIV&gt; &lt;/DIV&gt;&lt;DIV&gt; &lt;/DIV&gt;&lt;DIV&gt;Also, if you execute the .Fill() command multiple times in sequence, does the time change or stay the same to complete the operation on the next execution?&lt;/DIV&gt;&lt;DIV&gt; &lt;/DIV&gt;&lt;DIV&gt; &lt;/DIV&gt;&lt;DIV&gt;What are the qualities for a 'LAN' vs. 'WAN' to your environment - LAN vs. Internet? What are the network speed differences in the two connections?&lt;/DIV&gt;&lt;DIV&gt; &lt;/DIV&gt;&lt;DIV&gt; &lt;/DIV&gt;&lt;DIV&gt;Regards,&lt;/DIV&gt;&lt;DIV&gt; &lt;/DIV&gt;&lt;DIV&gt; &lt;/DIV&gt;&lt;DIV&gt;&lt;STRONG&gt;Jeff Albion&lt;/STRONG&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;STRONG&gt;SAP Active Global Support&lt;/STRONG&gt;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 18 Oct 2013 16:07:43 GMT</pubDate>
      <guid>https://community.sap.com/t5/technology-q-a/poor-ado-net-driver-performance/qaa-p/9760038#M3496314</guid>
      <dc:creator>jeff_albion</dc:creator>
      <dc:date>2013-10-18T16:07:43Z</dc:date>
    </item>
    <item>
      <title>Re: Poor ADO.net Driver Performance</title>
      <link>https://community.sap.com/t5/technology-q-a/poor-ado-net-driver-performance/qaa-p/9760039#M3496315</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks for the reply Jeff. We have profiled the issue down to the .fill() operation in our testing. Our connection string is as follows:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;lt;add key="SAConnectionString" value="servername=ABC123;uid={0};pwd={1};CommLinks=tcpip(HOST=xxx.xxx.xxx.xxx;port=1234);dbn=DSN1"/&amp;gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;We will need a bit of time to setup our environments to obtain the answer to the other questions you mentioned. I will let you know the results shortly.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;thanks&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Paul&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;P&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 28 Oct 2013 08:23:24 GMT</pubDate>
      <guid>https://community.sap.com/t5/technology-q-a/poor-ado-net-driver-performance/qaa-p/9760039#M3496315</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2013-10-28T08:23:24Z</dc:date>
    </item>
    <item>
      <title>Re: Poor ADO.net Driver Performance</title>
      <link>https://community.sap.com/t5/technology-q-a/poor-ado-net-driver-performance/qaa-p/9760040#M3496316</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Jeff,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Please find below a comparison by database version and dll build of timings, which as you can see shows significant degradation in performance for Sybase over the WAN. As you will see we are using builds which resolve issue CR743048.&lt;/P&gt;&lt;P&gt;&lt;IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/attachments/storage/7/jiveimages/318986" width="450" /&gt;&lt;/P&gt;&lt;P&gt;We have also include the order in which the queries are run so you can see differences in subsequent execution time after the .Fill command is executed. In our situation we are running the database locally for the LAN and connecting to database(s) hosted in a data center over the internet for the WAN situation. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I hope that this answers your questions if not please just let me know.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;thanks&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Ach&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 07 Nov 2013 14:43:07 GMT</pubDate>
      <guid>https://community.sap.com/t5/technology-q-a/poor-ado-net-driver-performance/qaa-p/9760040#M3496316</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2013-11-07T14:43:07Z</dc:date>
    </item>
    <item>
      <title>Re: Poor ADO.net Driver Performance</title>
      <link>https://community.sap.com/t5/technology-q-a/poor-ado-net-driver-performance/qaa-p/9760041#M3496317</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Ach,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;That's a very interesting result - I would certainly agree that something does not look right. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;&lt;P&gt;In our situation we are running the database locally for the LAN and connecting to database(s) hosted in a data center over the internet&lt;/P&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;BR /&gt;Admittedly, this is not the same SQL Anywhere database server: you're sure that if you execute queries locally on the data center that you see the same response times as the LAN configuration? (e.g. the server performance always looks the "same" for these queries, from the database server's perspective?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Is the Microsoft SQL Server machine on the same virtual instance in the data center or a different instance? If not, is it the same network routing in the data center to both database servers?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Have you attempted to capture a network trace to help and decide what's happening at the raw network level? (i.e. are there just simply more packets, more delays, any errors, resend requests, unexpected traffic, etc.?) It would be interesting to compare the network traces to see what's happening between the different cases. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Jeff Albion&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;SAP Active Global Support&lt;/STRONG&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 08 Nov 2013 16:37:57 GMT</pubDate>
      <guid>https://community.sap.com/t5/technology-q-a/poor-ado-net-driver-performance/qaa-p/9760041#M3496317</guid>
      <dc:creator>jeff_albion</dc:creator>
      <dc:date>2013-11-08T16:37:57Z</dc:date>
    </item>
    <item>
      <title>Re: Poor ADO.net Driver Performance</title>
      <link>https://community.sap.com/t5/technology-q-a/poor-ado-net-driver-performance/qaa-p/9760042#M3496318</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Has there been any progress on the ADO.Net performance issue reported here?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I've done some testing and running a simple select statement on the server takes around 25ms. The same query running over a 15MBit connection takes around 500ms.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The query returns 29 rows. When the query is modified to return 0 results it still takes around 350ms. Locally this takes 15ms.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In another test, I return a 29 rows with a single integer - locally 12ms but over the internet 350ms.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I appreciate that it will take longer to return data over the internet vs local or even a local LAN but this difference is far larger than I would expect.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;It looks like the internet request is taking 350ms with the full data payload being 150ms.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Chris&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 20 Feb 2014 23:16:33 GMT</pubDate>
      <guid>https://community.sap.com/t5/technology-q-a/poor-ado-net-driver-performance/qaa-p/9760042#M3496318</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2014-02-20T23:16:33Z</dc:date>
    </item>
    <item>
      <title>Re: Poor ADO.net Driver Performance</title>
      <link>https://community.sap.com/t5/technology-q-a/poor-ado-net-driver-performance/qaa-p/9760043#M3496319</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;For Internet scenarios the bandwidth is mostly not the bottleneck, but the latency is.&lt;/P&gt;&lt;P&gt;E.g. if you have a ping time of 50ms it means, that exchaning 10 messages to perform a task like a database query will lead to a minimum time of 500ms needed...&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 21 Feb 2014 08:48:32 GMT</pubDate>
      <guid>https://community.sap.com/t5/technology-q-a/poor-ado-net-driver-performance/qaa-p/9760043#M3496319</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2014-02-21T08:48:32Z</dc:date>
    </item>
    <item>
      <title>Re: Poor ADO.net Driver Performance</title>
      <link>https://community.sap.com/t5/technology-q-a/poor-ado-net-driver-performance/qaa-p/9760044#M3496320</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Martin,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Ping time is around 38ms.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Performing a select that returns a single integer still takes between 330ms and 450ms.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have a lot of experience with SQL Server and MySQL - I will put together a test to to compare the three databases.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Does a simple select statement really require 10 messages to be exchanged? &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In the meantime, what connection string options could I use to improve network performance. I have been through the manual - none of the settings I tried make any significant difference (and I tried all the obvious ones).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Chris&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 21 Feb 2014 10:00:16 GMT</pubDate>
      <guid>https://community.sap.com/t5/technology-q-a/poor-ado-net-driver-performance/qaa-p/9760044#M3496320</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2014-02-21T10:00:16Z</dc:date>
    </item>
    <item>
      <title>Re: Poor ADO.net Driver Performance</title>
      <link>https://community.sap.com/t5/technology-q-a/poor-ado-net-driver-performance/qaa-p/9760045#M3496321</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Chris,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;gt;&amp;gt; Has there been any progress on the ADO.Net performance issue reported here?&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Just to confirm, are we still referring to Ach's original ADO.NET .Fill() code with the same ADO.NET driver versions?&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;STRONG&gt;&amp;gt;&amp;gt; Does a simple select statement really require 10 messages to be exchanged?&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The answer to his question is really: "it depends" -&amp;nbsp; the programming interface used, the preparation type of the statement, and the &lt;A href="http://en.wikipedia.org/wiki/Maximum_transmission_unit"&gt;MTU size of your TCP network&lt;/A&gt;.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Have you been able to use &lt;A href="http://www.wireshark.org/"&gt;WireShark&lt;/A&gt; or similar to trace out the two database client TCP conversations (WAN vs. LAN) to the database server in order to determine the difference in latency between the packets and if there are any errors associated with transmitting the packets over the WAN?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Also (and I'm not sure why &lt;SPAN __jive_emoticon_name="happy" __jive_macro_name="emoticon" class="jive_macro jive_emote jiveImage" src="https://community.sap.com/568/images/emoticons/happy.gif"&gt;&lt;/SPAN&gt;), we never actually asked about the SQL query being used - what is it and over what types of objects? What happens if you use a 'fake' query instead, does it change the behaviour? i.e.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; &lt;SPAN style="font-family: courier new,courier;"&gt;SELECT row_num FROM sa_rowgenerator( 1, 4000 );&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Jeff Albion&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;SAP Active Global Support&lt;/STRONG&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 21 Feb 2014 22:31:53 GMT</pubDate>
      <guid>https://community.sap.com/t5/technology-q-a/poor-ado-net-driver-performance/qaa-p/9760045#M3496321</guid>
      <dc:creator>jeff_albion</dc:creator>
      <dc:date>2014-02-21T22:31:53Z</dc:date>
    </item>
    <item>
      <title>Re: Poor ADO.net Driver Performance</title>
      <link>https://community.sap.com/t5/technology-q-a/poor-ado-net-driver-performance/qaa-p/9760046#M3496322</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Jeff,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank you for your reply.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have to say I don't actually know the internals of how the data is being processed. For testing I've used both Entity Framework and NPoco (modified with a Sybase SQL Anywhere factory) converting the data into a strongly typed object. Perhaps I should have started a separate thread?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The simplest select statement I've been testing with is a parametrised query like this:&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #a31515;"&gt;SELECT top 1 OrderID FROM DBA.Orders WHERE CustomerID=@0 order by OrderID&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have a saved a Wireshark capture - I'm happy to send this to you along with the demo application I have created, please let know where to send it.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;To get a single integer from the database took 24 messages to the server and 22 from the server. Running on the local network the number of requests was the same but obviously it was much quicker as latency wasn't an issue.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I haven't got a proper test set up for MySQL at this stage but a similar request took 120ms to complete with 49 messages captured in Wireshark. The MySQL server is less powerful than the Sybase server but has a similar latency.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The actual query doesn't matter. I haven't seen a response from any query (even SELECT 1) take less than 316ms. If a lot of data is being returned it obviously takes longer which is to be expected.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If you let me know where to send the data and application I'll happily forward it on to you.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Chris&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 21 Feb 2014 23:43:30 GMT</pubDate>
      <guid>https://community.sap.com/t5/technology-q-a/poor-ado-net-driver-performance/qaa-p/9760046#M3496322</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2014-02-21T23:43:30Z</dc:date>
    </item>
  </channel>
</rss>

