<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://sqlblog.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Search results matching tags 'Best Practices' and 'Performance tuning'</title><link>http://sqlblog.com/search/SearchResults.aspx?o=DateDescending&amp;tag=Best+Practices,Performance+tuning&amp;orTags=0</link><description>Search results matching tags 'Best Practices' and 'Performance tuning'</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP2 (Build: 61129.1)</generator><item><title>Performance impact: The cost of doing small lookups in a large batch update</title><link>http://sqlblog.com/blogs/linchi_shea/archive/2011/04/04/performance-impact-the-cost-of-doing-small-lookups-in-a-large-batch.aspx</link><pubDate>Mon, 04 Apr 2011 18:34:00 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:34640</guid><dc:creator>Linchi Shea</dc:creator><description>&lt;P class=MsoNormal style="MARGIN:0in 0in 10pt;"&gt;&lt;FONT face=Calibri size=3&gt;Lookup tables are widely used in database applications for good reasons. Usually, a lookup table&amp;nbsp;has a&amp;nbsp;small number of rows and looking it up with a join is fast, especially when the table is already cached. &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 10pt;"&gt;&lt;FONT face=Calibri size=3&gt;Recently, I needed to update every row in many relatively large tables, each of which was identically structured, had ~25 million rows, and was ~30GB in size. The tables were denormalized to include both a lookup index column (i.e. CategoryID, which was an integer) and the corresponding lookup value column (i.e. CategoryName, which was a char(50)). The batch update I was performing was to ensure that the CategoryName column of these tables had the correct matching the value. The CategoryID to CategoryName mapping was defined in a small lookup table, CategoryLookup, with 10 rows.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 10pt;"&gt;&lt;B style="mso-bidi-font-weight:normal;"&gt;&lt;SPAN style="FONT-SIZE:12pt;LINE-HEIGHT:115%;"&gt;&lt;FONT face=Calibri&gt;Question&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 10pt;"&gt;&lt;FONT face=Calibri size=3&gt;What would be the most efficient method to perform this batch update?&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 10pt;"&gt;&lt;B style="mso-bidi-font-weight:normal;"&gt;&lt;SPAN style="FONT-SIZE:12pt;LINE-HEIGHT:115%;"&gt;&lt;FONT face=Calibri&gt;Three lookup methods&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 10pt;"&gt;&lt;FONT face=Calibri size=3&gt;For the batch update scenario described above, you have three&amp;nbsp;alternatives to lookup the CategpryName values (assume that the table to be updated is called Transactions):&lt;/FONT&gt;&lt;/P&gt;
&lt;UL style="MARGIN-TOP:0in;"&gt;
&lt;LI class=MsoNormal style="MARGIN:0in 0in 10pt;mso-list:l0 level1 lfo1;"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;I style="mso-bidi-font-style:normal;"&gt;Method 1&lt;/I&gt;—The inline CASE method, which performs an inline lookup with a CASE expression in the UPDATE statement. Okay, this is not really a lookup. But this method provides a baseline for comparison.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P class=MsoNormal style="BACKGROUND:#f2f2f2;MARGIN:0in 0in 0pt 0.5in;LINE-HEIGHT:normal;mso-layout-grid-align:none;mso-background-themecolor:background1;mso-background-themeshade:242;"&gt;&lt;SPAN style="COLOR:black;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;FONT size=3&gt;UPDATE Transactions&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND:#f2f2f2;MARGIN:0in 0in 0pt 0.25in;LINE-HEIGHT:normal;mso-layout-grid-align:none;mso-background-themecolor:background1;mso-background-themeshade:242;"&gt;&lt;SPAN style="COLOR:black;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;FONT size=3&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;SET CategoryName = CASE &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND:#f2f2f2;MARGIN:0in 0in 0pt 0.25in;LINE-HEIGHT:normal;mso-layout-grid-align:none;mso-background-themecolor:background1;mso-background-themeshade:242;"&gt;&lt;SPAN style="COLOR:black;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;FONT size=3&gt;&lt;SPAN style="mso-spacerun:yes;"&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; &lt;/SPAN&gt;when CategoryID = 1 &lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&lt;/SPAN&gt;then 'abc1'&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND:#f2f2f2;MARGIN:0in 0in 0pt 0.25in;LINE-HEIGHT:normal;mso-layout-grid-align:none;mso-background-themecolor:background1;mso-background-themeshade:242;"&gt;&lt;SPAN style="COLOR:black;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;FONT size=3&gt;&lt;SPAN style="mso-spacerun:yes;"&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; &lt;/SPAN&gt;when CategoryID = 2 &lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&lt;/SPAN&gt;then 'abc2'&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND:#f2f2f2;MARGIN:0in 0in 0pt 0.25in;LINE-HEIGHT:normal;mso-layout-grid-align:none;mso-background-themecolor:background1;mso-background-themeshade:242;"&gt;&lt;SPAN style="COLOR:black;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;FONT size=3&gt;&lt;SPAN style="mso-spacerun:yes;"&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; &lt;/SPAN&gt;when CategoryID = 3 &lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&lt;/SPAN&gt;then 'abc3'&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND:#f2f2f2;MARGIN:0in 0in 0pt 0.25in;LINE-HEIGHT:normal;mso-layout-grid-align:none;mso-background-themecolor:background1;mso-background-themeshade:242;"&gt;&lt;SPAN style="COLOR:black;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;FONT size=3&gt;&lt;SPAN style="mso-spacerun:yes;"&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; &lt;/SPAN&gt;when CategoryID = 4 &lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&lt;/SPAN&gt;then 'abc4'&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND:#f2f2f2;MARGIN:0in 0in 0pt 0.25in;LINE-HEIGHT:normal;mso-layout-grid-align:none;mso-background-themecolor:background1;mso-background-themeshade:242;"&gt;&lt;SPAN style="COLOR:black;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;FONT size=3&gt;&lt;SPAN style="mso-spacerun:yes;"&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; &lt;/SPAN&gt;when CategoryID = 5 &lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&lt;/SPAN&gt;then 'abc5'&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND:#f2f2f2;MARGIN:0in 0in 0pt 0.25in;LINE-HEIGHT:normal;mso-layout-grid-align:none;mso-background-themecolor:background1;mso-background-themeshade:242;"&gt;&lt;SPAN style="COLOR:black;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;FONT size=3&gt;&lt;SPAN style="mso-spacerun:yes;"&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; &lt;/SPAN&gt;when CategoryID = 6 &lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&lt;/SPAN&gt;then 'abc6'&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND:#f2f2f2;MARGIN:0in 0in 0pt 0.25in;LINE-HEIGHT:normal;mso-layout-grid-align:none;mso-background-themecolor:background1;mso-background-themeshade:242;"&gt;&lt;SPAN style="COLOR:black;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;FONT size=3&gt;&lt;SPAN style="mso-spacerun:yes;"&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; &lt;/SPAN&gt;when CategoryID = 7 &lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&lt;/SPAN&gt;then 'abc7'&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND:#f2f2f2;MARGIN:0in 0in 0pt 0.25in;LINE-HEIGHT:normal;mso-layout-grid-align:none;mso-background-themecolor:background1;mso-background-themeshade:242;"&gt;&lt;SPAN style="COLOR:black;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;FONT size=3&gt;&lt;SPAN style="mso-spacerun:yes;"&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; &lt;/SPAN&gt;when CategoryID = 8 &lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&lt;/SPAN&gt;then 'abc8'&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND:#f2f2f2;MARGIN:0in 0in 0pt 0.25in;LINE-HEIGHT:normal;mso-layout-grid-align:none;mso-background-themecolor:background1;mso-background-themeshade:242;"&gt;&lt;SPAN style="COLOR:black;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;FONT size=3&gt;&lt;SPAN style="mso-spacerun:yes;"&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; &lt;/SPAN&gt;when CategoryID = 9 &lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&lt;/SPAN&gt;then 'abc9'&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND:#f2f2f2;MARGIN:0in 0in 0pt 0.25in;LINE-HEIGHT:normal;mso-layout-grid-align:none;mso-background-themecolor:background1;mso-background-themeshade:242;"&gt;&lt;SPAN style="COLOR:black;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;FONT size=3&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun:yes;"&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;/SPAN&gt;when CategoryID = 10 then 'abc10'&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND:#f2f2f2;MARGIN:0in 0in 0pt 0.25in;LINE-HEIGHT:normal;mso-layout-grid-align:none;mso-background-themecolor:background1;mso-background-themeshade:242;"&gt;&lt;SPAN style="COLOR:black;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;FONT size=3&gt;&lt;SPAN style="mso-spacerun:yes;"&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;/SPAN&gt;END&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 10pt;mso-list:l0 level1 lfo1;"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;I style="mso-bidi-font-style:normal;"&gt;&lt;/I&gt;&lt;/FONT&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;
&lt;UL style="MARGIN-TOP:0in;"&gt;
&lt;LI class=MsoNormal style="MARGIN:0in 0in 10pt;mso-list:l0 level1 lfo1;"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;I style="mso-bidi-font-style:normal;"&gt;Method 2&lt;/I&gt;—The JOIN method, which relies on joining the Transactions table and the CategoryLookup table to do the lookup.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P class=MsoNormal style="BACKGROUND:#f2f2f2;MARGIN:0in 0in 0pt 0.25in;LINE-HEIGHT:normal;mso-layout-grid-align:none;mso-background-themecolor:background1;mso-background-themeshade:242;"&gt;&lt;SPAN style="FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;FONT size=3&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;UPDATE t1&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND:#f2f2f2;MARGIN:0in 0in 0pt 0.25in;LINE-HEIGHT:normal;mso-layout-grid-align:none;mso-background-themecolor:background1;mso-background-themeshade:242;"&gt;&lt;SPAN style="FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;FONT size=3&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;SET t1.CategoryName = t2.CategoryName&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND:#f2f2f2;MARGIN:0in 0in 0pt 0.25in;LINE-HEIGHT:normal;mso-layout-grid-align:none;mso-background-themecolor:background1;mso-background-themeshade:242;"&gt;&lt;SPAN style="FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;FONT size=3&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;FROM Transactions t1 JOIN CategoryLookup t2 &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND:#f2f2f2;MARGIN:0in 0in 0pt 0.25in;LINE-HEIGHT:normal;mso-layout-grid-align:none;mso-background-themecolor:background1;mso-background-themeshade:242;"&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;ON t1.CategoryID = t2.CategoryID&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 10pt;mso-list:l0 level1 lfo1;"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;I style="mso-bidi-font-style:normal;"&gt;&lt;/I&gt;&lt;/FONT&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;
&lt;UL&gt;
&lt;LI class=MsoNormal style="MARGIN:0in 0in 10pt;mso-list:l0 level1 lfo1;"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;I style="mso-bidi-font-style:normal;"&gt;Method 3&lt;/I&gt;—The subquery method, which&amp;nbsp;does a lookup with a subquery. Clearly, there is a join in the subquery.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P class=MsoNormal style="BACKGROUND:#f2f2f2;MARGIN:0in 0in 0pt 0.25in;LINE-HEIGHT:normal;mso-layout-grid-align:none;mso-background-themecolor:background1;mso-background-themeshade:242;"&gt;&lt;SPAN style="COLOR:black;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;FONT size=3&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;UPDATE Transactions&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND:#f2f2f2;MARGIN:0in 0in 0pt 0.25in;LINE-HEIGHT:normal;mso-layout-grid-align:none;mso-background-themecolor:background1;mso-background-themeshade:242;"&gt;&lt;SPAN style="COLOR:black;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;FONT size=3&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;SET CategoryName = &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND:#f2f2f2;MARGIN:0in 0in 0pt 0.25in;LINE-HEIGHT:normal;mso-layout-grid-align:none;mso-background-themecolor:background1;mso-background-themeshade:242;"&gt;&lt;SPAN style="COLOR:black;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;FONT size=3&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;(SELECT CategoryLookup.CategoryName&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND:#f2f2f2;MARGIN:0in 0in 0pt 0.25in;LINE-HEIGHT:normal;mso-layout-grid-align:none;mso-background-themecolor:background1;mso-background-themeshade:242;"&gt;&lt;SPAN style="COLOR:black;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;FONT size=3&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;FROM CategoryLookup &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND:#f2f2f2;MARGIN:0in 0in 0pt 0.25in;LINE-HEIGHT:normal;mso-layout-grid-align:none;mso-background-themecolor:background1;mso-background-themeshade:242;"&gt;&lt;SPAN style="COLOR:black;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;FONT size=3&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&lt;/SPAN&gt;WHERE CategoryLookup.CategoryID=Transactions.CategoryID )&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 10pt;"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 10pt;"&gt;&lt;FONT face=Calibri size=3&gt;You can also do the lookup with a scalar function. But it’s so horrifically inefficient that you should not seriously consider it. It’s not interesting to include in this discussion. In addition, you could do the lookup with an inline&amp;nbsp;table valued function, which has a similar performance profile as that of the inline CASE method.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 10pt;"&gt;&lt;FONT face=Calibri size=3&gt;It should be highlighted that method 2 (the JOIN method) and method 3 (the Subquery method) are not semantically identical. For instance, if the Transactions table has a CategoryID value that is not present in the CategoryLookup table, the Subquery method will, if permitted,&amp;nbsp;set the CategoryName column to NULL,&amp;nbsp;or the update will fail if NULL is not permitted, whereas the JOIN method will leave the CategoryName value unchanged. For the scenario we are interested in, the results of these two methods are identical.&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;All the CategorID values in the Transactions table are also in the CategoryLookup table and the mapping from CategoryID to CategoryName in the CategoryLookup table is one to one.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 10pt;"&gt;&lt;FONT face=Calibri size=3&gt;I ran a series of controlled tests that mimicked the update scenario described previously. To keep the tests more manageable, I used a smaller and artificially created Transactions table that had 5,000,000 rows and was ~5GB in size. You can find the DDLs and the test script at the bottom of this post. &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 10pt;"&gt;&lt;B style="mso-bidi-font-weight:normal;"&gt;&lt;SPAN style="FONT-SIZE:12pt;LINE-HEIGHT:115%;"&gt;&lt;FONT face=Calibri&gt;Test results and practical implications&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 10pt;"&gt;&lt;FONT face=Calibri size=3&gt;I made sure that the results shown below were&amp;nbsp;stable in that (1) they were taken from 50 repeated tests with a small number of outliers thrown out, and (2) the remaining results were inspected and made sure that the variances were relatively small among them and the values exhibited a consistent pattern.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;IMG src="http://sqlblog.com/blogs/linchi_shea/attachment/34640.ashx"&gt; &lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 10pt;"&gt;&lt;SPAN style="mso-no-proof:yes;"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Clearly, if you do a massive number of lookups (like what I did in this test), the cumulative cost can be quite visible. In fact, in this test using an inline CASE expression was more than twice as fast as lookups using either a subquery or a straight join. &lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&lt;/SPAN&gt;As the number of rows increases, you can expect to see this difference (or the cost of doing lookups) grow more prominent. So, if you are doing a very large batch update, it’s definitely worth replacing the table lookups with an inline CASE expression for better performance.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 10pt;"&gt;&lt;SPAN style="mso-no-proof:yes;"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;The difference between the CASE method and the table lookups (either the Subquery method or the JOIN method) remained stable across different test environments. But the difference between the Subquery method and the JOIN method was more subtle. In fact, if you run the same test in a different environment, you may&amp;nbsp;see&amp;nbsp;different relative performance between them. In some environments,&amp;nbsp;the Subquery method can perform significantly better than the JOIN method.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 10pt;"&gt;&lt;SPAN style="mso-no-proof:yes;"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Although there was a significant performance penalty when using Subquery or JOIN lookups in a massive update, this does not mean you should&amp;nbsp;jettison using lookups in your individual transactions. Because the marginal cost of doing an individual lookup is infinitesimally small compared to many other performance-related factors, you’d lose much more&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;in terms of code reuse, flexibility, and so on if you start to embed ‘lookups’ inline. To &lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&lt;/SPAN&gt;emphasize, note that the difference between the CASE method and the Subquery method in the test was ~34 seconds. Divide 34 seconds by the 5,000,000 lookups the update did, we get 6.8 microseconds&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&lt;/SPAN&gt;as the marginal cost of an individual lookup.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 10pt;"&gt;&lt;SPAN style="mso-no-proof:yes;"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;There is no surprise that avoiding a massive number of&amp;nbsp;table lookups could give you better performance. But it’s still good to be able to appreciate it with&amp;nbsp;some concrete numbers. My update of&amp;nbsp;all those 25-million-row tables mentioned at the beginning of this post took more than 10 hours to complete and I used the subquery method. Had I had the results reported here, I could have finished the same update process in five hours. That would have been a very nice saving!&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 10pt;"&gt;&lt;B style="mso-bidi-font-weight:normal;"&gt;&lt;SPAN style="FONT-SIZE:12pt;LINE-HEIGHT:115%;"&gt;&lt;FONT face=Calibri&gt;Test setup&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 10pt;"&gt;&lt;FONT face=Calibri size=3&gt;The lookup DDL and data:&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND:#f2f2f2;MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;mso-background-themecolor:background1;mso-background-themeshade:242;"&gt;&lt;SPAN style="COLOR:black;FONT-FAMILY:'Courier New';mso-no-proof:yes;mso-themecolor:text1;"&gt;&lt;FONT size=3&gt;drop table CategoryLookup&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND:#f2f2f2;MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;mso-background-themecolor:background1;mso-background-themeshade:242;"&gt;&lt;SPAN style="COLOR:black;FONT-FAMILY:'Courier New';mso-no-proof:yes;mso-themecolor:text1;"&gt;&lt;FONT size=3&gt;go&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND:#f2f2f2;MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;mso-background-themecolor:background1;mso-background-themeshade:242;"&gt;&lt;SPAN style="COLOR:black;FONT-FAMILY:'Courier New';mso-no-proof:yes;mso-themecolor:text1;"&gt;&lt;FONT size=3&gt;create table CategoryLookup(CategoryID int, CategoryName char(20))&lt;SPAN style="mso-spacerun:yes;"&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; &lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND:#f2f2f2;MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;mso-background-themecolor:background1;mso-background-themeshade:242;"&gt;&lt;SPAN style="COLOR:black;FONT-FAMILY:'Courier New';mso-no-proof:yes;mso-themecolor:text1;"&gt;&lt;FONT size=3&gt;go&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND:#f2f2f2;MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;mso-background-themecolor:background1;mso-background-themeshade:242;"&gt;&lt;SPAN style="COLOR:black;FONT-FAMILY:'Courier New';mso-no-proof:yes;mso-themecolor:text1;"&gt;&lt;FONT size=3&gt;with tmp(a, b) as (&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND:#f2f2f2;MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;mso-background-themecolor:background1;mso-background-themeshade:242;"&gt;&lt;SPAN style="COLOR:black;FONT-FAMILY:'Courier New';mso-no-proof:yes;mso-themecolor:text1;"&gt;&lt;FONT size=3&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;select 1, 'abc' + cast(1 as varchar(5))&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND:#f2f2f2;MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;mso-background-themecolor:background1;mso-background-themeshade:242;"&gt;&lt;SPAN style="COLOR:black;FONT-FAMILY:'Courier New';mso-no-proof:yes;mso-themecolor:text1;"&gt;&lt;FONT size=3&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;union all&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND:#f2f2f2;MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;mso-background-themecolor:background1;mso-background-themeshade:242;"&gt;&lt;SPAN style="COLOR:black;FONT-FAMILY:'Courier New';mso-no-proof:yes;mso-themecolor:text1;"&gt;&lt;FONT size=3&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;select a+1, 'abc' + cast(a+1 as varchar(5))&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND:#f2f2f2;MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;mso-background-themecolor:background1;mso-background-themeshade:242;"&gt;&lt;SPAN style="COLOR:black;FONT-FAMILY:'Courier New';mso-no-proof:yes;mso-themecolor:text1;"&gt;&lt;FONT size=3&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;from tmp&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND:#f2f2f2;MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;mso-background-themecolor:background1;mso-background-themeshade:242;"&gt;&lt;SPAN style="COLOR:black;FONT-FAMILY:'Courier New';mso-no-proof:yes;mso-themecolor:text1;"&gt;&lt;FONT size=3&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;where a &amp;lt; 10&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND:#f2f2f2;MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;mso-background-themecolor:background1;mso-background-themeshade:242;"&gt;&lt;SPAN style="COLOR:black;FONT-FAMILY:'Courier New';mso-no-proof:yes;mso-themecolor:text1;"&gt;&lt;FONT size=3&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND:#f2f2f2;MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;mso-background-themecolor:background1;mso-background-themeshade:242;"&gt;&lt;SPAN style="COLOR:black;FONT-FAMILY:'Courier New';mso-no-proof:yes;mso-themecolor:text1;"&gt;&lt;FONT size=3&gt;insert CategoryLookup&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND:#f2f2f2;MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;mso-background-themecolor:background1;mso-background-themeshade:242;"&gt;&lt;SPAN style="COLOR:black;FONT-FAMILY:'Courier New';mso-no-proof:yes;mso-themecolor:text1;"&gt;&lt;FONT size=3&gt;select * from tmp&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND:#f2f2f2;MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;mso-background-themecolor:background1;mso-background-themeshade:242;"&gt;&lt;SPAN style="COLOR:black;FONT-FAMILY:'Courier New';mso-no-proof:yes;mso-themecolor:text1;"&gt;&lt;FONT size=3&gt;go&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND:#f2f2f2;MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;mso-background-themecolor:background1;mso-background-themeshade:242;"&gt;&lt;SPAN style="COLOR:black;FONT-FAMILY:'Courier New';mso-no-proof:yes;mso-themecolor:text1;"&gt;&lt;FONT size=3&gt;create clustered index cix_CategoryLookup on CategoryLookup(CategoryID)&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND:#f2f2f2;MARGIN:0in 0in 10pt;mso-background-themecolor:background1;mso-background-themeshade:242;"&gt;&lt;SPAN style="COLOR:black;FONT-FAMILY:'Courier New';mso-no-proof:yes;mso-themecolor:text1;"&gt;&lt;FONT size=3&gt;go&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 10pt;"&gt;&lt;FONT face=Calibri size=3&gt;The Transactions test table DDL and data:&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND:#f2f2f2;MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;mso-background-themecolor:background1;mso-background-themeshade:242;"&gt;&lt;SPAN style="COLOR:black;FONT-FAMILY:'Courier New';mso-no-proof:yes;mso-themecolor:text1;"&gt;&lt;FONT size=3&gt;drop table Transactions&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND:#f2f2f2;MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;mso-background-themecolor:background1;mso-background-themeshade:242;"&gt;&lt;SPAN style="COLOR:black;FONT-FAMILY:'Courier New';mso-no-proof:yes;mso-themecolor:text1;"&gt;&lt;FONT size=3&gt;go&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND:#f2f2f2;MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;mso-background-themecolor:background1;mso-background-themeshade:242;"&gt;&lt;SPAN style="COLOR:black;FONT-FAMILY:'Courier New';mso-no-proof:yes;mso-themecolor:text1;"&gt;&lt;FONT size=3&gt;create table Transactions(CategoryID int, &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND:#f2f2f2;MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;mso-background-themecolor:background1;mso-background-themeshade:242;"&gt;&lt;SPAN style="COLOR:black;FONT-FAMILY:'Courier New';mso-no-proof:yes;mso-themecolor:text1;"&gt;&lt;FONT size=3&gt;&lt;SPAN style="mso-spacerun:yes;"&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; &lt;/SPAN&gt;CategoryName char(50),&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND:#f2f2f2;MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;mso-background-themecolor:background1;mso-background-themeshade:242;"&gt;&lt;SPAN style="COLOR:black;FONT-FAMILY:'Courier New';mso-no-proof:yes;mso-themecolor:text1;"&gt;&lt;FONT size=3&gt;&lt;SPAN style="mso-spacerun:yes;"&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; &lt;/SPAN&gt;filler char(1000))&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND:#f2f2f2;MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;mso-background-themecolor:background1;mso-background-themeshade:242;"&gt;&lt;SPAN style="COLOR:black;FONT-FAMILY:'Courier New';mso-no-proof:yes;mso-themecolor:text1;"&gt;&lt;FONT size=3&gt;go&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND:#f2f2f2;MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;mso-background-themecolor:background1;mso-background-themeshade:242;"&gt;&lt;SPAN style="COLOR:black;FONT-FAMILY:'Courier New';mso-no-proof:yes;mso-themecolor:text1;"&gt;&lt;FONT size=3&gt;set nocount on&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND:#f2f2f2;MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;mso-background-themecolor:background1;mso-background-themeshade:242;"&gt;&lt;SPAN style="COLOR:black;FONT-FAMILY:'Courier New';mso-no-proof:yes;mso-themecolor:text1;"&gt;&lt;FONT size=3&gt;go&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND:#f2f2f2;MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;mso-background-themecolor:background1;mso-background-themeshade:242;"&gt;&lt;SPAN style="COLOR:black;FONT-FAMILY:'Courier New';mso-no-proof:yes;mso-themecolor:text1;"&gt;&lt;FONT size=3&gt;declare @i int&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND:#f2f2f2;MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;mso-background-themecolor:background1;mso-background-themeshade:242;"&gt;&lt;SPAN style="COLOR:black;FONT-FAMILY:'Courier New';mso-no-proof:yes;mso-themecolor:text1;"&gt;&lt;FONT size=3&gt;set @i = 1&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND:#f2f2f2;MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;mso-background-themecolor:background1;mso-background-themeshade:242;"&gt;&lt;SPAN style="COLOR:black;FONT-FAMILY:'Courier New';mso-no-proof:yes;mso-themecolor:text1;"&gt;&lt;o:p&gt;&lt;FONT size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND:#f2f2f2;MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;mso-background-themecolor:background1;mso-background-themeshade:242;"&gt;&lt;SPAN style="COLOR:black;FONT-FAMILY:'Courier New';mso-no-proof:yes;mso-themecolor:text1;"&gt;&lt;FONT size=3&gt;begin tran&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND:#f2f2f2;MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;mso-background-themecolor:background1;mso-background-themeshade:242;"&gt;&lt;SPAN style="COLOR:black;FONT-FAMILY:'Courier New';mso-no-proof:yes;mso-themecolor:text1;"&gt;&lt;FONT size=3&gt;while @i &amp;lt;= 5000000&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND:#f2f2f2;MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;mso-background-themecolor:background1;mso-background-themeshade:242;"&gt;&lt;SPAN style="COLOR:black;FONT-FAMILY:'Courier New';mso-no-proof:yes;mso-themecolor:text1;"&gt;&lt;FONT size=3&gt;begin&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND:#f2f2f2;MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;mso-background-themecolor:background1;mso-background-themeshade:242;"&gt;&lt;SPAN style="COLOR:black;FONT-FAMILY:'Courier New';mso-no-proof:yes;mso-themecolor:text1;"&gt;&lt;FONT size=3&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;insert Transactions&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND:#f2f2f2;MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;mso-background-themecolor:background1;mso-background-themeshade:242;"&gt;&lt;SPAN style="COLOR:black;FONT-FAMILY:'Courier New';mso-no-proof:yes;mso-themecolor:text1;"&gt;&lt;FONT size=3&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;select @i % 10 + 1, 'abc', 'filler'&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND:#f2f2f2;MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;mso-background-themecolor:background1;mso-background-themeshade:242;"&gt;&lt;SPAN style="COLOR:black;FONT-FAMILY:'Courier New';mso-no-proof:yes;mso-themecolor:text1;"&gt;&lt;FONT size=3&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND:#f2f2f2;MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;mso-background-themecolor:background1;mso-background-themeshade:242;"&gt;&lt;SPAN style="COLOR:black;FONT-FAMILY:'Courier New';mso-no-proof:yes;mso-themecolor:text1;"&gt;&lt;FONT size=3&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;if @i % 100000 = 0&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND:#f2f2f2;MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;mso-background-themecolor:background1;mso-background-themeshade:242;"&gt;&lt;SPAN style="COLOR:black;FONT-FAMILY:'Courier New';mso-no-proof:yes;mso-themecolor:text1;"&gt;&lt;FONT size=3&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;begin&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND:#f2f2f2;MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;mso-background-themecolor:background1;mso-background-themeshade:242;"&gt;&lt;SPAN style="COLOR:black;FONT-FAMILY:'Courier New';mso-no-proof:yes;mso-themecolor:text1;"&gt;&lt;FONT size=3&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;commit tran&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND:#f2f2f2;MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;mso-background-themecolor:background1;mso-background-themeshade:242;"&gt;&lt;SPAN style="COLOR:black;FONT-FAMILY:'Courier New';mso-no-proof:yes;mso-themecolor:text1;"&gt;&lt;FONT size=3&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;begin tran&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND:#f2f2f2;MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;mso-background-themecolor:background1;mso-background-themeshade:242;"&gt;&lt;SPAN style="COLOR:black;FONT-FAMILY:'Courier New';mso-no-proof:yes;mso-themecolor:text1;"&gt;&lt;FONT size=3&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;end&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND:#f2f2f2;MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;mso-background-themecolor:background1;mso-background-themeshade:242;"&gt;&lt;SPAN style="COLOR:black;FONT-FAMILY:'Courier New';mso-no-proof:yes;mso-themecolor:text1;"&gt;&lt;FONT size=3&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;set @i = @i + 1&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND:#f2f2f2;MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;mso-background-themecolor:background1;mso-background-themeshade:242;"&gt;&lt;SPAN style="COLOR:black;FONT-FAMILY:'Courier New';mso-no-proof:yes;mso-themecolor:text1;"&gt;&lt;FONT size=3&gt;end&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND:#f2f2f2;MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;mso-background-themecolor:background1;mso-background-themeshade:242;"&gt;&lt;SPAN style="COLOR:black;FONT-FAMILY:'Courier New';mso-no-proof:yes;mso-themecolor:text1;"&gt;&lt;FONT size=3&gt;if @@trancount &amp;gt; 0&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND:#f2f2f2;MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;mso-background-themecolor:background1;mso-background-themeshade:242;"&gt;&lt;SPAN style="COLOR:black;FONT-FAMILY:'Courier New';mso-no-proof:yes;mso-themecolor:text1;"&gt;&lt;FONT size=3&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;commit tran&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND:#f2f2f2;MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;mso-background-themecolor:background1;mso-background-themeshade:242;"&gt;&lt;SPAN style="COLOR:black;FONT-FAMILY:'Courier New';mso-no-proof:yes;mso-themecolor:text1;"&gt;&lt;FONT size=3&gt;go&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND:#f2f2f2;MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;mso-background-themecolor:background1;mso-background-themeshade:242;"&gt;&lt;SPAN style="COLOR:black;FONT-FAMILY:'Courier New';mso-no-proof:yes;mso-themecolor:text1;"&gt;&lt;FONT size=3&gt;sp_spaceused Transactions&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND:#f2f2f2;MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;mso-background-themecolor:background1;mso-background-themeshade:242;"&gt;&lt;SPAN style="COLOR:black;FONT-FAMILY:'Courier New';mso-no-proof:yes;mso-themecolor:text1;"&gt;&lt;FONT size=3&gt;go&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND:#f2f2f2;MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;mso-background-themecolor:background1;mso-background-themeshade:242;"&gt;&lt;SPAN style="COLOR:black;FONT-FAMILY:'Courier New';mso-no-proof:yes;mso-themecolor:text1;"&gt;&lt;o:p&gt;&lt;FONT size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND:#f2f2f2;MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;mso-background-themecolor:background1;mso-background-themeshade:242;"&gt;&lt;SPAN style="COLOR:black;FONT-FAMILY:'Courier New';mso-no-proof:yes;mso-themecolor:text1;"&gt;&lt;FONT size=3&gt;create clustered index cix_Transactions on Transactions(CategoryID)&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND:#f2f2f2;MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;mso-background-themecolor:background1;mso-background-themeshade:242;"&gt;&lt;SPAN style="COLOR:black;FONT-FAMILY:'Courier New';mso-no-proof:yes;mso-themecolor:text1;"&gt;&lt;FONT size=3&gt;go&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND:#f2f2f2;MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;mso-background-themecolor:background1;mso-background-themeshade:242;"&gt;&lt;SPAN style="COLOR:black;FONT-FAMILY:'Courier New';mso-no-proof:yes;mso-themecolor:text1;"&gt;&lt;FONT size=3&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND:#f2f2f2;MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;mso-background-themecolor:background1;mso-background-themeshade:242;"&gt;&lt;SPAN style="COLOR:black;FONT-FAMILY:'Courier New';mso-no-proof:yes;mso-themecolor:text1;"&gt;&lt;FONT size=3&gt;drop table test_log – this tale is used to log the test times&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND:#f2f2f2;MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;mso-background-themecolor:background1;mso-background-themeshade:242;"&gt;&lt;SPAN style="COLOR:black;FONT-FAMILY:'Courier New';mso-no-proof:yes;mso-themecolor:text1;"&gt;&lt;FONT size=3&gt;go&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND:#f2f2f2;MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;mso-background-themecolor:background1;mso-background-themeshade:242;"&gt;&lt;SPAN style="COLOR:black;FONT-FAMILY:'Courier New';mso-no-proof:yes;mso-themecolor:text1;"&gt;&lt;FONT size=3&gt;create table test_log (&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND:#f2f2f2;MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;mso-background-themecolor:background1;mso-background-themeshade:242;"&gt;&lt;SPAN style="COLOR:black;FONT-FAMILY:'Courier New';mso-no-proof:yes;mso-themecolor:text1;"&gt;&lt;FONT size=3&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Name&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;varchar(50),&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND:#f2f2f2;MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;mso-background-themecolor:background1;mso-background-themeshade:242;"&gt;&lt;SPAN style="COLOR:black;FONT-FAMILY:'Courier New';mso-no-proof:yes;mso-themecolor:text1;"&gt;&lt;FONT size=3&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Num&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;int,&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND:#f2f2f2;MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;mso-background-themecolor:background1;mso-background-themeshade:242;"&gt;&lt;SPAN style="COLOR:black;FONT-FAMILY:'Courier New';mso-no-proof:yes;mso-themecolor:text1;"&gt;&lt;FONT size=3&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;StartTime&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;datetime,&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND:#f2f2f2;MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;mso-background-themecolor:background1;mso-background-themeshade:242;"&gt;&lt;SPAN style="COLOR:black;FONT-FAMILY:'Courier New';mso-no-proof:yes;mso-themecolor:text1;"&gt;&lt;FONT size=3&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;EndTime&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;datetime NULL&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND:#f2f2f2;MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;mso-background-themecolor:background1;mso-background-themeshade:242;"&gt;&lt;SPAN style="COLOR:black;FONT-FAMILY:'Courier New';mso-no-proof:yes;mso-themecolor:text1;"&gt;&lt;FONT size=3&gt;)&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND:#f2f2f2;MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;mso-background-themecolor:background1;mso-background-themeshade:242;"&gt;&lt;SPAN style="COLOR:black;FONT-FAMILY:'Courier New';mso-no-proof:yes;mso-themecolor:text1;"&gt;&lt;FONT size=3&gt;go&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 10pt;"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 10pt;"&gt;&lt;FONT face=Calibri size=3&gt;The test script:&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND:#f2f2f2;MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;mso-background-themecolor:background1;mso-background-themeshade:242;"&gt;&lt;SPAN style="COLOR:black;FONT-FAMILY:'Courier New';mso-no-proof:yes;mso-themecolor:text1;"&gt;&lt;FONT size=3&gt;set nocount on&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND:#f2f2f2;MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;mso-background-themecolor:background1;mso-background-themeshade:242;"&gt;&lt;SPAN style="COLOR:black;FONT-FAMILY:'Courier New';mso-no-proof:yes;mso-themecolor:text1;"&gt;&lt;FONT size=3&gt;go&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND:#f2f2f2;MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;mso-background-themecolor:background1;mso-background-themeshade:242;"&gt;&lt;SPAN style="COLOR:black;FONT-FAMILY:'Courier New';mso-no-proof:yes;mso-themecolor:text1;"&gt;&lt;FONT size=3&gt;declare @dt datetime,&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND:#f2f2f2;MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;mso-background-themecolor:background1;mso-background-themeshade:242;"&gt;&lt;SPAN style="COLOR:black;FONT-FAMILY:'Courier New';mso-no-proof:yes;mso-themecolor:text1;"&gt;&lt;FONT size=3&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;@i int&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND:#f2f2f2;MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;mso-background-themecolor:background1;mso-background-themeshade:242;"&gt;&lt;SPAN style="COLOR:black;FONT-FAMILY:'Courier New';mso-no-proof:yes;mso-themecolor:text1;"&gt;&lt;o:p&gt;&lt;FONT size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND:#f2f2f2;MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;mso-background-themecolor:background1;mso-background-themeshade:242;"&gt;&lt;SPAN style="COLOR:black;FONT-FAMILY:'Courier New';mso-no-proof:yes;mso-themecolor:text1;"&gt;&lt;FONT size=3&gt;set @i = 1&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND:#f2f2f2;MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;mso-background-themecolor:background1;mso-background-themeshade:242;"&gt;&lt;SPAN style="COLOR:black;FONT-FAMILY:'Courier New';mso-no-proof:yes;mso-themecolor:text1;"&gt;&lt;o:p&gt;&lt;FONT size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND:#f2f2f2;MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;mso-background-themecolor:background1;mso-background-themeshade:242;"&gt;&lt;SPAN style="COLOR:black;FONT-FAMILY:'Courier New';mso-no-proof:yes;mso-themecolor:text1;"&gt;&lt;FONT size=3&gt;while @i &amp;lt; 20 -- run the test 20 times&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND:#f2f2f2;MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;mso-background-themecolor:background1;mso-background-themeshade:242;"&gt;&lt;SPAN style="COLOR:black;FONT-FAMILY:'Courier New';mso-no-proof:yes;mso-themecolor:text1;"&gt;&lt;FONT size=3&gt;begin&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND:#f2f2f2;MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;mso-background-themecolor:background1;mso-background-themeshade:242;"&gt;&lt;SPAN style="COLOR:black;FONT-FAMILY:'Courier New';mso-no-proof:yes;mso-themecolor:text1;"&gt;&lt;FONT size=3&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;set @dt = getdate() &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND:#f2f2f2;MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;mso-background-themecolor:background1;mso-background-themeshade:242;"&gt;&lt;SPAN style="COLOR:black;FONT-FAMILY:'Courier New';mso-no-proof:yes;mso-themecolor:text1;"&gt;&lt;FONT size=3&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;insert test_log select 'CASE method', 10, @dt, NULL&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND:#f2f2f2;MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;mso-background-themecolor:background1;mso-background-themeshade:242;"&gt;&lt;SPAN style="COLOR:black;FONT-FAMILY:'Courier New';mso-no-proof:yes;mso-themecolor:text1;"&gt;&lt;o:p&gt;&lt;FONT size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND:#f2f2f2;MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;mso-background-themecolor:background1;mso-background-themeshade:242;"&gt;&lt;SPAN style="COLOR:black;FONT-FAMILY:'Courier New';mso-no-proof:yes;mso-themecolor:text1;"&gt;&lt;FONT size=3&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;update Transactions&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND:#f2f2f2;MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;mso-background-themecolor:background1;mso-background-themeshade:242;"&gt;&lt;SPAN style="COLOR:black;FONT-FAMILY:'Courier New';mso-no-proof:yes;mso-themecolor:text1;"&gt;&lt;FONT size=3&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;set CategoryName = case &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND:#f2f2f2;MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;mso-background-themecolor:background1;mso-background-themeshade:242;"&gt;&lt;SPAN style="COLOR:black;FONT-FAMILY:'Courier New';mso-no-proof:yes;mso-themecolor:text1;"&gt;&lt;FONT size=3&gt;&lt;SPAN style="mso-spacerun:yes;"&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; &lt;/SPAN&gt;when CategoryID = 1&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;then 'abc1'&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND:#f2f2f2;MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;mso-background-themecolor:background1;mso-background-themeshade:242;"&gt;&lt;SPAN style="COLOR:black;FONT-FAMILY:'Courier New';mso-no-proof:yes;mso-themecolor:text1;"&gt;&lt;FONT size=3&gt;&lt;SPAN style="mso-spacerun:yes;"&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; &lt;/SPAN&gt;when CategoryID = 2&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;then 'abc2'&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND:#f2f2f2;MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;mso-background-themecolor:background1;mso-background-themeshade:242;"&gt;&lt;SPAN style="COLOR:black;FONT-FAMILY:'Courier New';mso-no-proof:yes;mso-themecolor:text1;"&gt;&lt;FONT size=3&gt;&lt;SPAN style="mso-spacerun:yes;"&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; &lt;/SPAN&gt;when CategoryID = 3&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;then 'abc3'&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND:#f2f2f2;MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;mso-background-themecolor:background1;mso-background-themeshade:242;"&gt;&lt;SPAN style="COLOR:black;FONT-FAMILY:'Courier New';mso-no-proof:yes;mso-themecolor:text1;"&gt;&lt;FONT size=3&gt;&lt;SPAN style="mso-spacerun:yes;"&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; &lt;/SPAN&gt;when CategoryID = 4&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;then 'abc4'&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND:#f2f2f2;MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;mso-background-themecolor:background1;mso-background-themeshade:242;"&gt;&lt;SPAN style="COLOR:black;FONT-FAMILY:'Courier New';mso-no-proof:yes;mso-themecolor:text1;"&gt;&lt;FONT size=3&gt;&lt;SPAN style="mso-spacerun:yes;"&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; &lt;/SPAN&gt;when CategoryID = 5&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;then 'abc5'&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND:#f2f2f2;MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;mso-background-themecolor:background1;mso-background-themeshade:242;"&gt;&lt;SPAN style="COLOR:black;FONT-FAMILY:'Courier New';mso-no-proof:yes;mso-themecolor:text1;"&gt;&lt;FONT size=3&gt;&lt;SPAN style="mso-spacerun:yes;"&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; &lt;/SPAN&gt;when CategoryID = 6&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;then 'abc6'&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND:#f2f2f2;MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;mso-background-themecolor:background1;mso-background-themeshade:242;"&gt;&lt;SPAN style="COLOR:black;FONT-FAMILY:'Courier New';mso-no-proof:yes;mso-themecolor:text1;"&gt;&lt;FONT size=3&gt;&lt;SPAN style="mso-spacerun:yes;"&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; &lt;/SPAN&gt;when CategoryID = 7&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;then 'abc7'&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND:#f2f2f2;MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;mso-background-themecolor:background1;mso-background-themeshade:242;"&gt;&lt;SPAN style="COLOR:black;FONT-FAMILY:'Courier New';mso-no-proof:yes;mso-themecolor:text1;"&gt;&lt;FONT size=3&gt;&lt;SPAN style="mso-spacerun:yes;"&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; &lt;/SPAN&gt;when CategoryID = 8&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;then 'abc8'&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND:#f2f2f2;MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;mso-background-themecolor:background1;mso-background-themeshade:242;"&gt;&lt;SPAN style="COLOR:black;FONT-FAMILY:'Courier New';mso-no-proof:yes;mso-themecolor:text1;"&gt;&lt;FONT size=3&gt;&lt;SPAN style="mso-spacerun:yes;"&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; &lt;/SPAN&gt;when CategoryID = 9&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;then 'abc9'&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND:#f2f2f2;MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;mso-background-themecolor:background1;mso-background-themeshade:242;"&gt;&lt;SPAN style="COLOR:black;FONT-FAMILY:'Courier New';mso-no-proof:yes;mso-themecolor:text1;"&gt;&lt;FONT size=3&gt;&lt;SPAN style="mso-spacerun:yes;"&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; &lt;/SPAN&gt;when CategoryID = 10 then 'abc10'&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND:#f2f2f2;MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;mso-background-themecolor:background1;mso-background-themeshade:242;"&gt;&lt;SPAN style="COLOR:black;FONT-FAMILY:'Courier New';mso-no-proof:yes;mso-themecolor:text1;"&gt;&lt;FONT size=3&gt;&lt;SPAN style="mso-spacerun:yes;"&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;/SPAN&gt;end&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND:#f2f2f2;MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;mso-background-themecolor:background1;mso-background-themeshade:242;"&gt;&lt;SPAN style="COLOR:black;FONT-FAMILY:'Courier New';mso-no-proof:yes;mso-themecolor:text1;"&gt;&lt;o:p&gt;&lt;FONT size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND:#f2f2f2;MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;mso-background-themecolor:background1;mso-background-themeshade:242;"&gt;&lt;SPAN style="COLOR:black;FONT-FAMILY:'Courier New';mso-no-proof:yes;mso-themecolor:text1;"&gt;&lt;FONT size=3&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;update test_log&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND:#f2f2f2;MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;mso-background-themecolor:background1;mso-background-themeshade:242;"&gt;&lt;SPAN style="COLOR:black;FONT-FAMILY:'Courier New';mso-no-proof:yes;mso-themecolor:text1;"&gt;&lt;FONT size=3&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;set EndTime = getdate()&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND:#f2f2f2;MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;mso-background-themecolor:background1;mso-background-themeshade:242;"&gt;&lt;SPAN style="COLOR:black;FONT-FAMILY:'Courier New';mso-no-proof:yes;mso-themecolor:text1;"&gt;&lt;FONT size=3&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;where StartTime = @dt&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND:#f2f2f2;MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;mso-background-themecolor:background1;mso-background-themeshade:242;"&gt;&lt;SPAN style="COLOR:black;FONT-FAMILY:'Courier New';mso-no-proof:yes;mso-themecolor:text1;"&gt;&lt;o:p&gt;&lt;FONT size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND:#f2f2f2;MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;mso-background-themecolor:background1;mso-background-themeshade:242;"&gt;&lt;SPAN style="COLOR:black;FONT-FAMILY:'Courier New';mso-no-proof:yes;mso-themecolor:text1;"&gt;&lt;o:p&gt;&lt;FONT size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND:#f2f2f2;MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;mso-background-themecolor:background1;mso-background-themeshade:242;"&gt;&lt;SPAN style="COLOR:black;FONT-FAMILY:'Courier New';mso-no-proof:yes;mso-themecolor:text1;"&gt;&lt;FONT size=3&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;set @dt = getdate() &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND:#f2f2f2;MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;mso-background-themecolor:background1;mso-background-themeshade:242;"&gt;&lt;SPAN style="COLOR:black;FONT-FAMILY:'Courier New';mso-no-proof:yes;mso-themecolor:text1;"&gt;&lt;FONT size=3&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;insert test_log select 'Subquery method', 10, @dt, NULL&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND:#f2f2f2;MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;mso-background-themecolor:background1;mso-background-themeshade:242;"&gt;&lt;SPAN style="COLOR:black;FONT-FAMILY:'Courier New';mso-no-proof:yes;mso-themecolor:text1;"&gt;&lt;o:p&gt;&lt;FONT size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND:#f2f2f2;MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;mso-background-themecolor:background1;mso-background-themeshade:242;"&gt;&lt;SPAN style="COLOR:black;FONT-FAMILY:'Courier New';mso-no-proof:yes;mso-themecolor:text1;"&gt;&lt;FONT size=3&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;update Transactions&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND:#f2f2f2;MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;mso-background-themecolor:background1;mso-background-themeshade:242;"&gt;&lt;SPAN style="COLOR:black;FONT-FAMILY:'Courier New';mso-no-proof:yes;mso-themecolor:text1;"&gt;&lt;FONT size=3&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;set CategoryName = &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND:#f2f2f2;MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;mso-background-themecolor:background1;mso-background-themeshade:242;"&gt;&lt;SPAN style="COLOR:black;FONT-FAMILY:'Courier New';mso-no-proof:yes;mso-themecolor:text1;"&gt;&lt;FONT size=3&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;(select CategoryLookup.CategoryName &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND:#f2f2f2;MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;mso-background-themecolor:background1;mso-background-themeshade:242;"&gt;&lt;SPAN style="COLOR:black;FONT-FAMILY:'Courier New';mso-no-proof:yes;mso-themecolor:text1;"&gt;&lt;FONT size=3&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;from CategoryLookup &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND:#f2f2f2;MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;mso-background-themecolor:background1;mso-background-themeshade:242;"&gt;&lt;SPAN style="COLOR:black;FONT-FAMILY:'Courier New';mso-no-proof:yes;mso-themecolor:text1;"&gt;&lt;FONT size=3&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;where CategoryLookup.CategoryID= Transactions.CategoryID )&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND:#f2f2f2;MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;mso-background-themecolor:background1;mso-background-themeshade:242;"&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND:#f2f2f2;MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;mso-background-themecolor:background1;mso-background-themeshade:242;"&gt;&lt;SPAN style="COLOR:black;FONT-FAMILY:'Courier New';mso-no-proof:yes;mso-themecolor:text1;"&gt;&lt;FONT size=3&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;update test_log&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND:#f2f2f2;MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;mso-background-themecolor:background1;mso-background-themeshade:242;"&gt;&lt;SPAN style="COLOR:black;FONT-FAMILY:'Courier New';mso-no-proof:yes;mso-themecolor:text1;"&gt;&lt;FONT size=3&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;set EndTime = getdate()&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND:#f2f2f2;MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;mso-background-themecolor:background1;mso-background-themeshade:242;"&gt;&lt;SPAN style="COLOR:black;FONT-FAMILY:'Courier New';mso-no-proof:yes;mso-themecolor:text1;"&gt;&lt;FONT size=3&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;where StartTime = @dt&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND:#f2f2f2;MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;mso-background-themecolor:background1;mso-background-themeshade:242;"&gt;&lt;SPAN style="COLOR:black;FONT-FAMILY:'Courier New';mso-no-proof:yes;mso-themecolor:text1;"&gt;&lt;FONT size=3&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND:#f2f2f2;MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;mso-background-themecolor:background1;mso-background-themeshade:242;"&gt;&lt;SPAN style="COLOR:black;FONT-FAMILY:'Courier New';mso-no-proof:yes;mso-themecolor:text1;"&gt;&lt;FONT size=3&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;set @dt = getdate() &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND:#f2f2f2;MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;mso-background-themecolor:background1;mso-background-themeshade:242;"&gt;&lt;SPAN style="COLOR:black;FONT-FAMILY:'Courier New';mso-no-proof:yes;mso-themecolor:text1;"&gt;&lt;FONT size=3&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;insert test_log select 'JOIN method', 10, @dt, NULL&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND:#f2f2f2;MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;mso-background-themecolor:background1;mso-background-themeshade:242;"&gt;&lt;SPAN style="COLOR:black;FONT-FAMILY:'Courier New';mso-no-proof:yes;mso-themecolor:text1;"&gt;&lt;o:p&gt;&lt;FONT size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND:#f2f2f2;MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;mso-background-themecolor:background1;mso-background-themeshade:242;"&gt;&lt;SPAN style="COLOR:black;FONT-FAMILY:'Courier New';mso-no-proof:yes;mso-themecolor:text1;"&gt;&lt;FONT size=3&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;update t1&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND:#f2f2f2;MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;mso-background-themecolor:background1;mso-background-themeshade:242;"&gt;&lt;SPAN style="COLOR:black;FONT-FAMILY:'Courier New';mso-no-proof:yes;mso-themecolor:text1;"&gt;&lt;FONT size=3&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;set t1.CategoryName = t2.CategoryName&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND:#f2f2f2;MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;mso-background-themecolor:background1;mso-background-themeshade:242;"&gt;&lt;SPAN style="COLOR:black;FONT-FAMILY:'Courier New';mso-no-proof:yes;mso-themecolor:text1;"&gt;&lt;FONT size=3&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;from Transactions t1&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND:#f2f2f2;MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;mso-background-themecolor:background1;mso-background-themeshade:242;"&gt;&lt;SPAN style="COLOR:black;FONT-FAMILY:'Courier New';mso-no-proof:yes;mso-themecolor:text1;"&gt;&lt;FONT size=3&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;join CategoryLookup t2 on t1.CategoryID = t2.CategoryID&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND:#f2f2f2;MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;mso-background-themecolor:background1;mso-background-themeshade:242;"&gt;&lt;SPAN style="COLOR:black;FONT-FAMILY:'Courier New';mso-no-proof:yes;mso-themecolor:text1;"&gt;&lt;o:p&gt;&lt;FONT size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND:#f2f2f2;MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;mso-background-themecolor:background1;mso-background-themeshade:242;"&gt;&lt;SPAN style="COLOR:black;FONT-FAMILY:'Courier New';mso-no-proof:yes;mso-themecolor:text1;"&gt;&lt;FONT size=3&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;update test_log&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND:#f2f2f2;MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;mso-background-themecolor:background1;mso-background-themeshade:242;"&gt;&lt;SPAN style="COLOR:black;FONT-FAMILY:'Courier New';mso-no-proof:yes;mso-themecolor:text1;"&gt;&lt;FONT size=3&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;set EndTime = getdate()&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND:#f2f2f2;MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;mso-background-themecolor:background1;mso-background-themeshade:242;"&gt;&lt;SPAN style="COLOR:black;FONT-FAMILY:'Courier New';mso-no-proof:yes;mso-themecolor:text1;"&gt;&lt;FONT size=3&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;where StartTime = @dt&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND:#f2f2f2;MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;mso-background-themecolor:background1;mso-background-themeshade:242;"&gt;&lt;SPAN style="COLOR:black;FONT-FAMILY:'Courier New';mso-no-proof:yes;mso-themecolor:text1;"&gt;&lt;o:p&gt;&lt;FONT size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND:#f2f2f2;MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;mso-background-themecolor:background1;mso-background-themeshade:242;"&gt;&lt;SPAN style="COLOR:black;FONT-FAMILY:'Courier New';mso-no-proof:yes;mso-themecolor:text1;"&gt;&lt;FONT size=3&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;set @i = @i +1&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND:#f2f2f2;MARGIN:0in 0in 10pt;mso-background-themecolor:background1;mso-background-themeshade:242;"&gt;&lt;FONT size=3&gt;&lt;SPAN style="COLOR:black;FONT-FAMILY:'Courier New';mso-no-proof:yes;mso-themecolor:text1;"&gt;end&lt;/SPAN&gt;&lt;SPAN style="COLOR:black;mso-themecolor:text1;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 10pt;"&gt;&lt;FONT face=Calibri size=3&gt;The reported results were obtained on&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;a DL585 G1 with 64GB of RAM and eight 2.6GHz cores, running Windows Server Enterprise 2003 and SQL Server 2008 SP2 Enterprise x64 Edition. 50GB was allocated to the SQL Server instance.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description></item><item><title>Revisiting the transaction batch size</title><link>http://sqlblog.com/blogs/linchi_shea/archive/2010/07/31/revisiting-the-transaction-batch-size.aspx</link><pubDate>Sun, 01 Aug 2010 03:05:00 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:27474</guid><dc:creator>Linchi Shea</dc:creator><description>&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;"&gt;&lt;FONT face="Times New Roman" size=3&gt;It’s a well known good practice to control the batch size when you perform large data changes. For instance, you may need to purge a large amount of data monthly, and if you delete them all in one shot, you may blow up your transaction log. Therefore, it's wise that you chop up the total amount of data to be deleted into smaller chunks and delete each chunk in a loop as a separate transaction.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;"&gt;&lt;o:p&gt;&lt;FONT face="Times New Roman" size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;"&gt;&lt;FONT face="Times New Roman" size=3&gt;The size of that chopped-up data chunk may go by different names such as transaction commit size. In this post, I refer to it as the batch size.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;"&gt;&lt;o:p&gt;&lt;FONT face="Times New Roman" size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;"&gt;&lt;FONT face="Times New Roman" size=3&gt;There is no problem with this approach in general. However, exactly what constitutes the most optimal batch size may change over time. &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;"&gt;&lt;o:p&gt;&lt;FONT face="Times New Roman" size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;"&gt;&lt;FONT face="Times New Roman" size=3&gt;Recently, I worked on a data archiving project whose batch process had been in production for a long time.&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;To contain the transaction log size, many steps of this data archiving batch process employed the above general idea to perform smaller delete in loops. In most cases, the batch size was controlled in terms of the number of rows deleted, and it was generally set to around 200,000 rows. &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;"&gt;&lt;FONT face="Times New Roman" size=3&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;"&gt;&lt;FONT face="Times New Roman" size=3&gt;This might be a good choice at the time (several years ago).&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;"&gt;&lt;FONT face="Times New Roman" size=3&gt;Today, disk drives are generally much larger and severs are much more powerful with much more physical memory. Is setting the delete batch size to 200,000 rows still optimal for this batch process? Well, first of all, it should be noted that going by the row number alone is often not a best practice because ultimately the concern is the amount of the transaction log space that a transaction may take up, and given a very narrow table, deleting 1,000,000 rows in one transaction may not consume much log space.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;"&gt;&lt;o:p&gt;&lt;FONT face="Times New Roman" size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;"&gt;&lt;FONT face="Times New Roman" size=3&gt;The other factor worth noting is that the smaller the batch size, the more loops one needs to go through, and therefore more table scans, resulting in longer processing time.&amp;nbsp;&lt;/FONT&gt;&lt;FONT face="Times New Roman" size=3&gt;So you don’t want the batch size to be too large to blow up the transaction log, but at the same time you don’t want to set the batch size&amp;nbsp;too small for the batch job to take a long time to finish. That is, you need to throttle the batch size to achieve the optimal overall result.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;"&gt;&lt;o:p&gt;&lt;FONT face="Times New Roman" size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;"&gt;&lt;FONT face="Times New Roman" size=3&gt;So back to the data archiving project I was working on some time ago. In that case, I ended up eliminating the loops altogether. This increased the log usage to the max of 40~50GB or maybe slightly more, depending on the volume of the month. &lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&lt;/SPAN&gt;With a 100GB drive dedicated to the transaction log and additional&amp;nbsp;overflow space elswhere, using up 40~50GB did not seem to be a big deal. But it ended up reducing the overall data purging time from four hours to ~40 minutes. And that is a big deal!&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;"&gt;&lt;o:p&gt;&lt;FONT face="Times New Roman" size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;"&gt;&lt;FONT face="Times New Roman" size=3&gt;At least in this one particular case, it paid to revisit the transaction batch size.&lt;/FONT&gt;&lt;/P&gt;</description></item></channel></rss>