﻿<?xml version='1.0' encoding='UTF-8'?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/"><channel><title>SQLServerCentral / Discuss Content Posted by Andy Warren / Article Discussions / Article Discussions by Author  / Reducing Round Trips - Part 3 / Latest Posts</title><generator>InstantForum.NET v2.9.0</generator><description>SQLServerCentral</description><link>http://www.sqlservercentral.com/Forums/</link><webMaster>notifications@sqlservercentral.com</webMaster><lastBuildDate>Sat, 25 May 2013 14:45:55 GMT</lastBuildDate><ttl>20</ttl><item><title>RE: Reducing Round Trips - Part 3</title><link>http://www.sqlservercentral.com/Forums/Topic2856-29-1.aspx</link><description>Fair point - I'll see if I can find time to do a network capture to be sure of what is really going on. QA is probably right, but I like to see live to be sure!</description><pubDate>Tue, 18 May 2004 17:45:00 GMT</pubDate><dc:creator>Andy Warren</dc:creator></item><item><title>RE: Reducing Round Trips - Part 3</title><link>http://www.sqlservercentral.com/Forums/Topic2856-29-1.aspx</link><description>I am wondering about the statements regarding nocount.  I agree that it should be set on (not only for performance but because of problems with MS data access technologies throughout their history), but a quick check of the statistics in Query Analyzer report back a single round trip for a stored proc doing a number of updates regardless of the nocount setting (though a bunch more traffic + packets received for the stored proc executed when nocount is off)..</description><pubDate>Fri, 14 May 2004 12:49:00 GMT</pubDate><dc:creator>Andy Grobecker</dc:creator></item><item><title>RE: Reducing Round Trips - Part 3</title><link>http://www.sqlservercentral.com/Forums/Topic2856-29-1.aspx</link><description>&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; TEXT-ALIGN: center" align=center&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;SPAN style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;Reducing Client/Server traffic&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; TEXT-ALIGN: center" align=center&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;SPAN style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; TEXT-ALIGN: center" align=center&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;SPAN style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'"&gt;&lt;FONT size=3&gt;Session Variable Lists&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 'Courier New'"&gt; can be controlled as a just-in-time requirement, instead of loading them ALL at Login… We first were pulling in all of our required drop-down data as soon as a user logs in, and then would reuse these to repopulate (from session) as needed on all forms and pages.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 'Courier New'"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 'Courier New'"&gt;Well we started this way and then needed a refresh process for when the drop-data gets changed by the current user. Example: A user needs to assign an employee to a new route/task (via drop-down) and also add new devices prior to assigning them as well (via drop-down).&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 'Courier New'"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 'Courier New'"&gt;Simple: The form which adds new devices (sets a refresh flag); an include file of all drop-down selections is invoked prior to the usage of all forms and the new session list is built. The user now has the new drop-down data and can continue in finishing the original assignment process.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 'Courier New'"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 'Courier New'"&gt;Update: So now all the selection lists are being made at login and again as needed when the refresh flag is set.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 'Courier New'"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 'Courier New'"&gt;The next step was to use JITS (just-in-time-selection) drop-down builds based on the form requirements as each page is called, instead of building them all at once (during logon). We created an include ASP procedure which we call with the form name prior to using the form each time it is used. This procedure builds all drop-down lists (&lt;B style="mso-bidi-font-weight: normal"&gt;only&lt;/B&gt; if not already built). This helps to eliminate the big wait just after logon, which was getting pretty obvious, and eliminated the extra work being done for forms (drop-down) requirements which were not even being used.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 'Courier New'"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 'Courier New'"&gt;We researched our “logon history” table and found that most of our users were logging in to accomplish the following (as a one user session):&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 'Courier New'"&gt;1. Multiple adds, updates, deletes within the same form types, same logon.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 'Courier New'"&gt;2. Most of the previous data changes were followed by queries on same data.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 'Courier New'"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 'Courier New'"&gt;NOTE: Our inserts are data entry type forms, so the user can repeatedly enter new records as quickly as they can type and hit enter. So within the first call to a form, we load the required session drop-downs (this form only), and then reuse them as needed.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 'Courier New'"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 'Courier New'"&gt;Our review also showed that each logon would concentrate on only a small percentage of our total forms at each logon session. Meaning they would logon again and again throughout the day for doing very different and selected processes.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 'Courier New'"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 'Courier New'"&gt;Our savings in session variables and SQL requests has become quite noticeable!&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;</description><pubDate>Fri, 14 May 2004 02:11:00 GMT</pubDate><dc:creator>Coach James</dc:creator></item><item><title>RE: Reducing Round Trips - Part 3</title><link>http://www.sqlservercentral.com/Forums/Topic2856-29-1.aspx</link><description>"ADO recordsets have a filter method, the only downside is that it only accepts one where clause."...do you mean the "Find" method ? The "Filter" method can have many items in the Where clause.John</description><pubDate>Mon, 23 Sep 2002 01:39:00 GMT</pubDate><dc:creator>johnhind</dc:creator></item><item><title>Reducing Round Trips - Part 3</title><link>http://www.sqlservercentral.com/Forums/Topic2856-29-1.aspx</link><description>Comments posted to this topic are about the content posted at &lt;A HREF=&lt;A HREF=http://www.sqlservercentral.com/columnists/awarren/reducingroundtripspart3.asp&gt;http://www.sqlservercentral.com/columnists/awarren/reducingroundtripspart3.asp&lt;/A&gt;&gt;&lt;A HREF=http://www.sqlservercentral.com/columnists/awarren/reducingroundtripspart3.asp&gt;http://www.sqlservercentral.com/columnists/awarren/reducingroundtripspart3.asp&lt;/A&gt;&lt;/A&gt;</description><pubDate>Sun, 03 Mar 2002 00:00:00 GMT</pubDate><dc:creator>Andy Warren</dc:creator></item></channel></rss>