<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Benjamin Wright-Jones</title><link>http://blogs.msdn.com/b/benjones/</link><description>SQL Server Notes from the Field
(Microsoft Consultancy Services)</description><dc:language>en-GB</dc:language><generator>Telligent Community 5.6.583.19431 (Build: 5.6.583.19431)</generator><item><title>BI Service Applications in SharePoint 2010</title><link>http://blogs.msdn.com/b/benjones/archive/2011/11/29/bi-service-applications-in-sharepoint-2010.aspx</link><pubDate>Tue, 29 Nov 2011 09:29:14 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10242332</guid><dc:creator>superlatch</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/benjones/rsscomments.aspx?WeblogPostID=10242332</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/benjones/commentapi.aspx?WeblogPostID=10242332</wfw:comment><comments>http://blogs.msdn.com/b/benjones/archive/2011/11/29/bi-service-applications-in-sharepoint-2010.aspx#comments</comments><description>&lt;p&gt;One of my colleagues, Chris Bailiss, has written a number of great articles describing how BI service applications authenticate in SharePoint 2010.&amp;#160; If you are interested then head over here to part 1 (link below) now:&lt;/p&gt;  &lt;p&gt;&lt;a title="http://blogs.msdn.com/b/mcsukbi/archive/2011/11/26/bi-service-applications-in-sharepoint-2010-authentication-classic-vs-claims-and-identity-delegation-kerberos-part-1.aspx" href="http://blogs.msdn.com/b/mcsukbi/archive/2011/11/26/bi-service-applications-in-sharepoint-2010-authentication-classic-vs-claims-and-identity-delegation-kerberos-part-1.aspx"&gt;http://blogs.msdn.com/b/mcsukbi/archive/2011/11/26/bi-service-applications-in-sharepoint-2010-authentication-classic-vs-claims-and-identity-delegation-kerberos-part-1.aspx&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10242332" width="1" height="1"&gt;</description></item><item><title>Two new SQLCAT papers available, Spinlock and Latch Contention</title><link>http://blogs.msdn.com/b/benjones/archive/2011/07/06/two-new-sqlcat-papers-available-spinlock-and-latch-contention.aspx</link><pubDate>Wed, 06 Jul 2011 08:21:41 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10183477</guid><dc:creator>superlatch</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/benjones/rsscomments.aspx?WeblogPostID=10183477</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/benjones/commentapi.aspx?WeblogPostID=10183477</wfw:comment><comments>http://blogs.msdn.com/b/benjones/archive/2011/07/06/two-new-sqlcat-papers-available-spinlock-and-latch-contention.aspx#comments</comments><description>&lt;p&gt;Diagnosing and Resolving Spinlock Contention on SQL Server&lt;/p&gt;  &lt;p&gt;&lt;a href="http://sqlcat.com/whitepapers/archive/2011/07/05/diagnosing-and-resolving-spinlock-contention-on-sql-server.aspx"&gt;http://sqlcat.com/whitepapers/archive/2011/07/05/diagnosing-and-resolving-spinlock-contention-on-sql-server.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Diagnosing and Resolving Latch Contention on SQL Server&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://sqlcat.com/whitepapers/archive/2011/07/05/diagnosing-and-resolving-latch-contention-on-sql-server.aspx"&gt;http://sqlcat.com/whitepapers/archive/2011/07/05/diagnosing-and-resolving-latch-contention-on-sql-server.aspx&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10183477" width="1" height="1"&gt;</description></item><item><title>Whitepaper Alert: Microsoft EDW Architecture, Guidance and Deployment Best Practices</title><link>http://blogs.msdn.com/b/benjones/archive/2011/05/06/whitepaper-alert-microsoft-edw-architecture-guidance-and-deployment-best-practices.aspx</link><pubDate>Fri, 06 May 2011 12:49:55 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10161773</guid><dc:creator>superlatch</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/benjones/rsscomments.aspx?WeblogPostID=10161773</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/benjones/commentapi.aspx?WeblogPostID=10161773</wfw:comment><comments>http://blogs.msdn.com/b/benjones/archive/2011/05/06/whitepaper-alert-microsoft-edw-architecture-guidance-and-deployment-best-practices.aspx#comments</comments><description>&lt;p&gt;&lt;a title="http://msdn.microsoft.com/en-us/library/hh147624.aspx" href="http://msdn.microsoft.com/en-us/library/hh147624.aspx"&gt;http://msdn.microsoft.com/en-us/library/hh147624.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-37-55-metablogapi/8306.image_5F00_2F5AE1A7.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-37-55-metablogapi/8780.image_5F00_thumb_5F00_22BD0EBE.png" width="530" height="107" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10161773" width="1" height="1"&gt;</description></item><item><title>Creating custom reports against the System Center Operations Manager 2007 R2 data warehouse</title><link>http://blogs.msdn.com/b/benjones/archive/2011/01/24/creating-custom-reports-against-the-system-center-operations-manager-2007-r2-data-warehouse.aspx</link><pubDate>Mon, 24 Jan 2011 17:31:32 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10119506</guid><dc:creator>superlatch</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/benjones/rsscomments.aspx?WeblogPostID=10119506</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/benjones/commentapi.aspx?WeblogPostID=10119506</wfw:comment><comments>http://blogs.msdn.com/b/benjones/archive/2011/01/24/creating-custom-reports-against-the-system-center-operations-manager-2007-r2-data-warehouse.aspx#comments</comments><description>&lt;p&gt;It is possible to create custom reports, using SQL Server 2008 Reporting Services, against the System Center 2007 R2 data warehouse.&amp;#160; &lt;/p&gt;  &lt;p&gt;Reports can be designed in SQL Server 2008 Reporting Services to provide the end user with a better representation of the data since the built-in System Center reports are not ideal.&amp;#160; &lt;/p&gt;  &lt;p&gt;Fortunately the OperationsManagerDW database schema is documented on MSDN &lt;a title="http://technet.microsoft.com/en-us/library/gg508713.aspx" href="http://technet.microsoft.com/en-us/library/gg508713.aspx"&gt;http://technet.microsoft.com/en-us/library/gg508713.aspx&lt;/a&gt; along with code samples which makes the task of creating a custom report a little easier.&amp;#160; &lt;/p&gt;  &lt;p&gt;Stored procedures were implemented to return the data from the OperationsManagerDW schema.&amp;#160; I prefer this approach as it provides more control over the code rather than embedding logic in the report itself.&amp;#160; Incidentally, the stored procedures were hosted in a separate database to avoid support issues embedding these in OperationsManagerDW database.&lt;/p&gt;  &lt;p&gt;An example of the stored procedure logic to query the OperationsManagerDW is below:&lt;/p&gt;  &lt;div style="border-bottom: silver 1px solid; text-align: left; border-left: silver 1px solid; padding-bottom: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; padding-left: 4px; width: 97.5%; padding-right: 4px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; max-height: 200px; font-size: 8pt; overflow: auto; border-top: silver 1px solid; cursor: text; border-right: silver 1px solid; padding-top: 4px" id="codeSnippetWrapper"&gt;   &lt;div style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;     &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum1"&gt;   1:&lt;/span&gt; &lt;span style="color: #008000"&gt;/********************************************************************************************&lt;/span&gt;&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum2"&gt;   2:&lt;/span&gt; &lt;span style="color: #008000"&gt; *&lt;/span&gt;&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum3"&gt;   3:&lt;/span&gt; &lt;span style="color: #008000"&gt; *    (c) Microsoft 2010  All rights reserved&lt;/span&gt;&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum4"&gt;   4:&lt;/span&gt; &lt;span style="color: #008000"&gt; *&lt;/span&gt;&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum5"&gt;   5:&lt;/span&gt; &lt;span style="color: #008000"&gt; *    The code contained in this file is provided &amp;quot;as is&amp;quot; without any warranty of any kind.&lt;/span&gt;&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum6"&gt;   6:&lt;/span&gt; &lt;span style="color: #008000"&gt; *    The code is for reference purposes only and must not be relied on in connection with &lt;/span&gt;&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum7"&gt;   7:&lt;/span&gt; &lt;span style="color: #008000"&gt; *    any operational purposes.&lt;/span&gt;&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum8"&gt;   8:&lt;/span&gt; &lt;span style="color: #008000"&gt; *    Please refer to the terms and conditions which cover the provision of consulting&lt;/span&gt;&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum9"&gt;   9:&lt;/span&gt; &lt;span style="color: #008000"&gt; *    services to you.&lt;/span&gt;&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum10"&gt;  10:&lt;/span&gt; &lt;span style="color: #008000"&gt; *&lt;/span&gt;&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum11"&gt;  11:&lt;/span&gt; &lt;span style="color: #008000"&gt; ********************************************************************************************&lt;/span&gt;&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum12"&gt;  12:&lt;/span&gt; &lt;span style="color: #008000"&gt; *&lt;/span&gt;&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum13"&gt;  13:&lt;/span&gt; &lt;span style="color: #008000"&gt; *          The following parameters are required:&lt;/span&gt;&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum14"&gt;  14:&lt;/span&gt; &lt;span style="color: #008000"&gt; *          pSlot            (nvarchar, 255)&lt;/span&gt;&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum15"&gt;  15:&lt;/span&gt; &lt;span style="color: #008000"&gt; *            pCurrentDate    (datetime)&lt;/span&gt;&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum16"&gt;  16:&lt;/span&gt; &lt;span style="color: #008000"&gt; *&lt;/span&gt;&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum17"&gt;  17:&lt;/span&gt; &lt;span style="color: #008000"&gt; ********************************************************************************************&lt;/span&gt;&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum18"&gt;  18:&lt;/span&gt; &lt;span style="color: #008000"&gt; *&lt;/span&gt;&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum19"&gt;  19:&lt;/span&gt; &lt;span style="color: #008000"&gt; *          Stored Procedure Creation Script&lt;/span&gt;&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum20"&gt;  20:&lt;/span&gt; &lt;span style="color: #008000"&gt; *          [usp_ReportPerfCounterHealth]&lt;/span&gt;&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum21"&gt;  21:&lt;/span&gt; &lt;span style="color: #008000"&gt; *&lt;/span&gt;&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum22"&gt;  22:&lt;/span&gt; &lt;span style="color: #008000"&gt; *===========================================================================================&lt;/span&gt;&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum23"&gt;  23:&lt;/span&gt; &lt;span style="color: #008000"&gt; * Modification History&lt;/span&gt;&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum24"&gt;  24:&lt;/span&gt; &lt;span style="color: #008000"&gt; *-------------------------------------------------------------------------------------------&lt;/span&gt;&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum25"&gt;  25:&lt;/span&gt; &lt;span style="color: #008000"&gt; * Verion    Date        Author                Description&lt;/span&gt;&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum26"&gt;  26:&lt;/span&gt; &lt;span style="color: #008000"&gt; *-------------------------------------------------------------------------------------------&lt;/span&gt;&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum27"&gt;  27:&lt;/span&gt; &lt;span style="color: #008000"&gt; * 01.00.00  10/01/2011  B Wright-Jones        Created&lt;/span&gt;&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum28"&gt;  28:&lt;/span&gt; &lt;span style="color: #008000"&gt; ********************************************************************************************/&lt;/span&gt;&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum29"&gt;  29:&lt;/span&gt;  &lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum30"&gt;  30:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;CREATE&lt;/span&gt; &lt;span style="color: #0000ff"&gt;PROCEDURE&lt;/span&gt; [&lt;span style="color: #0000ff"&gt;Schema&lt;/span&gt;].[usp_ReportPerfCounterHealth]&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum31"&gt;  31:&lt;/span&gt;     @pSlot nvarchar(255), &lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum32"&gt;  32:&lt;/span&gt;     @pCurrentDate datetime&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum33"&gt;  33:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;AS&lt;/span&gt;&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum34"&gt;  34:&lt;/span&gt;&amp;#160; &lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum35"&gt;  35:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;SET&lt;/span&gt; NOCOUNT &lt;span style="color: #0000ff"&gt;ON&lt;/span&gt;;&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum36"&gt;  36:&lt;/span&gt;&amp;#160; &lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum37"&gt;  37:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;SELECT&lt;/span&gt;    &lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum38"&gt;  38:&lt;/span&gt;             [vME].[&lt;span style="color: #0000ff"&gt;Path&lt;/span&gt;] &lt;span style="color: #0000ff"&gt;AS&lt;/span&gt; [ServerName], &lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum39"&gt;  39:&lt;/span&gt;             [vPR].[ObjectName], &lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum40"&gt;  40:&lt;/span&gt;             [vPR].[CounterName], &lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum41"&gt;  41:&lt;/span&gt;             [vPRI].[InstanceName], &lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum42"&gt;  42:&lt;/span&gt;             &lt;span style="color: #0000ff"&gt;AVG&lt;/span&gt;(SampleValue) &lt;span style="color: #0000ff"&gt;AS&lt;/span&gt; Average, &lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum43"&gt;  43:&lt;/span&gt;             &lt;span style="color: #0000ff"&gt;MIN&lt;/span&gt;(SampleValue) &lt;span style="color: #0000ff"&gt;AS&lt;/span&gt; Minimum, &lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum44"&gt;  44:&lt;/span&gt;             &lt;span style="color: #0000ff"&gt;MAX&lt;/span&gt;(SampleValue) &lt;span style="color: #0000ff"&gt;AS&lt;/span&gt; Maximum,&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum45"&gt;  45:&lt;/span&gt;             &lt;span style="color: #0000ff"&gt;SUM&lt;/span&gt;(SampleValue) &lt;span style="color: #0000ff"&gt;AS&lt;/span&gt; SumOfValue&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum46"&gt;  46:&lt;/span&gt;             &lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum47"&gt;  47:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;FROM&lt;/span&gt;&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum48"&gt;  48:&lt;/span&gt;             [dbo].[vPerformanceRule] vPR&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum49"&gt;  49:&lt;/span&gt;             &lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum50"&gt;  50:&lt;/span&gt;             &lt;span style="color: #0000ff"&gt;INNER&lt;/span&gt; &lt;span style="color: #0000ff"&gt;JOIN&lt;/span&gt;    [dbo].[vPerformanceRuleInstance] vPRI &lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum51"&gt;  51:&lt;/span&gt;             &lt;span style="color: #0000ff"&gt;ON&lt;/span&gt;            vPR.[RuleRowId] = vPRI.[RuleRowId]&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum52"&gt;  52:&lt;/span&gt;             &lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum53"&gt;  53:&lt;/span&gt;             &lt;span style="color: #0000ff"&gt;INNER&lt;/span&gt; &lt;span style="color: #0000ff"&gt;JOIN&lt;/span&gt;    [Perf].[vPerfRaw] vPRW&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum54"&gt;  54:&lt;/span&gt;             &lt;span style="color: #0000ff"&gt;ON&lt;/span&gt;            [vPRI].[PerformanceRuleInstanceRowId] = [vPRW].[PerformanceRuleInstanceRowId] &lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum55"&gt;  55:&lt;/span&gt;             &lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum56"&gt;  56:&lt;/span&gt;             &lt;span style="color: #0000ff"&gt;INNER&lt;/span&gt; &lt;span style="color: #0000ff"&gt;JOIN&lt;/span&gt;    [dbo].[ManagedEntity] vME&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum57"&gt;  57:&lt;/span&gt;             &lt;span style="color: #0000ff"&gt;ON&lt;/span&gt;            [vPRW].[ManagedEntityRowId] = [vME].[ManagedEntityRowId] &lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum58"&gt;  58:&lt;/span&gt;                 &lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum59"&gt;  59:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;WHERE&lt;/span&gt;&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum60"&gt;  60:&lt;/span&gt;             [vPRW].[DateTime] &lt;span style="color: #0000ff"&gt;BETWEEN&lt;/span&gt; DATEADD(Hh, -24, @pCurrentDate) &lt;span style="color: #0000ff"&gt;AND&lt;/span&gt; @pCurrentDate            &lt;span style="color: #008000"&gt;-- Filter for the last 24 hours&lt;/span&gt;&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum61"&gt;  61:&lt;/span&gt;             &lt;span style="color: #0000ff"&gt;AND&lt;/span&gt; vPR.[CounterName] = &lt;span style="color: #006080"&gt;'&amp;lt;Performance Counter goes here&amp;gt;'&lt;/span&gt;                            &lt;span style="color: #008000"&gt;-- Filter for the specific performance monitor counter&lt;/span&gt;&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum62"&gt;  62:&lt;/span&gt;             &lt;span style="color: #0000ff"&gt;AND&lt;/span&gt; vPRI.[InstanceName] = &lt;span style="color: #006080"&gt;'&amp;lt;Instance goes here&amp;gt;'&lt;/span&gt;                                    &lt;span style="color: #008000"&gt;-- Filter for the specific slot&lt;/span&gt;&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum63"&gt;  63:&lt;/span&gt;&amp;#160; &lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum64"&gt;  64:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;GROUP&lt;/span&gt; &lt;span style="color: #0000ff"&gt;BY&lt;/span&gt;&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum65"&gt;  65:&lt;/span&gt;             [vME].[&lt;span style="color: #0000ff"&gt;Path&lt;/span&gt;], [vPR].[ObjectName], [vPR].[CounterName], [vPRI].[InstanceName];        &lt;/pre&gt;
&lt;!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;The design time report is shown below.&amp;#160; The line graph shows specific counter values over the period of a month e.g. processor utilisation, web service requests etc. whereas the tablix controls display critical events, uptime, hits and so on for each server in the farm.&amp;#160; &lt;/p&gt;

&lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-37-55-metablogapi/6683.image_5F00_43062A4C.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: ; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-37-55-metablogapi/0333.image_5F00_thumb_5F00_660675EF.png" width="511" height="458" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A datetime parameter was implemented in order to allow the user to select a date from the calendar control&lt;/p&gt;

&lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-37-55-metablogapi/4540.image_5F00_7B347B97.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: ; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-37-55-metablogapi/6177.image_5F00_thumb_5F00_7983AFC3.png" width="290" height="251" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The uptime field displays the result of a custom counter which is the number of seconds since the service was started.&amp;#160; I implemented a vb function (shown below) on the report body to transform this into days, hours, minutes which is more readable for the end user.&amp;#160; &lt;/p&gt;

&lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-37-55-metablogapi/1781.image_5F00_5341566B.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: ; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-37-55-metablogapi/1781.image_5F00_thumb_5F00_1C17C872.png" width="514" height="253" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The expression references the custom code using the following syntax:&lt;/p&gt;

&lt;p&gt;&lt;font face="Consolas"&gt;=Code.SecondsToText(Fields!AppPoolUpTimeSec.Value)&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;The Visual Basic function to format the seconds as days, hours, minutes is below:&lt;/p&gt;

&lt;div style="border-bottom: silver 1px solid; text-align: left; border-left: silver 1px solid; padding-bottom: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; padding-left: 4px; width: 97.5%; padding-right: 4px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; max-height: 200px; font-size: 8pt; overflow: auto; border-top: silver 1px solid; cursor: text; border-right: silver 1px solid; padding-top: 4px" id="codeSnippetWrapper"&gt;
  &lt;div style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;
    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum1"&gt;   1:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Function&lt;/span&gt; SecondsToText(Seconds) &lt;span style="color: #0000ff"&gt;As&lt;/span&gt; &lt;span style="color: #0000ff"&gt;String&lt;/span&gt;&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum2"&gt;   2:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Dim&lt;/span&gt; bAddComma &lt;span style="color: #0000ff"&gt;As&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Boolean&lt;/span&gt;&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum3"&gt;   3:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Dim&lt;/span&gt; Result &lt;span style="color: #0000ff"&gt;As&lt;/span&gt; &lt;span style="color: #0000ff"&gt;String&lt;/span&gt;&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum4"&gt;   4:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Dim&lt;/span&gt; sTemp &lt;span style="color: #0000ff"&gt;As&lt;/span&gt; &lt;span style="color: #0000ff"&gt;String&lt;/span&gt;&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum5"&gt;   5:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Dim&lt;/span&gt; days &lt;span style="color: #0000ff"&gt;As&lt;/span&gt; &lt;span style="color: #0000ff"&gt;String&lt;/span&gt;&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum6"&gt;   6:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Dim&lt;/span&gt; hours &lt;span style="color: #0000ff"&gt;As&lt;/span&gt; &lt;span style="color: #0000ff"&gt;String&lt;/span&gt;&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum7"&gt;   7:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Dim&lt;/span&gt; minutes &lt;span style="color: #0000ff"&gt;As&lt;/span&gt; &lt;span style="color: #0000ff"&gt;String&lt;/span&gt;&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum8"&gt;   8:&lt;/span&gt;&amp;#160; &lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum9"&gt;   9:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;If&lt;/span&gt; Seconds &amp;lt;= 0 &lt;span style="color: #0000ff"&gt;Or&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Not&lt;/span&gt; IsNumeric(Seconds) &lt;span style="color: #0000ff"&gt;Then&lt;/span&gt; &lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum10"&gt;  10:&lt;/span&gt;      SecondsToText = &lt;span style="color: #006080"&gt;&amp;quot;0 seconds&amp;quot;&lt;/span&gt;&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum11"&gt;  11:&lt;/span&gt;      &lt;span style="color: #0000ff"&gt;Exit&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Function&lt;/span&gt;&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum12"&gt;  12:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;End&lt;/span&gt; &lt;span style="color: #0000ff"&gt;If&lt;/span&gt;&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum13"&gt;  13:&lt;/span&gt;&amp;#160; &lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum14"&gt;  14:&lt;/span&gt; Seconds = Fix(Seconds)&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum15"&gt;  15:&lt;/span&gt;&amp;#160; &lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum16"&gt;  16:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;If&lt;/span&gt; Seconds &amp;gt;= 86400 &lt;span style="color: #0000ff"&gt;Then&lt;/span&gt;&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum17"&gt;  17:&lt;/span&gt;   days = Fix(Seconds / 86400)&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum18"&gt;  18:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Else&lt;/span&gt;&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum19"&gt;  19:&lt;/span&gt;   days = 0&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum20"&gt;  20:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;End&lt;/span&gt; &lt;span style="color: #0000ff"&gt;If&lt;/span&gt;&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum21"&gt;  21:&lt;/span&gt;&amp;#160; &lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum22"&gt;  22:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;If&lt;/span&gt; Seconds - (days * 86400) &amp;gt;= 3600 &lt;span style="color: #0000ff"&gt;Then&lt;/span&gt;&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum23"&gt;  23:&lt;/span&gt;   hours = Fix((Seconds - (days * 86400)) / 3600)&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum24"&gt;  24:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Else&lt;/span&gt;&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum25"&gt;  25:&lt;/span&gt;   hours = 0&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum26"&gt;  26:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;End&lt;/span&gt; &lt;span style="color: #0000ff"&gt;If&lt;/span&gt;&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum27"&gt;  27:&lt;/span&gt;&amp;#160; &lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum28"&gt;  28:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;If&lt;/span&gt; Seconds - (hours * 3600) - (days * 86400) &amp;gt;= 60 &lt;span style="color: #0000ff"&gt;Then&lt;/span&gt;&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum29"&gt;  29:&lt;/span&gt;  minutes = Fix((Seconds - (hours * 3600) - (days * 86400)) / 60)&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum30"&gt;  30:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Else&lt;/span&gt;&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum31"&gt;  31:&lt;/span&gt;  minutes = 0&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum32"&gt;  32:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;End&lt;/span&gt; &lt;span style="color: #0000ff"&gt;If&lt;/span&gt;&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum33"&gt;  33:&lt;/span&gt;&amp;#160; &lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum34"&gt;  34:&lt;/span&gt; Seconds = Seconds - (minutes * 60) - (hours * 3600) - _&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum35"&gt;  35:&lt;/span&gt;    (days * 86400)&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum36"&gt;  36:&lt;/span&gt;&amp;#160; &lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum37"&gt;  37:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;If&lt;/span&gt; Seconds &amp;gt; 0 &lt;span style="color: #0000ff"&gt;Then&lt;/span&gt; Result = Seconds &amp;amp; &lt;span style="color: #006080"&gt;&amp;quot; second&amp;quot;&lt;/span&gt; &amp;amp; AutoS(Seconds)&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum38"&gt;  38:&lt;/span&gt;&amp;#160; &lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum39"&gt;  39:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;If&lt;/span&gt; minutes &amp;gt; 0 &lt;span style="color: #0000ff"&gt;Then&lt;/span&gt;&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum40"&gt;  40:&lt;/span&gt;     bAddComma = Result &amp;lt;&amp;gt; &lt;span style="color: #006080"&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum41"&gt;  41:&lt;/span&gt;     &lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum42"&gt;  42:&lt;/span&gt;     sTemp = minutes &amp;amp; &lt;span style="color: #006080"&gt;&amp;quot; minute&amp;quot;&lt;/span&gt; &amp;amp; AutoS(minutes)&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum43"&gt;  43:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;If&lt;/span&gt; bAddComma &lt;span style="color: #0000ff"&gt;Then&lt;/span&gt; sTemp = sTemp &amp;amp; &lt;span style="color: #006080"&gt;&amp;quot;, &amp;quot;&lt;/span&gt;&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum44"&gt;  44:&lt;/span&gt;     Result = sTemp &amp;amp; Result&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum45"&gt;  45:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;End&lt;/span&gt; &lt;span style="color: #0000ff"&gt;If&lt;/span&gt;&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum46"&gt;  46:&lt;/span&gt;&amp;#160; &lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum47"&gt;  47:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;If&lt;/span&gt; hours &amp;gt; 0 &lt;span style="color: #0000ff"&gt;Then&lt;/span&gt;&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum48"&gt;  48:&lt;/span&gt;     bAddComma = Result &amp;lt;&amp;gt; &lt;span style="color: #006080"&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum49"&gt;  49:&lt;/span&gt;     &lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum50"&gt;  50:&lt;/span&gt;     sTemp = hours &amp;amp; &lt;span style="color: #006080"&gt;&amp;quot; hour&amp;quot;&lt;/span&gt; &amp;amp; AutoS(hours)&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum51"&gt;  51:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;If&lt;/span&gt; bAddComma &lt;span style="color: #0000ff"&gt;Then&lt;/span&gt; sTemp = sTemp &amp;amp; &lt;span style="color: #006080"&gt;&amp;quot;, &amp;quot;&lt;/span&gt;&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum52"&gt;  52:&lt;/span&gt;     Result = sTemp &amp;amp; Result&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum53"&gt;  53:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;End&lt;/span&gt; &lt;span style="color: #0000ff"&gt;If&lt;/span&gt;&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum54"&gt;  54:&lt;/span&gt;&amp;#160; &lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum55"&gt;  55:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;If&lt;/span&gt; days &amp;gt; 0 &lt;span style="color: #0000ff"&gt;Then&lt;/span&gt;&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum56"&gt;  56:&lt;/span&gt;     bAddComma = Result &amp;lt;&amp;gt; &lt;span style="color: #006080"&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum57"&gt;  57:&lt;/span&gt;     sTemp = days &amp;amp; &lt;span style="color: #006080"&gt;&amp;quot; day&amp;quot;&lt;/span&gt; &amp;amp; AutoS(days)&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum58"&gt;  58:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;If&lt;/span&gt; bAddComma &lt;span style="color: #0000ff"&gt;Then&lt;/span&gt; sTemp = sTemp &amp;amp; &lt;span style="color: #006080"&gt;&amp;quot;, &amp;quot;&lt;/span&gt;&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum59"&gt;  59:&lt;/span&gt;     Result = sTemp &amp;amp; Result&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum60"&gt;  60:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;End&lt;/span&gt; &lt;span style="color: #0000ff"&gt;If&lt;/span&gt;&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum61"&gt;  61:&lt;/span&gt;&amp;#160; &lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum62"&gt;  62:&lt;/span&gt; SecondsToText = Result&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum63"&gt;  63:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;End&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Function&lt;/span&gt;&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum64"&gt;  64:&lt;/span&gt;&amp;#160; &lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum65"&gt;  65:&lt;/span&gt;&amp;#160; &lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum66"&gt;  66:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Function&lt;/span&gt; AutoS(Number)&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum67"&gt;  67:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;If&lt;/span&gt; Number = 1 &lt;span style="color: #0000ff"&gt;Then&lt;/span&gt; AutoS = &lt;span style="color: #006080"&gt;&amp;quot;&amp;quot;&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Else&lt;/span&gt; AutoS = &lt;span style="color: #006080"&gt;&amp;quot;s&amp;quot;&lt;/span&gt;&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum68"&gt;  68:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;End&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Function&lt;/span&gt;&lt;/pre&gt;
