<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-8563771670213207018</id><updated>2012-01-16T05:20:36.549-08:00</updated><category term='Dimension'/><category term='Reporting'/><category term='LINQ'/><category term='SQL Utility'/><category term='High Availability'/><category term='eScrum'/><category term='SQL Server 2008'/><category term='Agile'/><category term='SQL Formatting'/><category term='MDM'/><category term='Offshore'/><category term='Query Performance'/><category term='SSRS'/><category term='Replication'/><category term='Log Shipping'/><category term='Scrum'/><category term='Clustering'/><category term='Migration'/><category term='Katmai'/><category term='SSIS'/><category term='Business Intelligence'/><category term='Optimization'/><category term='Mirroring'/><title type='text'>The Techie's world....</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://mohitnayyar.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8563771670213207018/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://mohitnayyar.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Mohit Nayyar</name><uri>http://www.blogger.com/profile/18400035423017397788</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>20</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-8563771670213207018.post-3611328706874609380</id><published>2009-05-10T12:13:00.000-07:00</published><updated>2009-05-10T20:25:50.973-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Reporting'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL Utility'/><category scheme='http://www.blogger.com/atom/ns#' term='SSRS'/><category scheme='http://www.blogger.com/atom/ns#' term='Optimization'/><title type='text'>Conditional Page break in SSRS</title><content type='html'>&lt;p&gt;Conditional page breaks in SSRS are always something developer needs to work on in order to get it done. This is especially true when you need to render the same report in PDF.&lt;/p&gt;&lt;p&gt;Recently I need to implement the same and did that with a quick trick. Here is the sample &lt;span style="color:#0000ff;"&gt;SELECT&lt;/span&gt; I am using to demonstrate the same.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;div id="codeSnippetWrapper" style="border-right: silver 1px solid; padding-right: 4px; border-top: silver 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: silver 1px solid; width: 97.5%; cursor: text; direction: ltr; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: silver 1px solid; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; background-color: #f4f4f4; text-align: left"&gt;&lt;br /&gt;  &lt;pre id="codeSnippet" style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; text-align: left; border-bottom-style: none"&gt;&lt;span style="color: #0000ff"&gt;select&lt;/span&gt; &lt;span style="color: #006080"&gt;'Record 1'&lt;/span&gt; &lt;span style="color: #0000ff"&gt;as&lt;/span&gt; record, 0 &lt;span style="color: #0000ff"&gt;as&lt;/span&gt; PageBreak, 1 &lt;span style="color: #0000ff"&gt;as&lt;/span&gt; grp&lt;br /&gt;&lt;span style="color: #0000ff"&gt;UNION&lt;/span&gt; &lt;span style="color: #0000ff"&gt;ALL&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;select&lt;/span&gt; &lt;span style="color: #006080"&gt;'Record 2'&lt;/span&gt; &lt;span style="color: #0000ff"&gt;as&lt;/span&gt; record, 0 &lt;span style="color: #0000ff"&gt;as&lt;/span&gt; PageBreak, 1 &lt;span style="color: #0000ff"&gt;as&lt;/span&gt; grp&lt;br /&gt;&lt;span style="color: #0000ff"&gt;UNION&lt;/span&gt; &lt;span style="color: #0000ff"&gt;ALL&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;select&lt;/span&gt; &lt;span style="color: #006080"&gt;'Record 3'&lt;/span&gt; &lt;span style="color: #0000ff"&gt;as&lt;/span&gt; record, 0 &lt;span style="color: #0000ff"&gt;as&lt;/span&gt; PageBreak, 1 &lt;span style="color: #0000ff"&gt;as&lt;/span&gt; grp&lt;br /&gt;&lt;span style="color: #0000ff"&gt;UNION&lt;/span&gt; &lt;span style="color: #0000ff"&gt;ALL&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;select&lt;/span&gt; &lt;span style="color: #006080"&gt;'Record 4'&lt;/span&gt; &lt;span style="color: #0000ff"&gt;as&lt;/span&gt; record, 1 &lt;span style="color: #0000ff"&gt;as&lt;/span&gt; PageBreak, 2 &lt;span style="color: #0000ff"&gt;as&lt;/span&gt; grp&lt;br /&gt;&lt;span style="color: #0000ff"&gt;UNION&lt;/span&gt; &lt;span style="color: #0000ff"&gt;ALL&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;select&lt;/span&gt; &lt;span style="color: #006080"&gt;'Record 5'&lt;/span&gt; &lt;span style="color: #0000ff"&gt;as&lt;/span&gt; record, 0 &lt;span style="color: #0000ff"&gt;as&lt;/span&gt; PageBreak, 3 &lt;span style="color: #0000ff"&gt;as&lt;/span&gt; grp&lt;br /&gt;&lt;span style="color: #0000ff"&gt;UNION&lt;/span&gt; &lt;span style="color: #0000ff"&gt;ALL&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;select&lt;/span&gt; &lt;span style="color: #006080"&gt;'Record 6'&lt;/span&gt; &lt;span style="color: #0000ff"&gt;as&lt;/span&gt; record, 0 &lt;span style="color: #0000ff"&gt;as&lt;/span&gt; PageBreak, 3 &lt;span style="color: #0000ff"&gt;as&lt;/span&gt; grp&lt;br /&gt;&lt;span style="color: #0000ff"&gt;UNION&lt;/span&gt; &lt;span style="color: #0000ff"&gt;ALL&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;select&lt;/span&gt; &lt;span style="color: #006080"&gt;'Record 7'&lt;/span&gt; &lt;span style="color: #0000ff"&gt;as&lt;/span&gt; record, 1 &lt;span style="color: #0000ff"&gt;as&lt;/span&gt; PageBreak, 4 &lt;span style="color: #0000ff"&gt;as&lt;/span&gt; grp&lt;br /&gt;&lt;span style="color: #0000ff"&gt;UNION&lt;/span&gt; &lt;span style="color: #0000ff"&gt;ALL&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;select&lt;/span&gt; &lt;span style="color: #006080"&gt;'Record 8'&lt;/span&gt; &lt;span style="color: #0000ff"&gt;as&lt;/span&gt; record, 0 &lt;span style="color: #0000ff"&gt;as&lt;/span&gt; PageBreak, 5 &lt;span style="color: #0000ff"&gt;as&lt;/span&gt; grp&lt;br /&gt;&lt;/pre&gt;  &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;"Record" column is just to show unique records. The most important column here is "PageBreak", which is setting the conditional page break with "1". That means whenever there is "1" in "pagebreak" column you need a page break otherwise keep on displaying the records on same page.&lt;/p&gt;&lt;p&gt;The other very important column is "grp". Well, you really don't need this column and still will be able to implement conditional page break functionality. But then SSRS will club all the records which requires page break into 1 grouping set, probably in the end with this sample data. So, in order to maintain the sequence of records we need to add a grouping column which will create a new group whenever it finds a different value in "pagebreak" column.&lt;/p&gt;&lt;p&gt;Now, lets move on to SSRS report. These steps will work in SSRS 2008. I am not adding standard steps of creating a data source and data set. I know you are all smart guys...&lt;/p&gt;&lt;p&gt;Simple enough, please follow these steps.&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Add a table with 2 columns, record and pagebreak. &lt;/li&gt;&lt;li&gt;Now run the report and you will see all the records are coming in same page. &lt;/li&gt;&lt;li&gt;Next, add a parent group to this row, parent to "Details" group in "Row Groups". Please check "Image 1". &lt;/li&gt;&lt;li&gt;In the group expression select the "grp" column and the sorting, select "grp" in Sort by. Please check "Image 2". &lt;/li&gt;&lt;li&gt;MOST Important, select "Between each instance of a group" of the newly create group under "Page Break" tab. Please check "Image 3". &lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;p&gt;Yep, that's it, run the report now. And you will see 3 records on page 1, 1 record on page 2, 2 records on page 3 and 1 record on page 4 and page 5.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://lh4.ggpht.com/_QKtchyfJXhY/SgconNHs82I/AAAAAAAAAD8/pxwMfXVfWK4/s1600-h/image6.png"&gt;&lt;img style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height="165" alt="image" src="http://lh6.ggpht.com/_QKtchyfJXhY/SgconR85oWI/AAAAAAAAAEI/dXXz9Tf8zB8/image_thumb2.png?imgmax=800" width="419" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;&lt;p&gt;Image 1&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://lh6.ggpht.com/_QKtchyfJXhY/SgcooD7OD9I/AAAAAAAAAEM/VehqfSwDb2U/s1600-h/image10.png"&gt;&lt;img style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height="127" alt="image" src="http://lh3.ggpht.com/_QKtchyfJXhY/SgcoorExYVI/AAAAAAAAAEQ/ydDz9wyzVfc/image_thumb4.png?imgmax=800" width="264" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;&lt;p&gt;Image 2&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://lh6.ggpht.com/_QKtchyfJXhY/SgcopPZqfgI/AAAAAAAAAEc/TRMJqjvzbsA/s1600-h/image14.png"&gt;&lt;img style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height="286" alt="image" src="http://lh5.ggpht.com/_QKtchyfJXhY/SgcopYpUOGI/AAAAAAAAAEo/LQRGqoTm7j8/image_thumb6.png?imgmax=800" width="341" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;&lt;p&gt;Image 3&lt;/p&gt;&lt;p&gt;There are also other ways of doing the same, but I find this one very easy to implement.&lt;/p&gt;&lt;p&gt;Don't forget to hide new group by just minimizing the width and you are good to go. Try to render the same in PDF, and it works like a charm....&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;- Mohit Nayyar&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8563771670213207018-3611328706874609380?l=mohitnayyar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mohitnayyar.blogspot.com/feeds/3611328706874609380/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8563771670213207018&amp;postID=3611328706874609380' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8563771670213207018/posts/default/3611328706874609380'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8563771670213207018/posts/default/3611328706874609380'/><link rel='alternate' type='text/html' href='http://mohitnayyar.blogspot.com/2009/05/conditional-page-break-in-ssrs.html' title='Conditional Page break in SSRS'/><author><name>Mohit Nayyar</name><uri>http://www.blogger.com/profile/18400035423017397788</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/_QKtchyfJXhY/SgconR85oWI/AAAAAAAAAEI/dXXz9Tf8zB8/s72-c/image_thumb2.png?imgmax=800' height='72' width='72'/><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8563771670213207018.post-8925509456672091802</id><published>2008-09-27T18:53:00.000-07:00</published><updated>2008-09-27T19:03:37.746-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Business Intelligence'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL Utility'/><category scheme='http://www.blogger.com/atom/ns#' term='Query Performance'/><title type='text'>Data extrapolation on the fly</title><content type='html'>In some cases we need to generate the data based on a starting date, to an end data (today-getdate()).&lt;br /&gt;&lt;br /&gt;This process is called data extrapolation based on limited information (starting date). Here I am trying to achieve the same without storing data in temp./staging tables.&lt;br /&gt;&lt;br /&gt;First I am creating a temp. table wih 2 rows and now I need to generate rest of the rows starting from given date to today's date.&lt;br /&gt;&lt;br /&gt;Next step is to make use of CTE to generate sequence of rows and finally making use of CROSS JOIN to join the sequence with real data and get the desired output.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:85%;"&gt;&lt;br /&gt;&lt;span style="color:blue;"&gt;CREATE&lt;/span&gt; &lt;span style="color:blue;"&gt;TABLE&lt;/span&gt; &lt;span style="color:maroon;"&gt;#TEMP&lt;/span&gt; &lt;span style="color:silver;"&gt;(&lt;/span&gt;&lt;br /&gt;&lt;span style="color:maroon;"&gt;MYNAME&lt;/span&gt; &lt;span style="color:black;"&gt;VARCHAR&lt;/span&gt;&lt;span style="color:silver;"&gt;(&lt;/span&gt;&lt;span style="color:black;"&gt;10&lt;/span&gt;&lt;span style="color:silver;"&gt;)&lt;/span&gt;&lt;span style="color:silver;"&gt;,&lt;/span&gt;&lt;br /&gt;&lt;span style="color:maroon;"&gt;STARTDATE&lt;/span&gt; &lt;span style="color:black;"&gt;DATETIME&lt;/span&gt;&lt;span style="color:silver;"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span style="color:blue;"&gt;GO&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:blue;"&gt;INSERT&lt;/span&gt; &lt;span style="color:blue;"&gt;INTO&lt;/span&gt; &lt;span style="color:maroon;"&gt;#TEMP&lt;/span&gt; &lt;span style="color:blue;"&gt;VALUES&lt;/span&gt; &lt;span style="color:silver;"&gt;(&lt;/span&gt;&lt;span style="color:red;"&gt;'Mohit'&lt;/span&gt;&lt;span style="color:silver;"&gt;,&lt;/span&gt; &lt;span style="color:red;"&gt;'2008-09-15'&lt;/span&gt;&lt;span style="color:silver;"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span style="color:blue;"&gt;INSERT&lt;/span&gt; &lt;span style="color:blue;"&gt;INTO&lt;/span&gt; &lt;span style="color:maroon;"&gt;#TEMP&lt;/span&gt; &lt;span style="color:blue;"&gt;VALUES&lt;/span&gt; &lt;span style="color:silver;"&gt;(&lt;/span&gt;&lt;span style="color:red;"&gt;'Nayyar'&lt;/span&gt;&lt;span style="color:silver;"&gt;,&lt;/span&gt; &lt;span style="color:red;"&gt;'2008-09-22'&lt;/span&gt;&lt;span style="color:silver;"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span style="color:blue;"&gt;GO&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:blue;"&gt;WITH&lt;/span&gt; &lt;span style="color:maroon;"&gt;FIRST2&lt;/span&gt;&lt;span style="color:silver;"&gt;(&lt;/span&gt;&lt;span style="color:maroon;"&gt;SEQ&lt;/span&gt;&lt;span style="color:silver;"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span style="color:blue;"&gt;AS&lt;/span&gt; &lt;span style="color:silver;"&gt;(&lt;/span&gt;&lt;span style="color:blue;"&gt;SELECT&lt;/span&gt; &lt;span style="color:black;"&gt;1&lt;/span&gt;&lt;br /&gt;&lt;span style="color:blue;"&gt;UNION&lt;/span&gt; &lt;span style="color:blue;"&gt;ALL&lt;/span&gt;&lt;br /&gt;&lt;span style="color:blue;"&gt;SELECT&lt;/span&gt; &lt;span style="color:black;"&gt;1&lt;/span&gt;&lt;span style="color:silver;"&gt;)&lt;/span&gt;&lt;span style="color:silver;"&gt;,&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:maroon;"&gt;FIRST4&lt;/span&gt;&lt;span style="color:silver;"&gt;(&lt;/span&gt;&lt;span style="color:maroon;"&gt;SEQ&lt;/span&gt;&lt;span style="color:silver;"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span style="color:blue;"&gt;AS&lt;/span&gt; &lt;span style="color:silver;"&gt;(&lt;/span&gt;&lt;span style="color:blue;"&gt;SELECT&lt;/span&gt; &lt;span style="color:black;"&gt;1&lt;/span&gt;&lt;br /&gt;&lt;span style="color:blue;"&gt;FROM&lt;/span&gt; &lt;span style="color:maroon;"&gt;FIRST2&lt;/span&gt; &lt;span style="color:maroon;"&gt;X&lt;/span&gt;&lt;br /&gt;&lt;span style="color:blue;"&gt;CROSS&lt;/span&gt; &lt;span style="color:blue;"&gt;JOIN&lt;/span&gt; &lt;span style="color:maroon;"&gt;FIRST2&lt;/span&gt; &lt;span style="color:maroon;"&gt;Y&lt;/span&gt;&lt;span style="color:silver;"&gt;)&lt;/span&gt;&lt;span style="color:silver;"&gt;,&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:maroon;"&gt;FIRST16&lt;/span&gt;&lt;span style="color:silver;"&gt;(&lt;/span&gt;&lt;span style="color:maroon;"&gt;SEQ&lt;/span&gt;&lt;span style="color:silver;"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span style="color:blue;"&gt;AS&lt;/span&gt; &lt;span style="color:silver;"&gt;(&lt;/span&gt;&lt;span style="color:blue;"&gt;SELECT&lt;/span&gt; &lt;span style="color:black;"&gt;1&lt;/span&gt;&lt;br /&gt;&lt;span style="color:blue;"&gt;FROM&lt;/span&gt; &lt;span style="color:maroon;"&gt;FIRST4&lt;/span&gt; &lt;span style="color:maroon;"&gt;X&lt;/span&gt;&lt;br /&gt;&lt;span style="color:blue;"&gt;CROSS&lt;/span&gt; &lt;span style="color:blue;"&gt;JOIN&lt;/span&gt; &lt;span style="color:maroon;"&gt;FIRST4&lt;/span&gt; &lt;span style="color:maroon;"&gt;Y&lt;/span&gt;&lt;span style="color:silver;"&gt;)&lt;/span&gt;&lt;span style="color:silver;"&gt;,&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:85%;"&gt;&lt;span style="color:maroon;"&gt;FIRST256&lt;/span&gt;&lt;span style="color:silver;"&gt;(&lt;/span&gt;&lt;span style="color:maroon;"&gt;SEQ&lt;/span&gt;&lt;span style="color:silver;"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span style="color:blue;"&gt;AS&lt;/span&gt; &lt;span style="color:silver;"&gt;(&lt;/span&gt;&lt;span style="color:blue;"&gt;SELECT&lt;/span&gt; &lt;span style="color:black;"&gt;1&lt;/span&gt;&lt;br /&gt;&lt;span style="color:blue;"&gt;FROM&lt;/span&gt; &lt;span style="color:maroon;"&gt;FIRST16&lt;/span&gt; &lt;span style="color:maroon;"&gt;X&lt;/span&gt;&lt;br /&gt;&lt;span style="color:blue;"&gt;CROSS&lt;/span&gt; &lt;span style="color:blue;"&gt;JOIN&lt;/span&gt; &lt;span style="color:maroon;"&gt;FIRST16&lt;/span&gt; &lt;span style="color:maroon;"&gt;Y&lt;/span&gt;&lt;span style="color:silver;"&gt;)&lt;/span&gt;&lt;span style="color:silver;"&gt;,&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:maroon;"&gt;FIRST65536&lt;/span&gt;&lt;span style="color:silver;"&gt;(&lt;/span&gt;&lt;span style="color:maroon;"&gt;SEQ&lt;/span&gt;&lt;span style="color:silver;"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span style="color:blue;"&gt;AS&lt;/span&gt; &lt;span style="color:silver;"&gt;(&lt;/span&gt;&lt;span style="color:blue;"&gt;SELECT&lt;/span&gt; &lt;span style="color:black;"&gt;1&lt;/span&gt;&lt;br /&gt;&lt;span style="color:blue;"&gt;FROM&lt;/span&gt; &lt;span style="color:maroon;"&gt;FIRST256&lt;/span&gt; &lt;span style="color:maroon;"&gt;X&lt;/span&gt;&lt;br /&gt;&lt;span style="color:blue;"&gt;CROSS&lt;/span&gt; &lt;span style="color:blue;"&gt;JOIN&lt;/span&gt; &lt;span style="color:maroon;"&gt;FIRST256&lt;/span&gt; &lt;span style="color:maroon;"&gt;Y&lt;/span&gt;&lt;span style="color:silver;"&gt;)&lt;/span&gt;&lt;span style="color:silver;"&gt;,&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:maroon;"&gt;SEQROWS&lt;/span&gt;&lt;br /&gt;&lt;span style="color:blue;"&gt;AS&lt;/span&gt; &lt;span style="color:silver;"&gt;(&lt;/span&gt;&lt;span style="color:blue;"&gt;SELECT&lt;/span&gt; &lt;span style="color:#ff0080;"&gt;&lt;b&gt;ROW_NUMBER&lt;/span&gt;&lt;/b&gt;&lt;span style="color:silver;"&gt;(&lt;/span&gt;&lt;span style="color:silver;"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span style="color:blue;"&gt;OVER&lt;/span&gt;&lt;span style="color:silver;"&gt;(&lt;/span&gt;&lt;span style="color:blue;"&gt;ORDER&lt;/span&gt; &lt;span style="color:blue;"&gt;BY&lt;/span&gt; &lt;span style="color:maroon;"&gt;SEQ&lt;/span&gt;&lt;span style="color:silver;"&gt;)&lt;/span&gt; &lt;span style="color:blue;"&gt;AS&lt;/span&gt; &lt;span style="color:maroon;"&gt;SEQNUMBER&lt;/span&gt;&lt;br /&gt;&lt;span style="color:blue;"&gt;FROM&lt;/span&gt; &lt;span style="color:maroon;"&gt;FIRST65536&lt;/span&gt; &lt;span style="color:blue;"&gt;WITH&lt;/span&gt; &lt;span style="color:silver;"&gt;(&lt;/span&gt;&lt;span style="color:maroon;"&gt;NOEXPAND&lt;/span&gt;&lt;span style="color:silver;"&gt;)&lt;/span&gt;&lt;span style="color:silver;"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:blue;"&gt;SELECT&lt;/span&gt; &lt;span style="color:maroon;"&gt;MYNAME&lt;/span&gt;&lt;span style="color:silver;"&gt;,&lt;/span&gt;&lt;br /&gt;&lt;span style="color:maroon;"&gt;STARTDATE&lt;/span&gt;&lt;span style="color:silver;"&gt;,&lt;/span&gt;&lt;br /&gt;&lt;span style="color:fuchsia;"&gt;&lt;b&gt;DATEADD&lt;/span&gt;&lt;/b&gt;&lt;span style="color:silver;"&gt;(&lt;/span&gt;&lt;span style="color:blue;"&gt;DAY&lt;/span&gt;&lt;span style="color:silver;"&gt;,&lt;/span&gt;&lt;span style="color:maroon;"&gt;N&lt;/span&gt;&lt;span style="color:silver;"&gt;.&lt;/span&gt;&lt;span style="color:maroon;"&gt;SEQNUMBER&lt;/span&gt; &lt;span style="color:silver;"&gt;-&lt;/span&gt; &lt;span style="color:black;"&gt;1&lt;/span&gt;&lt;span style="color:silver;"&gt;,&lt;/span&gt;&lt;span style="color:maroon;"&gt;STARTDATE&lt;/span&gt;&lt;span style="color:silver;"&gt;)&lt;/span&gt; &lt;span style="color:blue;"&gt;AS&lt;/span&gt; &lt;span style="color:maroon;"&gt;EXTRAPOLATION&lt;/span&gt;&lt;br /&gt;&lt;span style="color:blue;"&gt;FROM&lt;/span&gt; &lt;span style="color:maroon;"&gt;#TEMP&lt;/span&gt;&lt;br /&gt;&lt;span style="color:blue;"&gt;CROSS&lt;/span&gt; &lt;span style="color:blue;"&gt;JOIN&lt;/span&gt; &lt;span style="color:maroon;"&gt;SEQROWS&lt;/span&gt; &lt;span style="color:maroon;"&gt;N&lt;/span&gt;&lt;br /&gt;&lt;span style="color:blue;"&gt;WHERE&lt;/span&gt; &lt;span style="color:maroon;"&gt;N&lt;/span&gt;&lt;span style="color:silver;"&gt;.&lt;/span&gt;&lt;span style="color:maroon;"&gt;SEQNUMBER&lt;/span&gt; &lt;span style="color:silver;"&gt;&amp;lt;=&lt;/span&gt; &lt;span style="color:fuchsia;"&gt;&lt;b&gt;DATEDIFF&lt;/span&gt;&lt;/b&gt;&lt;span style="color:silver;"&gt;(&lt;/span&gt;&lt;span style="color:blue;"&gt;DAY&lt;/span&gt;&lt;span style="color:silver;"&gt;,&lt;/span&gt;&lt;span style="color:maroon;"&gt;STARTDATE&lt;/span&gt;&lt;span style="color:silver;"&gt;,&lt;/span&gt;&lt;span style="color:fuchsia;"&gt;&lt;b&gt;GETDATE&lt;/span&gt;&lt;/b&gt;&lt;span style="color:silver;"&gt;(&lt;/span&gt;&lt;span style="color:silver;"&gt;)&lt;/span&gt;&lt;span style="color:silver;"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span style="color:blue;"&gt;ORDER&lt;/span&gt; &lt;span style="color:blue;"&gt;BY&lt;/span&gt; &lt;span style="color:maroon;"&gt;MYNAME&lt;/span&gt;&lt;span style="color:silver;"&gt;,&lt;/span&gt;&lt;br /&gt;&lt;span style="color:maroon;"&gt;STARTDATE&lt;/span&gt;&lt;span style="color:silver;"&gt;,&lt;/span&gt;&lt;br /&gt;&lt;span style="color:black;"&gt;3&lt;/span&gt;&lt;br /&gt;&lt;span style="color:blue;"&gt;GO&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:blue;"&gt;DROP&lt;/span&gt; &lt;span style="color:blue;"&gt;TABLE&lt;/span&gt; &lt;span style="color:maroon;"&gt;#TEMP&lt;/span&gt;&lt;br /&gt;&lt;span style="color:blue;"&gt;GO&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Thanks&lt;br /&gt;Mohit Nayyar&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8563771670213207018-8925509456672091802?l=mohitnayyar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mohitnayyar.blogspot.com/feeds/8925509456672091802/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8563771670213207018&amp;postID=8925509456672091802' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8563771670213207018/posts/default/8925509456672091802'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8563771670213207018/posts/default/8925509456672091802'/><link rel='alternate' type='text/html' href='http://mohitnayyar.blogspot.com/2008/09/data-extrapolation-on-fly.html' title='Data extrapolation on the fly'/><author><name>Mohit Nayyar</name><uri>http://www.blogger.com/profile/18400035423017397788</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8563771670213207018.post-2447180074431008115</id><published>2008-07-17T13:03:00.000-07:00</published><updated>2008-07-17T13:05:57.156-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Query Performance'/><category scheme='http://www.blogger.com/atom/ns#' term='Optimization'/><title type='text'>Things You Didn't Know About Temp Tables and Table Variables</title><content type='html'>I recently found really useful information on temp. table and table variable usage. I am sure this will be useful to SQL Community as well.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.sqlservercentral.com/articles/63472/"&gt;http://www.sqlservercentral.com/articles/63472/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;- Mohit&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8563771670213207018-2447180074431008115?l=mohitnayyar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mohitnayyar.blogspot.com/feeds/2447180074431008115/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8563771670213207018&amp;postID=2447180074431008115' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8563771670213207018/posts/default/2447180074431008115'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8563771670213207018/posts/default/2447180074431008115'/><link rel='alternate' type='text/html' href='http://mohitnayyar.blogspot.com/2008/07/things-you-didnt-know-about-temp-tables.html' title='Things You Didn&apos;t Know About Temp Tables and Table Variables'/><author><name>Mohit Nayyar</name><uri>http://www.blogger.com/profile/18400035423017397788</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8563771670213207018.post-2885574064488687581</id><published>2008-05-29T11:02:00.000-07:00</published><updated>2008-05-29T11:22:32.224-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Dimension'/><category scheme='http://www.blogger.com/atom/ns#' term='Business Intelligence'/><category scheme='http://www.blogger.com/atom/ns#' term='SSIS'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL Utility'/><category scheme='http://www.blogger.com/atom/ns#' term='Query Performance'/><title type='text'>SSIS approach to handle Inferred Members</title><content type='html'>&lt;div&gt;While loading data in Fact tables we usually see a scenario where &lt;span style="color:#ff6600;"&gt;the fact data is available but there is no corresponding business key in the related dimension.&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;P&gt;&lt;div&gt;In this case we choose multiple options to resolve the issue.&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Ignore that fact&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;span style="color:#000099;"&gt;Insert the associated business key in dimension table and return the newly generated surrogate key from dimension table. And now store the data in Fact table with the surrogate key.&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;P&gt;&lt;div&gt;&lt;span style="color:#000099;"&gt; &lt;/div&gt;&lt;/span&gt;&lt;div&gt;The second &lt;span style="color:#ff6600;"&gt;approach relates to a term called “Inferred members”.&lt;/span&gt; All the other attributes of that dimension will also get updated in next run of dimension load (usually nightly load).&lt;br /&gt;&lt;P&gt;In SSIS there are multiple options available to implement the second case.&lt;br /&gt;&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;&lt;span style="color:#cc0000;"&gt;First approach is to do lookup on the dimension table and for all the rows that are now matching, insert the business key in Dimension table and then do the lookup again to get the surrogate key.&lt;/span&gt; &lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;P&gt;&lt;div&gt;&lt;img id="BLOGGER_PHOTO_ID_5205862483839000562" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://2.bp.blogspot.com/_QKtchyfJXhY/SD7wWOLBn_I/AAAAAAAAABc/M2QF8g4afNw/s400/SSIS+Inferred+Members1+Mohit+Nayyar.GIF" border="0" /&gt;&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;P&gt;&lt;div&gt;&lt;span style="color:#990000;"&gt;Second approach is to make use of Lookup and Script component. Lookup component will ignore rows with no matching business key in dimension table. Then script component will process only those rows where it didn’t find the associated surrogate key and finally insert the same in dimension table and return the associated surrogate key through stored procedure output parameter.&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;img id="BLOGGER_PHOTO_ID_5205862492428935170" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://4.bp.blogspot.com/_QKtchyfJXhY/SD7wWuLBoAI/AAAAAAAAABk/Oer-jMx7AkI/s400/SSIS+Inferred+Members2+Mohit+Nayyar.GIF" border="0" /&gt; &lt;div&gt;This script component approach is more efficient because its using the existing lookup component only once and then doing all the processing in script component. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;But the additional benefit comes if we make use of .Net Generic.SortedDictionary class to store the cache information regarding the newly generated key. Read more about this here…&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/f7fta44c(VS.80).aspx"&gt;http://msdn.microsoft.com/en-us/library/f7fta44c(VS.80).aspx&lt;/a&gt; &lt;/div&gt;&lt;div&gt;&lt;br /&gt; &lt;/div&gt;&lt;img id="BLOGGER_PHOTO_ID_5205862496723902482" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://1.bp.blogspot.com/_QKtchyfJXhY/SD7wW-LBoBI/AAAAAAAAABs/DJ943kF3Ieg/s400/SSIS+Inferred+Members3+Mohit+Nayyar.GIF" border="0" /&gt;&lt;br /&gt;- Mohit&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8563771670213207018-2885574064488687581?l=mohitnayyar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mohitnayyar.blogspot.com/feeds/2885574064488687581/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8563771670213207018&amp;postID=2885574064488687581' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8563771670213207018/posts/default/2885574064488687581'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8563771670213207018/posts/default/2885574064488687581'/><link rel='alternate' type='text/html' href='http://mohitnayyar.blogspot.com/2008/05/ssis-approach-to-handle-inferred.html' title='SSIS approach to handle Inferred Members'/><author><name>Mohit Nayyar</name><uri>http://www.blogger.com/profile/18400035423017397788</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_QKtchyfJXhY/SD7wWOLBn_I/AAAAAAAAABc/M2QF8g4afNw/s72-c/SSIS+Inferred+Members1+Mohit+Nayyar.GIF' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8563771670213207018.post-2109941170712939388</id><published>2007-10-22T20:24:00.000-07:00</published><updated>2007-10-22T20:29:28.319-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SSIS'/><title type='text'>Selective Cube Measure Groups processing using “Analysis Services Processing Task” in SSIS</title><content type='html'>&lt;p&gt;Sometime its not feasible to process the full cube, so it makes sense to only process the selective measure group in the cube.&lt;br /&gt;&lt;p&gt;This is especially true when you have really big cube which takes time to process and sometime we just need to load data for only few business metrics.&lt;br /&gt;&lt;p&gt;Here is the small example to process only selective measure groups using “SSIS Analysis Services Processing Task”.&lt;br /&gt;&lt;p&gt;I am assuming that the measure group names are stored in a variable and after that we need to create “Processing Commands” to process the cube.&lt;br /&gt;&lt;p&gt;Processing Commands: We need to set this property in “Analysis Services Processing Task” to process the measure groups. So I will be using “Script Task” to generate the command.&lt;br /&gt;&lt;p&gt;Just make sure that the “Delay Validation” property of “Analysis Services Processing Task” is set to “True”.&lt;br /&gt;&lt;p&gt;Follow these steps now……..&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;&lt;li&gt;Get comma separated list of all measure groups needs to be processed in local SSIS variable let say “varMeasureGroups”. You can get this list from some sort of configuration, so no hard-coding ;)&lt;br /&gt;&lt;li&gt;Creates the command using “Script Task” and store the final command in local SSIS variable let say “varCubeCommand”&lt;br /&gt;&lt;li&gt;In “Analysis Services Processing Task” task set the property “Processing Commands” using expressions to the recently created variable named “varCubeCommand”. &lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;p&gt;That’s it………no need to process the full cube now………&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="mso-no-proof: yes;font-family:'Courier New';color:blue;"  &gt;Dim&lt;/span&gt;&lt;span style="mso-no-proof: yes;font-family:'Courier New';" &gt; strSplitMeasureGroup &lt;span style="color:blue;"&gt;As&lt;/span&gt; &lt;span style="color:blue;"&gt;String&lt;/span&gt;(), i &lt;span style="color:blue;"&gt;As&lt;/span&gt; &lt;span style="color:blue;"&gt;Integer&lt;/span&gt;, strCmd &lt;span style="color:blue;"&gt;As&lt;/span&gt; &lt;span style="color:blue;"&gt;String&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;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="mso-no-proof: yes;font-family:'Courier New';" &gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="mso-no-proof: yes;font-family:'Courier New';" &gt;strSplitMeasureGroup = Split(Dts.Variables(&lt;span style="color:#a31515;"&gt;"User::varMeasureGroups"&lt;/span&gt;).Value.ToString, &lt;span style="color:#a31515;"&gt;", "&lt;/span&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="mso-no-proof: yes;font-family:'Courier New';" &gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="mso-no-proof: yes;font-family:'Courier New';" &gt;strCmd = &lt;span style="color:#a31515;"&gt;"&amp;lt;Batch xmlns=""http://schemas.microsoft.com/analysisservices/2003/engine""&amp;gt;"&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="mso-no-proof: yes;font-family:'Courier New';color:#a31515;"  &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="mso-no-proof: yes;font-family:'Courier New';color:blue;"  &gt;For&lt;/span&gt;&lt;span style="mso-no-proof: yes;font-family:'Courier New';" &gt; i = 0 &lt;span style="color:blue;"&gt;To&lt;/span&gt; strSplitMeasureGroup.Length – 1&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="mso-no-proof: yes;font-family:'Courier New';" &gt;&lt;span style="mso-spacerun: yes"&gt;&lt;/span&gt;strCmd = strCmd &amp;amp; &lt;span style="color:#a31515;"&gt;"&amp;lt;Process xmlns:xsd=""http://www.w3.org/2001/XMLSchema"" "&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="mso-no-proof: yes;font-family:'Courier New';" &gt;&lt;span style="mso-spacerun: yes"&gt;&lt;/span&gt;strCmd = strCmd &amp;amp; &lt;span style="color:#a31515;"&gt;"xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance""&amp;gt;"&lt;/span&gt; &amp;amp; Chr(13)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="mso-no-proof: yes;font-family:'Courier New';" &gt;&lt;span style="mso-spacerun: yes"&gt;&lt;/span&gt;strCmd = strCmd &amp;amp; &lt;span style="color:#a31515;"&gt;"&amp;lt;Object&amp;gt;"&lt;/span&gt; &amp;amp; Chr(13)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="mso-no-proof: yes;font-family:'Courier New';" &gt;&lt;span style="mso-spacerun: yes"&gt;&lt;/span&gt;strCmd = strCmd &amp;amp; &lt;span style="color:#a31515;"&gt;"&amp;lt;DatabaseID&amp;gt;myCube&amp;lt;/DatabaseID&amp;gt;"&lt;/span&gt; &amp;amp; Chr(13)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="mso-no-proof: yes;font-family:'Courier New';" &gt;&lt;span style="mso-spacerun: yes"&gt;&lt;/span&gt;strCmd = strCmd &amp;amp; &lt;span style="color:#a31515;"&gt;"&amp;lt;CubeID&amp;gt;myCube&amp;lt;/CubeID&amp;gt;"&lt;/span&gt; &amp;amp; Chr(13)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="mso-no-proof: yes;font-family:'Courier New';" &gt;&lt;span style="mso-spacerun: yes"&gt;&lt;/span&gt;strCmd = strCmd &amp;amp; &lt;span style="color:#a31515;"&gt;"&amp;lt;MeasureGroupID&amp;gt;"&lt;/span&gt; &amp;amp; strSplitMeasureGroup(i) &amp;amp; &lt;span style="color:#a31515;"&gt;"&amp;lt;/MeasureGroupID&amp;gt;"&lt;/span&gt;&amp;amp;chr(13)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="mso-no-proof: yes;font-family:'Courier New';" &gt;&lt;span style="mso-spacerun: yes"&gt;&lt;/span&gt;strCmd = strCmd &amp;amp; &lt;span style="color:#a31515;"&gt;"&amp;lt;/Object&amp;gt;"&lt;/span&gt; &amp;amp; Chr(13)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="mso-no-proof: yes;font-family:'Courier New';" &gt;&lt;span style="mso-spacerun: yes"&gt;&lt;/span&gt;strCmd = strCmd &amp;amp; &lt;span style="color:#a31515;"&gt;"&amp;lt;Type&amp;gt;ProcessFull&amp;lt;/Type&amp;gt;"&lt;/span&gt; &amp;amp; Chr(13)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="mso-no-proof: yes;font-family:'Courier New';" &gt;&lt;span style="mso-spacerun: yes"&gt;&lt;/span&gt;strCmd = strCmd &amp;amp; &lt;span style="color:#a31515;"&gt;"&amp;lt;WriteBackTableCreation&amp;gt;UseExisting&amp;lt;/WriteBackTableCreation&amp;gt;"&lt;/span&gt; &amp;amp; Chr(13)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="mso-no-proof: yes;font-family:'Courier New';" &gt;&lt;span style="mso-spacerun: yes"&gt;&lt;/span&gt;strCmd = strCmd &amp;amp; &lt;span style="color:#a31515;"&gt;"&amp;lt;/Process&amp;gt;"&lt;/span&gt; &amp;amp; Chr(13)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="mso-no-proof: yes;font-family:'Courier New';color:blue;"  &gt;Next&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="mso-no-proof: yes;font-family:'Courier New';" &gt;strCmd = strCmd &amp;amp; &lt;span style="color:#a31515;"&gt;"&amp;lt;/Batch&amp;gt;"&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="mso-no-proof: yes;font-family:'Courier New';" &gt;Dts.Variables(&lt;span style="color:#a31515;"&gt;"User::varCubeCommand"&lt;/span&gt;).Value = strCmd&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;- Mohit Nayyar &lt;style type="text/css"&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt; font-size: small;&lt;br /&gt; color: black;&lt;br /&gt; font-family: consolas, "Courier New", courier, monospace;&lt;br /&gt; background-color: #ffffff;&lt;br /&gt; /*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;.csharpcode .alt&lt;br /&gt;{&lt;br /&gt; background-color: #f4f4f4;&lt;br /&gt; width: 100%;&lt;br /&gt; margin: 0em;&lt;br /&gt;}&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;br /&gt;&lt;/style&gt;&lt;br /&gt;&lt;br /&gt;&lt;style type="text/css"&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt; font-size: small;&lt;br /&gt; color: black;&lt;br /&gt; font-family: consolas, "Courier New", courier, monospace;&lt;br /&gt; background-color: #ffffff;&lt;br /&gt; /*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;.csharpcode .alt&lt;br /&gt;{&lt;br /&gt; background-color: #f4f4f4;&lt;br /&gt; width: 100%;&lt;br /&gt; margin: 0em;&lt;br /&gt;}&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;br /&gt;&lt;/style&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8563771670213207018-2109941170712939388?l=mohitnayyar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mohitnayyar.blogspot.com/feeds/2109941170712939388/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8563771670213207018&amp;postID=2109941170712939388' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8563771670213207018/posts/default/2109941170712939388'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8563771670213207018/posts/default/2109941170712939388'/><link rel='alternate' type='text/html' href='http://mohitnayyar.blogspot.com/2007/10/selective-cube-measure-groups.html' title='Selective Cube Measure Groups processing using “Analysis Services Processing Task” in SSIS'/><author><name>Mohit Nayyar</name><uri>http://www.blogger.com/profile/18400035423017397788</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8563771670213207018.post-4135849259020236441</id><published>2007-09-23T14:46:00.000-07:00</published><updated>2007-09-23T15:05:17.049-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SSIS'/><title type='text'>UPDATE: SSIS - deadlock was detected while trying to lock variables</title><content type='html'>&lt;p&gt;Recently I found this issue of &lt;a href="http://mohitnayyar.blogspot.com/2007/08/ssis-deadlock-was-detected-while-trying.html"&gt;deadlock variables in SSIS&lt;/a&gt; and finally made two solutions &lt;/p&gt; &lt;p&gt;1. Instead of declaring variables in Script properties (&lt;strong&gt;ReadOnlyVariables &lt;/strong&gt;/ &lt;strong&gt;ReadWriteVariables&lt;/strong&gt;), better to make use of &lt;strong&gt;Dts.VariableDispenser.LockForRead &lt;/strong&gt;/ &lt;strong&gt;Dts.VariableDispenser.LockForWrite &lt;/strong&gt;in the script to lock variables&lt;/p&gt; &lt;p&gt;2. I also solved my problem by running child packages out-of-proc (&lt;strong&gt;ExecuteOutOfProcess=TRUE &lt;/strong&gt;in &lt;strong&gt;Execute Package Task&lt;/strong&gt;), this is more to do with script caching&lt;br&gt;&lt;/p&gt; &lt;p&gt;But recently I saw something strange and found out that one of my script is making use of this type of code and I am getting this error again.....&lt;/p&gt; &lt;p&gt;"The script threw an exception: A deadlock was detected while trying to lock variables "variable names (comma separated)" for read access and variables "variable names (comma separated)" for read/write access. A lock cannot be acquired after 16 attempts. The locks timed out." &lt;/p&gt; &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; line-height: normal; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New'; mso-fareast-font-family: 'Times New Roman'"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&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;/p&gt; &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; line-height: normal; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New'; mso-fareast-font-family: 'Times New Roman'"&gt;&lt;span style="color: blue"&gt;Dim&lt;/span&gt; var &lt;span style="color: blue"&gt;As&lt;/span&gt; Variables&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; line-height: normal; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New'; mso-fareast-font-family: 'Times New Roman'"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; line-height: normal; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New'; mso-fareast-font-family: 'Times New Roman'"&gt;Dts.VariableDispenser.LockForWrite("User::VarName")&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; line-height: normal; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New'; mso-fareast-font-family: 'Times New Roman'"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; line-height: normal; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New'; mso-fareast-font-family: 'Times New Roman'"&gt;Dts.VariableDispenser.GetVariables(var)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; line-height: normal; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New'; mso-fareast-font-family: 'Times New Roman'"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; line-height: normal; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New'; mso-fareast-font-family: 'Times New Roman'"&gt;&lt;span style="color: red"&gt;&lt;strong&gt;'Problem Line, Just remove the reference to Dts.Variables&lt;/strong&gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; line-height: normal; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New'; mso-fareast-font-family: 'Times New Roman'"&gt;Dts.Variables("User::VarName").Value = "SomeVal"&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; line-height: normal; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New'; mso-fareast-font-family: 'Times New Roman'"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; line-height: normal; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New'; mso-fareast-font-family: 'Times New Roman'"&gt;&lt;span style="color: green"&gt;&lt;/span&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt; &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; line-height: normal; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New'; mso-fareast-font-family: 'Times New Roman'"&gt;&lt;span style="color: green"&gt;&lt;strong&gt;'Correct Line, make use of locally declared "var" Variable&lt;/strong&gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; line-height: normal; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New'; mso-fareast-font-family: 'Times New Roman'"&gt;var("User::VarName").Value = "SomeVal"&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; line-height: normal; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"&gt;&amp;nbsp;&lt;/p&gt; &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; line-height: normal; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New'; mso-fareast-font-family: 'Times New Roman'"&gt;var.Unlock()&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="margin: 0in 0in 0pt"&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;To&amp;nbsp;solve the situation I made a quick fix and change my &lt;strong&gt;Dts.Variables&lt;/strong&gt; to local variable collection I defined in the beginning "&lt;strong&gt;var&lt;/strong&gt;". &lt;p&gt;As we can see in this script that we are locking one variable for write. But after using the &lt;strong&gt;GetVariables &lt;/strong&gt;we MUST use "&lt;strong&gt;var&lt;/strong&gt;" collection to write data and should NOT use &lt;strong&gt;Dts.Variables &lt;/strong&gt;and that fixed my problem.  &lt;p&gt;So&amp;nbsp;I think this is some sort of double locking issue, like if I lock the variable using &lt;strong&gt;"Dts.VariableDispenser"&lt;/strong&gt; and if I try to access the same variable again with &lt;strong&gt;Dts.Variables&lt;/strong&gt; instead of &lt;strong&gt;"var"&lt;/strong&gt; then SSIS tries to lock that again...... &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;- Mohit Nayyar&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8563771670213207018-4135849259020236441?l=mohitnayyar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mohitnayyar.blogspot.com/feeds/4135849259020236441/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8563771670213207018&amp;postID=4135849259020236441' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8563771670213207018/posts/default/4135849259020236441'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8563771670213207018/posts/default/4135849259020236441'/><link rel='alternate' type='text/html' href='http://mohitnayyar.blogspot.com/2007/09/update-ssis-deadlock-was-detected-while.html' title='UPDATE: SSIS - deadlock was detected while trying to lock variables'/><author><name>Mohit Nayyar</name><uri>http://www.blogger.com/profile/18400035423017397788</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8563771670213207018.post-979581511279884031</id><published>2007-09-14T23:29:00.000-07:00</published><updated>2007-09-14T23:40:16.915-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL Utility'/><title type='text'>SQL Query tool that generates HTML / PDF / Word / Excel output</title><content type='html'>I just saw this &lt;span style="color:#3333ff;"&gt;new query tool from SQL Answers.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The beauty of this tool is to directly &lt;span style="color:#ff0000;"&gt;generate the output of any query into PDF / HTML / Excel / Word / CSV format.&lt;/span&gt; Please take a look here…....&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.sqlanswers.com/Software/SAQ/Default.aspx"&gt;http://www.sqlanswers.com/Software/SAQ/Default.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img id="BLOGGER_PHOTO_ID_5110315080109036962" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="Mohit Nayyar SQL Query Tool" src="http://3.bp.blogspot.com/_QKtchyfJXhY/Rut8fWA4laI/AAAAAAAAABU/Ep5-MEPrsAI/s400/Mohit+Nayyar+SQLAnswers.JPG" border="0" /&gt;&lt;br /&gt;&lt;br /&gt;This seems to be a &lt;span style="color:#3333ff;"&gt;lightweight tool to query multiple databases platforms like Microsoft SQL Server, Oracle, DB2, Microsoft Access and MySQL&lt;/span&gt;, but I just tested this for Microsoft SQL Server 2005 and I am really happy with this.&lt;br /&gt;&lt;br /&gt;This makes things really easy when you need to &lt;span style="color:#ff0000;"&gt;send the output in PDF or HTML without any extra effort.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;On the similar lines &lt;span style="color:#3333ff;"&gt;Microsoft also offers a “SQL Server Web Data Administrator”&lt;/span&gt; tool, which is &lt;span style="color:#ff0000;"&gt;very useful because of its basic web interface&lt;/span&gt;. You can find this here…….&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.microsoft.com/Downloads/details.aspx?familyid=C039A798-C57A-419E-ACBC-2A332CB7F959&amp;amp;displaylang=en"&gt;http://www.microsoft.com/Downloads/details.aspx?familyid=C039A798-C57A-419E-ACBC-2A332CB7F959&amp;amp;displaylang=en&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;- Mohit Nayyar&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8563771670213207018-979581511279884031?l=mohitnayyar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mohitnayyar.blogspot.com/feeds/979581511279884031/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8563771670213207018&amp;postID=979581511279884031' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8563771670213207018/posts/default/979581511279884031'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8563771670213207018/posts/default/979581511279884031'/><link rel='alternate' type='text/html' href='http://mohitnayyar.blogspot.com/2007/09/sql-query-tool-that-generates-html-pdf.html' title='SQL Query tool that generates HTML / PDF / Word / Excel output'/><author><name>Mohit Nayyar</name><uri>http://www.blogger.com/profile/18400035423017397788</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_QKtchyfJXhY/Rut8fWA4laI/AAAAAAAAABU/Ep5-MEPrsAI/s72-c/Mohit+Nayyar+SQLAnswers.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8563771670213207018.post-4075737761625094637</id><published>2007-09-13T09:49:00.000-07:00</published><updated>2007-09-13T10:02:15.886-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SSIS'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL Utility'/><category scheme='http://www.blogger.com/atom/ns#' term='Migration'/><title type='text'>DTS to SSIS migration</title><content type='html'>Today I saw a &lt;span style="color:#3333ff;"&gt;new product&lt;/span&gt; coming soon to do &lt;span style="color:#3333ff;"&gt;DTS to SSIS migration&lt;/span&gt; called &lt;span style="color:#ff6600;"&gt;DtsXchange.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Looks promising and this is also &lt;span style="color:#ff6600;"&gt;capable to do something extra which built-in DTS migration doesn’t do&lt;/span&gt; like Dynamic Properties. Have a look here &lt;a href="http://www.pragmaticworks.com/dtsxchange.htm"&gt;http://www.pragmaticworks.com/dtsxchange.htm&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Users &lt;span style="color:#3333ff;"&gt;can also migrate existing DTS packages into SSIS using the FREE migration wizard provided by SQL Server 2005&lt;/span&gt; but this wizard doesn’t cover complete DTS package. So in some cases manual effort is required, and &lt;span style="color:#ff6600;"&gt;SSIS doesn’t support some of the DTS features&lt;/span&gt;, so the user has to manually implement the functionality in new SSIS package.&lt;br /&gt;&lt;br /&gt;You can find some known issues in migration here &lt;a href="http://technet.microsoft.com/en-us/library/ms143462.aspx"&gt;http://technet.microsoft.com/en-us/library/ms143462.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;But on top of this &lt;span style="color:#3333ff;"&gt;SSIS allows you to run the existing DTS package even without any change&lt;/span&gt;, using a wrapper called “&lt;span style="color:#ff6600;"&gt;Execute DTS 2000 Package Task” in the new SSIS package&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;So if you don’t have the bandwidth to migrate the existing package then &lt;span style="color:#3333ff;"&gt;keep on running the old DTS packages in SSIS and start making new packages in SSIS.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Obviously &lt;span style="color:#ff6600;"&gt;you will miss the “All NEW SSIS”&lt;/span&gt; but it’s an easy work around. But I think you will miss a lot, because &lt;span style="color:#ff6600;"&gt;SSIS is NOT a new name of DTS but it's a truly enterprise level ETL tool.&lt;/span&gt; So its always better to migrate to SSIS as soon as possible.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;- Mohit Nayyar&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8563771670213207018-4075737761625094637?l=mohitnayyar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8563771670213207018/posts/default/4075737761625094637'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8563771670213207018/posts/default/4075737761625094637'/><link rel='alternate' type='text/html' href='http://mohitnayyar.blogspot.com/2007/09/dts-to-ssis-migration.html' title='DTS to SSIS migration'/><author><name>Mohit Nayyar</name><uri>http://www.blogger.com/profile/18400035423017397788</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-8563771670213207018.post-7715446361218559564</id><published>2007-08-29T21:13:00.001-07:00</published><updated>2007-08-29T21:21:15.582-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL Utility'/><title type='text'>Get all user defined table information with RowCount and Size (space used)</title><content type='html'>&lt;p style="margin: 0in 0in 0pt"&gt;&lt;b style="mso-bidi-font-weight: normal"&gt;&lt;span style="font-size: 10pt; color: red; font-family: 'Trebuchet MS','sans-serif'"&gt;"sp_spaceused"&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; color: #333333; font-family: 'Trebuchet MS','sans-serif'"&gt; procedure is really handy to get the updated information about space usage by database or tables.&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;/p&gt; &lt;p style="margin: 0in 0in 0pt"&gt;&lt;span style="font-size: 10pt; color: #333333; font-family: 'Trebuchet MS','sans-serif'"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0in 0in 0pt"&gt;&lt;span style="font-size: 10pt; color: #333333; font-family: 'Trebuchet MS','sans-serif'"&gt;I combined the same with another very useful procedure &lt;/span&gt;&lt;b style="mso-bidi-font-weight: normal"&gt;&lt;span style="font-size: 10pt; color: red; font-family: 'Trebuchet MS','sans-serif'"&gt;"sp_MSforeachtable"&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; color: #333333; font-family: 'Trebuchet MS','sans-serif'"&gt; to get this information for all user-defined tables.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0in 0in 0pt"&gt;&lt;span style="font-size: 10pt; color: #333333; font-family: 'Trebuchet MS','sans-serif'"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0in 0in 0pt"&gt;&lt;span style="font-size: 10pt; color: #333333; font-family: 'Trebuchet MS','sans-serif'"&gt;If you see any problem with the information then just change the last parameter and set it to TRUE (FALSE in the script). That will update the space usage and then report the updated details.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0in 0in 0pt"&gt;&lt;span style="font-size: 10pt; color: #333333; font-family: 'Trebuchet MS','sans-serif'"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;blockquote&gt; &lt;p class="MsoNormal" style="margin: 0in 0in 0pt"&gt;&lt;span style="font-size: 10pt; color: blue; font-family: 'Arial','sans-serif'"&gt;CREATE&lt;/span&gt;&lt;span style="font-size: 10pt; color: #666666; font-family: 'Arial','sans-serif'"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; color: blue; font-family: 'Arial','sans-serif'"&gt;TABLE&lt;/span&gt;&lt;span style="font-size: 10pt; color: #666666; font-family: 'Arial','sans-serif'"&gt; #temp &lt;?xml:namespace prefix = u1 /&gt;&lt;u1:p&gt;&lt;/u1:p&gt;&lt;/span&gt;&lt;span style="color: #666666"&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: 10pt; color: gray; font-family: 'Arial','sans-serif'"&gt;(&lt;/span&gt;&lt;span style="color: #666666"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="margin: 0in 0in 0pt 0.5in"&gt;&lt;span style="font-size: 10pt; color: #666666; font-family: 'Arial','sans-serif'"&gt;TableName &lt;span style="mso-tab-count: 2"&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; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; color: blue; font-family: 'Arial','sans-serif'"&gt;NVARCHAR&lt;/span&gt;&lt;span style="font-size: 10pt; color: #666666; font-family: 'Arial','sans-serif'"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; color: gray; font-family: 'Arial','sans-serif'"&gt;(&lt;/span&gt;&lt;span style="font-size: 10pt; color: #666666; font-family: 'Arial','sans-serif'"&gt;128&lt;/span&gt;&lt;span style="font-size: 10pt; color: gray; font-family: 'Arial','sans-serif'"&gt;), &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="margin: 0in 0in 0pt 0.5in"&gt;&lt;span style="font-size: 10pt; color: #666666; font-family: 'Arial','sans-serif'"&gt;RowsCnt &lt;span style="mso-tab-count: 2"&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;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; color: blue; font-family: 'Arial','sans-serif'"&gt;VARCHAR&lt;/span&gt;&lt;span style="font-size: 10pt; color: #666666; font-family: 'Arial','sans-serif'"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; color: gray; font-family: 'Arial','sans-serif'"&gt;(&lt;/span&gt;&lt;span style="font-size: 10pt; color: #666666; font-family: 'Arial','sans-serif'"&gt;11&lt;/span&gt;&lt;span style="font-size: 10pt; color: gray; font-family: 'Arial','sans-serif'"&gt;),&lt;/span&gt;&lt;span style="color: #666666"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="margin: 0in 0in 0pt 0.5in"&gt;&lt;span style="font-size: 10pt; color: #666666; font-family: 'Arial','sans-serif'"&gt;ReservedSpace &lt;span style="mso-tab-count: 1"&gt;&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;/span&gt;&lt;span style="font-size: 10pt; color: blue; font-family: 'Arial','sans-serif'"&gt;VARCHAR&lt;/span&gt;&lt;span style="font-size: 10pt; color: gray; font-family: 'Arial','sans-serif'"&gt;(&lt;/span&gt;&lt;span style="font-size: 10pt; color: #666666; font-family: 'Arial','sans-serif'"&gt;18&lt;/span&gt;&lt;span style="font-size: 10pt; color: gray; font-family: 'Arial','sans-serif'"&gt;),&lt;/span&gt;&lt;span style="font-size: 10pt; color: #666666; font-family: 'Arial','sans-serif'"&gt; &lt;/span&gt;&lt;span style="color: #666666"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="margin: 0in 0in 0pt 0.5in"&gt;&lt;span style="font-size: 10pt; color: #666666; font-family: 'Arial','sans-serif'"&gt;DataSpace &lt;span style="mso-tab-count: 2"&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; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; color: blue; font-family: 'Arial','sans-serif'"&gt;VARCHAR&lt;/span&gt;&lt;span style="font-size: 10pt; color: gray; font-family: 'Arial','sans-serif'"&gt;(&lt;/span&gt;&lt;span style="font-size: 10pt; color: #666666; font-family: 'Arial','sans-serif'"&gt;18&lt;/span&gt;&lt;span style="font-size: 10pt; color: gray; font-family: 'Arial','sans-serif'"&gt;),&lt;/span&gt;&lt;span style="font-size: 10pt; color: #666666; font-family: 'Arial','sans-serif'"&gt; &lt;/span&gt;&lt;span style="color: #666666"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="margin: 0in 0in 0pt 0.5in"&gt;&lt;span style="font-size: 10pt; color: #666666; font-family: 'Arial','sans-serif'"&gt;CombinedIndexSpace &lt;span style="mso-tab-count: 1"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; color: blue; font-family: 'Arial','sans-serif'"&gt;VARCHAR&lt;/span&gt;&lt;span style="font-size: 10pt; color: gray; font-family: 'Arial','sans-serif'"&gt;(&lt;/span&gt;&lt;span style="font-size: 10pt; color: #666666; font-family: 'Arial','sans-serif'"&gt;18&lt;/span&gt;&lt;span style="font-size: 10pt; color: gray; font-family: 'Arial','sans-serif'"&gt;),&lt;/span&gt;&lt;span style="font-size: 10pt; color: #666666; font-family: 'Arial','sans-serif'"&gt; &lt;/span&gt;&lt;span style="color: #666666"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="margin: 0in 0in 0pt 0.5in"&gt;&lt;span style="font-size: 10pt; color: #666666; font-family: 'Arial','sans-serif'"&gt;UnusedSpace &lt;span style="mso-tab-count: 2"&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; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; color: blue; font-family: 'Arial','sans-serif'"&gt;VARCHAR&lt;/span&gt;&lt;span style="font-size: 10pt; color: gray; font-family: 'Arial','sans-serif'"&gt;(&lt;/span&gt;&lt;span style="font-size: 10pt; color: #666666; font-family: 'Arial','sans-serif'"&gt;18&lt;/span&gt;&lt;span style="font-size: 10pt; color: gray; font-family: 'Arial','sans-serif'"&gt;)&lt;?xml:namespace prefix = u2 /&gt;&lt;u2:p&gt;&lt;/u2:p&gt;&lt;u1:p&gt;&lt;/u1:p&gt;&lt;/span&gt;&lt;span style="color: #666666"&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: 10pt; color: gray; font-family: 'Arial','sans-serif'"&gt;)&lt;/span&gt;&lt;span style="color: #666666"&gt;&lt;u1:p&gt;&lt;/u1:p&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; color: blue; font-family: 'Arial','sans-serif'"&gt;&lt;u2:p&gt;&lt;u1:p&gt;&lt;u2:p&gt;&lt;/u2:p&gt;&amp;nbsp;&lt;/u1:p&gt;&lt;/span&gt;&lt;span style="color: #666666"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; color: blue; font-family: 'Arial','sans-serif'"&gt;EXEC&lt;/span&gt;&lt;span style="font-size: 10pt; color: #666666; font-family: 'Arial','sans-serif'"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; color: maroon; font-family: 'Arial','sans-serif'"&gt;sp_MSforeachtable&lt;/span&gt;&lt;span style="font-size: 10pt; color: #666666; font-family: 'Arial','sans-serif'"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; color: red; font-family: 'Arial','sans-serif'"&gt;'INSERT INTO #temp (TableName, RowsCnt, ReservedSpace, DataSpace, CombinedIndexSpace, UnusedSpace) EXEC sp_spaceused ''?'', FALSE'&lt;u2:p&gt;&lt;/u2:p&gt;&lt;/span&gt;&lt;span style="color: #666666"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;u1:p&gt;&lt;/u1:p&gt; &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; color: blue; font-family: 'Arial','sans-serif'"&gt;&lt;u2:p&gt;&lt;u1:p&gt;&amp;nbsp;&lt;/u1:p&gt;&lt;/span&gt;&lt;span style="color: #666666"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; color: blue; font-family: 'Arial','sans-serif'"&gt;SELECT&lt;/span&gt;&lt;span style="font-size: 10pt; color: #666666; font-family: 'Arial','sans-serif'"&gt; TableName&lt;/span&gt;&lt;span style="font-size: 10pt; color: gray; font-family: 'Arial','sans-serif'"&gt;,&lt;/span&gt;&lt;span style="font-size: 10pt; color: #666666; font-family: 'Arial','sans-serif'"&gt; RowsCnt&lt;/span&gt;&lt;span style="font-size: 10pt; color: gray; font-family: 'Arial','sans-serif'"&gt;,&lt;/span&gt;&lt;span style="font-size: 10pt; color: #666666; font-family: 'Arial','sans-serif'"&gt; ReservedSpace&lt;/span&gt;&lt;span style="font-size: 10pt; color: gray; font-family: 'Arial','sans-serif'"&gt;,&lt;/span&gt;&lt;span style="font-size: 10pt; color: #666666; font-family: 'Arial','sans-serif'"&gt; DataSpace&lt;/span&gt;&lt;span style="font-size: 10pt; color: gray; font-family: 'Arial','sans-serif'"&gt;,&lt;/span&gt;&lt;span style="font-size: 10pt; color: #666666; font-family: 'Arial','sans-serif'"&gt; CombinedIndexSpace&lt;/span&gt;&lt;span style="font-size: 10pt; color: gray; font-family: 'Arial','sans-serif'"&gt;,&lt;/span&gt;&lt;span style="font-size: 10pt; color: #666666; font-family: 'Arial','sans-serif'"&gt; UnusedSpace &lt;/span&gt;&lt;span style="color: #666666"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; color: blue; font-family: 'Arial','sans-serif'"&gt;&lt;u2:p&gt;&lt;/u2:p&gt;FROM&lt;/span&gt;&lt;span style="font-size: 10pt; color: #666666; font-family: 'Arial','sans-serif'"&gt; #temp&lt;u2:p&gt;&lt;/u2:p&gt;&lt;u1:p&gt;&lt;/u1:p&gt;&lt;/span&gt;&lt;span style="color: #666666"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; color: blue; font-family: 'Arial','sans-serif'"&gt;ORDER&lt;/span&gt;&lt;span style="font-size: 10pt; color: #666666; font-family: 'Arial','sans-serif'"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; color: blue; font-family: 'Arial','sans-serif'"&gt;BY&lt;/span&gt;&lt;span style="font-size: 10pt; color: #666666; font-family: 'Arial','sans-serif'"&gt; TableName&lt;u2:p&gt;&lt;/u2:p&gt;&lt;u1:p&gt;&lt;/u1:p&gt;&lt;/span&gt;&lt;span style="color: #666666"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; color: blue; font-family: 'Arial','sans-serif'"&gt;&lt;u1:p&gt;&amp;nbsp;&lt;/u1:p&gt;&lt;/span&gt;&lt;span style="color: #666666"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; color: blue; font-family: 'Arial','sans-serif'"&gt;DROP&lt;/span&gt;&lt;span style="font-size: 10pt; color: #666666; font-family: 'Arial','sans-serif'"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; color: blue; font-family: 'Arial','sans-serif'"&gt;TABLE&lt;/span&gt;&lt;span style="font-size: 10pt; color: #666666; font-family: 'Arial','sans-serif'"&gt; #temp&lt;u2:p&gt;&lt;/u2:p&gt;&lt;u1:p&gt;&lt;/u1:p&gt;&lt;/span&gt;&lt;span style="color: #666666"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt; &lt;p class="MsoNormal" style="margin: 0in 0in 0pt"&gt;&lt;span style="font-size: 10pt; color: #333333; font-family: 'Arial','sans-serif'"&gt;&lt;u1:p&gt;&amp;nbsp;&lt;/u1:p&gt;&lt;/span&gt;&lt;span style="color: #333333"&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;u1:p&gt;&lt;span style="color: #333333"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;/u2:p&gt;&lt;/u2:p&gt; &lt;p class="MsoNormal" style="margin: 0in 0in 0pt"&gt;&lt;span style="color: #333333"&gt;- Mohit Nayyar&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/u1:p&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="margin: 0in 0in 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8563771670213207018-7715446361218559564?l=mohitnayyar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mohitnayyar.blogspot.com/feeds/7715446361218559564/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8563771670213207018&amp;postID=7715446361218559564' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8563771670213207018/posts/default/7715446361218559564'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8563771670213207018/posts/default/7715446361218559564'/><link rel='alternate' type='text/html' href='http://mohitnayyar.blogspot.com/2007/08/get-all-user-defined-table-information.html' title='Get all user defined table information with RowCount and Size (space used)'/><author><name>Mohit Nayyar</name><uri>http://www.blogger.com/profile/18400035423017397788</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8563771670213207018.post-9049325402279424896</id><published>2007-08-27T22:33:00.000-07:00</published><updated>2007-08-28T19:26:34.919-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Dimension'/><category scheme='http://www.blogger.com/atom/ns#' term='Business Intelligence'/><category scheme='http://www.blogger.com/atom/ns#' term='SSIS'/><title type='text'>SSIS - deadlock was detected while trying to lock variables</title><content type='html'>&lt;p&gt;Recently I faced one &lt;span style="color:#ff0000;"&gt;MAJOR&lt;/span&gt; issue in my ETL packages &lt;span style="color:#ff0000;"&gt;because of new patches deployed on Microsoft Windows 2003 Server.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;"A deadlock was detected while trying to lock variables "variable names (comma separated)" for read/write access. A lock cannot be acquired after 16 attempts. The locks timed out."&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;OR&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;"The script threw an exception: A deadlock was detected while trying to lock variables "variable names (comma separated)" for read access and variables "variable names (comma separated)" for read/write access. A lock cannot be acquired after 16 attempts. The locks timed out."&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;It's more to do with &lt;span style="color:#ff0000;"&gt;Script component/Task used in the package&lt;/span&gt; and making use of "&lt;span style="color:#ff0000;"&gt;ReadOnlyVariables&lt;/span&gt;" and "&lt;span style="color:#ff0000;"&gt;ReadWriteVariables&lt;/span&gt;" properties for declaring variables that will be used in the script.&lt;br /&gt;&lt;br /&gt;Technically &lt;span style="color:#3333ff;"&gt;if we declare variables in these two properties then there is NO need to lock these variables in the script&lt;/span&gt;, and this is exactly what we were doing in the past prior to these patches....&lt;br /&gt;&lt;br /&gt;Windows 2003 Post-SP2 Hotfix - MS07-31/935840 W2K3 Server&lt;br /&gt;Windows 2003 Post-SP2 Hotfix - MS07-34/929123 W2K3 Server&lt;br /&gt;Windows 2003 Post-SP2 Hotfix - MS07-039/926122 W2K3 Server&lt;br /&gt;Windows 2003 Post-SP2 Hotfix - KB924054 W2K3 Server&lt;br /&gt;2.0 IE Update W2K3 Server&lt;br /&gt;&lt;br /&gt;Now I don't know which one of these patches is causing the real problem but yes it's one of them for sure.&lt;br /&gt;&lt;br /&gt;We can &lt;span style="color:#3333ff;"&gt;see these error in the SSIS logging files&lt;/span&gt;...&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#ff6600;"&gt;Now the quick fix to these errors are NOT using "ReadOnlyVariables" and "ReadWriteVariables" properties for declaring variables that will be used in the script. Instead a better way is to declare the same in script itself and then locking and unlocking the same using DTS object model.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;Imports&lt;/span&gt; System&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;Imports &lt;/span&gt;System.Data&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;Imports &lt;/span&gt;System.Math&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;Imports &lt;/span&gt;Microsoft.SqlServer.Dts.Runtime&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;Public Class &lt;/span&gt;ScriptMain&lt;/p&gt;&lt;p&gt;&lt;span style="color:#0000ff;"&gt;Public Sub&lt;/span&gt; Main()&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;    Dim &lt;/span&gt;myVar &lt;span style="color:#0000ff;"&gt;As &lt;/span&gt;Variables&lt;br /&gt;&lt;br /&gt;    Dts.VariableDispenser.LockForWrite(&lt;span style="color:#e06f5a;"&gt;"User::Var1"&lt;/span&gt;)&lt;br /&gt;    Dts.VariableDispenser.LockForWrite(&lt;span style="color:#e06f5a;"&gt;"User::Var2"&lt;/span&gt;)&lt;br /&gt;&lt;br /&gt;    Dts.VariableDispenser.GetVariables(myVar)&lt;br /&gt;&lt;br /&gt;    myVar(&lt;span style="color:#e06f5a;"&gt;"User::Var1"&lt;/span&gt;).Value = &lt;span style="color:#e06f5a;"&gt;"SomeValue"&lt;/span&gt;&lt;br /&gt;    myVar(&lt;span style="color:#e06f5a;"&gt;"User::Var1"&lt;/span&gt;).Value = &lt;span style="color:#e06f5a;"&gt;"SomeValue"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;    myVar.Unlock()&lt;br /&gt;&lt;br /&gt;    Dts.TaskResult = Dts.Results.Success&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;    End Sub&lt;br /&gt;&lt;br /&gt;End Class&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#009900;"&gt;Let me know if you know the exact source of this problem.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;- Mohit Nayyar&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8563771670213207018-9049325402279424896?l=mohitnayyar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mohitnayyar.blogspot.com/feeds/9049325402279424896/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8563771670213207018&amp;postID=9049325402279424896' title='9 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8563771670213207018/posts/default/9049325402279424896'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8563771670213207018/posts/default/9049325402279424896'/><link rel='alternate' type='text/html' href='http://mohitnayyar.blogspot.com/2007/08/ssis-deadlock-was-detected-while-trying.html' title='SSIS - deadlock was detected while trying to lock variables'/><author><name>Mohit Nayyar</name><uri>http://www.blogger.com/profile/18400035423017397788</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8563771670213207018.post-8237160341273858816</id><published>2007-08-17T23:05:00.001-07:00</published><updated>2007-08-17T23:21:34.416-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Query Performance'/><title type='text'>Microsoft SQL Server common query performance problems</title><content type='html'>&lt;p align="left"&gt;&lt;span style="font-family:tre;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family:tre;"&gt;At some point of time we all have to &lt;span style="color:#3333ff;"&gt;fine tune&lt;/span&gt; our old &lt;span style="color:#3333ff;"&gt;SQL Server queries&lt;/span&gt; or some of our colleague’s queries ;) &lt;/span&gt;&lt;p align="left"&gt;&lt;span style="font-family:tre;"&gt;So I thought of writing something about &lt;span style="color:#ff6600;"&gt;common query performance problems&lt;/span&gt; and a &lt;span style="color:#009900;"&gt;checklist which can be used a make sure we didn’t miss anything&lt;/span&gt;. &lt;/span&gt;&lt;p align="left"&gt;&lt;/p&gt;&lt;div align="left"&gt;&lt;table class="MsoNormalTable" style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; MARGIN-LEFT: 6.75pt; BORDER-LEFT: medium none; MARGIN-RIGHT: 6.75pt; BORDER-BOTTOM: medium none; BORDER-COLLAPSE: collapse; mso-border-alt: solid windowtext .5pt; mso-yfti-tbllook: 480; mso-padding-alt: 5.05pt 2.9pt 5.05pt 2.9pt; mso-table-lspace: 9.0pt; mso-table-rspace: 9.0pt; mso-table-anchor-vertical: page; mso-table-anchor-horizontal: margin; mso-table-left: left; mso-table-top: 166.95pt; mso-border-insideh: .5pt solid windowtext; mso-border-insidev: .5pt solid windowtext" cellspacing="0" cellpadding="0" align="left" border="1" unselectable="on"&gt;&lt;tbody&gt;&lt;tr style="mso-yfti-irow: 0; mso-yfti-firstrow: yes"&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.9pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 2.9pt; PADDING-BOTTOM: 5.05pt; BORDER-LEFT: windowtext 1pt solid; WIDTH: 23.4pt; PADDING-TOP: 5.05pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt" valign="top" width="31"&gt;&lt;p class="MsoNormal" style="MARGIN-LEFT: 0.25in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1; tab-stops: list .25in; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: page; mso-element-anchor-horizontal: margin; mso-element-top: 166.95pt; mso-height-rule: exactly"&gt;&lt;span style="font-family:tre;"&gt;&lt;span style="FONT-FAMILY: 'Trebuchet MS','sans-serif'; mso-fareast-font-family: 'Trebuchet MS'font-family:'Trebuchet MS';" &gt;&lt;span style="mso-list: ignore"&gt;1.&lt;span style="FONT: 7pt 'Times New Roman';font-size:100%;" &gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:'Trebuchet MS','sans-serif';"&gt;&lt;?xml:namespace prefix = o /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.9pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 2.9pt; PADDING-BOTTOM: 5.05pt; BORDER-LEFT: medium none; WIDTH: 81pt; PADDING-TOP: 5.05pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt" valign="top" width="108"&gt;&lt;p class="MsoNormal" style="mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: page; mso-element-anchor-horizontal: margin; mso-element-top: 166.95pt; mso-height-rule: exactly"&gt;&lt;span style="font-family:'Trebuchet MS','sans-serif';"&gt;&lt;span style="font-family:tre;"&gt;Large Result Set&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.9pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 2.9pt; PADDING-BOTTOM: 5.05pt; BORDER-LEFT: medium none; WIDTH: 2.75in; PADDING-TOP: 5.05pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt" valign="top" width="264"&gt;&lt;p class="MsoNormal" style="mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: page; mso-element-anchor-horizontal: margin; mso-element-top: 166.95pt; mso-height-rule: exactly"&gt;&lt;span style="font-family:'Trebuchet MS','sans-serif';"&gt;&lt;span style="font-family:tre;"&gt;Common &lt;span style="color:#ff0000;"&gt;mistake to include * instead of specific column names&lt;/span&gt; takes first place in investigation for performance issue.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: page; mso-element-anchor-horizontal: margin; mso-element-top: 166.95pt; mso-height-rule: exactly"&gt;&lt;span style="font-family:'Trebuchet MS','sans-serif';"&gt;&lt;span style="font-family:tre;"&gt;We should &lt;span style="color:#009900;"&gt;always use specific column&lt;/span&gt; required by the application instead of asking all available columns. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: page; mso-element-anchor-horizontal: margin; mso-element-top: 166.95pt; mso-height-rule: exactly"&gt;&lt;span style="font-family:'Trebuchet MS','sans-serif';"&gt;&lt;span style="font-family:tre;"&gt;&lt;span style="color:#ff0000;"&gt;Using * get worst when there are image/text/binary&lt;/span&gt; or very large data columns available in the table. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: page; mso-element-anchor-horizontal: margin; mso-element-top: 166.95pt; mso-height-rule: exactly"&gt;&lt;span style="font-family:'Trebuchet MS','sans-serif';"&gt;&lt;span style="font-family:tre;"&gt;Making &lt;span style="color:#009900;"&gt;use of TOP / TOP Percent / SET ROWCOUNT is another smart move &lt;/span&gt;to restrict the data based on technical solution.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="mso-yfti-irow: 1"&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.9pt; BORDER-TOP: medium none; PADDING-LEFT: 2.9pt; PADDING-BOTTOM: 5.05pt; BORDER-LEFT: windowtext 1pt solid; WIDTH: 23.4pt; PADDING-TOP: 5.05pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="31"&gt;&lt;p class="MsoNormal" style="MARGIN-LEFT: 0.25in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1; tab-stops: list .25in; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: page; mso-element-anchor-horizontal: margin; mso-element-top: 166.95pt; mso-height-rule: exactly"&gt;&lt;span style="font-family:tre;"&gt;&lt;span style="FONT-FAMILY: 'Trebuchet MS','sans-serif'; mso-fareast-font-family: 'Trebuchet MS'font-family:'Trebuchet MS';" &gt;&lt;span style="mso-list: ignore"&gt;2.&lt;span style="FONT: 7pt 'Times New Roman';font-size:100%;" &gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:'Trebuchet MS','sans-serif';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.9pt; BORDER-TOP: medium none; PADDING-LEFT: 2.9pt; PADDING-BOTTOM: 5.05pt; BORDER-LEFT: medium none; WIDTH: 81pt; PADDING-TOP: 5.05pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="108"&gt;&lt;p class="MsoNormal" style="mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: page; mso-element-anchor-horizontal: margin; mso-element-top: 166.95pt; mso-height-rule: exactly"&gt;&lt;span style="font-family:'Trebuchet MS','sans-serif';"&gt;&lt;span style="font-family:tre;"&gt;Missing Where Clause&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.9pt; BORDER-TOP: medium none; PADDING-LEFT: 2.9pt; PADDING-BOTTOM: 5.05pt; BORDER-LEFT: medium none; WIDTH: 2.75in; PADDING-TOP: 5.05pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="264"&gt;&lt;p class="MsoNormal" style="mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: page; mso-element-anchor-horizontal: margin; mso-element-top: 166.95pt; mso-height-rule: exactly"&gt;&lt;span style="font-family:'Trebuchet MS','sans-serif';"&gt;&lt;span style="font-family:tre;"&gt;We should always include the specific criteria when asking for rows.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: page; mso-element-anchor-horizontal: margin; mso-element-top: 166.95pt; mso-height-rule: exactly"&gt;&lt;span style="font-family:'Trebuchet MS','sans-serif';"&gt;&lt;span style="font-family:tre;"&gt;Making use of &lt;span style="color:#009900;"&gt;WHERE clause is very beneficial &lt;/span&gt;when we have appropriate indexes on the columns in WHERE and SELECT clause.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="mso-yfti-irow: 2"&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.9pt; BORDER-TOP: medium none; PADDING-LEFT: 2.9pt; PADDING-BOTTOM: 5.05pt; BORDER-LEFT: windowtext 1pt solid; WIDTH: 23.4pt; PADDING-TOP: 5.05pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="31"&gt;&lt;p class="MsoNormal" style="MARGIN-LEFT: 0.25in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1; tab-stops: list .25in; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: page; mso-element-anchor-horizontal: margin; mso-element-top: 166.95pt; mso-height-rule: exactly"&gt;&lt;span style="font-family:tre;"&gt;&lt;span style="FONT-FAMILY: 'Trebuchet MS','sans-serif'; mso-fareast-font-family: 'Trebuchet MS'font-family:'Trebuchet MS';" &gt;&lt;span style="mso-list: ignore"&gt;3.&lt;span style="FONT: 7pt 'Times New Roman';font-size:100%;" &gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:'Trebuchet MS','sans-serif';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.9pt; BORDER-TOP: medium none; PADDING-LEFT: 2.9pt; PADDING-BOTTOM: 5.05pt; BORDER-LEFT: medium none; WIDTH: 81pt; PADDING-TOP: 5.05pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="108"&gt;&lt;p class="MsoNormal" style="mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: page; mso-element-anchor-horizontal: margin; mso-element-top: 166.95pt; mso-height-rule: exactly"&gt;&lt;span style="font-family:'Trebuchet MS','sans-serif';"&gt;&lt;span style="font-family:tre;"&gt;Lack of useful statistics&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.9pt; BORDER-TOP: medium none; PADDING-LEFT: 2.9pt; PADDING-BOTTOM: 5.05pt; BORDER-LEFT: medium none; WIDTH: 2.75in; PADDING-TOP: 5.05pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="264"&gt;&lt;p class="MsoNormal" style="mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: page; mso-element-anchor-horizontal: margin; mso-element-top: 166.95pt; mso-height-rule: exactly"&gt;&lt;span style="font-family:'Trebuchet MS','sans-serif';"&gt;&lt;span style="font-family:tre;"&gt;This is again very important point, statistics are the key for query optimizer to make an execution plan and get the data out.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: page; mso-element-anchor-horizontal: margin; mso-element-top: 166.95pt; mso-height-rule: exactly"&gt;&lt;span style="font-family:'Trebuchet MS','sans-serif';"&gt;&lt;span style="font-family:tre;"&gt;SQL Server automatically creates useful statistics, but just &lt;span style="color:#009900;"&gt;makes sure that “Auto Create Statistics” is set to “TRUE”&lt;/span&gt; in database properties.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="mso-yfti-irow: 3"&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.9pt; BORDER-TOP: medium none; PADDING-LEFT: 2.9pt; PADDING-BOTTOM: 5.05pt; BORDER-LEFT: windowtext 1pt solid; WIDTH: 23.4pt; PADDING-TOP: 5.05pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="31"&gt;&lt;p class="MsoNormal" style="MARGIN-LEFT: 0.25in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1; tab-stops: list .25in; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: page; mso-element-anchor-horizontal: margin; mso-element-top: 166.95pt; mso-height-rule: exactly"&gt;&lt;span style="font-family:tre;"&gt;&lt;span style="FONT-FAMILY: 'Trebuchet MS','sans-serif'; mso-fareast-font-family: 'Trebuchet MS'font-family:'Trebuchet MS';" &gt;&lt;span style="mso-list: ignore"&gt;4.&lt;span style="FONT: 7pt 'Times New Roman';font-size:100%;" &gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:'Trebuchet MS','sans-serif';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.9pt; BORDER-TOP: medium none; PADDING-LEFT: 2.9pt; PADDING-BOTTOM: 5.05pt; BORDER-LEFT: medium none; WIDTH: 81pt; PADDING-TOP: 5.05pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="108"&gt;&lt;p class="MsoNormal" style="mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: page; mso-element-anchor-horizontal: margin; mso-element-top: 166.95pt; mso-height-rule: exactly"&gt;&lt;span style="font-family:'Trebuchet MS','sans-serif';"&gt;&lt;span style="font-family:tre;"&gt;Out-of-date statistics&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.9pt; BORDER-TOP: medium none; PADDING-LEFT: 2.9pt; PADDING-BOTTOM: 5.05pt; BORDER-LEFT: medium none; WIDTH: 2.75in; PADDING-TOP: 5.05pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="264"&gt;&lt;p class="MsoNormal" style="mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: page; mso-element-anchor-horizontal: margin; mso-element-top: 166.95pt; mso-height-rule: exactly"&gt;&lt;span style="font-family:'Trebuchet MS','sans-serif';"&gt;&lt;span style="font-family:tre;"&gt;This is again very important point, statistics are the key for query optimizer to make an execution plan and get the data out.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: page; mso-element-anchor-horizontal: margin; mso-element-top: 166.95pt; mso-height-rule: exactly"&gt;&lt;span style="font-family:'Trebuchet MS','sans-serif';"&gt;&lt;span style="font-family:tre;"&gt;SQL Server automatically creates useful statistics, but just makes sure that &lt;span style="color:#009900;"&gt;“Auto Update Statistics” is set to “TRUE”&lt;/span&gt; in database properties.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="mso-yfti-irow: 4"&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.9pt; BORDER-TOP: medium none; PADDING-LEFT: 2.9pt; PADDING-BOTTOM: 5.05pt; BORDER-LEFT: windowtext 1pt solid; WIDTH: 23.4pt; PADDING-TOP: 5.05pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="31"&gt;&lt;p class="MsoNormal" style="MARGIN-LEFT: 0.25in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1; tab-stops: list .25in; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: page; mso-element-anchor-horizontal: margin; mso-element-top: 166.95pt; mso-height-rule: exactly"&gt;&lt;span style="font-family:tre;"&gt;&lt;span style="FONT-FAMILY: 'Trebuchet MS','sans-serif'; mso-fareast-font-family: 'Trebuchet MS'font-family:'Trebuchet MS';" &gt;&lt;span style="mso-list: ignore"&gt;5.&lt;span style="FONT: 7pt 'Times New Roman';font-size:100%;" &gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:'Trebuchet MS','sans-serif';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.9pt; BORDER-TOP: medium none; PADDING-LEFT: 2.9pt; PADDING-BOTTOM: 5.05pt; BORDER-LEFT: medium none; WIDTH: 81pt; PADDING-TOP: 5.05pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="108"&gt;&lt;p class="MsoNormal" style="mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: page; mso-element-anchor-horizontal: margin; mso-element-top: 166.95pt; mso-height-rule: exactly"&gt;&lt;span style="font-family:'Trebuchet MS','sans-serif';"&gt;&lt;span style="font-family:tre;"&gt;Lack of useful indexes&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.9pt; BORDER-TOP: medium none; PADDING-LEFT: 2.9pt; PADDING-BOTTOM: 5.05pt; BORDER-LEFT: medium none; WIDTH: 2.75in; PADDING-TOP: 5.05pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="264"&gt;&lt;p class="MsoNormal" style="mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: page; mso-element-anchor-horizontal: margin; mso-element-top: 166.95pt; mso-height-rule: exactly"&gt;&lt;span style="font-family:'Trebuchet MS','sans-serif';"&gt;&lt;span style="font-family:tre;"&gt;Again Indexes are the key to do any data I/O related operation. So just make sure you have all required indexes in place. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: page; mso-element-anchor-horizontal: margin; mso-element-top: 166.95pt; mso-height-rule: exactly"&gt;&lt;span style="font-family:'Trebuchet MS','sans-serif';"&gt;&lt;span style="font-family:tre;"&gt;Just make sure &lt;span style="color:#009900;"&gt;you have created required clustered / non-clustered indexes &lt;/span&gt;based on the business requirement and technical solution implementation.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: page; mso-element-anchor-horizontal: margin; mso-element-top: 166.95pt; mso-height-rule: exactly"&gt;&lt;span style="font-family:'Trebuchet MS','sans-serif';"&gt;&lt;span style="font-family:tre;"&gt;And try to &lt;span style="color:#3333ff;"&gt;create indexes on smallest possible numeric columns&lt;/span&gt; with respect to indexing requirement. I recommend reading BOL to understand the indexes thoroughly.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="mso-yfti-irow: 5"&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.9pt; BORDER-TOP: medium none; PADDING-LEFT: 2.9pt; PADDING-BOTTOM: 5.05pt; BORDER-LEFT: windowtext 1pt solid; WIDTH: 23.4pt; PADDING-TOP: 5.05pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="31"&gt;&lt;p class="MsoNormal" style="MARGIN-LEFT: 0.25in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1; tab-stops: list .25in; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: page; mso-element-anchor-horizontal: margin; mso-element-top: 166.95pt; mso-height-rule: exactly"&gt;&lt;span style="font-family:tre;"&gt;&lt;span style="FONT-FAMILY: 'Trebuchet MS','sans-serif'; mso-fareast-font-family: 'Trebuchet MS'font-family:'Trebuchet MS';" &gt;&lt;span style="mso-list: ignore"&gt;6.&lt;span style="FONT: 7pt 'Times New Roman';font-size:100%;" &gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:'Trebuchet MS','sans-serif';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.9pt; BORDER-TOP: medium none; PADDING-LEFT: 2.9pt; PADDING-BOTTOM: 5.05pt; BORDER-LEFT: medium none; WIDTH: 81pt; PADDING-TOP: 5.05pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="108"&gt;&lt;p class="MsoNormal" style="mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: page; mso-element-anchor-horizontal: margin; mso-element-top: 166.95pt; mso-height-rule: exactly"&gt;&lt;span style="font-family:'Trebuchet MS','sans-serif';"&gt;&lt;span style="font-family:tre;"&gt;Missing Joins&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.9pt; BORDER-TOP: medium none; PADDING-LEFT: 2.9pt; PADDING-BOTTOM: 5.05pt; BORDER-LEFT: medium none; WIDTH: 2.75in; PADDING-TOP: 5.05pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="264"&gt;&lt;p class="MsoNormal" style="mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: page; mso-element-anchor-horizontal: margin; mso-element-top: 166.95pt; mso-height-rule: exactly"&gt;&lt;span style="font-family:'Trebuchet MS','sans-serif';"&gt;&lt;span style="font-family:tre;"&gt;Yeah, that’s again is a good point to check. I have seen developers who simply put statements like “select * from table1, table2, table3”.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: page; mso-element-anchor-horizontal: margin; mso-element-top: 166.95pt; mso-height-rule: exactly"&gt;&lt;span style="font-family:'Trebuchet MS','sans-serif';"&gt;&lt;span style="font-family:tre;"&gt;Never do that, just make sure you have followed the proper join and I &lt;span style="color:#ff6600;"&gt;recommend ANSI joins instead of “=, *=, =*” type joins&lt;/span&gt;. They are easy to read/manage and sort of required for future SQL Server versions.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="mso-yfti-irow: 6"&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.9pt; BORDER-TOP: medium none; PADDING-LEFT: 2.9pt; PADDING-BOTTOM: 5.05pt; BORDER-LEFT: windowtext 1pt solid; WIDTH: 23.4pt; PADDING-TOP: 5.05pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="31"&gt;&lt;p class="MsoNormal" style="MARGIN-LEFT: 0.25in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1; tab-stops: list .25in; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: page; mso-element-anchor-horizontal: margin; mso-element-top: 166.95pt; mso-height-rule: exactly"&gt;&lt;span style="font-family:tre;"&gt;&lt;span style="FONT-FAMILY: 'Trebuchet MS','sans-serif'; mso-fareast-font-family: 'Trebuchet MS'font-family:'Trebuchet MS';" &gt;&lt;span style="mso-list: ignore"&gt;7.&lt;span style="FONT: 7pt 'Times New Roman';font-size:100%;" &gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:'Trebuchet MS','sans-serif';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.9pt; BORDER-TOP: medium none; PADDING-LEFT: 2.9pt; PADDING-BOTTOM: 5.05pt; BORDER-LEFT: medium none; WIDTH: 81pt; PADDING-TOP: 5.05pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="108"&gt;&lt;p class="MsoNormal" style="mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: page; mso-element-anchor-horizontal: margin; mso-element-top: 166.95pt; mso-height-rule: exactly"&gt;&lt;span style="font-family:'Trebuchet MS','sans-serif';"&gt;&lt;span style="font-family:tre;"&gt;Blocking&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.9pt; BORDER-TOP: medium none; PADDING-LEFT: 2.9pt; PADDING-BOTTOM: 5.05pt; BORDER-LEFT: medium none; WIDTH: 2.75in; PADDING-TOP: 5.05pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="264"&gt;&lt;p class="MsoNormal" style="mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: page; mso-element-anchor-horizontal: margin; mso-element-top: 166.95pt; mso-height-rule: exactly"&gt;&lt;span style="font-family:'Trebuchet MS','sans-serif';"&gt;&lt;span style="font-family:tre;"&gt;Transactions’ fighting for resources is nothing new in any RDBMS application but we need to make sure that make use of all possible options to avoid excessive blocking.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="mso-yfti-irow: 7"&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.9pt; BORDER-TOP: medium none; PADDING-LEFT: 2.9pt; PADDING-BOTTOM: 5.05pt; BORDER-LEFT: windowtext 1pt solid; WIDTH: 23.4pt; PADDING-TOP: 5.05pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="31"&gt;&lt;p class="MsoNormal" style="MARGIN-LEFT: 0.25in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1; tab-stops: list .25in; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: page; mso-element-anchor-horizontal: margin; mso-element-top: 166.95pt; mso-height-rule: exactly"&gt;&lt;span style="font-family:tre;"&gt;&lt;span style="FONT-FAMILY: 'Trebuchet MS','sans-serif'; mso-fareast-font-family: 'Trebuchet MS'font-family:'Trebuchet MS';" &gt;&lt;span style="mso-list: ignore"&gt;8.&lt;span style="FONT: 7pt 'Times New Roman';font-size:100%;" &gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:'Trebuchet MS','sans-serif';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.9pt; BORDER-TOP: medium none; PADDING-LEFT: 2.9pt; PADDING-BOTTOM: 5.05pt; BORDER-LEFT: medium none; WIDTH: 81pt; PADDING-TOP: 5.05pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="108"&gt;&lt;p class="MsoNormal" style="mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: page; mso-element-anchor-horizontal: margin; mso-element-top: 166.95pt; mso-height-rule: exactly"&gt;&lt;span style="font-family:'Trebuchet MS','sans-serif';"&gt;&lt;span style="font-family:tre;"&gt;Query / Table Hints&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.9pt; BORDER-TOP: medium none; PADDING-LEFT: 2.9pt; PADDING-BOTTOM: 5.05pt; BORDER-LEFT: medium none; WIDTH: 2.75in; PADDING-TOP: 5.05pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="264"&gt;&lt;p class="MsoNormal" style="mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: page; mso-element-anchor-horizontal: margin; mso-element-top: 166.95pt; mso-height-rule: exactly"&gt;&lt;span style="font-family:'Trebuchet MS','sans-serif';"&gt;&lt;span style="font-family:tre;"&gt;They can be good or bad, based on the scenario. &lt;span style="color:#3333ff;"&gt;But it’s recommended that we should not use them extensively&lt;/span&gt; unless we have excellent understanding of technical implantation and future business requirement and data load trends.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: page; mso-element-anchor-horizontal: margin; mso-element-top: 166.95pt; mso-height-rule: exactly"&gt;&lt;span style="font-family:'Trebuchet MS','sans-serif';"&gt;&lt;span style="font-family:tre;"&gt;&lt;span style="color:#009900;"&gt;SQL Server takes care of this very well, so better don’t use.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="mso-yfti-irow: 8"&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.9pt; BORDER-TOP: medium none; PADDING-LEFT: 2.9pt; PADDING-BOTTOM: 5.05pt; BORDER-LEFT: windowtext 1pt solid; WIDTH: 23.4pt; PADDING-TOP: 5.05pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="31"&gt;&lt;p class="MsoNormal" style="MARGIN-LEFT: 0.25in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1; tab-stops: list .25in; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: page; mso-element-anchor-horizontal: margin; mso-element-top: 166.95pt; mso-height-rule: exactly"&gt;&lt;span style="font-family:tre;"&gt;&lt;span style="FONT-FAMILY: 'Trebuchet MS','sans-serif'; mso-fareast-font-family: 'Trebuchet MS'font-family:'Trebuchet MS';" &gt;&lt;span style="mso-list: ignore"&gt;9.&lt;span style="FONT: 7pt 'Times New Roman';font-size:100%;" &gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:'Trebuchet MS','sans-serif';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.9pt; BORDER-TOP: medium none; PADDING-LEFT: 2.9pt; PADDING-BOTTOM: 5.05pt; BORDER-LEFT: medium none; WIDTH: 81pt; PADDING-TOP: 5.05pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="108"&gt;&lt;p class="MsoNormal" style="mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: page; mso-element-anchor-horizontal: margin; mso-element-top: 166.95pt; mso-height-rule: exactly"&gt;&lt;span style="font-family:'Trebuchet MS','sans-serif';"&gt;&lt;span style="font-family:tre;"&gt;Use best possible data type&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.9pt; BORDER-TOP: medium none; PADDING-LEFT: 2.9pt; PADDING-BOTTOM: 5.05pt; BORDER-LEFT: medium none; WIDTH: 2.75in; PADDING-TOP: 5.05pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="264"&gt;&lt;p class="MsoNormal" style="mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: page; mso-element-anchor-horizontal: margin; mso-element-top: 166.95pt; mso-height-rule: exactly"&gt;&lt;span style="font-family:'Trebuchet MS','sans-serif';"&gt;&lt;span style="font-family:tre;"&gt;We are talking about database systems, so taking care of what we are trying to store is very important in designing the whole system.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: page; mso-element-anchor-horizontal: margin; mso-element-top: 166.95pt; mso-height-rule: exactly"&gt;&lt;span style="font-family:'Trebuchet MS','sans-serif';"&gt;&lt;span style="font-family:tre;"&gt;We should &lt;span style="color:#009900;"&gt;always choose the best possible smallest data type&lt;/span&gt; based on the scenario. Using INT for storing something like number 2000 is not a good option.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="mso-yfti-irow: 9"&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.9pt; BORDER-TOP: medium none; PADDING-LEFT: 2.9pt; PADDING-BOTTOM: 5.05pt; BORDER-LEFT: windowtext 1pt solid; WIDTH: 23.4pt; PADDING-TOP: 5.05pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="31"&gt;&lt;p class="MsoNormal" style="MARGIN-LEFT: 0.25in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1; tab-stops: list .25in; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: page; mso-element-anchor-horizontal: margin; mso-element-top: 166.95pt; mso-height-rule: exactly"&gt;&lt;span style="font-family:tre;"&gt;&lt;span style="FONT-FAMILY: 'Trebuchet MS','sans-serif'; mso-fareast-font-family: 'Trebuchet MS'font-family:'Trebuchet MS';" &gt;&lt;span style="mso-list: ignore"&gt;10.&lt;span style="FONT: 7pt 'Times New Roman';font-size:100%;" &gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:'Trebuchet MS','sans-serif';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.9pt; BORDER-TOP: medium none; PADDING-LEFT: 2.9pt; PADDING-BOTTOM: 5.05pt; BORDER-LEFT: medium none; WIDTH: 81pt; PADDING-TOP: 5.05pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="108"&gt;&lt;p class="MsoNormal" style="mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: page; mso-element-anchor-horizontal: margin; mso-element-top: 166.95pt; mso-height-rule: exactly"&gt;&lt;span style="font-family:'Trebuchet MS','sans-serif';"&gt;&lt;span style="font-family:tre;"&gt;Index Fragmentation&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.9pt; BORDER-TOP: medium none; PADDING-LEFT: 2.9pt; PADDING-BOTTOM: 5.05pt; BORDER-LEFT: medium none; WIDTH: 2.75in; PADDING-TOP: 5.05pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="264"&gt;&lt;p class="MsoNormal" style="mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: page; mso-element-anchor-horizontal: margin; mso-element-top: 166.95pt; mso-height-rule: exactly"&gt;&lt;span style="font-family:'Trebuchet MS','sans-serif';"&gt;&lt;span style="font-family:tre;"&gt;Hmm, not only having indexes solves the whole problem, we need to make sure that indexes are not fragmentated as well.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: page; mso-element-anchor-horizontal: margin; mso-element-top: 166.95pt; mso-height-rule: exactly"&gt;&lt;span style="font-family:'Trebuchet MS','sans-serif';"&gt;&lt;span style="font-family:tre;"&gt;&lt;span style="color:#ff6600;"&gt;DBCC SHOWCONTIG and some of the latest DMVs are very useful in checking the fragmentation&lt;/span&gt;. And then re-building or defragmenting the index will solve the problem easily.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="mso-yfti-irow: 10"&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.9pt; BORDER-TOP: medium none; PADDING-LEFT: 2.9pt; PADDING-BOTTOM: 5.05pt; BORDER-LEFT: windowtext 1pt solid; WIDTH: 23.4pt; PADDING-TOP: 5.05pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="31"&gt;&lt;p class="MsoNormal" style="MARGIN-LEFT: 0.25in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1; tab-stops: list .25in; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: page; mso-element-anchor-horizontal: margin; mso-element-top: 166.95pt; mso-height-rule: exactly"&gt;&lt;span style="font-family:tre;"&gt;&lt;span style="FONT-FAMILY: 'Trebuchet MS','sans-serif'; mso-fareast-font-family: 'Trebuchet MS'font-family:'Trebuchet MS';" &gt;&lt;span style="mso-list: ignore"&gt;11.&lt;span style="FONT: 7pt 'Times New Roman';font-size:100%;" &gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:'Trebuchet MS','sans-serif';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.9pt; BORDER-TOP: medium none; PADDING-LEFT: 2.9pt; PADDING-BOTTOM: 5.05pt; BORDER-LEFT: medium none; WIDTH: 81pt; PADDING-TOP: 5.05pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="108"&gt;&lt;p class="MsoNormal" style="mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: page; mso-element-anchor-horizontal: margin; mso-element-top: 166.95pt; mso-height-rule: exactly"&gt;&lt;span style="font-family:'Trebuchet MS','sans-serif';"&gt;&lt;span style="font-family:tre;"&gt;Cursors&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.9pt; BORDER-TOP: medium none; PADDING-LEFT: 2.9pt; PADDING-BOTTOM: 5.05pt; BORDER-LEFT: medium none; WIDTH: 2.75in; PADDING-TOP: 5.05pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="264"&gt;&lt;p class="MsoNormal" style="mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: page; mso-element-anchor-horizontal: margin; mso-element-top: 166.95pt; mso-height-rule: exactly"&gt;&lt;span style="font-family:'Trebuchet MS','sans-serif';"&gt;&lt;span style="font-family:tre;"&gt;We should use cursors only when there is no option left and that too using &lt;span style="color:#009900;"&gt;READ ONLY, FAST FORWARD is recommended&lt;/span&gt;. And please make sure that we should only ask for smallest result-set possible using WHERE clause and with specific columns name instead of using star (*) in cursor definition.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: page; mso-element-anchor-horizontal: margin; mso-element-top: 166.95pt; mso-height-rule: exactly"&gt;&lt;span style="font-family:'Trebuchet MS','sans-serif';"&gt;&lt;span style="font-family:tre;"&gt;Otherwise cursors put extra overhead on SQL Server and make extensive use of TempDB.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="mso-yfti-irow: 11"&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.9pt; BORDER-TOP: medium none; PADDING-LEFT: 2.9pt; PADDING-BOTTOM: 5.05pt; BORDER-LEFT: windowtext 1pt solid; WIDTH: 23.4pt; PADDING-TOP: 5.05pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="31"&gt;&lt;p class="MsoNormal" style="MARGIN-LEFT: 0.25in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1; tab-stops: list .25in; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: page; mso-element-anchor-horizontal: margin; mso-element-top: 166.95pt; mso-height-rule: exactly"&gt;&lt;span style="font-family:tre;"&gt;&lt;span style="FONT-FAMILY: 'Trebuchet MS','sans-serif'; mso-fareast-font-family: 'Trebuchet MS'font-family:'Trebuchet MS';" &gt;&lt;span style="mso-list: ignore"&gt;12.&lt;span style="FONT: 7pt 'Times New Roman';font-size:100%;" &gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:'Trebuchet MS','sans-serif';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.9pt; BORDER-TOP: medium none; PADDING-LEFT: 2.9pt; PADDING-BOTTOM: 5.05pt; BORDER-LEFT: medium none; WIDTH: 81pt; PADDING-TOP: 5.05pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="108"&gt;&lt;p class="MsoNormal" style="mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: page; mso-element-anchor-horizontal: margin; mso-element-top: 166.95pt; mso-height-rule: exactly"&gt;&lt;span style="font-family:'Trebuchet MS','sans-serif';"&gt;&lt;span style="font-family:tre;"&gt;Extensive temp table (tempdb) usage&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.9pt; BORDER-TOP: medium none; PADDING-LEFT: 2.9pt; PADDING-BOTTOM: 5.05pt; BORDER-LEFT: medium none; WIDTH: 2.75in; PADDING-TOP: 5.05pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="264"&gt;&lt;p class="MsoNormal" style="mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: page; mso-element-anchor-horizontal: margin; mso-element-top: 166.95pt; mso-height-rule: exactly"&gt;&lt;span style="font-family:'Trebuchet MS','sans-serif';"&gt;&lt;span style="font-family:tre;"&gt;Big bulky queries with lots of ordering, grouping clauses which result in huge result set can make use of TempDB extensively.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: page; mso-element-anchor-horizontal: margin; mso-element-top: 166.95pt; mso-height-rule: exactly"&gt;&lt;span style="font-family:'Trebuchet MS','sans-serif';"&gt;&lt;span style="font-family:tre;"&gt;So try to &lt;span style="color:#3333ff;"&gt;use simple, smart queries which generate small result set&lt;/span&gt; and if this is not possible then make sure TempDb is on fastest possible disk system with setting a optimum size for the TempDB based on the technical solution.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: page; mso-element-anchor-horizontal: margin; mso-element-top: 166.95pt; mso-height-rule: exactly"&gt;&lt;span style="font-family:'Trebuchet MS','sans-serif';"&gt;&lt;span style="font-family:tre;"&gt;&lt;span style="color:#ff6600;"&gt;Using TABLE data type is another good option for storing temporary result set. CTE (Common Table Expression), new to Microsoft SQL Server 2005 can also be used to achieve the same to some extent&lt;/span&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="mso-yfti-irow: 12"&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.9pt; BORDER-TOP: medium none; PADDING-LEFT: 2.9pt; PADDING-BOTTOM: 5.05pt; BORDER-LEFT: windowtext 1pt solid; WIDTH: 23.4pt; PADDING-TOP: 5.05pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="31"&gt;&lt;p class="MsoNormal" style="MARGIN-LEFT: 0.25in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1; tab-stops: list .25in; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: page; mso-element-anchor-horizontal: margin; mso-element-top: 166.95pt; mso-height-rule: exactly"&gt;&lt;span style="font-family:tre;"&gt;&lt;span style="FONT-FAMILY: 'Trebuchet MS','sans-serif'; mso-fareast-font-family: 'Trebuchet MS'font-family:'Trebuchet MS';" &gt;&lt;span style="mso-list: ignore"&gt;13.&lt;span style="FONT: 7pt 'Times New Roman';font-size:100%;" &gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:'Trebuchet MS','sans-serif';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.9pt; BORDER-TOP: medium none; PADDING-LEFT: 2.9pt; PADDING-BOTTOM: 5.05pt; BORDER-LEFT: medium none; WIDTH: 81pt; PADDING-TOP: 5.05pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="108"&gt;&lt;p class="MsoNormal" style="mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: page; mso-element-anchor-horizontal: margin; mso-element-top: 166.95pt; mso-height-rule: exactly"&gt;&lt;span style="font-family:'Trebuchet MS','sans-serif';"&gt;&lt;span style="font-family:tre;"&gt;Triggers&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.9pt; BORDER-TOP: medium none; PADDING-LEFT: 2.9pt; PADDING-BOTTOM: 5.05pt; BORDER-LEFT: medium none; WIDTH: 2.75in; PADDING-TOP: 5.05pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="264"&gt;&lt;p class="MsoNormal" style="mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: page; mso-element-anchor-horizontal: margin; mso-element-top: 166.95pt; mso-height-rule: exactly"&gt;&lt;span style="font-family:'Trebuchet MS','sans-serif';"&gt;&lt;span style="font-family:tre;"&gt;Try to &lt;span style="color:#ff6600;"&gt;use Constraints instead of triggers&lt;/span&gt;, like for referential integrity task using triggers is not a good option and that can be easily achievable by using constraints.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: page; mso-element-anchor-horizontal: margin; mso-element-top: 166.95pt; mso-height-rule: exactly"&gt;&lt;span style="font-family:'Trebuchet MS','sans-serif';"&gt;&lt;span style="font-family:tre;"&gt;Triggers are more resource expensive and they work as integral part of transaction, which will makes transaction lengthy as well.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="mso-yfti-irow: 13"&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.9pt; BORDER-TOP: medium none; PADDING-LEFT: 2.9pt; PADDING-BOTTOM: 5.05pt; BORDER-LEFT: windowtext 1pt solid; WIDTH: 23.4pt; PADDING-TOP: 5.05pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="31"&gt;&lt;p class="MsoNormal" style="MARGIN-LEFT: 0.25in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1; tab-stops: list .25in; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: page; mso-element-anchor-horizontal: margin; mso-element-top: 166.95pt; mso-height-rule: exactly"&gt;&lt;span style="font-family:tre;"&gt;&lt;span style="FONT-FAMILY: 'Trebuchet MS','sans-serif'; mso-fareast-font-family: 'Trebuchet MS'font-family:'Trebuchet MS';" &gt;&lt;span style="mso-list: ignore"&gt;14.&lt;span style="FONT: 7pt 'Times New Roman';font-size:100%;" &gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:'Trebuchet MS','sans-serif';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.9pt; BORDER-TOP: medium none; PADDING-LEFT: 2.9pt; PADDING-BOTTOM: 5.05pt; BORDER-LEFT: medium none; WIDTH: 81pt; PADDING-TOP: 5.05pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="108"&gt;&lt;p class="MsoNormal" style="mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: page; mso-element-anchor-horizontal: margin; mso-element-top: 166.95pt; mso-height-rule: exactly"&gt;&lt;span style="font-family:'Trebuchet MS','sans-serif';"&gt;&lt;span style="font-family:tre;"&gt;Dynamic SQL Statements&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.9pt; BORDER-TOP: medium none; PADDING-LEFT: 2.9pt; PADDING-BOTTOM: 5.05pt; BORDER-LEFT: medium none; WIDTH: 2.75in; PADDING-TOP: 5.05pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="264"&gt;&lt;p class="MsoNormal" style="mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: page; mso-element-anchor-horizontal: margin; mso-element-top: 166.95pt; mso-height-rule: exactly"&gt;&lt;span style="font-family:'Trebuchet MS','sans-serif';"&gt;&lt;span style="font-family:tre;"&gt;Using Views, stored procedures are always beneficial over using dynamic SQL. &lt;span style="color:#ff0000;"&gt;And using dynamic SQL is an open invitation to SQL injection attacks.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: page; mso-element-anchor-horizontal: margin; mso-element-top: 166.95pt; mso-height-rule: exactly"&gt;&lt;span style="font-family:'Trebuchet MS','sans-serif';"&gt;&lt;span style="font-family:tre;"&gt;And when there is no option left then we should &lt;span style="color:#ff6600;"&gt;make use of sp_ExecuteSQL instead of using EXEC command.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="mso-yfti-irow: 14"&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.9pt; BORDER-TOP: medium none; PADDING-LEFT: 2.9pt; PADDING-BOTTOM: 5.05pt; BORDER-LEFT: windowtext 1pt solid; WIDTH: 23.4pt; PADDING-TOP: 5.05pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="31"&gt;&lt;p class="MsoNormal" style="MARGIN-LEFT: 0.25in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1; tab-stops: list .25in; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: page; mso-element-anchor-horizontal: margin; mso-element-top: 166.95pt; mso-height-rule: exactly"&gt;&lt;span style="font-family:tre;"&gt;&lt;span style="FONT-FAMILY: 'Trebuchet MS','sans-serif'; mso-fareast-font-family: 'Trebuchet MS'font-family:'Trebuchet MS';" &gt;&lt;span style="mso-list: ignore"&gt;15.&lt;span style="FONT: 7pt 'Times New Roman';font-size:100%;" &gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:'Trebuchet MS','sans-serif';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.9pt; BORDER-TOP: medium none; PADDING-LEFT: 2.9pt; PADDING-BOTTOM: 5.05pt; BORDER-LEFT: medium none; WIDTH: 81pt; PADDING-TOP: 5.05pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="108"&gt;&lt;p class="MsoNormal" style="mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: page; mso-element-anchor-horizontal: margin; mso-element-top: 166.95pt; mso-height-rule: exactly"&gt;&lt;span style="font-family:'Trebuchet MS','sans-serif';"&gt;&lt;span style="font-family:tre;"&gt;Lack of Views / Stored Procedures&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.9pt; BORDER-TOP: medium none; PADDING-LEFT: 2.9pt; PADDING-BOTTOM: 5.05pt; BORDER-LEFT: medium none; WIDTH: 2.75in; PADDING-TOP: 5.05pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="264"&gt;&lt;p class="MsoNormal" style="mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: page; mso-element-anchor-horizontal: margin; mso-element-top: 166.95pt; mso-height-rule: exactly"&gt;&lt;span style="font-family:'Trebuchet MS','sans-serif';"&gt;&lt;span style="font-family:tre;"&gt;&lt;span style="color:#ff0000;"&gt;Accessing direct table is not a good practice &lt;/span&gt;in any engagement, and a developer should always access data through views and stored procedures.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: page; mso-element-anchor-horizontal: margin; mso-element-top: 166.95pt; mso-height-rule: exactly"&gt;&lt;span style="font-family:'Trebuchet MS','sans-serif';"&gt;&lt;span style="font-family:tre;"&gt;&lt;span style="color:#3333ff;"&gt;SP also provides additional benefits like modular programming, security later, saves network traffic, and faster execution. &lt;/span&gt;SQL Server 2005 also introduces a statement level re-compilation, which is again very useful for bulky procedures. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="mso-yfti-irow: 15"&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.9pt; BORDER-TOP: medium none; PADDING-LEFT: 2.9pt; PADDING-BOTTOM: 5.05pt; BORDER-LEFT: windowtext 1pt solid; WIDTH: 23.4pt; PADDING-TOP: 5.05pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="31"&gt;&lt;p class="MsoNormal" style="MARGIN-LEFT: 0.25in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1; tab-stops: list .25in; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: page; mso-element-anchor-horizontal: margin; mso-element-top: 166.95pt; mso-height-rule: exactly"&gt;&lt;span style="font-family:tre;"&gt;&lt;span style="FONT-FAMILY: 'Trebuchet MS','sans-serif'; mso-fareast-font-family: 'Trebuchet MS'font-family:'Trebuchet MS';" &gt;&lt;span style="mso-list: ignore"&gt;16.&lt;span style="FONT: 7pt 'Times New Roman';font-size:100%;" &gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:'Trebuchet MS','sans-serif';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.9pt; BORDER-TOP: medium none; PADDING-LEFT: 2.9pt; PADDING-BOTTOM: 5.05pt; BORDER-LEFT: medium none; WIDTH: 81pt; PADDING-TOP: 5.05pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="108"&gt;&lt;p class="MsoNormal" style="mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: page; mso-element-anchor-horizontal: margin; mso-element-top: 166.95pt; mso-height-rule: exactly"&gt;&lt;span style="font-family:'Trebuchet MS','sans-serif';"&gt;&lt;span style="font-family:tre;"&gt;Use Distinct clause&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.9pt; BORDER-TOP: medium none; PADDING-LEFT: 2.9pt; PADDING-BOTTOM: 5.05pt; BORDER-LEFT: medium none; WIDTH: 2.75in; PADDING-TOP: 5.05pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="264"&gt;&lt;p class="MsoNormal" style="mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: page; mso-element-anchor-horizontal: margin; mso-element-top: 166.95pt; mso-height-rule: exactly"&gt;&lt;span style="font-family:'Trebuchet MS','sans-serif';"&gt;&lt;span style="font-family:tre;"&gt;&lt;span style="color:#3333ff;"&gt;Deleting duplicate data itself is a resource intensive operation&lt;/span&gt;, so making use of DISTINCT clause should be minimal in all queries.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="mso-yfti-irow: 16"&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.9pt; BORDER-TOP: medium none; PADDING-LEFT: 2.9pt; PADDING-BOTTOM: 5.05pt; BORDER-LEFT: windowtext 1pt solid; WIDTH: 23.4pt; PADDING-TOP: 5.05pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="31"&gt;&lt;p class="MsoNormal" style="MARGIN-LEFT: 0.25in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1; tab-stops: list .25in; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: page; mso-element-anchor-horizontal: margin; mso-element-top: 166.95pt; mso-height-rule: exactly"&gt;&lt;span style="font-family:tre;"&gt;&lt;span style="FONT-FAMILY: 'Trebuchet MS','sans-serif'; mso-fareast-font-family: 'Trebuchet MS'font-family:'Trebuchet MS';" &gt;&lt;span style="mso-list: ignore"&gt;17.&lt;span style="FONT: 7pt 'Times New Roman';font-size:100%;" &gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:'Trebuchet MS','sans-serif';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.9pt; BORDER-TOP: medium none; PADDING-LEFT: 2.9pt; PADDING-BOTTOM: 5.05pt; BORDER-LEFT: medium none; WIDTH: 81pt; PADDING-TOP: 5.05pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="108"&gt;&lt;p class="MsoNormal" style="mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: page; mso-element-anchor-horizontal: margin; mso-element-top: 166.95pt; mso-height-rule: exactly"&gt;&lt;span style="font-family:'Trebuchet MS','sans-serif';"&gt;&lt;span style="font-family:tre;"&gt;Missing SET NOCOUNT ON statement&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.9pt; BORDER-TOP: medium none; PADDING-LEFT: 2.9pt; PADDING-BOTTOM: 5.05pt; BORDER-LEFT: medium none; WIDTH: 2.75in; PADDING-TOP: 5.05pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="264"&gt;&lt;p class="MsoNormal" style="mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: page; mso-element-anchor-horizontal: margin; mso-element-top: 166.95pt; mso-height-rule: exactly"&gt;&lt;span style="font-family:'Trebuchet MS','sans-serif';"&gt;&lt;span style="font-family:tre;"&gt;Setting this option will &lt;span style="color:#ff0000;"&gt;stop sending the rows affected message to the calling client&lt;/span&gt;, which itself is a network intensive operation and moreover client applications doesn’t make use of those messages.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="mso-yfti-irow: 17"&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.9pt; BORDER-TOP: medium none; PADDING-LEFT: 2.9pt; PADDING-BOTTOM: 5.05pt; BORDER-LEFT: windowtext 1pt solid; WIDTH: 23.4pt; PADDING-TOP: 5.05pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="31"&gt;&lt;p class="MsoNormal" style="MARGIN-LEFT: 0.25in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1; tab-stops: list .25in; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: page; mso-element-anchor-horizontal: margin; mso-element-top: 166.95pt; mso-height-rule: exactly"&gt;&lt;span style="font-family:tre;"&gt;&lt;span style="FONT-FAMILY: 'Trebuchet MS','sans-serif'; mso-fareast-font-family: 'Trebuchet MS'font-family:'Trebuchet MS';" &gt;&lt;span style="mso-list: ignore"&gt;18.&lt;span style="FONT: 7pt 'Times New Roman';font-size:100%;" &gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:'Trebuchet MS','sans-serif';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.9pt; BORDER-TOP: medium none; PADDING-LEFT: 2.9pt; PADDING-BOTTOM: 5.05pt; BORDER-LEFT: medium none; WIDTH: 81pt; PADDING-TOP: 5.05pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="108"&gt;&lt;p class="MsoNormal" style="mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: page; mso-element-anchor-horizontal: margin; mso-element-top: 166.95pt; mso-height-rule: exactly"&gt;&lt;span style="font-family:'Trebuchet MS','sans-serif';"&gt;&lt;span style="font-family:tre;"&gt;Using UNION clause&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.9pt; BORDER-TOP: medium none; PADDING-LEFT: 2.9pt; PADDING-BOTTOM: 5.05pt; BORDER-LEFT: medium none; WIDTH: 2.75in; PADDING-TOP: 5.05pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="264"&gt;&lt;p class="MsoNormal" style="mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: page; mso-element-anchor-horizontal: margin; mso-element-top: 166.95pt; mso-height-rule: exactly"&gt;&lt;span style="font-family:'Trebuchet MS','sans-serif';"&gt;&lt;span style="font-family:tre;"&gt;Again using UNION will delete the duplicate rows in the result set, which is a resource intensive operation, so &lt;span style="color:#009900;"&gt;using UNION ALL is preferred way&lt;/span&gt; to doing the same thing.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="mso-yfti-irow: 18"&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.9pt; BORDER-TOP: medium none; PADDING-LEFT: 2.9pt; PADDING-BOTTOM: 5.05pt; BORDER-LEFT: windowtext 1pt solid; WIDTH: 23.4pt; PADDING-TOP: 5.05pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="31"&gt;&lt;p class="MsoNormal" style="MARGIN-LEFT: 0.25in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1; tab-stops: list .25in; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: page; mso-element-anchor-horizontal: margin; mso-element-top: 166.95pt; mso-height-rule: exactly"&gt;&lt;span style="font-family:tre;"&gt;&lt;span style="FONT-FAMILY: 'Trebuchet MS','sans-serif'; mso-fareast-font-family: 'Trebuchet MS'font-family:'Trebuchet MS';" &gt;&lt;span style="mso-list: ignore"&gt;19.&lt;span style="FONT: 7pt 'Times New Roman';font-size:100%;" &gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:'Trebuchet MS','sans-serif';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.9pt; BORDER-TOP: medium none; PADDING-LEFT: 2.9pt; PADDING-BOTTOM: 5.05pt; BORDER-LEFT: medium none; WIDTH: 81pt; PADDING-TOP: 5.05pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="108"&gt;&lt;p class="MsoNormal" style="mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: page; mso-element-anchor-horizontal: margin; mso-element-top: 166.95pt; mso-height-rule: exactly"&gt;&lt;span style="font-family:'Trebuchet MS','sans-serif';"&gt;&lt;span style="font-family:tre;"&gt;Multiple Network trips&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.9pt; BORDER-TOP: medium none; PADDING-LEFT: 2.9pt; PADDING-BOTTOM: 5.05pt; BORDER-LEFT: medium none; WIDTH: 2.75in; PADDING-TOP: 5.05pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="264"&gt;&lt;p class="MsoNormal" style="mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: page; mso-element-anchor-horizontal: margin; mso-element-top: 166.95pt; mso-height-rule: exactly"&gt;&lt;span style="font-family:'Trebuchet MS','sans-serif';"&gt;&lt;span style="font-family:tre;"&gt;&lt;span style="color:#009900;"&gt;Making use of stored procedures, views and small result set can save lots of network traffic.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: page; mso-element-anchor-horizontal: margin; mso-element-top: 166.95pt; mso-height-rule: exactly"&gt;&lt;span style="font-family:'Trebuchet MS','sans-serif';"&gt;&lt;span style="font-family:tre;"&gt;Instead of sending a lengthy query to SQL server we should send procedure name with parameters to SQL Server and then get the smallest possible result set by using all possible options I explained here.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="mso-yfti-irow: 19"&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.9pt; BORDER-TOP: medium none; PADDING-LEFT: 2.9pt; PADDING-BOTTOM: 5.05pt; BORDER-LEFT: windowtext 1pt solid; WIDTH: 23.4pt; PADDING-TOP: 5.05pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="31"&gt;&lt;p class="MsoNormal" style="MARGIN-LEFT: 0.25in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1; tab-stops: list .25in; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: page; mso-element-anchor-horizontal: margin; mso-element-top: 166.95pt; mso-height-rule: exactly"&gt;&lt;span style="font-family:tre;"&gt;&lt;span style="FONT-FAMILY: 'Trebuchet MS','sans-serif'; mso-fareast-font-family: 'Trebuchet MS'font-family:'Trebuchet MS';" &gt;&lt;span style="mso-list: ignore"&gt;20.&lt;span style="FONT: 7pt 'Times New Roman';font-size:100%;" &gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:'Trebuchet MS','sans-serif';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.9pt; BORDER-TOP: medium none; PADDING-LEFT: 2.9pt; PADDING-BOTTOM: 5.05pt; BORDER-LEFT: medium none; WIDTH: 81pt; PADDING-TOP: 5.05pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="108"&gt;&lt;p class="MsoNormal" style="mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: page; mso-element-anchor-horizontal: margin; mso-element-top: 166.95pt; mso-height-rule: exactly"&gt;&lt;span style="font-family:'Trebuchet MS','sans-serif';"&gt;&lt;span style="font-family:tre;"&gt;Lack of useful data striping&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.9pt; BORDER-TOP: medium none; PADDING-LEFT: 2.9pt; PADDING-BOTTOM: 5.05pt; BORDER-LEFT: medium none; WIDTH: 2.75in; PADDING-TOP: 5.05pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="264"&gt;&lt;p class="MsoNormal" style="mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: page; mso-element-anchor-horizontal: margin; mso-element-top: 166.95pt; mso-height-rule: exactly"&gt;&lt;span style="font-family:'Trebuchet MS','sans-serif';"&gt;&lt;span style="font-family:tre;"&gt;Data partition is the very useful option to reduce the size of the table. We can do the same using &lt;span style="color:#3333ff;"&gt;horizontal or vertical partition&lt;/span&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: page; mso-element-anchor-horizontal: margin; mso-element-top: 166.95pt; mso-height-rule: exactly"&gt;&lt;span style="font-family:'Trebuchet MS','sans-serif';"&gt;&lt;span style="font-family:tre;"&gt;This way we can save a lot of IO overhead and other related resources. There are various options available in SQL Server 2005 to do the same stuff and developers can also make their custom solutions based on business requirement.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: page; mso-element-anchor-horizontal: margin; mso-element-top: 166.95pt; mso-height-rule: exactly"&gt;&lt;span style="font-family:'Trebuchet MS','sans-serif';"&gt;&lt;span style="font-family:tre;"&gt;&lt;span style="color:#009900;"&gt;Remember, small tables are always faster than bulky ones.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="mso-yfti-irow: 20"&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.9pt; BORDER-TOP: medium none; PADDING-LEFT: 2.9pt; PADDING-BOTTOM: 5.05pt; BORDER-LEFT: windowtext 1pt solid; WIDTH: 23.4pt; PADDING-TOP: 5.05pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="31"&gt;&lt;p class="MsoNormal" style="MARGIN-LEFT: 0.25in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1; tab-stops: list .25in; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: page; mso-element-anchor-horizontal: margin; mso-element-top: 166.95pt; mso-height-rule: exactly"&gt;&lt;span style="font-family:tre;"&gt;&lt;span style="FONT-FAMILY: 'Trebuchet MS','sans-serif'; mso-fareast-font-family: 'Trebuchet MS'font-family:'Trebuchet MS';" &gt;&lt;span style="mso-list: ignore"&gt;21.&lt;span style="FONT: 7pt 'Times New Roman';font-size:100%;" &gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:'Trebuchet MS','sans-serif';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.9pt; BORDER-TOP: medium none; PADDING-LEFT: 2.9pt; PADDING-BOTTOM: 5.05pt; BORDER-LEFT: medium none; WIDTH: 81pt; PADDING-TOP: 5.05pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="108"&gt;&lt;p class="MsoNormal" style="mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: page; mso-element-anchor-horizontal: margin; mso-element-top: 166.95pt; mso-height-rule: exactly"&gt;&lt;span style="font-family:'Trebuchet MS','sans-serif';"&gt;&lt;span style="font-family:tre;"&gt;Front-end Application issues like looping statements&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.9pt; BORDER-TOP: medium none; PADDING-LEFT: 2.9pt; PADDING-BOTTOM: 5.05pt; BORDER-LEFT: medium none; WIDTH: 2.75in; PADDING-TOP: 5.05pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="264"&gt;&lt;p class="MsoNormal" style="mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: page; mso-element-anchor-horizontal: margin; mso-element-top: 166.95pt; mso-height-rule: exactly"&gt;&lt;span style="font-family:'Trebuchet MS','sans-serif';"&gt;&lt;span style="font-family:tre;"&gt;Sometimes things are going well at SQL server end but because of some problem at front-end application we assume that SQL server is not doing his job.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: page; mso-element-anchor-horizontal: margin; mso-element-top: 166.95pt; mso-height-rule: exactly"&gt;&lt;span style="font-family:'Trebuchet MS','sans-serif';"&gt;&lt;span style="font-family:tre;"&gt;So it’s &lt;span style="color:#3333ff;"&gt;always better to test the query at SQL Server end and then checking network resources before blaming poor SQL Server.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="mso-yfti-irow: 21"&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.9pt; BORDER-TOP: medium none; PADDING-LEFT: 2.9pt; PADDING-BOTTOM: 5.05pt; BORDER-LEFT: windowtext 1pt solid; WIDTH: 23.4pt; PADDING-TOP: 5.05pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="31"&gt;&lt;p class="MsoNormal" style="MARGIN-LEFT: 0.25in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1; tab-stops: list .25in; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: page; mso-element-anchor-horizontal: margin; mso-element-top: 166.95pt; mso-height-rule: exactly"&gt;&lt;span style="font-family:tre;"&gt;&lt;span style="FONT-FAMILY: 'Trebuchet MS','sans-serif'; mso-fareast-font-family: 'Trebuchet MS'font-family:'Trebuchet MS';" &gt;&lt;span style="mso-list: ignore"&gt;22.&lt;span style="FONT: 7pt 'Times New Roman';font-size:100%;" &gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:'Trebuchet MS','sans-serif';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.9pt; BORDER-TOP: medium none; PADDING-LEFT: 2.9pt; PADDING-BOTTOM: 5.05pt; BORDER-LEFT: medium none; WIDTH: 81pt; PADDING-TOP: 5.05pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="108"&gt;&lt;p class="MsoNormal" style="mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: page; mso-element-anchor-horizontal: margin; mso-element-top: 166.95pt; mso-height-rule: exactly"&gt;&lt;span style="font-family:'Trebuchet MS','sans-serif';"&gt;&lt;span style="font-family:tre;"&gt;Third party applications like anti-virus or some other services like IIS&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.9pt; BORDER-TOP: medium none; PADDING-LEFT: 2.9pt; PADDING-BOTTOM: 5.05pt; BORDER-LEFT: medium none; WIDTH: 2.75in; PADDING-TOP: 5.05pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="264"&gt;&lt;p class="MsoNormal" style="mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: page; mso-element-anchor-horizontal: margin; mso-element-top: 166.95pt; mso-height-rule: exactly"&gt;&lt;span style="font-family:'Trebuchet MS','sans-serif';"&gt;&lt;span style="font-family:tre;"&gt;Sometimes resource overhead because of&lt;span style="color:#ff0000;"&gt; other application running on same SQL Server is the main cause of poor performance&lt;/span&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: page; mso-element-anchor-horizontal: margin; mso-element-top: 166.95pt; mso-height-rule: exactly"&gt;&lt;span style="font-family:'Trebuchet MS','sans-serif';"&gt;&lt;span style="font-family:tre;"&gt;So we should always check the memory and CPU utilization of other applications on the server.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="mso-yfti-irow: 22"&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.9pt; BORDER-TOP: medium none; PADDING-LEFT: 2.9pt; PADDING-BOTTOM: 5.05pt; BORDER-LEFT: windowtext 1pt solid; WIDTH: 23.4pt; PADDING-TOP: 5.05pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="31"&gt;&lt;p class="MsoNormal" style="MARGIN-LEFT: 0.25in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1; tab-stops: list .25in; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: page; mso-element-anchor-horizontal: margin; mso-element-top: 166.95pt; mso-height-rule: exactly"&gt;&lt;span style="font-family:tre;"&gt;&lt;span style="FONT-FAMILY: 'Trebuchet MS','sans-serif'; mso-fareast-font-family: 'Trebuchet MS'font-family:'Trebuchet MS';" &gt;&lt;span style="mso-list: ignore"&gt;23.&lt;span style="FONT: 7pt 'Times New Roman';font-size:100%;" &gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:'Trebuchet MS','sans-serif';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.9pt; BORDER-TOP: medium none; PADDING-LEFT: 2.9pt; PADDING-BOTTOM: 5.05pt; BORDER-LEFT: medium none; WIDTH: 81pt; PADDING-TOP: 5.05pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="108"&gt;&lt;p class="MsoNormal" style="mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: page; mso-element-anchor-horizontal: margin; mso-element-top: 166.95pt; mso-height-rule: exactly"&gt;&lt;span style="font-family:'Trebuchet MS','sans-serif';"&gt;&lt;span style="font-family:tre;"&gt;Slow network communication&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.9pt; BORDER-TOP: medium none; PADDING-LEFT: 2.9pt; PADDING-BOTTOM: 5.05pt; BORDER-LEFT: medium none; WIDTH: 2.75in; PADDING-TOP: 5.05pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="264"&gt;&lt;p class="MsoNormal" style="mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: page; mso-element-anchor-horizontal: margin; mso-element-top: 166.95pt; mso-height-rule: exactly"&gt;&lt;span style="font-family:'Trebuchet MS','sans-serif';"&gt;&lt;span style="font-family:tre;"&gt;&lt;span style="color:#3333ff;"&gt;Network bandwidth plays a very vital role&lt;/span&gt; in whole solution and this should be tested thoroughly in the solution. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="mso-yfti-irow: 23"&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.9pt; BORDER-TOP: medium none; PADDING-LEFT: 2.9pt; PADDING-BOTTOM: 5.05pt; BORDER-LEFT: windowtext 1pt solid; WIDTH: 23.4pt; PADDING-TOP: 5.05pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="31"&gt;&lt;p class="MsoNormal" style="MARGIN-LEFT: 0.25in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1; tab-stops: list .25in; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: page; mso-element-anchor-horizontal: margin; mso-element-top: 166.95pt; mso-height-rule: exactly"&gt;&lt;span style="font-family:tre;"&gt;&lt;span style="FONT-FAMILY: 'Trebuchet MS','sans-serif'; mso-fareast-font-family: 'Trebuchet MS'font-family:'Trebuchet MS';" &gt;&lt;span style="mso-list: ignore"&gt;24.&lt;span style="FONT: 7pt 'Times New Roman';font-size:100%;" &gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:'Trebuchet MS','sans-serif';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.9pt; BORDER-TOP: medium none; PADDING-LEFT: 2.9pt; PADDING-BOTTOM: 5.05pt; BORDER-LEFT: medium none; WIDTH: 81pt; PADDING-TOP: 5.05pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="108"&gt;&lt;p class="MsoNormal" style="mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: page; mso-element-anchor-horizontal: margin; mso-element-top: 166.95pt; mso-height-rule: exactly"&gt;&lt;span style="font-family:'Trebuchet MS','sans-serif';"&gt;&lt;span style="font-family:tre;"&gt;Inadequate memory in the server computer or not enough memory available for SQL Server&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.9pt; BORDER-TOP: medium none; PADDING-LEFT: 2.9pt; PADDING-BOTTOM: 5.05pt; BORDER-LEFT: medium none; WIDTH: 2.75in; PADDING-TOP: 5.05pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="264"&gt;&lt;p class="MsoNormal" style="mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: page; mso-element-anchor-horizontal: margin; mso-element-top: 166.95pt; mso-height-rule: exactly"&gt;&lt;span style="font-family:'Trebuchet MS','sans-serif';"&gt;&lt;span style="font-family:tre;"&gt;Setting appropriate settings for SQL Server is an art; SQL Server will NOT utilize all memory available until asked to do so.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: page; mso-element-anchor-horizontal: margin; mso-element-top: 166.95pt; mso-height-rule: exactly"&gt;&lt;span style="font-family:'Trebuchet MS','sans-serif';"&gt;&lt;span style="font-family:tre;"&gt;&lt;span style="color:#3333ff;"&gt;Using 3GB, PAE, AWE options are the key to memory utilization for Microsoft SQL Server.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="mso-yfti-irow: 24"&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.9pt; BORDER-TOP: medium none; PADDING-LEFT: 2.9pt; PADDING-BOTTOM: 5.05pt; BORDER-LEFT: windowtext 1pt solid; WIDTH: 23.4pt; PADDING-TOP: 5.05pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="31"&gt;&lt;p class="MsoNormal" style="MARGIN-LEFT: 0.25in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1; tab-stops: list .25in; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: page; mso-element-anchor-horizontal: margin; mso-element-top: 166.95pt; mso-height-rule: exactly"&gt;&lt;span style="font-family:tre;"&gt;&lt;span style="FONT-FAMILY: 'Trebuchet MS','sans-serif'; mso-fareast-font-family: 'Trebuchet MS'font-family:'Trebuchet MS';" &gt;&lt;span style="mso-list: ignore"&gt;25.&lt;span style="FONT: 7pt 'Times New Roman';font-size:100%;" &gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:'Trebuchet MS','sans-serif';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.9pt; BORDER-TOP: medium none; PADDING-LEFT: 2.9pt; PADDING-BOTTOM: 5.05pt; BORDER-LEFT: medium none; WIDTH: 81pt; PADDING-TOP: 5.05pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="108"&gt;&lt;p class="MsoNormal" style="mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: page; mso-element-anchor-horizontal: margin; mso-element-top: 166.95pt; mso-height-rule: exactly"&gt;&lt;span style="font-family:'Trebuchet MS','sans-serif';"&gt;&lt;span style="font-family:tre;"&gt;High Processor usage by other applications&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.9pt; BORDER-TOP: medium none; PADDING-LEFT: 2.9pt; PADDING-BOTTOM: 5.05pt; BORDER-LEFT: medium none; WIDTH: 2.75in; PADDING-TOP: 5.05pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="264"&gt;&lt;p class="MsoNormal" style="mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: page; mso-element-anchor-horizontal: margin; mso-element-top: 166.95pt; mso-height-rule: exactly"&gt;&lt;span style="font-family:'Trebuchet MS','sans-serif';"&gt;&lt;span style="font-family:tre;"&gt;Sometimes resource overhead because of other application running on same SQL Server is the main cause of poor performance.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: page; mso-element-anchor-horizontal: margin; mso-element-top: 166.95pt; mso-height-rule: exactly"&gt;&lt;span style="font-family:'Trebuchet MS','sans-serif';"&gt;&lt;span style="font-family:tre;"&gt;&lt;span style="color:#3333ff;"&gt;So we should always check the memory and CPU utilization of other applications on the server.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="mso-yfti-irow: 25"&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.9pt; BORDER-TOP: medium none; PADDING-LEFT: 2.9pt; PADDING-BOTTOM: 5.05pt; BORDER-LEFT: windowtext 1pt solid; WIDTH: 23.4pt; PADDING-TOP: 5.05pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="31"&gt;&lt;p class="MsoNormal" style="MARGIN-LEFT: 0.25in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1; tab-stops: list .25in; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: page; mso-element-anchor-horizontal: margin; mso-element-top: 166.95pt; mso-height-rule: exactly"&gt;&lt;span style="font-family:tre;"&gt;&lt;span style="FONT-FAMILY: 'Trebuchet MS','sans-serif'; mso-fareast-font-family: 'Trebuchet MS'font-family:'Trebuchet MS';" &gt;&lt;span style="mso-list: ignore"&gt;26.&lt;span style="FONT: 7pt 'Times New Roman';font-size:100%;" &gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:'Trebuchet MS','sans-serif';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.9pt; BORDER-TOP: medium none; PADDING-LEFT: 2.9pt; PADDING-BOTTOM: 5.05pt; BORDER-LEFT: medium none; WIDTH: 81pt; PADDING-TOP: 5.05pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="108"&gt;&lt;p class="MsoNormal" style="mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: page; mso-element-anchor-horizontal: margin; mso-element-top: 166.95pt; mso-height-rule: exactly"&gt;&lt;span style="font-family:'Trebuchet MS','sans-serif';"&gt;&lt;span style="font-family:tre;"&gt;Incorrectly configured system parameters&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.9pt; BORDER-TOP: medium none; PADDING-LEFT: 2.9pt; PADDING-BOTTOM: 5.05pt; BORDER-LEFT: medium none; WIDTH: 2.75in; PADDING-TOP: 5.05pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="264"&gt;&lt;p class="MsoNormal" style="mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: page; mso-element-anchor-horizontal: margin; mso-element-top: 166.95pt; mso-height-rule: exactly"&gt;&lt;span style="font-family:'Trebuchet MS','sans-serif';"&gt;&lt;span style="font-family:tre;"&gt;Setting SQL Server system parameters is a highly skilled job, and in some case it’s an art. Things works well on one server but this doesn’t out be true on another server because of changed business/technical requirement.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: page; mso-element-anchor-horizontal: margin; mso-element-top: 166.95pt; mso-height-rule: exactly"&gt;&lt;span style="font-family:'Trebuchet MS','sans-serif';"&gt;&lt;span style="font-family:tre;"&gt;So it’s always &lt;span style="color:#ff6600;"&gt;better NOT to change any default option&lt;/span&gt; and even if we need to change some option then please read thoroughly about the option and &lt;span style="color:#3333ff;"&gt;test on development server before putting the same on production server.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="mso-yfti-irow: 26; mso-yfti-lastrow: yes"&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.9pt; BORDER-TOP: medium none; PADDING-LEFT: 2.9pt; PADDING-BOTTOM: 5.05pt; BORDER-LEFT: windowtext 1pt solid; WIDTH: 23.4pt; PADDING-TOP: 5.05pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="31"&gt;&lt;p class="MsoNormal" style="MARGIN-LEFT: 0.25in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1; tab-stops: list .25in; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: page; mso-element-anchor-horizontal: margin; mso-element-top: 166.95pt; mso-height-rule: exactly"&gt;&lt;span style="font-family:tre;"&gt;&lt;span style="FONT-FAMILY: 'Trebuchet MS','sans-serif'; mso-fareast-font-family: 'Trebuchet MS'font-family:'Trebuchet MS';" &gt;&lt;span style="mso-list: ignore"&gt;27.&lt;span style="FONT: 7pt 'Times New Roman';font-size:100%;" &gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:'Trebuchet MS','sans-serif';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.9pt; BORDER-TOP: medium none; PADDING-LEFT: 2.9pt; PADDING-BOTTOM: 5.05pt; BORDER-LEFT: medium none; WIDTH: 81pt; PADDING-TOP: 5.05pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="108"&gt;&lt;p class="MsoNormal" style="mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: page; mso-element-anchor-horizontal: margin; mso-element-top: 166.95pt; mso-height-rule: exactly"&gt;&lt;span style="font-family:'Trebuchet MS','sans-serif';"&gt;&lt;span style="font-family:tre;"&gt;Disk bottlenecks&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.9pt; BORDER-TOP: medium none; PADDING-LEFT: 2.9pt; PADDING-BOTTOM: 5.05pt; BORDER-LEFT: medium none; WIDTH: 2.75in; PADDING-TOP: 5.05pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="264"&gt;&lt;p class="MsoNormal" style="mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: page; mso-element-anchor-horizontal: margin; mso-element-top: 166.95pt; mso-height-rule: exactly"&gt;&lt;span style="font-family:'Trebuchet MS','sans-serif';"&gt;&lt;span style="font-family:tre;"&gt;Disk IO is the key to any RDBMS application, because all we have is data and lots of data. So make sure you have used &lt;span style="color:#ff6600;"&gt;best possible RAID along with fastest possible Disk IO&lt;/span&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8563771670213207018-8237160341273858816?l=mohitnayyar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mohitnayyar.blogspot.com/feeds/8237160341273858816/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8563771670213207018&amp;postID=8237160341273858816' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8563771670213207018/posts/default/8237160341273858816'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8563771670213207018/posts/default/8237160341273858816'/><link rel='alternate' type='text/html' href='http://mohitnayyar.blogspot.com/2007/08/microsoft-sql-server-common-query.html' title='Microsoft SQL Server common query performance problems'/><author><name>Mohit Nayyar</name><uri>http://www.blogger.com/profile/18400035423017397788</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8563771670213207018.post-3891941731027879872</id><published>2007-08-16T09:28:00.000-07:00</published><updated>2007-08-16T11:56:08.432-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL Utility'/><title type='text'>Table row count using 3 different ways</title><content type='html'>&lt;p&gt;Recently one of my &lt;a href="http://blogs.conchango.com/jamespipe"&gt;Friend&lt;/a&gt; was looking for a &lt;span style="color:#ff6600;"&gt;script to get row count in all user table&lt;/span&gt;, so we come up with&lt;span style="color:#3366ff;"&gt; 3 different ways&lt;/span&gt; of doing the same thing......I hope this will help&lt;/p&gt;&lt;p&gt;SELECT object_name (i.id) TableName, rows as RowCnt&lt;br /&gt;FROM sysindexes i INNER JOIN sysObjects o ON (o.id = i.id AND o.xType = 'U')&lt;br /&gt;WHERE indid &lt; 2&lt;br /&gt;ORDER BY TableName &lt;p&gt;************************************************************ &lt;p&gt;CREATE TABLE #temp (TableName VARCHAR (255), RowCnt INT)&lt;br /&gt;EXEC sp_MSforeachtable 'INSERT INTO #temp SELECT ''?'', COUNT(*) FROM ?'&lt;br /&gt;SELECT TableName, RowCnt FROM #temp ORDER BY TableName&lt;br /&gt;DROP TABLE #temp&lt;/p&gt;&lt;p&gt;************************************************************&lt;/p&gt;&lt;p&gt;SET NOCOUNT ON&lt;br /&gt;DECLARE @tableName VARCHAR (255), @sql VARCHAR (300)&lt;br /&gt;CREATE TABLE #temp (TableName VARCHAR (255), rowCnt INT)&lt;br /&gt;DECLARE myCursor CURSOR FAST_FORWARD READ_ONLY FOR&lt;br /&gt;SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE = 'base table'&lt;br /&gt;OPEN myCursor&lt;br /&gt;FETCH NEXT FROM myCursor INTO @tableName&lt;br /&gt;WHILE @@FETCH_STATUS = 0&lt;br /&gt;BEGIN&lt;br /&gt;EXEC ('INSERT INTO #temp (TableName, rowCnt) SELECT ''' + @tableName + ''' as tableName, count(*) as rowCnt from ' + @tableName)&lt;br /&gt;FETCH NEXT FROM myCursor INTO @tableName&lt;br /&gt;END&lt;br /&gt;SELECT TableName, RowCnt FROM #temp ORDER BY TableName&lt;br /&gt;CLOSE myCursor&lt;br /&gt;DEALLOCATE myCursor&lt;br /&gt;DROP TABLE #temp&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;- Mohit Nayyar&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8563771670213207018-3891941731027879872?l=mohitnayyar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mohitnayyar.blogspot.com/feeds/3891941731027879872/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8563771670213207018&amp;postID=3891941731027879872' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8563771670213207018/posts/default/3891941731027879872'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8563771670213207018/posts/default/3891941731027879872'/><link rel='alternate' type='text/html' href='http://mohitnayyar.blogspot.com/2007/08/table-row-count-using-3-different-ways.html' title='Table row count using 3 different ways'/><author><name>Mohit Nayyar</name><uri>http://www.blogger.com/profile/18400035423017397788</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8563771670213207018.post-7826790238654698363</id><published>2007-08-11T10:26:00.000-07:00</published><updated>2007-08-17T23:27:22.273-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Replication'/><category scheme='http://www.blogger.com/atom/ns#' term='High Availability'/><category scheme='http://www.blogger.com/atom/ns#' term='Clustering'/><category scheme='http://www.blogger.com/atom/ns#' term='Mirroring'/><category scheme='http://www.blogger.com/atom/ns#' term='Log Shipping'/><title type='text'>Microsoft SQL Server 2005 High Availability options...</title><content type='html'>&lt;p&gt;Recently I was proposing some of the high availability options for Microsoft SQL Server 2005, so thought of summarizing the same here....&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;SQL Server 2005 provides 4 basic options for high availability&lt;/span&gt;. &lt;ol&gt;&lt;li&gt;&lt;span style="color:#ff6600;"&gt;SQL Clustering&lt;/span&gt; &lt;li&gt;&lt;span style="color:#ff6600;"&gt;Database Mirroring&lt;/span&gt; &lt;li&gt;&lt;span style="color:#ff6600;"&gt;Transactional Replication&lt;/span&gt; &lt;li&gt;&lt;span style="color:#ff6600;"&gt;Log Shipping&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;Other than these 4 options some &lt;span style="color:#3333ff;"&gt;people also consider backup-restore and Database snapshots as other high availability options&lt;/span&gt;, which is really not true..... &lt;/p&gt;&lt;p&gt;"&lt;span style="color:#ff6600;"&gt;Database snapshots can be used as a recovery option&lt;/span&gt; from user/application specific errors or for reporting purposes when combined with other technologies. &lt;span style="color:#3333ff;"&gt;A snapshot is simply a read-only view of a database at a particular point in time&lt;/span&gt;, that’s why called - Database snapshots"&lt;br /&gt;&lt;br /&gt;So let’s see all of them in more detail...&lt;br /&gt;&lt;br /&gt;I will evaluate each high availability option on these parameters &lt;/p&gt;&lt;table class="MsoTableGrid" style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none; BORDER-COLLAPSE: collapse; mso-border-alt: solid windowtext .5pt; mso-yfti-tbllook: 480; mso-padding-alt: .05in .05in .05in .05in" cellspacing="0" cellpadding="0" width="402" border="1" unselectable="on"&gt;&lt;tbody&gt;&lt;tr style="mso-yfti-irow: 0; mso-yfti-firstrow: yes"&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 0.05in; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 0.05in; PADDING-BOTTOM: 0.05in; BORDER-LEFT: windowtext 1pt solid; WIDTH: 0.3in; PADDING-TOP: 0.05in; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt" valign="top" width="36"&gt;&lt;p class="MsoNormal" style="MARGIN-LEFT: 0.25in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1; tab-stops: list .25in"&gt;&lt;span style="font-family:Trebuchet MS;"&gt;&lt;span style="font-family:tahoma;"&gt;&lt;span style="mso-list: ignore"&gt;1.&lt;span style="FONT: 100% 'Times New Roman'"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:'Tahoma','sans-serif';"&gt;&lt;?xml:namespace prefix = o /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 0.05in; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 0.05in; PADDING-BOTTOM: 0.05in; BORDER-LEFT: medium none; WIDTH: 129.1pt; PADDING-TOP: 0.05in; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt" valign="top" width="121"&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Tahoma','sans-serif';"&gt;&lt;span style="font-family:Trebuchet MS;"&gt;Failover type &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 0.05in; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 0.05in; PADDING-BOTTOM: 0.05in; BORDER-LEFT: medium none; WIDTH: 252.5pt; PADDING-TOP: 0.05in; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt" valign="top" width="243"&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Tahoma','sans-serif';"&gt;&lt;span style="font-family:Trebuchet MS;"&gt;Automatic or Manual&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="mso-yfti-irow: 1"&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 0.05in; BORDER-TOP: medium none; PADDING-LEFT: 0.05in; PADDING-BOTTOM: 0.05in; BORDER-LEFT: windowtext 1pt solid; WIDTH: 0.3in; PADDING-TOP: 0.05in; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="36"&gt;&lt;p class="MsoNormal" style="MARGIN-LEFT: 0.25in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1; tab-stops: list .25in"&gt;&lt;span style="font-family:Trebuchet MS;"&gt;&lt;span style="font-family:tahoma;"&gt;&lt;span style="mso-list: ignore"&gt;2.&lt;span style="FONT: 100% 'Times New Roman'"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:'Tahoma','sans-serif';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 0.05in; BORDER-TOP: medium none; PADDING-LEFT: 0.05in; PADDING-BOTTOM: 0.05in; BORDER-LEFT: medium none; WIDTH: 129.1pt; PADDING-TOP: 0.05in; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="121"&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Tahoma','sans-serif';"&gt;&lt;span style="font-family:Trebuchet MS;"&gt;Downtime period &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 0.05in; BORDER-TOP: medium none; PADDING-LEFT: 0.05in; PADDING-BOTTOM: 0.05in; BORDER-LEFT: medium none; WIDTH: 252.5pt; PADDING-TOP: 0.05in; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="243"&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Tahoma','sans-serif';"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;/span&gt;&lt;span style="font-family:Trebuchet MS;"&gt;Time to recover or get back the system in place&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="mso-yfti-irow: 2"&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 0.05in; BORDER-TOP: medium none; PADDING-LEFT: 0.05in; PADDING-BOTTOM: 0.05in; BORDER-LEFT: windowtext 1pt solid; WIDTH: 0.3in; PADDING-TOP: 0.05in; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="36"&gt;&lt;p class="MsoNormal" style="MARGIN-LEFT: 0.25in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1; tab-stops: list .25in"&gt;&lt;span style="font-family:Trebuchet MS;"&gt;&lt;span style="font-family:tahoma;"&gt;&lt;span style="mso-list: ignore"&gt;3.&lt;span style="FONT: 100% 'Times New Roman'"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:'Tahoma','sans-serif';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 0.05in; BORDER-TOP: medium none; PADDING-LEFT: 0.05in; PADDING-BOTTOM: 0.05in; BORDER-LEFT: medium none; WIDTH: 129.1pt; PADDING-TOP: 0.05in; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="121"&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Tahoma','sans-serif';"&gt;&lt;span style="font-family:Trebuchet MS;"&gt;Availability Scope &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 0.05in; BORDER-TOP: medium none; PADDING-LEFT: 0.05in; PADDING-BOTTOM: 0.05in; BORDER-LEFT: medium none; WIDTH: 252.5pt; PADDING-TOP: 0.05in; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="243"&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Tahoma','sans-serif';"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;/span&gt;&lt;span style="font-family:Trebuchet MS;"&gt;Database level or Server level&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="mso-yfti-irow: 3"&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 0.05in; BORDER-TOP: medium none; PADDING-LEFT: 0.05in; PADDING-BOTTOM: 0.05in; BORDER-LEFT: windowtext 1pt solid; WIDTH: 0.3in; PADDING-TOP: 0.05in; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="36"&gt;&lt;p class="MsoNormal" style="MARGIN-LEFT: 0.25in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1; tab-stops: list .25in"&gt;&lt;span style="font-family:Trebuchet MS;"&gt;&lt;span style="font-family:tahoma;"&gt;&lt;span style="mso-list: ignore"&gt;4.&lt;span style="FONT: 100% 'Times New Roman'"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:'Tahoma','sans-serif';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 0.05in; BORDER-TOP: medium none; PADDING-LEFT: 0.05in; PADDING-BOTTOM: 0.05in; BORDER-LEFT: medium none; WIDTH: 129.1pt; PADDING-TOP: 0.05in; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="121"&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Tahoma','sans-serif';"&gt;&lt;span style="font-family:Trebuchet MS;"&gt;Special hardware &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 0.05in; BORDER-TOP: medium none; PADDING-LEFT: 0.05in; PADDING-BOTTOM: 0.05in; BORDER-LEFT: medium none; WIDTH: 252.5pt; PADDING-TOP: 0.05in; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="243"&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Tahoma','sans-serif';"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;/span&gt;&lt;span style="font-family:Trebuchet MS;"&gt;Any special hardware required&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="mso-yfti-irow: 4"&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 0.05in; BORDER-TOP: medium none; PADDING-LEFT: 0.05in; PADDING-BOTTOM: 0.05in; BORDER-LEFT: windowtext 1pt solid; WIDTH: 0.3in; PADDING-TOP: 0.05in; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="36"&gt;&lt;p class="MsoNormal" style="MARGIN-LEFT: 0.25in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1; tab-stops: list .25in"&gt;&lt;span style="font-family:Trebuchet MS;"&gt;&lt;span style="font-family:tahoma;"&gt;&lt;span style="mso-list: ignore"&gt;5.&lt;span style="FONT: 100% 'Times New Roman'"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:'Tahoma','sans-serif';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 0.05in; BORDER-TOP: medium none; PADDING-LEFT: 0.05in; PADDING-BOTTOM: 0.05in; BORDER-LEFT: medium none; WIDTH: 129.1pt; PADDING-TOP: 0.05in; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="121"&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Tahoma','sans-serif';"&gt;&lt;span style="font-family:Trebuchet MS;"&gt;Standby Type &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 0.05in; BORDER-TOP: medium none; PADDING-LEFT: 0.05in; PADDING-BOTTOM: 0.05in; BORDER-LEFT: medium none; WIDTH: 252.5pt; PADDING-TOP: 0.05in; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="243"&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Tahoma','sans-serif';"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;/span&gt;&lt;span style="font-family:Trebuchet MS;"&gt;Hot / Warm&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="mso-yfti-irow: 5"&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 0.05in; BORDER-TOP: medium none; PADDING-LEFT: 0.05in; PADDING-BOTTOM: 0.05in; BORDER-LEFT: windowtext 1pt solid; WIDTH: 0.3in; PADDING-TOP: 0.05in; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="36"&gt;&lt;p class="MsoNormal" style="MARGIN-LEFT: 0.25in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1; tab-stops: list .25in"&gt;&lt;span style="font-family:Trebuchet MS;"&gt;&lt;span style="font-family:tahoma;"&gt;&lt;span style="mso-list: ignore"&gt;6.&lt;span style="FONT: 100% 'Times New Roman'"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:'Tahoma','sans-serif';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 0.05in; BORDER-TOP: medium none; PADDING-LEFT: 0.05in; PADDING-BOTTOM: 0.05in; BORDER-LEFT: medium none; WIDTH: 129.1pt; PADDING-TOP: 0.05in; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="121"&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Tahoma','sans-serif';"&gt;&lt;span style="font-family:Trebuchet MS;"&gt;Complexity &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 0.05in; BORDER-TOP: medium none; PADDING-LEFT: 0.05in; PADDING-BOTTOM: 0.05in; BORDER-LEFT: medium none; WIDTH: 252.5pt; PADDING-TOP: 0.05in; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="243"&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Tahoma','sans-serif';"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;/span&gt;&lt;span style="font-family:Trebuchet MS;"&gt;Configuration/maintenance complexity&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="mso-yfti-irow: 6"&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 0.05in; BORDER-TOP: medium none; PADDING-LEFT: 0.05in; PADDING-BOTTOM: 0.05in; BORDER-LEFT: windowtext 1pt solid; WIDTH: 0.3in; PADDING-TOP: 0.05in; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="36"&gt;&lt;p class="MsoNormal" style="MARGIN-LEFT: 0.25in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1; tab-stops: list .25in"&gt;&lt;span style="font-family:Trebuchet MS;"&gt;&lt;span style="font-family:tahoma;"&gt;&lt;span style="mso-list: ignore"&gt;7.&lt;span style="FONT: 100% 'Times New Roman'"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:'Tahoma','sans-serif';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 0.05in; BORDER-TOP: medium none; PADDING-LEFT: 0.05in; PADDING-BOTTOM: 0.05in; BORDER-LEFT: medium none; WIDTH: 129.1pt; PADDING-TOP: 0.05in; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="121"&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Tahoma','sans-serif';"&gt;&lt;span style="font-family:Trebuchet MS;"&gt;Accessibility &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 0.05in; BORDER-TOP: medium none; PADDING-LEFT: 0.05in; PADDING-BOTTOM: 0.05in; BORDER-LEFT: medium none; WIDTH: 252.5pt; PADDING-TOP: 0.05in; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="243"&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Tahoma','sans-serif';"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;/span&gt;&lt;span style="font-family:Trebuchet MS;"&gt;Is it possible to check the other server or can we make use of that anyway&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="mso-yfti-irow: 7"&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 0.05in; BORDER-TOP: medium none; PADDING-LEFT: 0.05in; PADDING-BOTTOM: 0.05in; BORDER-LEFT: windowtext 1pt solid; WIDTH: 0.3in; PADDING-TOP: 0.05in; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="36"&gt;&lt;p class="MsoNormal" style="MARGIN-LEFT: 0.25in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1; tab-stops: list .25in"&gt;&lt;span style="font-family:Trebuchet MS;"&gt;&lt;span style="font-family:tahoma;"&gt;&lt;span style="mso-list: ignore"&gt;8.&lt;span style="FONT: 100% 'Times New Roman'"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:'Tahoma','sans-serif';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 0.05in; BORDER-TOP: medium none; PADDING-LEFT: 0.05in; PADDING-BOTTOM: 0.05in; BORDER-LEFT: medium none; WIDTH: 129.1pt; PADDING-TOP: 0.05in; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="121"&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Tahoma','sans-serif';"&gt;&lt;span style="font-family:Trebuchet MS;"&gt;Client Access &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 0.05in; BORDER-TOP: medium none; PADDING-LEFT: 0.05in; PADDING-BOTTOM: 0.05in; BORDER-LEFT: medium none; WIDTH: 252.5pt; PADDING-TOP: 0.05in; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="243"&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Tahoma','sans-serif';"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;/span&gt;&lt;span style="font-family:Trebuchet MS;"&gt;Client redirection, Automatic or Manual&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="mso-yfti-irow: 8"&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 0.05in; BORDER-TOP: medium none; PADDING-LEFT: 0.05in; PADDING-BOTTOM: 0.05in; BORDER-LEFT: windowtext 1pt solid; WIDTH: 0.3in; PADDING-TOP: 0.05in; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="36"&gt;&lt;p class="MsoNormal" style="MARGIN-LEFT: 0.25in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1; tab-stops: list .25in"&gt;&lt;span style="font-family:Trebuchet MS;"&gt;&lt;span style="font-family:tahoma;"&gt;&lt;span style="mso-list: ignore"&gt;9.&lt;span style="FONT: 100% 'Times New Roman'"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:'Tahoma','sans-serif';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 0.05in; BORDER-TOP: medium none; PADDING-LEFT: 0.05in; PADDING-BOTTOM: 0.05in; BORDER-LEFT: medium none; WIDTH: 129.1pt; PADDING-TOP: 0.05in; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="121"&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Tahoma','sans-serif';"&gt;&lt;span style="font-family:Trebuchet MS;"&gt;Additional servers &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 0.05in; BORDER-TOP: medium none; PADDING-LEFT: 0.05in; PADDING-BOTTOM: 0.05in; BORDER-LEFT: medium none; WIDTH: 252.5pt; PADDING-TOP: 0.05in; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="243"&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Tahoma','sans-serif';"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;/span&gt;&lt;span style="font-family:Trebuchet MS;"&gt;Any additional Microsoft SQL Server required&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="mso-yfti-irow: 9"&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 0.05in; BORDER-TOP: medium none; PADDING-LEFT: 0.05in; PADDING-BOTTOM: 0.05in; BORDER-LEFT: windowtext 1pt solid; WIDTH: 0.3in; PADDING-TOP: 0.05in; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="36"&gt;&lt;p class="MsoNormal" style="MARGIN-LEFT: 0.25in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1; tab-stops: list .25in"&gt;&lt;span style="font-family:Trebuchet MS;"&gt;&lt;span style="font-family:tahoma;"&gt;&lt;span style="mso-list: ignore"&gt;10.&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:'Tahoma','sans-serif';"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 0.05in; BORDER-TOP: medium none; PADDING-LEFT: 0.05in; PADDING-BOTTOM: 0.05in; BORDER-LEFT: medium none; WIDTH: 129.1pt; PADDING-TOP: 0.05in; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="121"&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Tahoma','sans-serif';"&gt;&lt;span style="font-family:Trebuchet MS;"&gt;Distance limit &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 0.05in; BORDER-TOP: medium none; PADDING-LEFT: 0.05in; PADDING-BOTTOM: 0.05in; BORDER-LEFT: medium none; WIDTH: 252.5pt; PADDING-TOP: 0.05in; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="243"&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Tahoma','sans-serif';"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;/span&gt;&lt;span style="font-family:Trebuchet MS;"&gt;How far the servers can sit&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="mso-yfti-irow: 10"&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 0.05in; BORDER-TOP: medium none; PADDING-LEFT: 0.05in; PADDING-BOTTOM: 0.05in; BORDER-LEFT: windowtext 1pt solid; WIDTH: 0.3in; PADDING-TOP: 0.05in; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="36"&gt;&lt;p class="MsoNormal" style="MARGIN-LEFT: 0.25in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1; tab-stops: list .25in"&gt;&lt;span style="font-family:Trebuchet MS;"&gt;&lt;span style="font-family:tahoma;"&gt;&lt;span style="mso-list: ignore"&gt;11.&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:'Tahoma','sans-serif';"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 0.05in; BORDER-TOP: medium none; PADDING-LEFT: 0.05in; PADDING-BOTTOM: 0.05in; BORDER-LEFT: medium none; WIDTH: 129.1pt; PADDING-TOP: 0.05in; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="121"&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Tahoma','sans-serif';"&gt;&lt;span style="font-family:Trebuchet MS;"&gt;Automatic Role Change &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 0.05in; BORDER-TOP: medium none; PADDING-LEFT: 0.05in; PADDING-BOTTOM: 0.05in; BORDER-LEFT: medium none; WIDTH: 252.5pt; PADDING-TOP: 0.05in; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="243"&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Tahoma','sans-serif';"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;/span&gt;&lt;span style="font-family:Trebuchet MS;"&gt;Is it possible for the server to resume work automatically or need manual intervention&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="mso-yfti-irow: 11"&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 0.05in; BORDER-TOP: medium none; PADDING-LEFT: 0.05in; PADDING-BOTTOM: 0.05in; BORDER-LEFT: windowtext 1pt solid; WIDTH: 0.3in; PADDING-TOP: 0.05in; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="36"&gt;&lt;p class="MsoNormal" style="MARGIN-LEFT: 0.25in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1; tab-stops: list .25in"&gt;&lt;span style="font-family:Trebuchet MS;"&gt;&lt;span style="font-family:tahoma;"&gt;&lt;span style="mso-list: ignore"&gt;12.&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:'Tahoma','sans-serif';"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 0.05in; BORDER-TOP: medium none; PADDING-LEFT: 0.05in; PADDING-BOTTOM: 0.05in; BORDER-LEFT: medium none; WIDTH: 129.1pt; PADDING-TOP: 0.05in; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="121"&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Tahoma','sans-serif';"&gt;&lt;span style="font-family:Trebuchet MS;"&gt;Multiple storage location &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 0.05in; BORDER-TOP: medium none; PADDING-LEFT: 0.05in; PADDING-BOTTOM: 0.05in; BORDER-LEFT: medium none; WIDTH: 252.5pt; PADDING-TOP: 0.05in; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="243"&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Tahoma','sans-serif';"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;/span&gt;&lt;span style="font-family:Trebuchet MS;"&gt;Multiple data storage locations&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="mso-yfti-irow: 12"&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 0.05in; BORDER-TOP: medium none; PADDING-LEFT: 0.05in; PADDING-BOTTOM: 0.05in; BORDER-LEFT: windowtext 1pt solid; WIDTH: 0.3in; PADDING-TOP: 0.05in; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="36"&gt;&lt;p class="MsoNormal" style="MARGIN-LEFT: 0.25in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1; tab-stops: list .25in"&gt;&lt;span style="font-family:Trebuchet MS;"&gt;&lt;span style="font-family:tahoma;"&gt;&lt;span style="mso-list: ignore"&gt;13.&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:'Tahoma','sans-serif';"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 0.05in; BORDER-TOP: medium none; PADDING-LEFT: 0.05in; PADDING-BOTTOM: 0.05in; BORDER-LEFT: medium none; WIDTH: 129.1pt; PADDING-TOP: 0.05in; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="121"&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Tahoma','sans-serif';"&gt;&lt;span style="font-family:Trebuchet MS;"&gt;Hardware Setup Cost &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 0.05in; BORDER-TOP: medium none; PADDING-LEFT: 0.05in; PADDING-BOTTOM: 0.05in; BORDER-LEFT: medium none; WIDTH: 252.5pt; PADDING-TOP: 0.05in; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="243"&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Tahoma','sans-serif';"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;/span&gt;&lt;span style="font-family:Trebuchet MS;"&gt;How expensive the whole system will be&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="mso-yfti-irow: 13; mso-yfti-lastrow: yes"&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 0.05in; BORDER-TOP: medium none; PADDING-LEFT: 0.05in; PADDING-BOTTOM: 0.05in; BORDER-LEFT: windowtext 1pt solid; WIDTH: 0.3in; PADDING-TOP: 0.05in; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="36"&gt;&lt;p class="MsoNormal" style="MARGIN-LEFT: 0.25in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1; tab-stops: list .25in"&gt;&lt;span style="font-family:Trebuchet MS;"&gt;&lt;span style="font-family:tahoma;"&gt;&lt;span style="mso-list: ignore"&gt;14.&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:'Tahoma','sans-serif';"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 0.05in; BORDER-TOP: medium none; PADDING-LEFT: 0.05in; PADDING-BOTTOM: 0.05in; BORDER-LEFT: medium none; WIDTH: 129.1pt; PADDING-TOP: 0.05in; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="121"&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Tahoma','sans-serif';"&gt;&lt;span style="font-family:Trebuchet MS;"&gt;SQL Server Editions support &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 0.05in; BORDER-TOP: medium none; PADDING-LEFT: 0.05in; PADDING-BOTTOM: 0.05in; BORDER-LEFT: medium none; WIDTH: 252.5pt; PADDING-TOP: 0.05in; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="243"&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Tahoma','sans-serif';"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;/span&gt;&lt;span style="font-family:Trebuchet MS;"&gt;What all options are available with each edition of Microsoft SQL Server 2005&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&lt;/p&gt;&lt;table class="MsoTableGrid" style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none; BORDER-COLLAPSE: collapse; mso-border-alt: solid windowtext .5pt; mso-yfti-tbllook: 480; mso-padding-alt: 4.3pt 2.15pt 4.3pt 2.15pt; mso-table-layout-alt: fixed" cellspacing="0" cellpadding="0" width="441" border="1" unselectable="on"&gt;&lt;tbody&gt;&lt;tr style="mso-yfti-irow: 0; mso-yfti-firstrow: yes"&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.15pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 2.15pt; PADDING-BOTTOM: 4.3pt; BORDER-LEFT: windowtext 1pt solid; WIDTH: 70.2pt; PADDING-TOP: 4.3pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt" valign="top" width="94"&gt;&lt;p class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal"&gt;&lt;span style="font-family:'Tahoma','sans-serif';"&gt;&lt;o:p&gt;&lt;span style="font-family:tre;font-size:85%;"&gt;&lt;/span&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.15pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 2.15pt; PADDING-BOTTOM: 4.3pt; BORDER-LEFT: medium none; WIDTH: 57.95pt; PADDING-TOP: 4.3pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt" valign="top" width="77"&gt;&lt;p class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal"&gt;&lt;span style="font-family:'Tahoma','sans-serif';"&gt;&lt;span style="font-family:Trebuchet MS;"&gt;&lt;span style="font-size:85%;"&gt;SQL Clustering&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.15pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 2.15pt; PADDING-BOTTOM: 4.3pt; BORDER-LEFT: medium none; WIDTH: 67.5pt; PADDING-TOP: 4.3pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt" valign="top" width="90"&gt;&lt;p class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal"&gt;&lt;span style="font-family:'Tahoma','sans-serif';"&gt;&lt;span style="font-family:Trebuchet MS;"&gt;&lt;span style="font-size:85%;"&gt;Database Mirroring&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.15pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 2.15pt; PADDING-BOTTOM: 4.3pt; BORDER-LEFT: medium none; WIDTH: 67.5pt; PADDING-TOP: 4.3pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt" valign="top" width="90"&gt;&lt;p class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal"&gt;&lt;span style="font-family:'Tahoma','sans-serif';"&gt;&lt;span style="font-family:Trebuchet MS;"&gt;&lt;span style="font-size:85%;"&gt;Transactional Replication&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.15pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 2.15pt; PADDING-BOTTOM: 4.3pt; BORDER-LEFT: medium none; WIDTH: 67.5pt; PADDING-TOP: 4.3pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt" valign="top" width="90"&gt;&lt;p class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal"&gt;&lt;span style="font-family:'Tahoma','sans-serif';"&gt;&lt;span style="font-family:Trebuchet MS;"&gt;&lt;span style="font-size:85%;"&gt;Log Shipping&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="mso-yfti-irow: 1"&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.15pt; BORDER-TOP: medium none; PADDING-LEFT: 2.15pt; PADDING-BOTTOM: 4.3pt; BORDER-LEFT: windowtext 1pt solid; WIDTH: 70.2pt; PADDING-TOP: 4.3pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="94"&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Tahoma','sans-serif';"&gt;&lt;span style="font-family:Trebuchet MS;"&gt;&lt;span style="font-size:85%;"&gt;Failover type &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.15pt; BORDER-TOP: medium none; PADDING-LEFT: 2.15pt; PADDING-BOTTOM: 4.3pt; BORDER-LEFT: medium none; WIDTH: 57.95pt; PADDING-TOP: 4.3pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="77"&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Tahoma','sans-serif';"&gt;&lt;span style="font-family:Trebuchet MS;"&gt;&lt;span style="font-size:85%;"&gt;Automatic / Manual&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.15pt; BORDER-TOP: medium none; PADDING-LEFT: 2.15pt; PADDING-BOTTOM: 4.3pt; BORDER-LEFT: medium none; WIDTH: 67.5pt; PADDING-TOP: 4.3pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="90"&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Tahoma','sans-serif';"&gt;&lt;span style="font-family:Trebuchet MS;"&gt;&lt;span style="font-size:85%;"&gt;Automatic / Manual&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.15pt; BORDER-TOP: medium none; PADDING-LEFT: 2.15pt; PADDING-BOTTOM: 4.3pt; BORDER-LEFT: medium none; WIDTH: 67.5pt; PADDING-TOP: 4.3pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="90"&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Tahoma','sans-serif';"&gt;&lt;span style="font-family:Trebuchet MS;"&gt;&lt;span style="font-size:85%;"&gt;Manual&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.15pt; BORDER-TOP: medium none; PADDING-LEFT: 2.15pt; PADDING-BOTTOM: 4.3pt; BORDER-LEFT: medium none; WIDTH: 67.5pt; PADDING-TOP: 4.3pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="90"&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Tahoma','sans-serif';"&gt;&lt;span style="font-family:Trebuchet MS;"&gt;&lt;span style="font-size:85%;"&gt;Manual&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="mso-yfti-irow: 2"&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.15pt; BORDER-TOP: medium none; PADDING-LEFT: 2.15pt; PADDING-BOTTOM: 4.3pt; BORDER-LEFT: windowtext 1pt solid; WIDTH: 70.2pt; PADDING-TOP: 4.3pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="94"&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Tahoma','sans-serif';"&gt;&lt;span style="font-family:Trebuchet MS;"&gt;&lt;span style="font-size:85%;"&gt;Downtime period &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.15pt; BORDER-TOP: medium none; PADDING-LEFT: 2.15pt; PADDING-BOTTOM: 4.3pt; BORDER-LEFT: medium none; WIDTH: 57.95pt; PADDING-TOP: 4.3pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="77"&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Tahoma','sans-serif';"&gt;&lt;span style="font-family:Trebuchet MS;"&gt;&lt;span style="font-size:85%;"&gt;30 seconds&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.15pt; BORDER-TOP: medium none; PADDING-LEFT: 2.15pt; PADDING-BOTTOM: 4.3pt; BORDER-LEFT: medium none; WIDTH: 67.5pt; PADDING-TOP: 4.3pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="90"&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Tahoma','sans-serif';"&gt;&lt;span style="font-family:Trebuchet MS;"&gt;&lt;span style="font-size:85%;"&gt;30 seconds&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.15pt; BORDER-TOP: medium none; PADDING-LEFT: 2.15pt; PADDING-BOTTOM: 4.3pt; BORDER-LEFT: medium none; WIDTH: 67.5pt; PADDING-TOP: 4.3pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="90"&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Tahoma','sans-serif';"&gt;&lt;span style="font-family:Trebuchet MS;"&gt;&lt;span style="font-size:85%;"&gt;Manual effort required&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.15pt; BORDER-TOP: medium none; PADDING-LEFT: 2.15pt; PADDING-BOTTOM: 4.3pt; BORDER-LEFT: medium none; WIDTH: 67.5pt; PADDING-TOP: 4.3pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="90"&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Tahoma','sans-serif';"&gt;&lt;span style="font-family:Trebuchet MS;"&gt;&lt;span style="font-size:85%;"&gt;Manual effort required&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="mso-yfti-irow: 3"&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.15pt; BORDER-TOP: medium none; PADDING-LEFT: 2.15pt; PADDING-BOTTOM: 4.3pt; BORDER-LEFT: windowtext 1pt solid; WIDTH: 70.2pt; PADDING-TOP: 4.3pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="94"&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Tahoma','sans-serif';"&gt;&lt;span style="font-family:Trebuchet MS;"&gt;&lt;span style="font-size:85%;"&gt;Availability Scope &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.15pt; BORDER-TOP: medium none; PADDING-LEFT: 2.15pt; PADDING-BOTTOM: 4.3pt; BORDER-LEFT: medium none; WIDTH: 57.95pt; PADDING-TOP: 4.3pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="77"&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Tahoma','sans-serif';"&gt;&lt;span style="font-family:Trebuchet MS;"&gt;&lt;span style="font-size:85%;"&gt;Server&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.15pt; BORDER-TOP: medium none; PADDING-LEFT: 2.15pt; PADDING-BOTTOM: 4.3pt; BORDER-LEFT: medium none; WIDTH: 67.5pt; PADDING-TOP: 4.3pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="90"&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Tahoma','sans-serif';"&gt;&lt;span style="font-family:Trebuchet MS;"&gt;&lt;span style="font-size:85%;"&gt;Database&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.15pt; BORDER-TOP: medium none; PADDING-LEFT: 2.15pt; PADDING-BOTTOM: 4.3pt; BORDER-LEFT: medium none; WIDTH: 67.5pt; PADDING-TOP: 4.3pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="90"&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Tahoma','sans-serif';"&gt;&lt;span style="font-family:Trebuchet MS;"&gt;&lt;span style="font-size:85%;"&gt;Database / DB Objects&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.15pt; BORDER-TOP: medium none; PADDING-LEFT: 2.15pt; PADDING-BOTTOM: 4.3pt; BORDER-LEFT: medium none; WIDTH: 67.5pt; PADDING-TOP: 4.3pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="90"&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Tahoma','sans-serif';"&gt;&lt;span style="font-family:Trebuchet MS;"&gt;&lt;span style="font-size:85%;"&gt;Database&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="mso-yfti-irow: 4"&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.15pt; BORDER-TOP: medium none; PADDING-LEFT: 2.15pt; PADDING-BOTTOM: 4.3pt; BORDER-LEFT: windowtext 1pt solid; WIDTH: 70.2pt; PADDING-TOP: 4.3pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="94"&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Tahoma','sans-serif';"&gt;&lt;span style="font-family:Trebuchet MS;"&gt;&lt;span style="font-size:85%;"&gt;Special hardware &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.15pt; BORDER-TOP: medium none; PADDING-LEFT: 2.15pt; PADDING-BOTTOM: 4.3pt; BORDER-LEFT: medium none; WIDTH: 57.95pt; PADDING-TOP: 4.3pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="77"&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Tahoma','sans-serif';"&gt;&lt;span style="font-family:Trebuchet MS;"&gt;&lt;span style="font-size:85%;"&gt;Yes&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.15pt; BORDER-TOP: medium none; PADDING-LEFT: 2.15pt; PADDING-BOTTOM: 4.3pt; BORDER-LEFT: medium none; WIDTH: 67.5pt; PADDING-TOP: 4.3pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="90"&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Tahoma','sans-serif';"&gt;&lt;span style="font-family:Trebuchet MS;"&gt;&lt;span style="font-size:85%;"&gt;No&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.15pt; BORDER-TOP: medium none; PADDING-LEFT: 2.15pt; PADDING-BOTTOM: 4.3pt; BORDER-LEFT: medium none; WIDTH: 67.5pt; PADDING-TOP: 4.3pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="90"&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Tahoma','sans-serif';"&gt;&lt;span style="font-family:Trebuchet MS;"&gt;&lt;span style="font-size:85%;"&gt;No&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.15pt; BORDER-TOP: medium none; PADDING-LEFT: 2.15pt; PADDING-BOTTOM: 4.3pt; BORDER-LEFT: medium none; WIDTH: 67.5pt; PADDING-TOP: 4.3pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="90"&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Tahoma','sans-serif';"&gt;&lt;span style="font-family:Trebuchet MS;"&gt;&lt;span style="font-size:85%;"&gt;No&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="mso-yfti-irow: 5"&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.15pt; BORDER-TOP: medium none; PADDING-LEFT: 2.15pt; PADDING-BOTTOM: 4.3pt; BORDER-LEFT: windowtext 1pt solid; WIDTH: 70.2pt; PADDING-TOP: 4.3pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="94"&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Tahoma','sans-serif';"&gt;&lt;span style="font-family:Trebuchet MS;"&gt;&lt;span style="font-size:85%;"&gt;Standby Type &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.15pt; BORDER-TOP: medium none; PADDING-LEFT: 2.15pt; PADDING-BOTTOM: 4.3pt; BORDER-LEFT: medium none; WIDTH: 57.95pt; PADDING-TOP: 4.3pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="77"&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Tahoma','sans-serif';"&gt;&lt;span style="font-family:Trebuchet MS;"&gt;&lt;span style="font-size:85%;"&gt;Hot&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.15pt; BORDER-TOP: medium none; PADDING-LEFT: 2.15pt; PADDING-BOTTOM: 4.3pt; BORDER-LEFT: medium none; WIDTH: 67.5pt; PADDING-TOP: 4.3pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="90"&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Tahoma','sans-serif';"&gt;&lt;span style="font-family:Trebuchet MS;"&gt;&lt;span style="font-size:85%;"&gt;Hot&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.15pt; BORDER-TOP: medium none; PADDING-LEFT: 2.15pt; PADDING-BOTTOM: 4.3pt; BORDER-LEFT: medium none; WIDTH: 67.5pt; PADDING-TOP: 4.3pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="90"&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Tahoma','sans-serif';"&gt;&lt;span style="font-family:Trebuchet MS;"&gt;&lt;span style="font-size:85%;"&gt;Warm&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.15pt; BORDER-TOP: medium none; PADDING-LEFT: 2.15pt; PADDING-BOTTOM: 4.3pt; BORDER-LEFT: medium none; WIDTH: 67.5pt; PADDING-TOP: 4.3pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="90"&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Tahoma','sans-serif';"&gt;&lt;span style="font-family:Trebuchet MS;"&gt;&lt;span style="font-size:85%;"&gt;Warm&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="mso-yfti-irow: 6"&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.15pt; BORDER-TOP: medium none; PADDING-LEFT: 2.15pt; PADDING-BOTTOM: 4.3pt; BORDER-LEFT: windowtext 1pt solid; WIDTH: 70.2pt; PADDING-TOP: 4.3pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="94"&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Tahoma','sans-serif';"&gt;&lt;span style="font-family:Trebuchet MS;"&gt;&lt;span style="font-size:85%;"&gt;Complexity &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.15pt; BORDER-TOP: medium none; PADDING-LEFT: 2.15pt; PADDING-BOTTOM: 4.3pt; BORDER-LEFT: medium none; WIDTH: 57.95pt; PADDING-TOP: 4.3pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="77"&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Tahoma','sans-serif';"&gt;&lt;span style="font-family:Trebuchet MS;"&gt;&lt;span style="font-size:85%;"&gt;Complex&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.15pt; BORDER-TOP: medium none; PADDING-LEFT: 2.15pt; PADDING-BOTTOM: 4.3pt; BORDER-LEFT: medium none; WIDTH: 67.5pt; PADDING-TOP: 4.3pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="90"&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Tahoma','sans-serif';"&gt;&lt;span style="font-family:Trebuchet MS;"&gt;&lt;span style="font-size:85%;"&gt;Little Complex&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.15pt; BORDER-TOP: medium none; PADDING-LEFT: 2.15pt; PADDING-BOTTOM: 4.3pt; BORDER-LEFT: medium none; WIDTH: 67.5pt; PADDING-TOP: 4.3pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="90"&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Tahoma','sans-serif';"&gt;&lt;span style="font-family:Trebuchet MS;"&gt;&lt;span style="font-size:85%;"&gt;Little Complex&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.15pt; BORDER-TOP: medium none; PADDING-LEFT: 2.15pt; PADDING-BOTTOM: 4.3pt; BORDER-LEFT: medium none; WIDTH: 67.5pt; PADDING-TOP: 4.3pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="90"&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Tahoma','sans-serif';"&gt;&lt;span style="font-family:Trebuchet MS;"&gt;&lt;span style="font-size:85%;"&gt;Easy&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="mso-yfti-irow: 7"&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.15pt; BORDER-TOP: medium none; PADDING-LEFT: 2.15pt; PADDING-BOTTOM: 4.3pt; BORDER-LEFT: windowtext 1pt solid; WIDTH: 70.2pt; PADDING-TOP: 4.3pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="94"&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Tahoma','sans-serif';"&gt;&lt;span style="font-family:Trebuchet MS;"&gt;&lt;span style="font-size:85%;"&gt;Data Accessibility (other than primary server)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.15pt; BORDER-TOP: medium none; PADDING-LEFT: 2.15pt; PADDING-BOTTOM: 4.3pt; BORDER-LEFT: medium none; WIDTH: 57.95pt; PADDING-TOP: 4.3pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="77"&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Tahoma','sans-serif';"&gt;&lt;span style="font-family:Trebuchet MS;"&gt;&lt;span style="font-size:85%;"&gt;No&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.15pt; BORDER-TOP: medium none; PADDING-LEFT: 2.15pt; PADDING-BOTTOM: 4.3pt; BORDER-LEFT: medium none; WIDTH: 67.5pt; PADDING-TOP: 4.3pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="90"&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Tahoma','sans-serif';"&gt;&lt;span style="font-family:Trebuchet MS;"&gt;&lt;span style="font-size:85%;"&gt;Possible&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.15pt; BORDER-TOP: medium none; PADDING-LEFT: 2.15pt; PADDING-BOTTOM: 4.3pt; BORDER-LEFT: medium none; WIDTH: 67.5pt; PADDING-TOP: 4.3pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="90"&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Tahoma','sans-serif';"&gt;&lt;span style="font-family:Trebuchet MS;"&gt;&lt;span style="font-size:85%;"&gt;Possible&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.15pt; BORDER-TOP: medium none; PADDING-LEFT: 2.15pt; PADDING-BOTTOM: 4.3pt; BORDER-LEFT: medium none; WIDTH: 67.5pt; PADDING-TOP: 4.3pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="90"&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Tahoma','sans-serif';"&gt;&lt;span style="font-family:Trebuchet MS;"&gt;&lt;span style="font-size:85%;"&gt;Possible&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="mso-yfti-irow: 8"&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.15pt; BORDER-TOP: medium none; PADDING-LEFT: 2.15pt; PADDING-BOTTOM: 4.3pt; BORDER-LEFT: windowtext 1pt solid; WIDTH: 70.2pt; PADDING-TOP: 4.3pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="94"&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Tahoma','sans-serif';"&gt;&lt;span style="font-family:Trebuchet MS;"&gt;&lt;span style="font-size:85%;"&gt;Client Access &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.15pt; BORDER-TOP: medium none; PADDING-LEFT: 2.15pt; PADDING-BOTTOM: 4.3pt; BORDER-LEFT: medium none; WIDTH: 57.95pt; PADDING-TOP: 4.3pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="77"&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Tahoma','sans-serif';"&gt;&lt;span style="font-family:Trebuchet MS;"&gt;&lt;span style="font-size:85%;"&gt;Automatic redirection&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.15pt; BORDER-TOP: medium none; PADDING-LEFT: 2.15pt; PADDING-BOTTOM: 4.3pt; BORDER-LEFT: medium none; WIDTH: 67.5pt; PADDING-TOP: 4.3pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="90"&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Tahoma','sans-serif';"&gt;&lt;span style="font-family:Trebuchet MS;"&gt;&lt;span style="font-size:85%;"&gt;Automatic redirection&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.15pt; BORDER-TOP: medium none; PADDING-LEFT: 2.15pt; PADDING-BOTTOM: 4.3pt; BORDER-LEFT: medium none; WIDTH: 67.5pt; PADDING-TOP: 4.3pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="90"&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Tahoma','sans-serif';"&gt;&lt;span style="font-family:Trebuchet MS;"&gt;&lt;span style="font-size:85%;"&gt;Manual effort required&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.15pt; BORDER-TOP: medium none; PADDING-LEFT: 2.15pt; PADDING-BOTTOM: 4.3pt; BORDER-LEFT: medium none; WIDTH: 67.5pt; PADDING-TOP: 4.3pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="90"&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Tahoma','sans-serif';"&gt;&lt;span style="font-family:Trebuchet MS;"&gt;&lt;span style="font-size:85%;"&gt;Manual effort required&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="mso-yfti-irow: 9"&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.15pt; BORDER-TOP: medium none; PADDING-LEFT: 2.15pt; PADDING-BOTTOM: 4.3pt; BORDER-LEFT: windowtext 1pt solid; WIDTH: 70.2pt; PADDING-TOP: 4.3pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="94"&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Tahoma','sans-serif';"&gt;&lt;span style="font-family:Trebuchet MS;"&gt;&lt;span style="font-size:85%;"&gt;Additional servers (including base server)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.15pt; BORDER-TOP: medium none; PADDING-LEFT: 2.15pt; PADDING-BOTTOM: 4.3pt; BORDER-LEFT: medium none; WIDTH: 57.95pt; PADDING-TOP: 4.3pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="77"&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Tahoma','sans-serif';"&gt;&lt;span style="font-family:Trebuchet MS;"&gt;&lt;span style="font-size:85%;"&gt;At least &amp;gt;= 2 Servers&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.15pt; BORDER-TOP: medium none; PADDING-LEFT: 2.15pt; PADDING-BOTTOM: 4.3pt; BORDER-LEFT: medium none; WIDTH: 67.5pt; PADDING-TOP: 4.3pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="90"&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Tahoma','sans-serif';"&gt;&lt;span style="font-family:Trebuchet MS;"&gt;&lt;span style="font-size:85%;"&gt;At least &amp;gt;= 3 Servers (automatic failover)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.15pt; BORDER-TOP: medium none; PADDING-LEFT: 2.15pt; PADDING-BOTTOM: 4.3pt; BORDER-LEFT: medium none; WIDTH: 67.5pt; PADDING-TOP: 4.3pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="90"&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Tahoma','sans-serif';"&gt;&lt;span style="font-family:Trebuchet MS;"&gt;&lt;span style="font-size:85%;"&gt;At least &amp;gt;= 2 Servers&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.15pt; BORDER-TOP: medium none; PADDING-LEFT: 2.15pt; PADDING-BOTTOM: 4.3pt; BORDER-LEFT: medium none; WIDTH: 67.5pt; PADDING-TOP: 4.3pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="90"&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Tahoma','sans-serif';"&gt;&lt;span style="font-family:Trebuchet MS;"&gt;&lt;span style="font-size:85%;"&gt;At least &amp;gt;= 2 Servers&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="mso-yfti-irow: 10"&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.15pt; BORDER-TOP: medium none; PADDING-LEFT: 2.15pt; PADDING-BOTTOM: 4.3pt; BORDER-LEFT: windowtext 1pt solid; WIDTH: 70.2pt; PADDING-TOP: 4.3pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="94"&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Tahoma','sans-serif';"&gt;&lt;span style="font-family:Trebuchet MS;"&gt;&lt;span style="font-size:85%;"&gt;Distance limit &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.15pt; BORDER-TOP: medium none; PADDING-LEFT: 2.15pt; PADDING-BOTTOM: 4.3pt; BORDER-LEFT: medium none; WIDTH: 57.95pt; PADDING-TOP: 4.3pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="77"&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Tahoma','sans-serif';"&gt;&lt;span style="font-family:Trebuchet MS;"&gt;&lt;span style="font-size:85%;"&gt;100 Miles&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.15pt; BORDER-TOP: medium none; PADDING-LEFT: 2.15pt; PADDING-BOTTOM: 4.3pt; BORDER-LEFT: medium none; WIDTH: 67.5pt; PADDING-TOP: 4.3pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="90"&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Tahoma','sans-serif';"&gt;&lt;span style="font-family:Trebuchet MS;"&gt;&lt;span style="font-size:85%;"&gt;No Limit but depends upon network bandwidth&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.15pt; BORDER-TOP: medium none; PADDING-LEFT: 2.15pt; PADDING-BOTTOM: 4.3pt; BORDER-LEFT: medium none; WIDTH: 67.5pt; PADDING-TOP: 4.3pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="90"&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Tahoma','sans-serif';"&gt;&lt;span style="font-family:Trebuchet MS;"&gt;&lt;span style="font-size:85%;"&gt;No Limit but depends upon network bandwidth&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.15pt; BORDER-TOP: medium none; PADDING-LEFT: 2.15pt; PADDING-BOTTOM: 4.3pt; BORDER-LEFT: medium none; WIDTH: 67.5pt; PADDING-TOP: 4.3pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="90"&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Tahoma','sans-serif';"&gt;&lt;span style="font-family:Trebuchet MS;"&gt;&lt;span style="font-size:85%;"&gt;No Limit but depends upon network bandwidth&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="mso-yfti-irow: 11"&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.15pt; BORDER-TOP: medium none; PADDING-LEFT: 2.15pt; PADDING-BOTTOM: 4.3pt; BORDER-LEFT: windowtext 1pt solid; WIDTH: 70.2pt; PADDING-TOP: 4.3pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="94"&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Tahoma','sans-serif';"&gt;&lt;span style="font-family:Trebuchet MS;"&gt;&lt;span style="font-size:85%;"&gt;Automatic Role Change &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.15pt; BORDER-TOP: medium none; PADDING-LEFT: 2.15pt; PADDING-BOTTOM: 4.3pt; BORDER-LEFT: medium none; WIDTH: 57.95pt; PADDING-TOP: 4.3pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="77"&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Tahoma','sans-serif';"&gt;&lt;span style="font-family:Trebuchet MS;"&gt;&lt;span style="font-size:85%;"&gt;Yes&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.15pt; BORDER-TOP: medium none; PADDING-LEFT: 2.15pt; PADDING-BOTTOM: 4.3pt; BORDER-LEFT: medium none; WIDTH: 67.5pt; PADDING-TOP: 4.3pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="90"&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Tahoma','sans-serif';"&gt;&lt;span style="font-family:Trebuchet MS;"&gt;&lt;span style="font-size:85%;"&gt;Yes&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.15pt; BORDER-TOP: medium none; PADDING-LEFT: 2.15pt; PADDING-BOTTOM: 4.3pt; BORDER-LEFT: medium none; WIDTH: 67.5pt; PADDING-TOP: 4.3pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="90"&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Tahoma','sans-serif';"&gt;&lt;span style="font-family:Trebuchet MS;"&gt;&lt;span style="font-size:85%;"&gt;No&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.15pt; BORDER-TOP: medium none; PADDING-LEFT: 2.15pt; PADDING-BOTTOM: 4.3pt; BORDER-LEFT: medium none; WIDTH: 67.5pt; PADDING-TOP: 4.3pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="90"&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Tahoma','sans-serif';"&gt;&lt;span style="font-family:Trebuchet MS;"&gt;&lt;span style="font-size:85%;"&gt;No&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="mso-yfti-irow: 12"&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.15pt; BORDER-TOP: medium none; PADDING-LEFT: 2.15pt; PADDING-BOTTOM: 4.3pt; BORDER-LEFT: windowtext 1pt solid; WIDTH: 70.2pt; PADDING-TOP: 4.3pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="94"&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Tahoma','sans-serif';"&gt;&lt;span style="font-family:Trebuchet MS;"&gt;&lt;span style="font-size:85%;"&gt;Multiple storage location &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.15pt; BORDER-TOP: medium none; PADDING-LEFT: 2.15pt; PADDING-BOTTOM: 4.3pt; BORDER-LEFT: medium none; WIDTH: 57.95pt; PADDING-TOP: 4.3pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="77"&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Tahoma','sans-serif';"&gt;&lt;span style="font-family:Trebuchet MS;"&gt;&lt;span style="font-size:85%;"&gt;No&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.15pt; BORDER-TOP: medium none; PADDING-LEFT: 2.15pt; PADDING-BOTTOM: 4.3pt; BORDER-LEFT: medium none; WIDTH: 67.5pt; PADDING-TOP: 4.3pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="90"&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Tahoma','sans-serif';"&gt;&lt;span style="font-family:Trebuchet MS;"&gt;&lt;span style="font-size:85%;"&gt;Yes&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.15pt; BORDER-TOP: medium none; PADDING-LEFT: 2.15pt; PADDING-BOTTOM: 4.3pt; BORDER-LEFT: medium none; WIDTH: 67.5pt; PADDING-TOP: 4.3pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="90"&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Tahoma','sans-serif';"&gt;&lt;span style="font-family:Trebuchet MS;"&gt;&lt;span style="font-size:85%;"&gt;Yes&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.15pt; BORDER-TOP: medium none; PADDING-LEFT: 2.15pt; PADDING-BOTTOM: 4.3pt; BORDER-LEFT: medium none; WIDTH: 67.5pt; PADDING-TOP: 4.3pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="90"&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Tahoma','sans-serif';"&gt;&lt;span style="font-family:Trebuchet MS;"&gt;&lt;span style="font-size:85%;"&gt;Yes&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="mso-yfti-irow: 13"&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.15pt; BORDER-TOP: medium none; PADDING-LEFT: 2.15pt; PADDING-BOTTOM: 4.3pt; BORDER-LEFT: windowtext 1pt solid; WIDTH: 70.2pt; PADDING-TOP: 4.3pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="94"&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Tahoma','sans-serif';"&gt;&lt;span style="font-family:Trebuchet MS;"&gt;&lt;span style="font-size:85%;"&gt;Hardware Setup Cost &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.15pt; BORDER-TOP: medium none; PADDING-LEFT: 2.15pt; PADDING-BOTTOM: 4.3pt; BORDER-LEFT: medium none; WIDTH: 57.95pt; PADDING-TOP: 4.3pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="77"&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Tahoma','sans-serif';"&gt;&lt;span style="font-family:Trebuchet MS;"&gt;&lt;span style="font-size:85%;"&gt;High, special certified hardware required&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.15pt; BORDER-TOP: medium none; PADDING-LEFT: 2.15pt; PADDING-BOTTOM: 4.3pt; BORDER-LEFT: medium none; WIDTH: 67.5pt; PADDING-TOP: 4.3pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="90"&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Tahoma','sans-serif';"&gt;&lt;span style="font-family:Trebuchet MS;"&gt;&lt;span style="font-size:85%;"&gt;Medium&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.15pt; BORDER-TOP: medium none; PADDING-LEFT: 2.15pt; PADDING-BOTTOM: 4.3pt; BORDER-LEFT: medium none; WIDTH: 67.5pt; PADDING-TOP: 4.3pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="90"&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Tahoma','sans-serif';"&gt;&lt;span style="font-family:Trebuchet MS;"&gt;&lt;span style="font-size:85%;"&gt;Low&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.15pt; BORDER-TOP: medium none; PADDING-LEFT: 2.15pt; PADDING-BOTTOM: 4.3pt; BORDER-LEFT: medium none; WIDTH: 67.5pt; PADDING-TOP: 4.3pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="90"&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Tahoma','sans-serif';"&gt;&lt;span style="font-family:Trebuchet MS;"&gt;&lt;span style="font-size:85%;"&gt;Low&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="mso-yfti-irow: 14; mso-yfti-lastrow: yes"&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.15pt; BORDER-TOP: medium none; PADDING-LEFT: 2.15pt; PADDING-BOTTOM: 4.3pt; BORDER-LEFT: windowtext 1pt solid; WIDTH: 70.2pt; PADDING-TOP: 4.3pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="94"&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Tahoma','sans-serif';"&gt;&lt;span style="font-family:Trebuchet MS;"&gt;&lt;span style="font-size:85%;"&gt;SQL Server Editions support &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.15pt; BORDER-TOP: medium none; PADDING-LEFT: 2.15pt; PADDING-BOTTOM: 4.3pt; BORDER-LEFT: medium none; WIDTH: 57.95pt; PADDING-TOP: 4.3pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="77"&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Tahoma','sans-serif';"&gt;&lt;span style="font-family:Trebuchet MS;"&gt;&lt;span style="font-size:85%;"&gt;SQL Server Enterprise and Standard (2 node only)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.15pt; BORDER-TOP: medium none; PADDING-LEFT: 2.15pt; PADDING-BOTTOM: 4.3pt; BORDER-LEFT: medium none; WIDTH: 67.5pt; PADDING-TOP: 4.3pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="90"&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Tahoma','sans-serif';"&gt;&lt;span style="font-family:Trebuchet MS;"&gt;&lt;span style="font-size:85%;"&gt;SQL Server &lt;?xml:namespace prefix = st1 /&gt;&lt;st1:place st="on"&gt;&lt;st1:city st="on"&gt;Enterprise&lt;/st1:city&gt;&lt;/st1:place&gt; and Standard (Restricted)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.15pt; BORDER-TOP: medium none; PADDING-LEFT: 2.15pt; PADDING-BOTTOM: 4.3pt; BORDER-LEFT: medium none; WIDTH: 67.5pt; PADDING-TOP: 4.3pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="90"&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Tahoma','sans-serif';"&gt;&lt;span style="font-family:Trebuchet MS;"&gt;&lt;span style="font-size:85%;"&gt;SQL Server &lt;st1:city st="on"&gt;&lt;st1:place st="on"&gt;Enterprise&lt;/st1:place&gt;&lt;/st1:city&gt;, Standard and Workgroup&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2.15pt; BORDER-TOP: medium none; PADDING-LEFT: 2.15pt; PADDING-BOTTOM: 4.3pt; BORDER-LEFT: medium none; WIDTH: 67.5pt; PADDING-TOP: 4.3pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="90"&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Tahoma','sans-serif';"&gt;&lt;span style="font-family:Trebuchet MS;"&gt;&lt;span style="font-size:85%;"&gt;SQL Server &lt;st1:place st="on"&gt;&lt;st1:city st="on"&gt;Enterprise&lt;/st1:city&gt;&lt;/st1:place&gt;, Standard and Workgroup&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&lt;span style="font-size:85%;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;- Mohit&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8563771670213207018-7826790238654698363?l=mohitnayyar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mohitnayyar.blogspot.com/feeds/7826790238654698363/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8563771670213207018&amp;postID=7826790238654698363' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8563771670213207018/posts/default/7826790238654698363'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8563771670213207018/posts/default/7826790238654698363'/><link rel='alternate' type='text/html' href='http://mohitnayyar.blogspot.com/2007/08/microsoft-sql-server-2005-high.html' title='Microsoft SQL Server 2005 High Availability options...'/><author><name>Mohit Nayyar</name><uri>http://www.blogger.com/profile/18400035423017397788</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8563771670213207018.post-1955555416970821366</id><published>2007-08-10T20:07:00.000-07:00</published><updated>2007-08-11T10:36:25.816-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL Formatting'/><title type='text'>SQL Formatter – Excellent work and really useful</title><content type='html'>I recently came across this link and I am &lt;span style="color:#ff6600;"&gt;thrilled with the work&lt;/span&gt;………&lt;br /&gt;&lt;br /&gt;Basically we can &lt;span style="color:#3333ff;"&gt;convert our poor written SQL statements into well formatted statements&lt;/span&gt;. So it makes the &lt;span style="color:#3333ff;"&gt;statements more readable, manageable&lt;/span&gt; and looks beautiful.&lt;br /&gt;&lt;br /&gt;I know &lt;span style="color:#ff6600;"&gt;how it feels when we need to redo the work done by last DBA/Developer&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;And top of that it can also &lt;span style="color:#3333ff;"&gt;convert SQL statements into equivalent C#, Delphi, Java, Pro*C or XML format.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;I am sure you will love this at &lt;a href="http://www.wangz.net/cgi-bin/pp/gsqlparser/sqlpp/sqlformat.tpl" target="_blank"&gt;http://www.wangz.net/cgi-bin/pp/gsqlparser/sqlpp/sqlformat.tpl&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Enjoy and be more productive!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8563771670213207018-1955555416970821366?l=mohitnayyar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mohitnayyar.blogspot.com/feeds/1955555416970821366/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8563771670213207018&amp;postID=1955555416970821366' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8563771670213207018/posts/default/1955555416970821366'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8563771670213207018/posts/default/1955555416970821366'/><link rel='alternate' type='text/html' href='http://mohitnayyar.blogspot.com/2007/08/sql-formatter-excellent-work-and-really.html' title='SQL Formatter – Excellent work and really useful'/><author><name>Mohit Nayyar</name><uri>http://www.blogger.com/profile/18400035423017397788</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8563771670213207018.post-3000913438490885507</id><published>2007-07-03T07:57:00.001-07:00</published><updated>2007-08-11T10:39:21.476-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server 2008'/><category scheme='http://www.blogger.com/atom/ns#' term='Reporting'/><category scheme='http://www.blogger.com/atom/ns#' term='Business Intelligence'/><category scheme='http://www.blogger.com/atom/ns#' term='MDM'/><category scheme='http://www.blogger.com/atom/ns#' term='Katmai'/><title type='text'>BI and Reporting enhancements in Microsoft SQL Server 2008 "Katmai"</title><content type='html'>&lt;strong&gt;&lt;span style="color:#3366ff;"&gt;Change Data Capture&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;Change Data Capture (&lt;span style="color:#ff6600;"&gt;CDC&lt;/span&gt;) is a really interesting feature in Katmai using which we can focus on specific business requirement to &lt;span style="color:#3366ff;"&gt;capture changed data&lt;/span&gt;. That means this component &lt;span style="color:#ff6600;"&gt;captures all changes asynchronously and then exposes the changes through T-SQL&lt;/span&gt; based on specific requirements.&lt;br /&gt;&lt;br /&gt;The &lt;span style="color:#3366ff;"&gt;provision to capture schema-changes&lt;/span&gt; is also very useful in this component.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#3366ff;"&gt;&lt;strong&gt;Merge SQL Statement&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;Truly fantastic and really useful........&lt;br /&gt;&lt;br /&gt;So how many times you have used "IF EXISTS" to make sure that you insert new row otherwise update the existing row.....yes I am talking about UPSERT...&lt;br /&gt;&lt;br /&gt;This MERGE statement takes care of this scenario and &lt;span style="color:#ff6600;"&gt;check for existing rows to make updates and inserts new rows in the table.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#003333;"&gt;&lt;span style="color:#3366ff;"&gt;MERGE INTO&lt;/span&gt; FactTable F&lt;br /&gt;&lt;span style="color:#3366ff;"&gt;USING&lt;/span&gt; TransactionTable T &lt;span style="color:#3366ff;"&gt;ON&lt;/span&gt; T.OrderID = F.OrderID&lt;br /&gt;&lt;span style="color:#3366ff;"&gt;WHEN MATCHED THEN UPDATE&lt;br /&gt;SET&lt;/span&gt; F.Quantity = T.Quantity&lt;br /&gt;&lt;span style="color:#3366ff;"&gt;WHEN NOT MATCHED THEN INSERT&lt;/span&gt; (OrderID, Quantity)&lt;br /&gt;&lt;span style="color:#3366ff;"&gt;VALUES&lt;/span&gt; (T.OrderID, T.Quantity)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#3366ff;"&gt;&lt;strong&gt;C# support for SSIS scripting components&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#3366ff;"&gt;&lt;strong&gt;Doesn't require IIS for SSRS&lt;/strong&gt;&lt;br /&gt;&lt;/span&gt;Yeah, thats the good part, we &lt;span style="color:#ff6600;"&gt;don't need IIS anymore to load SSRS reports&lt;/span&gt; with SQL Server 2008. This is the best for a developer like me.......&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color:#3366ff;"&gt;Grouping Sets&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;So how many times you have asked by business users to give specific grouping totals, people in sales only ask for product level totals, management looks for employee-product totals for bonus, finance needs total on 10 different things........&lt;br /&gt;&lt;br /&gt;Well now with this new feature we can &lt;span style="color:#ff6600;"&gt;define multiple grouping option within the same query&lt;/span&gt;....that means&lt;span style="color:#3366ff;"&gt; instead of writing multiple group by queries and then combining the result with UNION ALL&lt;/span&gt;, we can have just one query with multiple grouping sets&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color:#3366ff;"&gt;Tablix&lt;/span&gt;&lt;/strong&gt; – This release of SQL Server introduces a new report component called tablix, technically it’s a &lt;span style="color:#ff6600;"&gt;combination of existing table and matrix &lt;/span&gt;in SSRS. We just need to change few basic properties and this will do the job, so no more patchwork required to achieve stacked columns, pivot and more than 1 subtotals.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#3366ff;"&gt;&lt;strong&gt;RDL Object Model&lt;/strong&gt;&lt;/span&gt; – Good news for developers who wants to &lt;span style="color:#ff6600;"&gt;write/extend reports programmatically.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color:#3366ff;"&gt;Dundas RS controls&lt;/span&gt;&lt;/strong&gt; – As we know that Microsoft recently acquired Dundas chart, so this release of &lt;span style="color:#ff6600;"&gt;Reporting Services will contain the full power of dundas&lt;/span&gt;, an absolutely must have in reporting chart world.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color:#3366ff;"&gt;Soft Artisans Office Writer technology &lt;/span&gt;&lt;/strong&gt;– Again, This acquisition will allow users to embed their reports in Microsoft Word and Excel documents. Talk to you manager, he will love this.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color:#3366ff;"&gt;Export to Microsoft Word&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color:#3366ff;"&gt;SSIS Lookup "TxLookup" in SQL Server 2008&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;Microsoft is really working on this component, and now we can &lt;span style="color:#ff6600;"&gt;lookup into any data source, including other SSIS packages&lt;/span&gt;, great news. Along with this TxLookup also works on &lt;span style="color:#ff6600;"&gt;"pre-charge" query, currently we have cache-miss queries&lt;/span&gt; in SQL Server 2005 Integration Services.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color:#3366ff;"&gt;SharePoint user interface to manage SSRS reports&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color:#3366ff;"&gt;Office based report authoring&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;Now we can used report authoring tool, which allow us to &lt;span style="color:#ff6600;"&gt;author our reports using excel or word&lt;/span&gt; based tools. That means we can put tables, formulas, and also apply formatting too.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-size:130%;color:#3366ff;"&gt;FYI - Microsoft entry into MDM world&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;Microsoft have also purchased &lt;a href="http://www.stratature.com/" target="_blank"&gt;Stratature&lt;/a&gt; recently, which provides Master Data Management solutions. MDM solution is really useful and must have for organizations having multiple businesses. Read more on MDM at MSDN &lt;a href="http://msdn2.microsoft.com/en-us/library/bb190163.aspx" target="_blank"&gt;The What, Why, and How of Master Data Management&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8563771670213207018-3000913438490885507?l=mohitnayyar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mohitnayyar.blogspot.com/feeds/3000913438490885507/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8563771670213207018&amp;postID=3000913438490885507' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8563771670213207018/posts/default/3000913438490885507'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8563771670213207018/posts/default/3000913438490885507'/><link rel='alternate' type='text/html' href='http://mohitnayyar.blogspot.com/2007/07/bi-and-reporting-enhancements-in.html' title='BI and Reporting enhancements in Microsoft SQL Server 2008 &quot;Katmai&quot;'/><author><name>Mohit Nayyar</name><uri>http://www.blogger.com/profile/18400035423017397788</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8563771670213207018.post-1879739547579822897</id><published>2007-06-15T13:12:00.000-07:00</published><updated>2007-08-11T10:39:49.739-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Scrum'/><category scheme='http://www.blogger.com/atom/ns#' term='Agile'/><category scheme='http://www.blogger.com/atom/ns#' term='eScrum'/><title type='text'>Agile software development - eScrum by Microsoft</title><content type='html'>Here we have another great news, &lt;span style="color:#3333ff;"&gt;&lt;span style="color:#3366ff;"&gt;Microsoft&lt;/span&gt; &lt;/span&gt;has just release a new tool called &lt;span style="font-size:180%;color:#ff6600;"&gt;eScrum&lt;/span&gt; to &lt;span style="color:#3366ff;"&gt;keep track of all SCRUM related activities in agile software development&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#3366ff;"&gt;eScrum is a web-based, project management tool for SCRUM&lt;/span&gt; which will be the &lt;span style="color:#ff6600;"&gt;part of Microsoft Visual Studio Team Foundation.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;PS: Previously all SCRUM lovers have used an &lt;span style="color:#ff6600;"&gt;offering (add-in) provided by Conchango (UK based consultancy)&lt;/span&gt; to manage SCRUM development, &lt;span style="color:#ff6600;"&gt;which works really well with Microsoft Team System.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Get one &lt;span style="font-size:130%;color:#3366ff;"&gt;FREE&lt;/span&gt; here………&lt;br /&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=55A4BDE6-10A7-4C41-9938-F388C1ED15E9&amp;displaylang=en"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyID=55A4BDE6-10A7-4C41-9938-F388C1ED15E9&amp;amp;displaylang=en&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8563771670213207018-1879739547579822897?l=mohitnayyar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mohitnayyar.blogspot.com/feeds/1879739547579822897/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8563771670213207018&amp;postID=1879739547579822897' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8563771670213207018/posts/default/1879739547579822897'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8563771670213207018/posts/default/1879739547579822897'/><link rel='alternate' type='text/html' href='http://mohitnayyar.blogspot.com/2007/06/agile-software-development-escrum-by.html' title='Agile software development - eScrum by Microsoft'/><author><name>Mohit Nayyar</name><uri>http://www.blogger.com/profile/18400035423017397788</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8563771670213207018.post-2101745835228940463</id><published>2007-06-14T16:51:00.000-07:00</published><updated>2007-08-11T10:40:39.689-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Dimension'/><category scheme='http://www.blogger.com/atom/ns#' term='SSIS'/><title type='text'>T-SQL or Merge JOIN or Lookup to load Dimension data</title><content type='html'>In my recent discussion with a friend we talked about &lt;span style="color:#3366ff;"&gt;loading the data in dimension table&lt;/span&gt;. So being a SQL guy we have &lt;span style="color:#3366ff;"&gt;at least two options available in Microsoft SQL Server 2005&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;So let me first explain the objective behind this.&lt;br /&gt;&lt;br /&gt;We need to &lt;span style="color:#ff6600;"&gt;load only new data in target dimension table&lt;/span&gt;. So we need to &lt;span style="color:#ff6600;"&gt;check if this data exists at the destination, if not then insert this new data&lt;/span&gt; based on the business keys e.g. CustomerCode, ProductCode etc.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;color:#3366ff;"&gt;T-SQL Solution&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#ff6600;"&gt;LEFT / RIGHT JOIN&lt;/span&gt;&lt;br /&gt;Make a join of target table with source table on business keys and then use LEFT or RIGHT join to get only new rows.&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;SELECT&lt;/span&gt; s.CustomerCode, s.CustomerName&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;FROM&lt;/span&gt; SourceTable s&lt;br /&gt;&lt;span style="color:#666666;"&gt;LEFT JOIN&lt;/span&gt; TargetTable t &lt;span style="color:#3333ff;"&gt;ON&lt;/span&gt; (s.CustomerCode = t.CustomerCode)&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;WHERE&lt;/span&gt; t.CustomerCode &lt;span style="color:#666666;"&gt;IS NULL&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;The above solution works fine if you have source and destination databases on the same server, or may be you can use linked server to achieve the same if it's on different servers.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="color:#3366ff;"&gt;SSIS Solution&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Now the standard solution to use LEFT / RIGHT JOINS in SSIS is "&lt;span style="color:#ff6600;"&gt;Merge Join&lt;/span&gt;" &lt;span style="color:#ff6600;"&gt;transformation&lt;/span&gt;, you can do &lt;span style="color:#ff6600;"&gt;precisely the same thing,&lt;/span&gt; it works well even if you have source database in Oracle and target database in Microsoft SQL Server.&lt;br /&gt;&lt;br /&gt;But as we are aware that &lt;span style="color:#3366ff;"&gt;Merge Join expects sorted data&lt;/span&gt;, so if you are planning to sort the data at source system or use SORT transformation in SSIS then it will prove to be a &lt;span style="color:#3366ff;"&gt;costly affair&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Hmm............then what else can I do.........here I present &lt;span style="color:#ff6600;"&gt;&lt;span style="font-size:130%;"&gt;Lookup transformation in SSIS&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Well, generally this component is used to load Fact tables; when you want to load surrogate keys derived from Dimension table into Fact table.&lt;br /&gt;&lt;br /&gt;But we can also "&lt;span style="color:#ff6600;"&gt;Configure Error Output&lt;/span&gt;" for this component....what does that mean........let me explain.....&lt;br /&gt;&lt;br /&gt;Technically we &lt;span style="color:#3366ff;"&gt;map a common field from two tables&lt;/span&gt; in this component and fetch other columns based on this common column data. So &lt;span style="color:#3366ff;"&gt;what if all the data is not available in both of these tables&lt;/span&gt;…..let me explain…&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_QKtchyfJXhY/RnHWLU_a-YI/AAAAAAAAAAM/ltOd62KUatM/s1600-h/Lookup+Transformation.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5076073745124882818" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://3.bp.blogspot.com/_QKtchyfJXhY/RnHWLU_a-YI/AAAAAAAAAAM/ltOd62KUatM/s320/Lookup+Transformation.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Let say we have &lt;span style="color:#3366ff;"&gt;10 rows in source and 5 rows in targ&lt;/span&gt;et.........so by default this &lt;span style="color:#ff6600;"&gt;component will return error because it’s not able to find other 5 rows in target table&lt;/span&gt;................hmmm..........trust me this is really good for us....&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_QKtchyfJXhY/RnHWg0_a-ZI/AAAAAAAAAAU/aZ93H7cGuQc/s1600-h/Lookup+Transformation+Redirect+Row.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5076074114492070290" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://1.bp.blogspot.com/_QKtchyfJXhY/RnHWg0_a-ZI/AAAAAAAAAAU/aZ93H7cGuQc/s320/Lookup+Transformation+Redirect+Row.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Now I can "&lt;span style="color:#ff6600;"&gt;Configure Error Output&lt;/span&gt;" for this component, which will &lt;span style="color:#ff6600;"&gt;redirect the failure rows&lt;/span&gt; and these &lt;span style="color:#3366ff;"&gt;failure redirected rows are the one that we are missing in target&lt;/span&gt;............so we &lt;span style="color:#ff6600;"&gt;achieved the functionality of loading only new rows&lt;/span&gt; in target table.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;p&gt;&lt;p&gt;&lt;p&gt;&lt;p&gt;&lt;p&gt;&lt;p&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;I hope this will be helpful for you as well..........&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8563771670213207018-2101745835228940463?l=mohitnayyar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mohitnayyar.blogspot.com/feeds/2101745835228940463/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8563771670213207018&amp;postID=2101745835228940463' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8563771670213207018/posts/default/2101745835228940463'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8563771670213207018/posts/default/2101745835228940463'/><link rel='alternate' type='text/html' href='http://mohitnayyar.blogspot.com/2007/06/t-sql-or-merge-join-or-lookup-to-load.html' title='T-SQL or Merge JOIN or Lookup to load Dimension data'/><author><name>Mohit Nayyar</name><uri>http://www.blogger.com/profile/18400035423017397788</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_QKtchyfJXhY/RnHWLU_a-YI/AAAAAAAAAAM/ltOd62KUatM/s72-c/Lookup+Transformation.jpg' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8563771670213207018.post-4811647291863304125</id><published>2007-06-13T13:41:00.000-07:00</published><updated>2007-08-11T10:41:11.029-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server 2008'/><category scheme='http://www.blogger.com/atom/ns#' term='LINQ'/><category scheme='http://www.blogger.com/atom/ns#' term='Katmai'/><title type='text'>LINQ &amp; LINQ to Entities in SQL Server 2008 "Katmai"</title><content type='html'>I am very excited with this &lt;span style="color:#3366ff;"&gt;&lt;span style="color:#3366ff;"&gt;new&lt;/span&gt; way to access data&lt;/span&gt; and recently learned something about &lt;span style="color:#3366ff;"&gt;LINQ&lt;/span&gt; and what &lt;span style="color:#3366ff;"&gt;SQL Server 2008 "Katmai"&lt;/span&gt; stores with respect to &lt;span style="color:#3366ff;"&gt;LINQ to Entities&lt;/span&gt; model.&lt;br /&gt;&lt;br /&gt;Let’s have a look to...........&lt;span style="color:#3366ff;"&gt;Language Integrated Query (LINQ)&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Today data can belong to &lt;span style="color:#ff6600;"&gt;different data domains like XML document, database, text file, excel spreadsheet.&lt;/span&gt; So &lt;span style="color:#ff6600;"&gt;various specific data access model&lt;/span&gt; are being used to access data from these sources. Let say XQuery is used to fetch XML data, SQL is used to query RDBMS and a custom code is written to query text files.&lt;br /&gt;&lt;br /&gt;Now &lt;span style="color:#ff6600;"&gt;LINQ tries to resolve these issues&lt;/span&gt; by offering a &lt;span style="color:#3366ff;"&gt;uniform way to access and manage data.&lt;/span&gt; We can also see LINQ as a methodology that &lt;span style="color:#ff6600;"&gt;simplifies and unifies the implementation&lt;/span&gt; of any kind of data access.&lt;br /&gt;&lt;span style="color:#ff6600;"&gt;&lt;br /&gt;LINQ consists of standard query operators&lt;/span&gt; to play with data irrespective of the data sources. So in a way we are on the path to use standard code against any data source like Microsoft SQL Server, Oracle, Access or Sybase. This &lt;span style="color:#ff6600;"&gt;makes developer life really easy&lt;/span&gt;, so there is no need to spend hours in learning various languages (access methods) to work in multiple projects.&lt;br /&gt;&lt;br /&gt;So precisely Microsoft is extending the power of .Net languages specifically C# and Visual Basic.Net to include this kind of functionality named as LINQ. This kind of implementation &lt;span style="color:#3366ff;"&gt;reuses the developer's existing knowledge of Object Oriented programming&lt;/span&gt; to play with databases, XML, objects, and few other data domains.&lt;br /&gt;&lt;span style="color:#3366ff;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:180%;"&gt;&lt;span style="color:#3366ff;"&gt;“Microsoft original motivation behind LINQ was to address the impedance mismatch between programming languages and database.”&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#ff6600;"&gt;LINQ to SQL (previously known as DLINQ), translates LINQ expression into SQL Server queries.&lt;/span&gt; People have already started creating LINQ libraries to query WMI, LDAP, SharePoint data sources.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;color:#cc33cc;"&gt;LINQ to Entities&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;LINQ to Entities is &lt;span style="color:#3366ff;"&gt;supported by latest release of ADO.NET Entity Framework.&lt;/span&gt; The primary benefit of this framework is to &lt;span style="color:#3366ff;"&gt;run C# LINQ queries against a conceptual data model&lt;/span&gt; instead of tables. So LINQ to Entities seems to be a &lt;span style="color:#ff6600;"&gt;superset of DLINQ&lt;/span&gt;. The entity framework provides an additional layer on database schema which is available in terms of entities or conceptual model to query in .Net language.&lt;br /&gt;&lt;br /&gt;That means &lt;span style="color:#3366ff;"&gt;writing something against entity is far more easy&lt;/span&gt; and manageable than writing complex SQL queries.&lt;br /&gt;&lt;br /&gt;var CAEmployee = from employee in Employees where employeeLocation is CaliforniaState select employee;&lt;br /&gt;&lt;br /&gt;Above statement is &lt;span style="color:#ff6600;"&gt;really easy to understand&lt;/span&gt; and I am really not bothered about database schema. What all I know is “employees” and I want to fetch California employees.&lt;br /&gt;&lt;br /&gt;I guess this &lt;span style="font-size:130%;color:#3366ff;"&gt;makes lot of sense&lt;/span&gt; and I really appreciate this work by Microsoft.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8563771670213207018-4811647291863304125?l=mohitnayyar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mohitnayyar.blogspot.com/feeds/4811647291863304125/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8563771670213207018&amp;postID=4811647291863304125' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8563771670213207018/posts/default/4811647291863304125'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8563771670213207018/posts/default/4811647291863304125'/><link rel='alternate' type='text/html' href='http://mohitnayyar.blogspot.com/2007/06/linq-linq-to-entities-in-sql-server.html' title='LINQ &amp; LINQ to Entities in SQL Server 2008 &quot;Katmai&quot;'/><author><name>Mohit Nayyar</name><uri>http://www.blogger.com/profile/18400035423017397788</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8563771670213207018.post-6569584607264789938</id><published>2007-06-05T12:35:00.000-07:00</published><updated>2007-08-11T10:42:14.577-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Scrum'/><category scheme='http://www.blogger.com/atom/ns#' term='Agile'/><category scheme='http://www.blogger.com/atom/ns#' term='Offshore'/><category scheme='http://www.blogger.com/atom/ns#' term='eScrum'/><title type='text'>MSF or SCRUM in Agile Software Development</title><content type='html'>&lt;p&gt;Recently I had long discussion about usage of &lt;span style="color:#3366ff;"&gt;MSF or SCRUM in Agile Software Development&lt;/span&gt;, and I found lots of different opinions on this in the community.&lt;br /&gt;&lt;br /&gt;So first of all I would like to explain &lt;span style="color:#3366ff;"&gt;what agile software development is all about&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#ff6600;"&gt;Manifesto for Agile Software Development&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="color:#006600;"&gt;Individuals and interactions over processes and tools&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="color:#006600;"&gt;Working software over comprehensive documentation&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="color:#006600;"&gt;Customer collaboration over contract negotiation&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="color:#006600;"&gt;Responding to change over following a plan&lt;/span&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;So what's the difference in achieving these using SCRUM or MSF; let’s have a look&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#3366ff;"&gt;SCRUM&lt;/span&gt;&lt;br /&gt;Scrum provides general guidelines to the software development where the key objective is to achieve a set of prioritized shippable features within specific time limits (typically 30 days sprint) by putting primarily focus on team interaction and to adapt fast changing requirement in business process. So scrum is focused on&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#006600;"&gt;1. Team interaction&lt;br /&gt;2. Prioritizing the customer requirement&lt;br /&gt;3. Generating working software in monthly cycles (sprint)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#3366ff;"&gt;Microsoft Solutions Framework (MSF)&lt;/span&gt;&lt;br /&gt;MSF was introduced in 1994 as a combination of best practices and guidelines used within Microsoft product teams and Microsoft's Consulting practice and various other Microsoft internal business divisions. At the core of MSF are nine foundational principles:&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#006600;"&gt;1. Foster open communications&lt;br /&gt;2. Work toward a shared vision&lt;br /&gt;3. Empower team members&lt;br /&gt;4. Establish clear accountability and shared responsibility&lt;br /&gt;5. Deliver incremental value&lt;br /&gt;6. Stay agile, expect and adapt to change&lt;br /&gt;7. Invest in quality&lt;br /&gt;8. Learn from all experiences&lt;br /&gt;9. Partner with customers&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#ff6600;"&gt;We can find similarities in these MSF principles and Scrum objectives&lt;/span&gt;, so what’s the difference. Well as per my discussion with some of the techies who follow Scrum religiously find these issues with MSF&lt;br /&gt;&lt;br /&gt;1. MSF defines work for the team, so it’s missing the self-organizing factor.&lt;br /&gt;2. Incremental units produced using MSF are non-shippable.&lt;br /&gt;3. Its more process oriented, which in-turn slows down the development process.&lt;br /&gt;4. It doesn't support cross-functional behavior within the team.&lt;br /&gt;&lt;br /&gt;On the other hand people familiar with MSF advocates the same using these points&lt;br /&gt;&lt;br /&gt;1. It has a well defined process&lt;br /&gt;2. It works well for big teams and large projects&lt;br /&gt;3. Onsite - Offshore model is more suited to MSF&lt;br /&gt;4. With MSF people not only share responsibility but they also share the common vision, achievable through a defined process&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#3366ff;"&gt;So finally which is good&lt;/span&gt;, well being a consultant&lt;span style="color:#3366ff;"&gt; I will answer "&lt;span style="font-size:180%;"&gt;Depends&lt;/span&gt;"........&lt;/span&gt;Scrum is fast, can give results really early, but I saw few quality issues, doesn't seem to work for large teams or let say large projects. Even sometime producing independent features are also hard, so depends a lot on the project.&lt;br /&gt;&lt;br /&gt;Again, MSF works best in offshore delivery model where the large team shares a common vision to achieve the end result in a well defined manner under agile development. &lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8563771670213207018-6569584607264789938?l=mohitnayyar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mohitnayyar.blogspot.com/feeds/6569584607264789938/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8563771670213207018&amp;postID=6569584607264789938' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8563771670213207018/posts/default/6569584607264789938'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8563771670213207018/posts/default/6569584607264789938'/><link rel='alternate' type='text/html' href='http://mohitnayyar.blogspot.com/2007/06/msf-or-scrum-in-agile-software.html' title='MSF or SCRUM in Agile Software Development'/><author><name>Mohit Nayyar</name><uri>http://www.blogger.com/profile/18400035423017397788</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8563771670213207018.post-8511249275345478947</id><published>2007-06-04T13:56:00.000-07:00</published><updated>2007-08-11T10:42:41.420-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server 2008'/><category scheme='http://www.blogger.com/atom/ns#' term='Katmai'/><title type='text'>Your Data, Any Place, Any Time - SQL Server 2008 "Katmai"</title><content type='html'>&lt;span style="font-family:verdana;"&gt;I guess now I should start writing my blog with the CTP (Community Technology Preview) release of &lt;span style="color:#3366ff;"&gt;SQL Server 2008&lt;/span&gt; code name "&lt;span style="color:#3366ff;"&gt;Katmai&lt;/span&gt;". So let see what we got in this latest release of SQL Server from Microsoft.&lt;br /&gt;&lt;br /&gt;So what Microsoft is calling its new release "&lt;span style="color:#ff0000;"&gt;Your data, any place, any time&lt;/span&gt;"......hmm.......sound good to me....&lt;br /&gt;&lt;br /&gt;The major feature I see in this release is the &lt;span style="color:#3366ff;"&gt;capability to store data in file system&lt;/span&gt; along with existing relational and XML data. This new feature provides the facility to store large binary data in file system, still being a part of database with transactional consistency. So looks like an effective storage model with all database benefits.&lt;br /&gt;&lt;br /&gt;Another interesting feature is working with &lt;span style="color:#3366ff;"&gt;entities instead of tables&lt;/span&gt;. So this new ADO.Net Entity Framework enables developers to work with business entities like "employee" or "student" instead of using tables.&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#3366ff;"&gt;LINQ (Language Integrated Query)&lt;/span&gt; another new feature is very useful with its capability to query the SQL Server in any programming language instead of using SQL to query the database.&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#3366ff;"&gt;Encrypting the whole database&lt;/span&gt; is another enhancement in this release. That means instead of Encrypting a table or column we can encrypt the whole database, log, or data file without making much change in application logic.&lt;br /&gt;&lt;br /&gt;On the same lines &lt;span style="color:#3366ff;"&gt;encryption with third-party key&lt;/span&gt; is also beneficial for regulatory compliance.&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#3366ff;"&gt;Automatic recovery of corrupted data pages&lt;/span&gt; from mirrored server is another important enhancement in this release and the best part of this feature is transparency to end-user.&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#3366ff;"&gt;Resource Governor&lt;/span&gt;, as the name says coming up for the first time with SQL Server 2008. It’s very useful to define the priorities and resource limits, thus getting consistent and predictable performance benefits.&lt;br /&gt;&lt;br /&gt;Go to &lt;a href="http://www.microsoft.com/sql/prodinfo/futureversion/default.mspx"&gt;http://www.microsoft.com/sql/prodinfo/futureversion/default.mspx&lt;/a&gt; to know more about SQL Server 2008.&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8563771670213207018-8511249275345478947?l=mohitnayyar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mohitnayyar.blogspot.com/feeds/8511249275345478947/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8563771670213207018&amp;postID=8511249275345478947' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8563771670213207018/posts/default/8511249275345478947'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8563771670213207018/posts/default/8511249275345478947'/><link rel='alternate' type='text/html' href='http://mohitnayyar.blogspot.com/2007/06/your-data-any-place-any-time-sql-server.html' title='Your Data, Any Place, Any Time - SQL Server 2008 &quot;Katmai&quot;'/><author><name>Mohit Nayyar</name><uri>http://www.blogger.com/profile/18400035423017397788</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