&lt;!--crlf--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum69"&gt;  69:&lt;/span&gt;&amp;#160; &lt;/pre&gt;
&lt;!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/!--crlf--&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;The report can be executed directly by passing parameters in the URL as documented here &lt;a title="http://msdn.microsoft.com/en-us/library/ms155391(v=SQL.100).aspx" href="http://msdn.microsoft.com/en-us/library/ms155391(v=SQL.100).aspx"&gt;http://msdn.microsoft.com/en-us/library/ms155391(v=SQL.100).aspx&lt;/a&gt;.&amp;#160; This was useful to test the report execution.&amp;#160; &lt;font face="Consolas"&gt;&lt;font face="Segoe UI"&gt;I used two parameters, an example of this URL structure is shown below:&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font face="Consolas"&gt;&amp;amp;rs:Command=Render&amp;amp;pName=Test&amp;amp;pDate=11/01/2011&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;This can be achieved both in native and SharePoint integrated mode.&amp;#160; &lt;/p&gt;

&lt;p&gt;The fact that the OperationsManagerDW schema is documented has made the whole process of creating a custom report a lot easier and the flexibility of Reporting Services provides a better representation of the data to the end-user.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10119506" width="1" height="1"&gt;</description></item><item><title>Using SQL Server 2008 R2 Best Practice Analyzer against Analysis Services</title><link>http://blogs.msdn.com/b/benjones/archive/2010/10/04/using-sql-server-2008-r2-best-practice-analyzer-against-analysis-services.aspx</link><pubDate>Mon, 04 Oct 2010 19:51:36 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10071347</guid><dc:creator>superlatch</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/benjones/rsscomments.aspx?WeblogPostID=10071347</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/benjones/commentapi.aspx?WeblogPostID=10071347</wfw:comment><comments>http://blogs.msdn.com/b/benjones/archive/2010/10/04/using-sql-server-2008-r2-best-practice-analyzer-against-analysis-services.aspx#comments</comments><description>&lt;p&gt;SQL Server 2008 R2 BPA is an excellent and often under-used, tool.&amp;#160;&amp;#160; The title is a little misleading but it does work against SQL Server 2008 instances, not just R2 instances.&lt;/p&gt;  &lt;p&gt;I recently had the chance to use BPA against SQL Server 2008 Analysis Services.&amp;#160; SQL Browser is disabled by default.&lt;/p&gt;  &lt;p&gt;I entered the server\instance with the port number and ran the BPA tool only to be told that the incorrect SQL Server version was in use.&amp;#160; Very strange.&amp;#160; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-37-55-metablogapi/5684.clip_5F00_image001_5F00_1314ED2F.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: ; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="clip_image001" border="0" alt="clip_image001" src="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-37-55-metablogapi/1563.clip_5F00_image001_5F00_thumb_5F00_34B11600.jpg" width="460" height="169" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;I checked PowerShell 2.0 was installed.&amp;#160;&amp;#160; I also had administrative permissions on both the OS and SSAS instance.&lt;/p&gt;  &lt;p&gt;It turns out that the SQL Server Browser service must be running in order to discover the instance.&amp;#160; This is now filed as a bug which should hopefully be fixed in the next release.&amp;#160; &lt;/p&gt;  &lt;p&gt;The output of BPA is really useful and the rules point to knowledge base articles&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-37-55-metablogapi/0407.image_5F00_32941737.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: ; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-37-55-metablogapi/0474.image_5F00_thumb_5F00_52FB0B4F.png" width="530" height="478" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10071347" width="1" height="1"&gt;</description></item><item><title>Debugging Parameters in the SSIS Data Flow (Script Component)</title><link>http://blogs.msdn.com/b/benjones/archive/2010/10/04/debugging-parameters-in-the-ssis-data-flow-script-component.aspx</link><pubDate>Mon, 04 Oct 2010 19:38:23 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10071343</guid><dc:creator>superlatch</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/benjones/rsscomments.aspx?WeblogPostID=10071343</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/benjones/commentapi.aspx?WeblogPostID=10071343</wfw:comment><comments>http://blogs.msdn.com/b/benjones/archive/2010/10/04/debugging-parameters-in-the-ssis-data-flow-script-component.aspx#comments</comments><description>&lt;p&gt;I had unfortunately picked up the (bad) habit of debugging my SSIS packages by using messagebox.show at design time.&amp;#160; The SSIS data flow Script component does not allow debugging using this approach so I had to find an alternative.&amp;#160; I discovered that it is possible to output parameters at design time using the FireInformation in the Script component.&amp;#160; This puts the parameters in the progress window.&lt;/p&gt;  &lt;pre class="csharpcode"&gt;&lt;font size="1"&gt;&lt;span class="rem"&gt;// Output parameters into the SSIS progress window&lt;/span&gt;
&lt;span class="kwrd"&gt;bool&lt;/span&gt; FireAgain = &lt;span class="kwrd"&gt;true&lt;/span&gt;;
&lt;span class="kwrd"&gt;this&lt;/span&gt;.ComponentMetaData.FireInformation(0, &lt;span class="str"&gt;&amp;quot;DataFlowDebug&amp;quot;&lt;/span&gt;, &lt;span class="str"&gt;&amp;quot;The value of time is &amp;quot;&lt;/span&gt; + Row.ParamValueTime.ToString(), &lt;span class="str"&gt;&amp;quot;&amp;quot;&lt;/span&gt;, 0, &lt;span class="kwrd"&gt;ref&lt;/span&gt; FireAgain);
&lt;span class="kwrd"&gt;this&lt;/span&gt;.ComponentMetaData.FireInformation(0, &lt;span class="str"&gt;&amp;quot;DataFlowDebug&amp;quot;&lt;/span&gt;, &lt;span class="str"&gt;&amp;quot;The value of environment is &amp;quot;&lt;/span&gt; + Row.ParamValueEnvironment.ToString(), &lt;span class="str"&gt;&amp;quot;&amp;quot;&lt;/span&gt;, 0, &lt;span class="kwrd"&gt;ref&lt;/span&gt; FireAgain);&lt;/font&gt;&lt;/pre&gt;


&lt;p&gt;I like this approach although I should probably output the parameters to one of the other console windows. &lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10071343" width="1" height="1"&gt;</description></item><item><title>Editing XML using PowerShell</title><link>http://blogs.msdn.com/b/benjones/archive/2010/07/14/editing-xml-using-powershell.aspx</link><pubDate>Wed, 14 Jul 2010 09:08:56 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10038011</guid><dc:creator>superlatch</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/benjones/rsscomments.aspx?WeblogPostID=10038011</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/benjones/commentapi.aspx?WeblogPostID=10038011</wfw:comment><comments>http://blogs.msdn.com/b/benjones/archive/2010/07/14/editing-xml-using-powershell.aspx#comments</comments><description>&lt;p&gt;I recently had a requirement to edit an XML document using PowerShell&amp;#160; Fortunately, this is a relatively easy task as shown below.&amp;#160; I’ve used a system environment variable %USERPROFILE% to populate the path to the file.&lt;/p&gt;  &lt;p&gt;The script modifies a value in the XML document (highlighted in the example below) and ensures this is persisted using the .Save method.&amp;#160; The intention is to execute this script during user logon to ensure the value is always disabled in the application, ProClarity Web Professional 6.3 SP3. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-37-55-metablogapi/5826.clip_5F00_image002_5F00_1F400BF1.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image002" border="0" alt="clip_image002" src="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-37-55-metablogapi/5037.clip_5F00_image002_5F00_thumb_5F00_5A23EC62.jpg" width="544" height="90" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Consolas"&gt;REM Code changes CheckQuerySize=”Yes” to CheckQuerySize=”No”&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Consolas"&gt;REM Windows XP      &lt;br /&gt;$xmlFile = “$env:userprofile\Application Data\ProClarity\Client\Options.xml”       &lt;br /&gt;$xmlDoc = [XML](gc $xmlFile)       &lt;br /&gt;$xmldoc.ProClarity5Options.ProClarityApp.CheckQuerySize = &amp;quot;No&amp;quot;       &lt;br /&gt;$xmldoc.Save($xmlFile)&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Consolas"&gt;REM Windows Vista and Windows 7      &lt;br /&gt;$xmlFile = “$env:userprofile\AppData\Roaming\ProClarity\Client\Options.xml”       &lt;br /&gt;$xmlDoc = [XML](gc $xmlFile)       &lt;br /&gt;$xmldoc.ProClarity5Options.ProClarityApp.CheckQuerySize = &amp;quot;No&amp;quot;       &lt;br /&gt;$xmldoc.Save($xmlFile)&lt;/font&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10038011" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/benjones/archive/tags/Non_2D00_SQL/">Non-SQL</category><category domain="http://blogs.msdn.com/b/benjones/archive/tags/development/">development</category><category domain="http://blogs.msdn.com/b/benjones/archive/tags/XML/">XML</category><category domain="http://blogs.msdn.com/b/benjones/archive/tags/deployment/">deployment</category></item><item><title>SQL Server 2008 Service Pack 2 CTP</title><link>http://blogs.msdn.com/b/benjones/archive/2010/07/08/sql-server-2008-service-pack-2-ctp.aspx</link><pubDate>Thu, 08 Jul 2010 07:21:05 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10035772</guid><dc:creator>superlatch</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/benjones/rsscomments.aspx?WeblogPostID=10035772</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/benjones/commentapi.aspx?WeblogPostID=10035772</wfw:comment><comments>http://blogs.msdn.com/b/benjones/archive/2010/07/08/sql-server-2008-service-pack-2-ctp.aspx#comments</comments><description>&lt;p&gt;Just noticed that we have posted SQL Server 2008 Service Pack 2 CTP on microsoft.com, here is the link &lt;a title="http://www.microsoft.com/downloads/details.aspx?FamilyID=65606fdd-093f-4c70-91f6-dc1f24520e8f&amp;amp;displaylang=en" href="http://www.microsoft.com/downloads/details.aspx?FamilyID=65606fdd-093f-4c70-91f6-dc1f24520e8f&amp;amp;displaylang=en"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyID=65606fdd-093f-4c70-91f6-dc1f24520e8f&amp;amp;displaylang=en&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;What's New:&lt;/b&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;b&gt;SQL Server Utility&lt;/b&gt; The SQL Server 2008 R2 Utility supports SQL Server 2008 instances that have SP2 installed. The SQL Server Utility models SQL Server-related entities in a unified view. Utility Explorer and SQL Server Utility viewpoints in SQL Server Management Studio provide administrators a holistic view of resource health through an instance of SQL Server that serves as a utility control point (UCP). For more information about the SQL Server Utility, see &lt;a href="http://msdn.microsoft.com/en-us/library/ee210557.aspx"&gt;Managing the SQL Server Utility&lt;/a&gt;. &lt;/li&gt;    &lt;li&gt;&lt;b&gt;Data-tier Applications&lt;/b&gt; SQL Server Management Studio in SQL Server 2008 R2 supports all data-tier application (DAC) operations for SQL Server 2008 instances that have SP2 installed. DAC is an entity that contains all databases and instance objects used by an application. A DAC provides a single unit for authoring, deploying, and managing the data-tier objects instead of having to manage them separately. A DAC allows tighter integration of data-tier development with the development of the associated application code. It also gives administrators an application level view of resource usage in their systems through the utility control point. For more information about data-tier applications, see &lt;a href="http://msdn.microsoft.com/en-us/library/ee240739.aspx"&gt;Understanding Data-tier Applications&lt;/a&gt;. &lt;/li&gt;    &lt;li&gt;&lt;b&gt;Reporting Services in SharePoint Integrated Mode (Feature Pack) &lt;/b&gt;The Microsoft SQL Server 2008 Service Pack 2 (SP2) Reporting Services Add-in for Microsoft SharePoint Products 2007 allows you to connect to SQL Server 2008 R2 Report Servers. The new features include:       &lt;ul&gt;       &lt;li&gt;Improved handling of credentials and shared data sources. &lt;/li&gt;        &lt;li&gt;Utilization of the existing instances of Report Builder configured on the Report Server. &lt;/li&gt;        &lt;li&gt;Support for Report Part Gallery, shared datasets, and shared report items. &lt;/li&gt;        &lt;li&gt;Report Builder 3.0 &lt;/li&gt;        &lt;li&gt;ATOM feed renderer. For more information, see the ‘Rendering Reports to Data Feeds’ section in &amp;quot;&lt;a href="http://msdn.microsoft.com/en-us/library/ms170438.aspx"&gt;What's New in SQL Server 2008 R2&lt;/a&gt;&amp;quot;. &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt; &lt;/ul&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10035772" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/benjones/archive/tags/SQL+Server+2008/">SQL Server 2008</category></item><item><title>Using Visual Studio Test Tools to troubleshoot and reproduce database performance issues</title><link>http://blogs.msdn.com/b/benjones/archive/2010/06/24/using-visual-studio-test-tools-to-troubleshoot-and-reproduce-performance-issues.aspx</link><pubDate>Thu, 24 Jun 2010 17:03:31 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10029726</guid><dc:creator>superlatch</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/benjones/rsscomments.aspx?WeblogPostID=10029726</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/benjones/commentapi.aspx?WeblogPostID=10029726</wfw:comment><comments>http://blogs.msdn.com/b/benjones/archive/2010/06/24/using-visual-studio-test-tools-to-troubleshoot-and-reproduce-performance-issues.aspx#comments</comments><description>&lt;p&gt;Visual Studio test suite contains a very useful set of tools to help troubleshoot and reproduce performance issues.&amp;#160; From a SQL Server perspective, I have found the tools invaluable as it allows me to replay HTTP workloads at volume against web servers and therefore the underlying database server.&amp;#160;&amp;#160; &lt;/p&gt;  &lt;p&gt;The Visual Studio tools provide a number of great features such as test mixes, step load plans, real-time visualisations, support for performance monitor counters and SQL Server tracing.&amp;#160; &lt;/p&gt;  &lt;p&gt;Fiddler is a HTTP capture tool which also supports the ability to save the output to a .webtest file &lt;a title="http://www.fiddlertool.com/Fiddler/help/WebTest.asp" href="http://www.fiddlertool.com/Fiddler/help/WebTest.asp"&gt;http://www.fiddlertool.com/Fiddler/help/WebTest.asp&lt;/a&gt;.&amp;#160; Client activity can be captured easily using Fiddler and this can then be imported into a Visual Studio Test Project as a workload.&amp;#160; &lt;/p&gt;  &lt;p&gt;This workload can be replayed against servers using a step pattern or constant load.&amp;#160; There are many different configuration options which are conceptually referred to as a scenario. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-37-55-metablogapi/6471.image_5F00_1F3462FF.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" class="wlDisabledImage" title="image" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-37-55-metablogapi/7633.image_5F00_thumb_5F00_6F2A117D.png" width="465" height="223" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Options such as warm-up or cool-down can be configured via the Run settings, as can the ability to capture SQL trace data although, when enabled, this captures a pre-defined set of event classes as defined here &lt;a title="http://msdn.microsoft.com/en-us/library/ms404658.aspx" href="http://msdn.microsoft.com/en-us/library/ms404658.aspx"&gt;http://msdn.microsoft.com/en-us/library/ms404658.aspx&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-37-55-metablogapi/5086.image_5F00_19499999.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" class="wlDisabledImage" title="image" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-37-55-metablogapi/3252.image_5F00_thumb_5F00_7DC49795.png" width="318" height="405" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;SQL Server performance monitor counters can be added in the load test configuration as shown below.&amp;#160; Performance counters for named instances must be added manually (for some reason they are not&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-37-55-metablogapi/1682.image_5F00_510BB7EF.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" class="wlDisabledImage" title="image" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-37-55-metablogapi/4338.image_5F00_thumb_5F00_3A6969A8.png" width="257" height="175" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Real-time test data is displayed in Visual Studio and the results are saved either into a SQL Server Express database (installed as part of Visual Studio) or an existing SQL Server instance.&amp;#160; The latter requires manually configuring the data store connection string.&amp;#160; &lt;/p&gt;  &lt;p&gt;Load balancers can also introduce some interesting behaviour such as binding your IP address to one web server however it is possible to avoid this using the Visual Studio Test Load Agent software to circumvent this behaviour: How to: Use IP Switching with Agents &lt;a title="http://msdn.microsoft.com/en-us/library/ms404667(VS.90).aspx" href="http://msdn.microsoft.com/en-us/library/ms404667(VS.90).aspx"&gt;http://msdn.microsoft.com/en-us/library/ms404667(VS.90).aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;As a side note, here are a few tips:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Be careful when using SQL Server Express Edition to store the results as the database has a size limitation (SQL Server 2005 and SQL Server 2008 have a 4GB limitation whilst, SQL Server 2008 R2 10GB limitation)&lt;/li&gt;    &lt;li&gt;Review the SQL Sizing Considerations information in the Load Test Agent readme. e.g. The SQL Express database is license-limited to store 10 GB of data, which is around 24 hours of load test data for a typical load test.&lt;/li&gt;    &lt;li&gt;Install SQL Server Management Studio Express to manage the instance&lt;/li&gt;    &lt;li&gt;Schema differs for LoadTest between VS 2005 and VS 2008&lt;/li&gt;    &lt;li&gt;Schema for LoadTest exists in C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE. (or Visual Studio 8.0 if you’re using Visual Studio 2005)&lt;/li&gt;    &lt;li&gt;If you want to use a different instance of SQL Server to host the database and store the test results then execute the loadtestresultsrepository.sql (stored in folder listed above) and creates the database called LoadTest&lt;/li&gt;    &lt;li&gt;You will need to change the connection string in Visual Studio, this can be found in Test\Administer Test Controllers.&lt;/li&gt;    &lt;li&gt;The LoadTest schema differs between Visual Studio 2005 and Visual Studio 2008 so you can’t point Visual Studio 2008 at a previous LoadTest schema&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;I also used implemented DMV_Stats, a blocked process trace and performance monitor counter logs on the database server as I like to have a record of waitstats, blocking/deadlocking and also any (perfmon) queues.&amp;#160;&amp;#160; From a web server perspective, I recorded a counter log of the key IIS metrics as defined here &lt;a title="http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/7898b860-462c-4846-a3a8-1179f287ad88.mspx?mfr=true" href="http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/7898b860-462c-4846-a3a8-1179f287ad88.mspx?mfr=true"&gt;http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/7898b860-462c-4846-a3a8-1179f287ad88.mspx?mfr=true&lt;/a&gt;.&amp;#160; &lt;/p&gt;  &lt;p&gt;In summary, Visual Studio and Fiddler provide the ability to capture and replay HTTP traffic at load.&amp;#160; This can be useful for investigating and recreating web server and database performance issues.    &lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10029726" width="1" height="1"&gt;</description></item><item><title>Best Practice Analyzer is back</title><link>http://blogs.msdn.com/b/benjones/archive/2010/06/19/best-practice-analyzer-is-back.aspx</link><pubDate>Sat, 19 Jun 2010 18:40:18 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10027531</guid><dc:creator>superlatch</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/benjones/rsscomments.aspx?WeblogPostID=10027531</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/benjones/commentapi.aspx?WeblogPostID=10027531</wfw:comment><comments>http://blogs.msdn.com/b/benjones/archive/2010/06/19/best-practice-analyzer-is-back.aspx#comments</comments><description>&lt;p&gt;BPA is back for SQL Server 2008 and SQL Server 2008 R2 &lt;a title="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;amp;FamilyID=0fd439d7-4bff-4df7-a52f-9a1be8725591" href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;amp;FamilyID=0fd439d7-4bff-4df7-a52f-9a1be8725591"&gt;http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;amp;FamilyID=0fd439d7-4bff-4df7-a52f-9a1be8725591&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10027531" width="1" height="1"&gt;</description></item><item><title>Blogs from Microsoft Consultancy Services</title><link>http://blogs.msdn.com/b/benjones/archive/2010/06/02/blogs-from-microsoft-consultancy-services.aspx</link><pubDate>Wed, 02 Jun 2010 20:15:09 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10019096</guid><dc:creator>superlatch</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/benjones/rsscomments.aspx?WeblogPostID=10019096</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/benjones/commentapi.aspx?WeblogPostID=10019096</wfw:comment><comments>http://blogs.msdn.com/b/benjones/archive/2010/06/02/blogs-from-microsoft-consultancy-services.aspx#comments</comments><description>&lt;p&gt;Microsoft Consultancy Services (UK) has recently started blogging.&amp;#160; These are team-based blogs rather than individual blogs.&amp;#160;&amp;#160; I have listed a few of these blogs below&lt;/p&gt;  &lt;p&gt;MCS UK Microsoft Business Intelligence Team Blog &lt;a title="http://blogs.msdn.com/b/mcsukbi" href="http://blogs.msdn.com/b/mcsukbi"&gt;http://blogs.msdn.com/b/mcsukbi&lt;/a&gt;.&amp;#160; This blog focuses on the Microsoft business intelligence technology stack e.g. SSIS, SSAS, PerformancePoint rather than transactional-based systems. &lt;/p&gt;  &lt;p&gt;MCS UK Solution Development Team Blog &lt;a href="http://blogs.msdn.com/b/mcsuksoldev"&gt;http://blogs.msdn.com/b/mcsuksoldev&lt;/a&gt;.&amp;#160; This blog focuses on application development.&lt;/p&gt;  &lt;p&gt;MCS UK SharePoint Team Blog &lt;a title="http://blogs.msdn.com/b/uksharepoint" href="http://blogs.msdn.com/b/uksharepoint"&gt;http://blogs.msdn.com/b/uksharepoint&lt;/a&gt;.&amp;#160; This blog focuses on SharePoint solutions. &lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10019096" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/benjones/archive/tags/Business+Intelligence/">Business Intelligence</category><category domain="http://blogs.msdn.com/b/benjones/archive/tags/MCS/">MCS</category><category domain="http://blogs.msdn.com/b/benjones/archive/tags/Community/">Community</category></item><item><title>SQL Azure vs. SQL Server</title><link>http://blogs.msdn.com/b/benjones/archive/2010/05/25/sql-azure-vs-sql-server.aspx</link><pubDate>Tue, 25 May 2010 18:09:10 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10014926</guid><dc:creator>superlatch</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/benjones/rsscomments.aspx?WeblogPostID=10014926</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/benjones/commentapi.aspx?WeblogPostID=10014926</wfw:comment><comments>http://blogs.msdn.com/b/benjones/archive/2010/05/25/sql-azure-vs-sql-server.aspx#comments</comments><description>&lt;p&gt;I’ve just read the SQL Azure vs. SQL Server whitepaper &lt;a title="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;amp;FamilyID=86f12b41-1eba-4567-9ac8-02eaa7d12034" href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;amp;FamilyID=86f12b41-1eba-4567-9ac8-02eaa7d12034"&gt;http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;amp;FamilyID=86f12b41-1eba-4567-9ac8-02eaa7d12034&lt;/a&gt; its only a few pages so one of the lighter documents.&lt;/p&gt;  &lt;p&gt;Some interesting and important points which are summarised in the paper e.g. you cannot control where your database files are placed. and also referenced in the Books Online Transact-SQL Support (SQL Azure Database) &lt;a title="http://msdn.microsoft.com/en-us/library/ee336250.aspx" href="http://msdn.microsoft.com/en-us/library/ee336250.aspx"&gt;http://msdn.microsoft.com/en-us/library/ee336250.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;The following Transact-SQL features are &lt;strong&gt;not supported&lt;/strong&gt; by SQL Azure:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Common Language Runtime (CLR) &lt;/li&gt;    &lt;li&gt;Database file placement &lt;/li&gt;    &lt;li&gt;Database mirroring &lt;/li&gt;    &lt;li&gt;Distributed queries &lt;/li&gt;    &lt;li&gt;Distributed transactions &lt;/li&gt;    &lt;li&gt;Filegroup management &lt;/li&gt;    &lt;li&gt;Global temporary tables &lt;/li&gt;    &lt;li&gt;Spatial data and indexes &lt;/li&gt;    &lt;li&gt;SQL Server configuration options &lt;/li&gt;    &lt;li&gt;SQL Server Service Broker &lt;/li&gt;    &lt;li&gt;System tables &lt;/li&gt;    &lt;li&gt;Trace Flags &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;50GB databases will also be here soon &lt;a title="http://blogs.msdn.com/b/sqlazure/archive/2010/04/16/9997517.aspx" href="http://blogs.msdn.com/b/sqlazure/archive/2010/04/16/9997517.aspx"&gt;http://blogs.msdn.com/b/sqlazure/archive/2010/04/16/9997517.aspx&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10014926" width="1" height="1"&gt;</description></item><item><title>Backing up to NUL(L)?</title><link>http://blogs.msdn.com/b/benjones/archive/2010/05/24/backing-up-to-nul-l.aspx</link><pubDate>Mon, 24 May 2010 13:59:58 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10014064</guid><dc:creator>superlatch</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/benjones/rsscomments.aspx?WeblogPostID=10014064</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/benjones/commentapi.aspx?WeblogPostID=10014064</wfw:comment><comments>http://blogs.msdn.com/b/benjones/archive/2010/05/24/backing-up-to-nul-l.aspx#comments</comments><description>&lt;p&gt;Some of you may be wondering why you would want to do this.&amp;#160; We had a real requirement in a &lt;u&gt;performance benchmark&lt;/u&gt; to use FULL recovery and backup the transaction log but we did not want to retain the log changes.&amp;#160; We already had a gold backup which we restored after each test. &lt;/p&gt;  &lt;p&gt;I was wondering if it was still possible to BACKUP to NULL in SQL Server 2008 R2, and the answer is yes.&amp;#160; &lt;strong&gt;Warning&lt;/strong&gt;: don’t ever do this in a production environment.&lt;/p&gt;  &lt;pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 14px"&gt;&lt;a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=BACKUP&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99"&gt;BACKUP&lt;/a&gt; LOG sandbox &lt;a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=TO&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99"&gt;TO&lt;/a&gt; &lt;a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=DISK&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99"&gt;DISK&lt;/a&gt; = '&lt;span style="color: #8b0000"&gt;NUL&lt;/span&gt;'
&lt;/pre&gt;&lt;/pre&gt;

&lt;pre&gt;&lt;font face="Tahoma"&gt;I am unsure why the NUL keyword is missing a ‘L’.&lt;/font&gt;&lt;/pre&gt;

&lt;p&gt;Interesting, if I try to backup the log using the NUL keyword then this fails&lt;/p&gt;

&lt;pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 14px"&gt;&lt;a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=BACKUP&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99"&gt;BACKUP&lt;/a&gt; LOG sandbox &lt;a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=TO&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99"&gt;TO&lt;/a&gt; &lt;a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=DISK&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99"&gt;DISK&lt;/a&gt; = '&lt;span style="color: #8b0000"&gt;NUL.bak&lt;/span&gt;'
&lt;/pre&gt;&lt;p&gt;&lt;font color="#ff0000"&gt;&lt;/font&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;font color="#ff0000"&gt;Msg 3201, Level 16, State 1, Line 1&lt;br /&gt;Cannot open backup device '…\Backup\NUL.bak'. &lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font color="#ff0000"&gt;Operating system error 2(failed to retrieve text for this error. Reason: 15105).&lt;br /&gt;Msg 3013, Level 16, State 1, Line 1&lt;br /&gt;BACKUP DATABASE is terminating abnormally&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="Tahoma"&gt;&lt;/font&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;font face="Tahoma"&gt;But, this works and persists the backup file in the default backup directory (look in msdb.dbo.backupmediafamily)&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 14px"&gt;&lt;a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=BACKUP&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99"&gt;BACKUP&lt;/a&gt; LOG sandbox &lt;a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=TO&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99"&gt;TO&lt;/a&gt; &lt;a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=DISK&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99"&gt;DISK&lt;/a&gt; = '&lt;span style="color: #8b0000"&gt;NULL.bak&lt;/span&gt;'
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 14px"&gt;&lt;/pre&gt;&lt;/pre&gt;&lt;/pre&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10014064" width="1" height="1"&gt;</description></item><item><title>SQL Server 2008 R2 Cumulative Update 1</title><link>http://blogs.msdn.com/b/benjones/archive/2010/05/24/sql-server-2008-r2-cumulative-update-1.aspx</link><pubDate>Mon, 24 May 2010 13:59:19 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10014062</guid><dc:creator>superlatch</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/benjones/rsscomments.aspx?WeblogPostID=10014062</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/benjones/commentapi.aspx?WeblogPostID=10014062</wfw:comment><comments>http://blogs.msdn.com/b/benjones/archive/2010/05/24/sql-server-2008-r2-cumulative-update-1.aspx#comments</comments><description>&lt;p&gt;Hot on the heels of the RTM release of SQL Server 2008 R2, we have just announced the first cumulative update.&amp;#160; The knowledge base article is here &lt;a title="http://support.microsoft.com/kb/981355" href="http://support.microsoft.com/kb/981355"&gt;http://support.microsoft.com/kb/981355&lt;/a&gt; which lists all the relevant fixes, which are essentially fixes from SQL Server 2008 Service Pack 1 Cumulative Update 5 to 7.&lt;/p&gt;  &lt;p&gt;As always, please review the knowledge base article and list of fixes before you consider deploying this update. &lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10014062" width="1" height="1"&gt;</description></item><item><title>Hotfix Alert: Identifying poor I/O</title><link>http://blogs.msdn.com/b/benjones/archive/2010/05/06/hotfix-alert-identifying-poor-i-o.aspx</link><pubDate>Thu, 06 May 2010 09:05:01 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10008364</guid><dc:creator>superlatch</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/benjones/rsscomments.aspx?WeblogPostID=10008364</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/benjones/commentapi.aspx?WeblogPostID=10008364</wfw:comment><comments>http://blogs.msdn.com/b/benjones/archive/2010/05/06/hotfix-alert-identifying-poor-i-o.aspx#comments</comments><description>&lt;p&gt;We have just released a hotfix to help identify poor I/O issues on Windows Server 2008 and Windows Server 2008 R2. This is particularly relevant for SQL Server environments as it will the administrator to determine if I/O performance issues are caused by the SAN.&lt;/p&gt;  &lt;p&gt;Whilst the output is not particularly easy to consume, it is a good step towards identifying I/O issues.&lt;/p&gt;  &lt;p&gt;The knowledge base articles:&lt;/p&gt;  &lt;p&gt;Add a fix to improve the logging capabilities of the Storport.sys driver to troubleshoot poor disk I/O performance in &lt;strong&gt;Windows Server 2008 R2&lt;/strong&gt;&amp;#160;&lt;a title="http://support.microsoft.com/kb/978000" href="http://support.microsoft.com/kb/978000"&gt;http://support.microsoft.com/kb/978000&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;A hotfix is available that improves the logging capabilities of the Storport.sys driver to troubleshoot poor performance issues for the disk I/O in &lt;strong&gt;Windows Server 2008&lt;/strong&gt; &lt;a title="http://support.microsoft.com/kb/978000" href="http://support.microsoft.com/kb/978000"&gt;http://support.microsoft.com/kb/978000&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;The full details are available here &lt;a title="http://blogs.msdn.com/ntdebugging/archive/2010/04/22/etw-storport.aspx" href="http://blogs.msdn.com/ntdebugging/archive/2010/04/22/etw-storport.aspx"&gt;http://blogs.msdn.com/ntdebugging/archive/2010/04/22/etw-storport.aspx&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10008364" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/benjones/archive/tags/SQL+Server+KB/">SQL Server KB</category></item><item><title>SQL Server 2008 R2 RTM BOL now available</title><link>http://blogs.msdn.com/b/benjones/archive/2010/04/24/sql-server-2008-r2-rtm-bol-now-available.aspx</link><pubDate>Sat, 24 Apr 2010 11:07:41 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10001916</guid><dc:creator>superlatch</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/benjones/rsscomments.aspx?WeblogPostID=10001916</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/benjones/commentapi.aspx?WeblogPostID=10001916</wfw:comment><comments>http://blogs.msdn.com/b/benjones/archive/2010/04/24/sql-server-2008-r2-rtm-bol-now-available.aspx#comments</comments><description>&lt;p&gt;Here &lt;a title="http://www.microsoft.com/downloads/details.aspx?FamilyID=C18BAD82-0E5F-4E82-812B-5B23E5D52B9C&amp;amp;displaylang=en" href="http://www.microsoft.com/downloads/details.aspx?FamilyID=C18BAD82-0E5F-4E82-812B-5B23E5D52B9C&amp;amp;displaylang=en"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyID=C18BAD82-0E5F-4E82-812B-5B23E5D52B9C&amp;amp;displaylang=en&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10001916" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/benjones/archive/tags/SQL+Server+2008+R2/">SQL Server 2008 R2</category></item><item><title>Using SSIS with SQL Azure databases</title><link>http://blogs.msdn.com/b/benjones/archive/2010/03/08/using-ssis-with-sql-azure-databases.aspx</link><pubDate>Mon, 08 Mar 2010 22:02:52 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9975105</guid><dc:creator>superlatch</dc:creator><slash:comments>4</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/benjones/rsscomments.aspx?WeblogPostID=9975105</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/benjones/commentapi.aspx?WeblogPostID=9975105</wfw:comment><comments>http://blogs.msdn.com/b/benjones/archive/2010/03/08/using-ssis-with-sql-azure-databases.aspx#comments</comments><description>&lt;p&gt;I’m quite surprised how easy it is to setup an SSIS package to read and write data to a SQL Azure database.&amp;#160; A simple data flow task with an ADO.NET Destination is easy to setup, just make sure the SQL Azure table has a clustered index otherwise writing data will not work (as this is a pre-requisite).&amp;#160; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/benjones/WindowsLiveWriter/UsingSSISwithSQLAzuredatabases_1339E/image_2.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; margin: 0px 20px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/benjones/WindowsLiveWriter/UsingSSISwithSQLAzuredatabases_1339E/image_thumb.png" width="318" height="237" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;The SSIS team have added a BULK INSERT option on the ADO.NET Destination in SQL Server 2008 R2 to improve performance, this blog entry covers the details: &lt;a title="http://blogs.msdn.com/mattm/archive/2009/11/12/something-new-for-ssis-in-sql-server-2008-r2-november-ctp.aspx" href="http://blogs.msdn.com/mattm/archive/2009/11/12/something-new-for-ssis-in-sql-server-2008-r2-november-ctp.aspx"&gt;http://blogs.msdn.com/mattm/archive/2009/11/12/something-new-for-ssis-in-sql-server-2008-r2-november-ctp.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;On the topic of indexes, it looks like there is a bug in the scripting engine in SQL Server 2008 R2.&amp;#160; Scripting the index as DROP to an SSMS window returns the following however the ONLINE syntax is not supported with SQL Azure&lt;/p&gt; &lt;a href="http://blogs.msdn.com/blogfiles/benjones/WindowsLiveWriter/UsingSSISwithSQLAzuredatabases_1339E/image_4.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; margin: 0px 20px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/benjones/WindowsLiveWriter/UsingSSISwithSQLAzuredatabases_1339E/image_thumb_1.png" width="563" height="123" /&gt;&lt;/a&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9975105" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/benjones/archive/tags/SQL+Server+2008+R2/">SQL Server 2008 R2</category><category domain="http://blogs.msdn.com/b/benjones/archive/tags/SSIS/">SSIS</category></item><item><title>Performance monitor, SQL Server and PAGE compression</title><link>http://blogs.msdn.com/b/benjones/archive/2010/02/11/performance-monitor-sql-server-and-page-compression.aspx</link><pubDate>Thu, 11 Feb 2010 19:42:55 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9962172</guid><dc:creator>superlatch</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/benjones/rsscomments.aspx?WeblogPostID=9962172</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/benjones/commentapi.aspx?WeblogPostID=9962172</wfw:comment><comments>http://blogs.msdn.com/b/benjones/archive/2010/02/11/performance-monitor-sql-server-and-page-compression.aspx#comments</comments><description>&lt;p&gt;I tend to automate perfmon collection with logman.exe logging to a SQL Server 2008 database via the System DSN (ODBC data source) as follows:&lt;/p&gt;  &lt;p&gt;&lt;font size="1" face="Consolas"&gt;@echo off     &lt;br /&gt;REM create the counter log, counters specified in .config file      &lt;br /&gt;REM stores the counter log in a .blg format, this can alos be stored in a SQL Server database if required &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="1" face="Consolas"&gt;REM set environment variables     &lt;br /&gt;SET SERVER1=\\benjones01      &lt;br /&gt;SET CONFIGFILE=SQL2005BaselineCounters.config      &lt;br /&gt;SET START=09/02/2010 16:00:00      &lt;br /&gt;SET END=09/02/2010 17:00:00 &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="1" face="Consolas"&gt;ECHO&amp;#160;&amp;#160;&amp;#160; ====================================================     &lt;br /&gt;ECHO&amp;#160;&amp;#160;&amp;#160; Creating performance monitor counter sets on %SERVER1%      &lt;br /&gt;ECHO&amp;#160;&amp;#160;&amp;#160; ==================================================== &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="1" face="Consolas"&gt;logman create counter MicrosoftSSIS2005Perf -s %SERVER1% -f bin -b %START% -E %END% -si 5 -v mmddhhmm -o &amp;quot;Perfmon_SSIS_Performance&amp;quot; -cf %CONFIGFILE% &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="1" face="Consolas"&gt;PAUSE&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;In this example, the config file contains a list of the counters I am interested in:&lt;/p&gt;  &lt;p&gt;&lt;font size="1" face="Consolas"&gt;&amp;quot;\\SERVERNAME\LogicalDisk(*)\*&amp;quot;     &lt;br /&gt;&amp;quot;\\SERVERNAME\Memory\*&amp;quot;      &lt;br /&gt;&amp;quot;\\SERVERNAME\MSSQL:Access Methods\*&amp;quot;      &lt;br /&gt;&amp;quot;\\SERVERNAME\MSSQL:Buffer Manager\*&amp;quot;      &lt;br /&gt;&amp;quot;\\SERVERNAME\MSSQL:Buffer Node(*)\*&amp;quot;      &lt;br /&gt;&amp;quot;\\SERVERNAME\MSSQL:CLR\*&amp;quot;      &lt;br /&gt;&amp;quot;\\SERVERNAME\MSSQL:Databases(*)\*&amp;quot;      &lt;br /&gt;&amp;quot;\\SERVERNAME\MSSQL:Exec Statistics(*)\*&amp;quot;      &lt;br /&gt;&amp;quot;\\SERVERNAME\MSSQL:General Statistics\*&amp;quot;      &lt;br /&gt;&amp;quot;\\SERVERNAME\MSSQL:Latches\*&amp;quot;      &lt;br /&gt;&amp;quot;\\SERVERNAME\MSSQL:Locks(*)\*&amp;quot;      &lt;br /&gt;&amp;quot;\\SERVERNAME\MSSQL:Memory Manager\*&amp;quot;      &lt;br /&gt;&amp;quot;\\SERVERNAME\MSSQL:Plan Cache(*)\*&amp;quot;      &lt;br /&gt;&amp;quot;\\SERVERNAME\MSSQL:SQL Statistics\*&amp;quot;      &lt;br /&gt;&amp;quot;\\SERVERNAME\MSSQL:Transactions\*&amp;quot;      &lt;br /&gt;&amp;quot;\\SERVERNAME\MSSQL:Wait Statistics(*)\*&amp;quot;      &lt;br /&gt;&amp;quot;\\SERVERNAME\Network Interface(*)\*&amp;quot;      &lt;br /&gt;&amp;quot;\\SERVERNAME\PhysicalDisk(*)\*&amp;quot;      &lt;br /&gt;&amp;quot;\\SERVERNAME\Process(sqlservr)\*&amp;quot;      &lt;br /&gt;&amp;quot;\\SERVERNAME\SQLServer:SSISPipeline\*&amp;quot;      &lt;br /&gt;&amp;quot;\\SERVERNAME\Processor(*)\*&amp;quot;      &lt;br /&gt;&amp;quot;\\SERVERNAME\System\Context Switches/sec&amp;quot;      &lt;br /&gt;&amp;quot;\\SERVERNAME\System\Processor Queue Length&amp;quot;      &lt;br /&gt;&amp;quot;\\SERVERNAME\System\Threads&amp;quot;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;Logging can generate quite a lot of data depending on the threshold specified in the –si parameter for logman.exe.&lt;/p&gt;  &lt;p&gt;Logging to a SQL Server database makes it easier to query the data as the binary (blg) files can be awkward to deal with when they are very large. &lt;/p&gt;  &lt;p&gt;SQL Server 2008 also provides an added benefit in that I can compress the main table, [dbo].[CounterData] quite significantly using PAGE compression.&amp;#160; The stored procedure shown below provided an estimate of the space saving, this was about 1/3 of the original table size.&lt;/p&gt;  &lt;p&gt;&lt;font size="1" face="Consolas"&gt;EXEC sp_estimate_data_compression_savings 'dbo', 'CounterData', NULL, NULL, 'PAGE' ;     &lt;br /&gt;GO&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;The screenshot below illustrates rebuild procedure in order to apply compression at the page level.&amp;#160; My laptop is definitely struggling whilst the data is being compressed…&lt;/p&gt;&amp;#160; &lt;a href="http://blogs.msdn.com/blogfiles/benjones/WindowsLiveWriter/a7bb7053c811_10893/image_2.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; margin: 0px 20px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/benjones/WindowsLiveWriter/a7bb7053c811_10893/image_thumb.png" width="693" height="334" /&gt;&lt;/a&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9962172" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/benjones/archive/tags/SQL+Server+2008/">SQL Server 2008</category><category domain="http://blogs.msdn.com/b/benjones/archive/tags/Performance/">Performance</category></item><item><title>New editions of SQL Server 2008 R2 announced</title><link>http://blogs.msdn.com/b/benjones/archive/2009/11/04/new-editions-of-sql-server-2008-r2-announced.aspx</link><pubDate>Wed, 04 Nov 2009 10:58:26 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9917246</guid><dc:creator>superlatch</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/benjones/rsscomments.aspx?WeblogPostID=9917246</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/benjones/commentapi.aspx?WeblogPostID=9917246</wfw:comment><comments>http://blogs.msdn.com/b/benjones/archive/2009/11/04/new-editions-of-sql-server-2008-r2-announced.aspx#comments</comments><description>&lt;li&gt;   &lt;p&gt;SQL Server 2008 R2 Datacenter&lt;/p&gt; &lt;/li&gt;  &lt;li&gt;   &lt;p&gt;SQL Server 2008 R2 Parallel Data Warehouse&lt;/p&gt; &lt;/li&gt;  &lt;p&gt;&lt;a title="http://www.microsoft.com/sqlserver/2008/en/us/R2-editions.aspx" href="http://www.microsoft.com/sqlserver/2008/en/us/R2-editions.aspx"&gt;http://www.microsoft.com/sqlserver/2008/en/us/R2-editions.aspx&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9917246" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/benjones/archive/tags/SQL+Server+2008+R2/">SQL Server 2008 R2</category></item><item><title>Processing Excel files in SSIS 2008 – Lessons Learned</title><link>http://blogs.msdn.com/b/benjones/archive/2009/10/21/processing-excel-files-in-ssis-2008-lessons-learned.aspx</link><pubDate>Wed, 21 Oct 2009 20:22:40 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9910878</guid><dc:creator>superlatch</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/benjones/rsscomments.aspx?WeblogPostID=9910878</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/benjones/commentapi.aspx?WeblogPostID=9910878</wfw:comment><comments>http://blogs.msdn.com/b/benjones/archive/2009/10/21/processing-excel-files-in-ssis-2008-lessons-learned.aspx#comments</comments><description>&lt;p&gt;I have recently been working on a project where we need to load and transform data held in Excel 2007 into a SQL Server database.&amp;#160; The Excel sheets were fairly complex and had different structures.&amp;#160; Fortunately, SSIS 2008 provides some good tools to handle this situation.&amp;#160; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Lessons learned&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;1. It is possible to read the Excel metadata using the mechanism listed in this knowledge base article, &lt;a title="http://support.microsoft.com/kb/318452" href="http://support.microsoft.com/kb/318452"&gt;http://support.microsoft.com/kb/318452&lt;/a&gt; HOW TO: Retrieve Meta Data from Excel by Using GetOleDbSchemaTable in Visual C# .NET.&amp;#160; You may be wondering why I want to do this.&amp;#160; Handling Excel sheets with different structures can be tricky so reading the metadata can help determine control flow processing i.e. which data flow to use to process the file. &lt;/p&gt;  &lt;p&gt;2. Remember, if you are testing on x64 then your package will not execute if you are using the Excel source since it is not supported on 64-bit so you need to disable the Run64BitRuntime property as below&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/benjones/WindowsLiveWriter/ReadingExcelmetadatainSSIS_10194/image_2.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/benjones/WindowsLiveWriter/ReadingExcelmetadatainSSIS_10194/image_thumb.png" width="518" height="231" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;3. The Script component is really great when it comes to data manipulation in the data flow.&amp;#160; This can be used as either a source, transformation or destination and allows you to manipulate the rows in the pipeline using either VB.NET or C#. &lt;/p&gt;  &lt;p&gt;4. As mentioned, Excel files can also be read using the Execute SQL task in the control flow, which is a nice feature e.g. SELECT * FROM $PivotData&lt;/p&gt;  &lt;p&gt;5. The File System Task can make file handling a lot easier.&amp;#160; Combine this with the use of variables and property expressions, dynamic file manipulation became a whole lot easier.&amp;#160; For example, after processing I either move the file to another folder based on the outcome e.g. success or failure.&amp;#160; &lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9910878" width="1" height="1"&gt;</description></item><item><title>Changing the LISTENER_IP address in a database mirroring configuration</title><link>http://blogs.msdn.com/b/benjones/archive/2009/09/25/changing-the-listener-ip-address-in-a-database-mirroring-configuration.aspx</link><pubDate>Sat, 26 Sep 2009 00:20:05 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9899714</guid><dc:creator>superlatch</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/benjones/rsscomments.aspx?WeblogPostID=9899714</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/benjones/commentapi.aspx?WeblogPostID=9899714</wfw:comment><comments>http://blogs.msdn.com/b/benjones/archive/2009/09/25/changing-the-listener-ip-address-in-a-database-mirroring-configuration.aspx#comments</comments><description>&lt;p&gt;This question came up today: how can I change the IP address between the principal and mirror in database mirroring?&lt;/p&gt;  &lt;p&gt;Not a common operation but this procedure worked in an isolated lab environment where we had full control over the application and transaction activity.&amp;#160; We wanted to introduce a WAN latency injector so needed to change the database mirroring IP addresses on the principal and mirror.&amp;#160; &lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Stop application activity&lt;/li&gt;    &lt;li&gt;Remove mirroring (SET PARTNER OFF)&lt;/li&gt;    &lt;li&gt;Stop Mirroring endpoints (on principal and mirror)&lt;/li&gt;    &lt;li&gt;Alter Mirroring endpoints to use new IP addresses e.g. ALTER ENDPOINT SET LISTENER_IP = &lt;/li&gt;    &lt;li&gt;Start endpoints on principal and mirror&lt;/li&gt;    &lt;li&gt;Enable mirroring (ALTER DATABASE &amp;lt;dbname&amp;gt; SET PARTNER = TCP://x.x.x.x)&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;I’ll try and find the exact scripts we used and upload them here.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9899714" width="1" height="1"&gt;</description></item><item><title>New HP Resources on SQL Server 2008 Data Warehousing / Business Intelligence</title><link>http://blogs.msdn.com/b/benjones/archive/2009/09/16/new-hp-resources-on-sql-server-2008-data-warehousing-business-intelligence.aspx</link><pubDate>Wed, 16 Sep 2009 09:54:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9895719</guid><dc:creator>superlatch</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/benjones/rsscomments.aspx?WeblogPostID=9895719</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/benjones/commentapi.aspx?WeblogPostID=9895719</wfw:comment><comments>http://blogs.msdn.com/b/benjones/archive/2009/09/16/new-hp-resources-on-sql-server-2008-data-warehousing-business-intelligence.aspx#comments</comments><description>&lt;p&gt;I haven’t had a chance to look through these yet so I can’t comment on the content but I thought I would post here to share these new resources. &lt;/p&gt;  &lt;p&gt;HP Business Intelligence Sizer for Microsoft SQL Server 2005/2008&lt;/p&gt;  &lt;p&gt;&lt;a title="http://h71019.www7.hp.com/ActiveAnswers/us/en/sizers/microsoft-sql-bi.html" href="http://h71019.www7.hp.com/ActiveAnswers/us/en/sizers/microsoft-sql-bi.html"&gt;http://h71019.www7.hp.com/ActiveAnswers/us/en/sizers/microsoft-sql-bi.html&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;HP Whitepapers on SQL Server 2008 Data Warehousing / Business Intelligence&lt;/p&gt;  &lt;p&gt;&lt;a title="http://h20195.www2.hp.com/V2/GetPDF.aspx/4AA2-5263ENW.pdf" href="http://h20195.www2.hp.com/V2/GetPDF.aspx/4AA2-5263ENW.pdf"&gt;http://h20195.www2.hp.com/V2/GetPDF.aspx/4AA2-5263ENW.pdf&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a title="http://h20195.www2.hp.com/V2/getdocument.aspx?docname=4AA2-8173ENW.pdf" href="http://h20195.www2.hp.com/V2/getdocument.aspx?docname=4AA2-8173ENW.pdf"&gt;http://h20195.www2.hp.com/V2/getdocument.aspx?docname=4AA2-8173ENW.pdf&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a title="http://h20195.www2.hp.com/V2/GetPDF.aspx/4AA2-7162ENW.pdf" href="http://h20195.www2.hp.com/V2/GetPDF.aspx/4AA2-7162ENW.pdf"&gt;http://h20195.www2.hp.com/V2/GetPDF.aspx/4AA2-7162ENW.pdf&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9895719" width="1" height="1"&gt;</description></item><item><title>Troubleshooting SQL Server Transactional Replication</title><link>http://blogs.msdn.com/b/benjones/archive/2009/09/10/troubleshooting-sql-server-transactional-replication.aspx</link><pubDate>Thu, 10 Sep 2009 23:48:02 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9893870</guid><dc:creator>superlatch</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/benjones/rsscomments.aspx?WeblogPostID=9893870</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/benjones/commentapi.aspx?WeblogPostID=9893870</wfw:comment><comments>http://blogs.msdn.com/b/benjones/archive/2009/09/10/troubleshooting-sql-server-transactional-replication.aspx#comments</comments><description>&lt;p&gt;I often see questions about transactional replication performance problems, especially around latency/delays between the publisher and subscriber(s) so I’ve put a few pointers below on what to investigate.&amp;#160; Latency between the publisher, distributor and subscriber(s) is, more often than not, the symptom of other causes for example, poor I/O capacity on subscribers, blocking/locking, hotspots on indexes, high number of virtual log files etc. &lt;/p&gt;  &lt;p&gt;Troubleshooting tips:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Look at perfmon counters (disk reads and writes/sec, avg disk/sec read and avg disk/sec write) to ensure there is enough capacity and that the latency on the data and log drives are within our recommended boundaries.&amp;#160; &lt;/li&gt;    &lt;li&gt;Look at waitstats (use DMVstats – highly recommended) to see what resources are waiting. This will give you a good indication where the bottleneck is.&amp;#160; &lt;/li&gt;    &lt;li&gt;Look at the transactional replication performance monitor counters (pending Xacts, transactions/sec, latency etc.) &lt;/li&gt;    &lt;li&gt;Check the number of VLF’s &lt;a title="http://support.microsoft.com/kb/949523" href="http://support.microsoft.com/kb/949523"&gt;http://support.microsoft.com/kb/949523&lt;/a&gt; as this can have a negative impact on log scanning if there are a very high number of VLF’s, I tend to ensure this value is below 1000. &lt;/li&gt;    &lt;li&gt;Use tracer tokens to check latency from publisher to distributor to subscriber &lt;/li&gt;    &lt;li&gt;Use agent logging to external files, -outputverboselevel 2 –output &amp;lt;dir\file&amp;gt; to troubleshoot data issues &lt;/li&gt;    &lt;li&gt;Look in mslogreader_history, msdistribution_history &amp;amp; msrepl_errors in distribution database&lt;/li&gt;    &lt;li&gt;Consider external factors e.g. consult the network/SAN specialists to check external issues such as network bandwidth/array performance issues etc. &lt;/li&gt;    &lt;li&gt;If blocking is suspected then use the blocked process trace definition.&amp;#160; I can highly recommend this as it provides incredibly valuable information about the blocked and blocking processes.&amp;#160; &lt;/li&gt;    &lt;li&gt;If you are using database mirroring in conjunction with transaction replication then the log reader may be have to wait for the record to be hardened on the mirror.&amp;#160; This can be avoided by using trace flag 1448 on the publisher. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Optimisation tips:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Use agent profiles to optimise for workloads &lt;/li&gt;    &lt;li&gt;Implement Read Committed Snapshot Isolation (RCSI) on subscribers to alleviate reader/writer blocking (when doing this consider the impact on tempdb as this is where the version store is located)&lt;/li&gt;    &lt;li&gt;Ensure the distribution history clean-up job is correctly trimming the distribution database tables. &lt;/li&gt;    &lt;li&gt;If there are data consistency issues, consider using tablediff to compare data in publisher/subscriber tables (warning: this may take a while with large volumes of data) however tablediff can in fact be used against a subset of the data using views.&lt;/li&gt;    &lt;li&gt;Be careful about using –skiperrors to bypass consistency errors &lt;a href="http://support.microsoft.com/kb/327817"&gt;http://support.microsoft.com/kb/327817&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;Consider using –SubscriptionStreams on the distribution agent to use multiple threads to apply the data to the subscribers, read this &lt;a title="http://support.microsoft.com/kb/956600" href="http://support.microsoft.com/kb/956600"&gt;http://support.microsoft.com/kb/956600&lt;/a&gt; and this &lt;a title="http://support.microsoft.com/kb/953199" href="http://support.microsoft.com/kb/953199"&gt;http://support.microsoft.com/kb/953199&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;If initialising from a backup/copy of the database, don’t enforce integrity on the subscribers.&amp;#160; Drop the constraints or use the NOTFORREPLICATION option.&amp;#160; &lt;/li&gt; &lt;/ul&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9893870" width="1" height="1"&gt;</description></item><item><title>Fusion IO 640GB SSD PCI-Express Cards</title><link>http://blogs.msdn.com/b/benjones/archive/2009/09/10/fusion-io-640gb-ssd-pci-express-cards.aspx</link><pubDate>Thu, 10 Sep 2009 23:21:06 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9893863</guid><dc:creator>superlatch</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/benjones/rsscomments.aspx?WeblogPostID=9893863</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/benjones/commentapi.aspx?WeblogPostID=9893863</wfw:comment><comments>http://blogs.msdn.com/b/benjones/archive/2009/09/10/fusion-io-640gb-ssd-pci-express-cards.aspx#comments</comments><description>&lt;p&gt;We recently had the opportunity to test a couple of the Fusion IO PCI-Express 640GB SSD cards &lt;a title="http://www.fusionio.com/Products.aspx" href="http://www.fusionio.com/Products.aspx"&gt;http://www.fusionio.com/Products.aspx&lt;/a&gt; in a Dell R900 server, unfortunately time was against us and we were unable to do this. The Fusion IO SSD cards would dramatically increase the IOPS capacity and personally, I think they would be suited to storing tempdb.&amp;#160; I’m a bit cautious about using SSD for data and transaction log so tempdb seems like the best solution.&amp;#160; &lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9893863" width="1" height="1"&gt;</description></item><item><title>SQL Server 2008 Books Online (July 2009) Update</title><link>http://blogs.msdn.com/b/benjones/archive/2009/08/29/sql-server-2008-books-online-july-2009-update.aspx</link><pubDate>Sun, 30 Aug 2009 00:47:49 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9889018</guid><dc:creator>superlatch</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/benjones/rsscomments.aspx?WeblogPostID=9889018</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/benjones/commentapi.aspx?WeblogPostID=9889018</wfw:comment><comments>http://blogs.msdn.com/b/benjones/archive/2009/08/29/sql-server-2008-books-online-july-2009-update.aspx#comments</comments><description>&lt;p&gt;Only just noticed that a new revision of the SQL Server 2008 Books Online documentation has been published, the download is here &lt;a title="http://www.microsoft.com/downloads/details.aspx?FamilyID=765433f7-0983-4d7a-b628-0a98145bcb97&amp;amp;DisplayLang=en" href="http://www.microsoft.com/downloads/details.aspx?FamilyID=765433f7-0983-4d7a-b628-0a98145bcb97&amp;amp;DisplayLang=en"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyID=765433f7-0983-4d7a-b628-0a98145bcb97&amp;amp;DisplayLang=en&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9889018" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/benjones/archive/tags/SQL+Server+2008/">SQL Server 2008</category></item></channel></rss>
