<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://sqlblog.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Search results matching tags 'sql server' and 'SSRS'</title><link>http://sqlblog.com/search/SearchResults.aspx?o=DateDescending&amp;tag=sql+server,SSRS&amp;orTags=0</link><description>Search results matching tags 'sql server' and 'SSRS'</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP2 (Build: 61129.1)</generator><item><title>SSIS Reporting Pack – a performance tip</title><link>http://sqlblog.com/blogs/jamie_thomson/archive/2012/11/05/ssis-reporting-pack-a-performance-tip.aspx</link><pubDate>Mon, 05 Nov 2012 22:36:41 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:45948</guid><dc:creator>jamiet</dc:creator><description>&lt;p&gt;SSIS Reporting Pack is a suite of open source SQL Server Reporting Services (SSRS) reports that provide additional insight into the SQL Server Integration Services (SSIS) 2012 Catalog. You can read more about SSIS Reporting Pack &lt;a href="http://sqlblog.com/blogs/jamie_thomson/archive/tags/SSIS+Reporting+Pack/default.aspx" target="_blank"&gt;here on my blog&lt;/a&gt; or had over to the home page for the project at &lt;a title="http://ssisreportingpack.codeplex.com/" href="http://ssisreportingpack.codeplex.com/"&gt;http://ssisreportingpack.codeplex.com/&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;After having used SSRS Reporting Pack on a real project for a few months now I have come to realise that if you have any sizeable data volumes in [SSISDB] then the reports in SSIS Reporting Pack will suffer from chronic performance problems – I have seen the “execution” report take upwards of 30minutes to return data. To combat this I highly recommend that you create an index on the &lt;font face="Consolas"&gt;[SSISDB].[internal].[event_messages].[operation_id]&lt;/font&gt; &amp;amp; &lt;font face="Consolas"&gt;[SSISDB].[internal].[operation_messages].[operation_id]&lt;/font&gt; fields. &lt;a href="http://www.ssistalk.com/"&gt;Phil Brammer&lt;/a&gt; has experienced similar problems himself and has since made it easy for the rest of us by preparing some scripts to create the indexes that he recommends and he has shared those scripts via his blog at &lt;a href="http://www.ssistalk.com/SSIS_2012_Missing_Indexes.zip"&gt;http://www.ssistalk.com/SSIS_2012_Missing_Indexes.zip&lt;/a&gt;. If you are using SSIS Reporting Pack, or even if you are simply querying [SSISDB], I highly recommend that you download Phil’s scripts and test them out on your own SSIS Catalog(s).&lt;/p&gt;  &lt;p&gt;Those indexes will not solve all problems but they will make some of your reports run quicker. I am working on some further enhancements that should further improve the performance of the reports. Watch this space.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://twitter.com/jamiet" target="_blank"&gt;@Jamiet&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Build-time dependency resolving coming to Entity Framework. Now, how about those BI tools too?</title><link>http://sqlblog.com/blogs/jamie_thomson/archive/2010/12/07/build-time-dependancy-checking-coming-to-entity-framework-now-how-about-those-bi-tools-too.aspx</link><pubDate>Tue, 07 Dec 2010 10:04:00 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:31402</guid><dc:creator>jamiet</dc:creator><description>&lt;P&gt;Three months ago I wrote a blog post entitled&amp;nbsp;&lt;A class="" href="http://sqlblog.com/blogs/jamie_thomson/archive/2010/09/14/some-thoughts-on-visual-studio-database-references-and-how-they-should-be-used-for-sql-server-bi.aspx"&gt;Some thoughts on Visual Studio database references and how they should be used for SQL Server BI&lt;/A&gt;&amp;nbsp;where I shared some thoughts on a feature available&amp;nbsp;to database developers in&amp;nbsp;Visual Studio 2010 that I would love to see added to SQL Server Integration Services (SSIS), Analysis Services (SSAS) and Reporting Services (SSRS). In there I said:&lt;/P&gt;&lt;SPAN class=Apple-style-span style="WORD-SPACING:0px;FONT:13px Verdana, Arial, sans-serif;TEXT-TRANSFORM:none;TEXT-INDENT:0px;WHITE-SPACE:normal;LETTER-SPACING:normal;BORDER-COLLAPSE:separate;orphans:2;widows:2;-webkit-border-horizontal-spacing:0px;-webkit-border-vertical-spacing:0px;-webkit-text-decorations-in-effect:none;-webkit-text-size-adjust:auto;-webkit-text-stroke-width:0px;"&gt;&lt;SPAN class=Apple-style-span style="FONT-SIZE:12px;TEXT-ALIGN:justify;"&gt;
&lt;BLOCKQUOTE&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;"&gt;&lt;SPAN class=apple-style-span&gt;&lt;SPAN style="FONT-SIZE:8.5pt;COLOR:black;FONT-FAMILY:Verdana, sans-serif;"&gt;&lt;EM&gt;Over the past few weeks I have been making heavy use of the Database tools in Visual Studio 2010 and one of the features that has most impressed me has been database references.&lt;/EM&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;"&gt;&lt;SPAN class=apple-style-span&gt;&lt;SPAN style="FONT-SIZE:8.5pt;COLOR:black;FONT-FAMILY:Verdana, sans-serif;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;EM&gt;&amp;nbsp;&lt;/EM&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;"&gt;&lt;SPAN class=apple-style-span&gt;&lt;SPAN style="FONT-SIZE:8.5pt;COLOR:black;FONT-FAMILY:Verdana, sans-serif;"&gt;&lt;o:p&gt;&lt;EM&gt;Database references allow you to have stored procedures in your database project that refer to objects (tables, views, stored procedures etc…) that exist in other database projects and hence when you build your database project it is able to&lt;SPAN class=Apple-converted-space&gt;&amp;nbsp;&lt;/SPAN&gt;resolve&lt;SPAN class=Apple-converted-space&gt;&amp;nbsp;&lt;/SPAN&gt;those references.&lt;/EM&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;"&gt;&lt;SPAN class=apple-style-span&gt;&lt;SPAN style="FONT-SIZE:8.5pt;COLOR:black;FONT-FAMILY:Verdana, sans-serif;"&gt;&lt;o:p&gt;&lt;EM&gt;&lt;/EM&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;"&gt;&lt;SPAN class=apple-style-span&gt;&lt;SPAN style="FONT-SIZE:8.5pt;COLOR:black;FONT-FAMILY:Verdana, sans-serif;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class=apple-style-span&gt;&lt;SPAN style="FONT-SIZE:8.5pt;COLOR:black;FONT-FAMILY:Verdana, sans-serif;"&gt;&lt;o:p&gt;&lt;EM&gt;It occurred to me that similar functionality would be incredibly useful for SQL Server Integration Services(SSIS), Analysis Services (SSAS) &amp;amp; Reporting Services (SSRS) projects. After all reports, packages and data source views are rife with references to database objects – why shouldn’t we be able to have design-time dependency checking in our BI projects the same way that database and .Net developers do?&lt;/EM&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;"&gt;&lt;SPAN class=apple-style-span&gt;&lt;SPAN style="FONT-SIZE:8.5pt;COLOR:black;FONT-FAMILY:Verdana, sans-serif;"&gt;&lt;o:p&gt;In that blog post I&amp;nbsp;shared links to three Connect submissions where I requested this feature be added to SSIS, SSAS &amp;amp; SSRS. In addition I also submitted a request that the feature be extended to .Net projects so that any reference to a database object in a .Net assembly can be resolved at build time. That Connect submission is at &lt;A class="" href="https://connect.microsoft.com/VisualStudio/feedback/details/602252/entity-fx-use-database-references-to-constrain-the-edm?wa=wsignin1.0"&gt;[Entity FX] Use database references to constrain the EDM&lt;/A&gt;&amp;nbsp;and overnight it received this comment from Microsoft:&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;"&gt;&lt;SPAN class=apple-style-span&gt;&lt;SPAN style="FONT-SIZE:8.5pt;COLOR:black;FONT-FAMILY:Verdana, sans-serif;"&gt;&lt;o:p&gt;&lt;SPAN class=Apple-style-span style="WORD-SPACING:0px;FONT:medium 'Times New Roman';TEXT-TRANSFORM:none;TEXT-INDENT:0px;WHITE-SPACE:normal;LETTER-SPACING:normal;BORDER-COLLAPSE:separate;orphans:2;widows:2;-webkit-border-horizontal-spacing:0px;-webkit-border-vertical-spacing:0px;-webkit-text-decorations-in-effect:none;-webkit-text-size-adjust:auto;-webkit-text-stroke-width:0px;"&gt;&lt;SPAN class=Apple-style-span style="FONT-SIZE:11px;FONT-FAMILY:Verdana;"&gt;&lt;EM&gt;We have been working on this feature for a while and and will be available soon&lt;/EM&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;"&gt;&lt;SPAN class=apple-style-span&gt;&lt;SPAN style="FONT-SIZE:8.5pt;COLOR:black;FONT-FAMILY:Verdana, sans-serif;"&gt;&lt;o:p&gt;This is really good news - it&amp;nbsp;improves the Microsoft developer ecosystem by ensuring invalid references to database references&amp;nbsp;get caught at build time (ideally as part of a Continuous integration build) rather than run time. [Hopefully it might nip this &lt;A class="" href="http://weblogs.asp.net/scottgu/archive/2010/07/16/code-first-development-with-entity-framework-4.aspx"&gt;code-first nonsense&lt;/A&gt; in the bud too (Ooo...way to incite flame comments :) ) ]. If you want to see this feature in action then check out a video from Teched Europe last month entitled &lt;A class="" href="http://www.msteched.com/2010/Europe/DAT314"&gt;SQL Server Developer Tools Code-named "Juneau"&lt;/A&gt; where it is demo'd by Lance Delano and Tim Laverty.&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;"&gt;&lt;SPAN class=apple-style-span&gt;&lt;SPAN style="FONT-SIZE:8.5pt;COLOR:black;FONT-FAMILY:Verdana, sans-serif;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;"&gt;&lt;SPAN class=apple-style-span&gt;&lt;SPAN style="FONT-SIZE:8.5pt;COLOR:black;FONT-FAMILY:Verdana, sans-serif;"&gt;&lt;o:p&gt;The point of this blog post though is not just to draw attention to this forthcoming feature for .Net developers, it is to ask you to petition Microsoft to get this feature added to SSIS/SSAS/SSRS too. After all, we already know (from the video above) that the feature is coming to this new code-name Juneau development environment&amp;nbsp;plus we also know that Juneau will be the development environment for SSIS/SSAS/SSRS&amp;nbsp;as well&amp;nbsp;- is it really much of a stretch to expect the BI tools to have access to this great feature too? I don't think so and if you agree with me then I urge you to vote and add a comment to the Connection submissions that are requesting this feature. They are at:&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;DIV class=MsoNormal style="MARGIN:0in 0in 0pt;"&gt;&lt;SPAN class=apple-style-span&gt;&lt;SPAN style="FONT-SIZE:8.5pt;COLOR:black;FONT-FAMILY:Verdana, sans-serif;"&gt;&lt;o:p&gt;&lt;A class="" href="https://connect.microsoft.com/SQLServer/feedback/details/597709/" target=_blank&gt;[SSAS] Declare Object Dependancies&lt;/A&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV class=MsoNormal style="MARGIN:0in 0in 0pt;"&gt;&lt;SPAN class=apple-style-span&gt;&lt;SPAN style="FONT-SIZE:8.5pt;COLOR:black;FONT-FAMILY:Verdana, sans-serif;"&gt;&lt;o:p&gt;&lt;SPAN class=apple-style-span&gt;&lt;SPAN style="FONT-SIZE:8.5pt;COLOR:black;FONT-FAMILY:Verdana, sans-serif;"&gt;&lt;o:p&gt;&lt;SPAN class=apple-style-span&gt;&lt;SPAN style="FONT-SIZE:8.5pt;COLOR:black;FONT-FAMILY:Verdana, sans-serif;"&gt;&lt;o:p&gt;&lt;SPAN class=apple-style-span&gt;&lt;SPAN style="FONT-SIZE:8.5pt;COLOR:black;FONT-FAMILY:Verdana, sans-serif;"&gt;&lt;o:p&gt;&lt;A class="" href="https://connect.microsoft.com/SQLServer/feedback/details/597707/" target=_blank&gt;[SSRS] Declare Object Dependancies&lt;/A&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV class=MsoNormal style="MARGIN:0in 0in 0pt;"&gt;&lt;SPAN class=apple-style-span&gt;&lt;SPAN style="FONT-SIZE:8.5pt;COLOR:black;FONT-FAMILY:Verdana, sans-serif;"&gt;&lt;o:p&gt;&lt;SPAN class=apple-style-span&gt;&lt;SPAN style="FONT-SIZE:8.5pt;COLOR:black;FONT-FAMILY:Verdana, sans-serif;"&gt;&lt;o:p&gt;&lt;A class="" href="https://connect.microsoft.com/SQLServer/feedback/details/597708/" target=_blank&gt;[SSIS] Declare Object Dependancies&lt;/A&gt;&amp;nbsp;(Update, Apparently someone at Microsoft has deemed it necassary to set this to private and I am not able to change it back even though I submitted it. You can still vote on the other two though.)&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;"&gt;&lt;SPAN class=apple-style-span&gt;&lt;SPAN style="FONT-SIZE:8.5pt;COLOR:black;FONT-FAMILY:Verdana, sans-serif;"&gt;&lt;o:p&gt;&lt;SPAN class=apple-style-span&gt;&lt;SPAN style="FONT-SIZE:8.5pt;COLOR:black;FONT-FAMILY:Verdana, sans-serif;"&gt;&lt;o:p&gt;&lt;SPAN class=apple-style-span&gt;&lt;SPAN style="FONT-SIZE:8.5pt;COLOR:black;FONT-FAMILY:Verdana, sans-serif;"&gt;&lt;o:p&gt;Let's close that &lt;A class="" href="http://sqlblog.com/blogs/jamie_thomson/archive/2010/01/13/the-sql-developer-gap-warning-rant-coming-up.aspx"&gt;SQL Developer Gap&lt;/A&gt;!&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;"&gt;&lt;SPAN class=apple-style-span&gt;&lt;SPAN style="FONT-SIZE:8.5pt;COLOR:black;FONT-FAMILY:Verdana, sans-serif;"&gt;&lt;o:p&gt;&lt;SPAN class=apple-style-span&gt;&lt;SPAN style="FONT-SIZE:8.5pt;COLOR:black;FONT-FAMILY:Verdana, sans-serif;"&gt;&lt;o:p&gt;&lt;SPAN class=apple-style-span&gt;&lt;SPAN style="FONT-SIZE:8.5pt;COLOR:black;FONT-FAMILY:Verdana, sans-serif;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;"&gt;&lt;SPAN class=apple-style-span&gt;&lt;SPAN style="FONT-SIZE:8.5pt;COLOR:black;FONT-FAMILY:Verdana, sans-serif;"&gt;&lt;o:p&gt;&lt;SPAN class=apple-style-span&gt;&lt;SPAN style="FONT-SIZE:8.5pt;COLOR:black;FONT-FAMILY:Verdana, sans-serif;"&gt;&lt;o:p&gt;&lt;SPAN class=apple-style-span&gt;&lt;SPAN style="FONT-SIZE:8.5pt;COLOR:black;FONT-FAMILY:Verdana, sans-serif;"&gt;&lt;o:p&gt;&lt;A class="" href="http://twitter.com/jamiet"&gt;@Jamiet&lt;/A&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;"&gt;&lt;SPAN class=apple-style-span&gt;&lt;SPAN style="FONT-SIZE:8.5pt;COLOR:black;FONT-FAMILY:Verdana, sans-serif;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;"&gt;&lt;SPAN class=apple-style-span&gt;&lt;SPAN style="FONT-SIZE:8.5pt;COLOR:black;FONT-FAMILY:Verdana, sans-serif;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;</description></item><item><title>Some thoughts on Visual Studio database references and how they should be used for SQL Server BI</title><link>http://sqlblog.com/blogs/jamie_thomson/archive/2010/09/14/some-thoughts-on-visual-studio-database-references-and-how-they-should-be-used-for-sql-server-bi.aspx</link><pubDate>Tue, 14 Sep 2010 12:53:00 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:28755</guid><dc:creator>jamiet</dc:creator><description>&lt;P class=MsoNormal&gt;&lt;SPAN class=apple-style-span&gt;&lt;SPAN style="FONT-SIZE:8.5pt;COLOR:black;FONT-FAMILY:'Verdana','sans-serif';"&gt;Over the past few weeks I have been making heavy use of the Database tools in Visual Studio 2010 (formerly known as datadude, DBPro, VSTS for Database Professionals or one of a plethora of other names that it has gone by over the past few years) and one of the features that has most impressed me has been database references.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN class=apple-style-span&gt;&lt;SPAN style="FONT-SIZE:8.5pt;COLOR:black;FONT-FAMILY:'Verdana','sans-serif';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN class=apple-style-span&gt;&lt;SPAN style="FONT-SIZE:8.5pt;COLOR:black;FONT-FAMILY:'Verdana','sans-serif';"&gt;&lt;o:p&gt;Database references allow you to have stored procedures in your database project that refer to objects (tables, views, stored procedures etc…) that exist in other database projects and hence when you build your database project it is able to &lt;I style="mso-bidi-font-style:normal;"&gt;resolve&lt;/I&gt; those references. Gert Drapers has a useful introduction to them at his blog post &lt;A href="http://blogs.msdn.com/b/gertd/archive/2007/07/26/database-references.aspx"&gt;Database References&lt;/A&gt;; in his words database references allow you to:&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN class=apple-style-span&gt;&lt;SPAN style="FONT-SIZE:8.5pt;COLOR:black;FONT-FAMILY:'Verdana','sans-serif';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN-LEFT:36pt;"&gt;&lt;SPAN class=apple-style-span&gt;&lt;I style="mso-bidi-font-style:normal;"&gt;&lt;SPAN style="FONT-SIZE:9pt;COLOR:#333333;FONT-FAMILY:'Segoe UI','sans-serif';"&gt;represent and resolve 3 and/or 4-part name usage inside a database project. Database references&amp;nbsp;are conceptually the same as assembly references inside a C# or VB.NET projects; they allow you to reference objects from your database project that live inside another namespace (database).&lt;/SPAN&gt;&lt;/I&gt;&lt;/SPAN&gt;&lt;I style="mso-bidi-font-style:normal;"&gt;&lt;/I&gt;&lt;SPAN class=apple-style-span&gt;&lt;I style="mso-bidi-font-style:normal;"&gt;&lt;SPAN style="FONT-SIZE:8.5pt;COLOR:black;FONT-FAMILY:'Verdana','sans-serif';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/I&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN class=apple-style-span&gt;&lt;SPAN style="FONT-SIZE:8.5pt;COLOR:black;FONT-FAMILY:'Verdana','sans-serif';"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN class=apple-style-span&gt;&lt;SPAN style="FONT-SIZE:8.5pt;COLOR:black;FONT-FAMILY:'Verdana','sans-serif';"&gt;&lt;o:p&gt;It occurred to me that similar functionality would be incredibly useful for SQL Server Integration Services(SSIS), Analysis Services (SSAS) &amp;amp; Reporting Services (SSRS) projects. After all reports, packages and data source views are rife with references to database objects – why shouldn’t we be able to have design-time dependency checking in our BI projects the same way that database and .Net developers do?&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN class=Apple-style-span style="FONT-SIZE:11px;FONT-FAMILY:Verdana, sans-serif;"&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN class=Apple-style-span style="FONT-SIZE:11px;FONT-FAMILY:Verdana, sans-serif;"&gt;Here are some examples of ways in which this would be useful:&lt;/SPAN&gt;&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;
&lt;DIV class=MsoNormal&gt;&lt;SPAN style="FONT-SIZE:8.5pt;COLOR:black;FONT-FAMILY:'Verdana','sans-serif';"&gt;&lt;SPAN class=apple-style-span&gt;If a SSRS report pulls data from a view, I firstly want to know (at design-time) that that view exists. Secondly, if the view definition changes I want to know that my report will still work.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV class=MsoNormal&gt;&lt;SPAN style="FONT-SIZE:8.5pt;COLOR:black;FONT-FAMILY:'Verdana','sans-serif';"&gt;&lt;SPAN class=apple-style-span&gt;&lt;/SPAN&gt;&lt;SPAN class=apple-style-span&gt;Similarly for a SSAS cube, if a view referenced in the DSV changes or disappears I want my SSAS project build to fail or succeed accordingly&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV class=MsoNormal&gt;&lt;SPAN style="FONT-SIZE:8.5pt;COLOR:black;FONT-FAMILY:'Verdana','sans-serif';"&gt;&lt;SPAN class=apple-style-span&gt;&lt;/SPAN&gt;&lt;SPAN class=apple-style-span&gt;Similarly for a SSIS Execute SQL Task, if it executes a stored procedure I want to know that the named parameters that I am using actually exist in the stored procedure.&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/LI&gt;&lt;/OL&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN class=apple-style-span&gt;&lt;SPAN style="FONT-SIZE:8.5pt;COLOR:black;FONT-FAMILY:'Verdana','sans-serif';"&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN class=apple-style-span&gt;&lt;SPAN style="FONT-SIZE:8.5pt;COLOR:black;FONT-FAMILY:'Verdana','sans-serif';"&gt;To this end I have submitted three identical suggestions to &lt;A href="http://connect.microsoft.com/sqlserver/feedback"&gt;Connect&lt;/A&gt;, one each for SSIS, SSAS &amp;amp; SSRS:&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN class=apple-style-span&gt;&lt;SPAN style="FONT-SIZE:8.5pt;COLOR:black;FONT-FAMILY:'Verdana','sans-serif';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN style="FONT-SIZE:16.5pt;COLOR:black;FONT-FAMILY:'Verdana','sans-serif';mso-fareast-font-family:'Times New Roman';mso-bidi-font-family:'Times New Roman';mso-font-kerning:18.0pt;mso-fareast-language:EN-GB;"&gt;&lt;A class="" href="https://connect.microsoft.com/SQLServer/feedback/details/597709/" target=_blank&gt;[SSAS] Declare database object dependencies&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:16.5pt;COLOR:black;FONT-FAMILY:'Verdana','sans-serif';"&gt;&lt;A class="" href="https://connect.microsoft.com/SQLServer/feedback/details/597707/" target=_blank&gt;[SSRS] Declare database object dependencies&lt;/A&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:16.5pt;COLOR:black;FONT-FAMILY:'Verdana','sans-serif';"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:16.5pt;COLOR:black;FONT-FAMILY:'Verdana','sans-serif';"&gt;&lt;A class="" href="https://connect.microsoft.com/SQLServer/feedback/details/597708/" target=_blank&gt;[SSIS] Declare database object dependencies&lt;/A&gt;&lt;BR&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal&gt;I have said before in my blog post &lt;A href="http://sqlblog.com/blogs/jamie_thomson/archive/2010/01/12/the-sql-developer-gap-warning-rant-coming-up.aspx"&gt;The SQL developer gap&lt;/A&gt; that we database and BI developers deserve as much love from Microsoft as our .Net counterparts do and I’m of the opinion that providing design-time dependency checking across the full gamut of BI projects would be a huge step in the right direction. The holy grail is an object dependency graph from database tables all the way up through database views, database functions, stored procedures, DAL, ORM layer &amp;amp; business logic layer all the way through to presentation – I don’t know how long it will take but we will get there one day I am sure, hopefully sooner rather than later!&lt;/P&gt;
&lt;P class=MsoNormal&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;A href="http://twitter.com/jamiet"&gt;@JamieT&lt;/A&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;UPDATE: This feature (i.e. the ability to define dependencies on database objects at build time) is coming to the Entity Framework as confirmed in this Connect submission:&amp;nbsp;&lt;A class="" href="http://bit.ly/igmEiS"&gt;http://bit.ly/igmEiS&lt;/A&gt;. Let's hope the same comes to SSIS/SSAS/SSRS soon.&lt;/P&gt;</description></item><item><title>T-SQL Tuesday #005: Creating SSMS Custom Reports</title><link>http://sqlblog.com/blogs/michael_coles/archive/2010/04/12/t-sql-tuesday-005-creating-ssms-custom-reports.aspx</link><pubDate>Tue, 13 Apr 2010 00:14:00 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:24228</guid><dc:creator>Mike C</dc:creator><description>&lt;P&gt;This is my&amp;nbsp;contribution to the T-SQL Tuesday blog party, started by &lt;A title="Adam Machanic" href="http://sqlblog.com/blogs/adam_machanic/archive/2010/04/05/t-sql-tuesday-005-reporting.aspx"&gt;Adam Machanic&lt;/A&gt; and &amp;nbsp;hosted this month by &lt;A title="Aaron Nelson" href="http://sqlvariant.com/wordpress/index.php/2010/04/t-sql-tuesday-005-reporting/"&gt;Aaron Nelson&lt;/A&gt;.&amp;nbsp; Aaron announced this month's topic is "reporting" so I figured I'd throw a blog up on a reporting topic I've been interested in for a while -- namely creating custom reports in SSMS.&lt;/P&gt;
&lt;P&gt;Creating SSMS custom reports isn't difficult, but&amp;nbsp;like most technical work it's very detailed with a lot of little steps involved.&amp;nbsp; So this post is a little longer than usual and includes a lot of screenshots.&amp;nbsp; There's also a downloadable &lt;A title="Sample SSMS Custom Reports" href="http://brprfa.bay.livefilestore.com/y1pu65YtRksdmF-NkqPRSNVJVjP75MjU31Yyvna97r9AoEdF9wilfgmWTFCpm7DDuuPRpS9qe9Io-h4_pms-Y2N0LV1L6j8bNeU/Custom%20Report%20Samples.zip?download"&gt;ZIP file&lt;/A&gt; with the projects from this article included.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;U&gt;SSMS Custom Reports&lt;/U&gt;&lt;/STRONG&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;SQL Server 2008 and 2005 both offer custom report functionality in Management Studio.&amp;nbsp; With a little bit of work you can create custom SSMS reports just like the standard reports that Microsoft ships with Management Studio.&amp;nbsp; The Disk Usage Report shown below is just one of the many standard reports that comes with SSMS.&lt;/P&gt;
&lt;P&gt;&lt;IMG style="WIDTH:591px;HEIGHT:496px;" title="SSMS Standard Report" alt="SSMS Standard Report" src="http://brprfa.bay.livefilestore.com/y1p96w-RdpK_UPoOGMgli4eVbzYi3Oj9d-SdGVX4zXdkABiCseQUqv8_Ye9DjYtHHdaJj39eOK0XzLEqnctlccDKSptvHhJME1c/standard-report.jpg" width=591 height=496&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;U&gt;Creating a Report Project&lt;/U&gt;&lt;/STRONG&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;SSMS uses the SQL Server Reporting Services (SSRS) 2005 client/viewer control to render both standard and custom reports.&amp;nbsp; This is true for both SSMS 2005 and SSMS 2008.&amp;nbsp; So the first step to building a custom SSMS report is to fire up Visual Studio 2005 and create a new &lt;EM&gt;Report Server Project&lt;/EM&gt; as shown below.&amp;nbsp; For this example we'll create a custom report that lists missing indexes, so give the project the name &lt;I&gt;Missing Index&lt;/I&gt;.&lt;/P&gt;
&lt;P&gt;&lt;IMG style="WIDTH:550px;HEIGHT:305px;" title="Create New Project Dialog" alt="Create New Project Dialog" src="http://brprfa.bay.livefilestore.com/y1pkwKN2ypKEv3XJHROh7xaoTOi4R79ha01zyZnL-acBQhieH_6CAo18PEri6DjOBX5d_O2jgH6bPTvIOUWNpmr7eHf-4xxG_GI/vs2005-new-project.jpg" width=550 height=305&gt;&lt;/P&gt;
&lt;P&gt;Once you create the &lt;EM&gt;Report Server Project&lt;/EM&gt; right-click on &lt;I&gt;Reports&lt;/I&gt; in the Solution Explorer and choose &lt;I&gt;Add &amp;gt; New Item...&lt;/I&gt;&lt;/P&gt;
&lt;P&gt;&lt;IMG style="WIDTH:286px;HEIGHT:258px;" title="Add Report to Project" alt="Add Report to Project" src="http://brprfa.bay.livefilestore.com/y1p8qFbsxsFq7xjtkvppNWQ-N7S5R-uoHiJif6FtkChY1pzf5qQblwl7AapydMWrSRFY1_O-XsadEk5nR6XV9DX7-2lJVp7TFWn/add-report.jpg" width=286 height=258&gt;&lt;/P&gt;
&lt;P&gt;When the &lt;I&gt;Add New Item&lt;/I&gt; box appears, choose the Report template and give the report a name.&amp;nbsp;&amp;nbsp;For this example I named the report&amp;nbsp;&lt;I&gt;Missing Index.rdl&lt;/I&gt; - the &lt;EM&gt;.rdl&lt;/EM&gt; extension stands for "Report Definition Language", and is the standard extension for SSRS report definition files.&lt;/P&gt;
&lt;P&gt;&lt;IMG style="WIDTH:551px;HEIGHT:244px;" title="Add Report Dialog" alt="Add Report Dialog" src="http://brprfa.bay.livefilestore.com/y1pf_VVyzWAjA0uiWHfEChyN-uwUNscnR9B5cHDipw1KDF1StNazv-T7xFtmGqtdgBVZ1kGS_daR5vqkPFk-QdqpWMVdDR5Nodv/add-report-box.jpg" width=551 height=244&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;U&gt;Defining the Report Dataset&lt;/U&gt;&lt;/STRONG&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Once the report is added to your project you have to add a new dataset to the report.&amp;nbsp; The dataset defines the structure and content of the source data that will populate your report.&amp;nbsp; Choose &lt;I&gt;&amp;lt;New Dataset...&amp;gt;&lt;/I&gt; from the &lt;I&gt;Dataset:&lt;/I&gt; dropdown.&lt;/P&gt;
&lt;P&gt;&lt;IMG style="WIDTH:470px;HEIGHT:151px;" title="Add New Dataset dropdown" alt="Add New Dataset dropdown" src="http://brprfa.bay.livefilestore.com/y1pw8BZ2mr9F4SCExKCklLxVPczZu6Mq0IEo2agULy1QRoLJRF2KKDqVAv1Oft41oQu1oBaZd_iEMa91OfLT83Eeky87qAra11Z/add-new-dataset.jpg" width=470 height=151&gt;&lt;/P&gt;
&lt;P&gt;Visual Studio will respond with a &lt;EM&gt;Data Source&lt;/EM&gt; box.&amp;nbsp; Just make sure the &lt;I&gt;Type:&lt;/I&gt; dropdown is set to the default &lt;STRONG&gt;Microsoft SQL Server&lt;/STRONG&gt; and put &lt;STRONG&gt;Data Source=.&lt;/STRONG&gt; in the &lt;I&gt;Connection string:&lt;/I&gt; box.&amp;nbsp; This is all that's required since the SSMS custom report you're creating will use connections created and managed by SSMS's Object Explorer.&lt;/P&gt;
&lt;P&gt;&lt;IMG style="WIDTH:569px;HEIGHT:487px;" title="Add Datasource Dialog" alt="Add Datasource Dialog" src="http://brprfa.bay.livefilestore.com/y1pZ9v1Nf3IVwj1bm5gCsMnZLstJyKbsLFI75DOGhsuGjcuHZalsEs2c_odVbbgaqiWQpwyYZkyRBc3BExbXiZweT67vn5FhBgN/add-data-source.jpg" width=569 height=487&gt;&lt;/P&gt;
&lt;P&gt;After you define the data source, you can define the SQL query that will populate your report.&amp;nbsp; Just put the query in the dataset window as shown below.&lt;/P&gt;
&lt;P&gt;&lt;IMG style="WIDTH:703px;HEIGHT:358px;" title="Adding a Dataset" alt="Adding a Dataset" src="http://brprfa.bay.livefilestore.com/y1pfTvR7VFHggCKt2l8yVZ_2vlxY9-ZppnqW2MEJIDTQvzy1X7zhLg43LfaTKpRB2QI5rlzv_TcpiCKkbXPh7WQZL5d-a6PNLdP/add-new-dataset3.jpg" width=703 height=358&gt;&lt;/P&gt;
&lt;P&gt;I borrowed (and slightly modified) the following query from &lt;A title="Brent Ozar!" href="http://www.brentozar.com/"&gt;Brent Ozar&lt;/A&gt;.&amp;nbsp; He originally published it at &lt;A title=SQLServerPedia! href="http://sqlserverpedia.com/wiki/Find_Missing_Indexes"&gt;SQLServerPedia&lt;/A&gt;. &amp;nbsp;This particular query uses SQL Server's missing index Dynamic Management Views (DMVs) to identify missing indexes.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;-- Begin missing index query&lt;BR&gt;&lt;BR&gt;WITH cte&lt;BR&gt;AS&lt;BR&gt;(&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SELECT mid.object_id AS object_id,&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; QUOTENAME(OBJECT_SCHEMA_NAME(mid.object_id)) AS table_schema,&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; QUOTENAME(OBJECT_NAME(mid.object_id)) AS table_name,&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; QUOTENAME('IX_' + OBJECT_SCHEMA_NAME(mid.object_id) + '_' +&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LEFT(CAST(NEWID() AS CHAR(36)), 8)) AS index_name,&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mid.index_handle&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FROM sys.dm_db_missing_index_details mid&lt;BR&gt;)&lt;BR&gt;SELECT&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DENSE_RANK() OVER&amp;nbsp;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; (&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ORDER BY cte.table_schema, cte.table_name&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ) AS table_color,&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ROW_NUMBER() OVER&amp;nbsp;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; (&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PARTITION BY cte.table_schema, cte.table_name&amp;nbsp;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ORDER BY (avg_total_user_cost * avg_user_impact) * (user_seeks + user_scans) DESC&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ) AS index_color,&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; cte.table_schema,&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; cte.table_name,&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; cte.index_name AS index_name,&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; (avg_total_user_cost * avg_user_impact) * (user_seeks + user_scans) AS calc_impact,&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'CREATE NONCLUSTERED INDEX ' + cte.index_name + ' ON ' +&amp;nbsp;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; cte.table_schema + '.' + cte.table_name +&amp;nbsp;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' (' + COALESCE(mid.equality_columns, '') +&amp;nbsp;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CASE WHEN mid.inequality_columns IS NULL&amp;nbsp;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; THEN ''&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ELSE CASE WHEN mid.equality_columns IS NULL&amp;nbsp;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; THEN ''&amp;nbsp;&amp;nbsp;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ELSE ','&amp;nbsp;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; END + mid.inequality_columns&amp;nbsp;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; END +&amp;nbsp;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ') ' + CASE WHEN mid.included_columns IS NULL&amp;nbsp;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; THEN ''&amp;nbsp;&amp;nbsp;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ELSE 'INCLUDE (' + mid.included_columns + ')'&amp;nbsp;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; END +&amp;nbsp;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ';' AS create_stmt,&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; mid.equality_columns,&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; mid.inequality_columns,&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; mid.included_columns &lt;BR&gt;FROM sys.dm_db_missing_index_group_stats AS migs &lt;BR&gt;INNER JOIN sys.dm_db_missing_index_groups AS mig&amp;nbsp;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ON migs.group_handle = mig.index_group_handle &lt;BR&gt;INNER JOIN sys.dm_db_missing_index_details AS mid&amp;nbsp;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ON mig.index_handle = mid.index_handle&amp;nbsp;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AND mid.database_id = DB_ID() &lt;BR&gt;INNER JOIN cte&amp;nbsp;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ON cte.index_handle = mid.index_handle&lt;BR&gt;WHERE migs.group_handle IN &lt;BR&gt;(&amp;nbsp;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SELECT group_handle&amp;nbsp;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FROM sys.dm_db_missing_index_group_stats WITH (NOLOCK) &lt;BR&gt;)&lt;BR&gt;ORDER BY calc_impact DESC;&lt;BR&gt;&lt;BR&gt;-- End missing index query&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;There are a couple of caveats to keep in mind about the missing index DMVs that this query relies on:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;They're not designed to be exhaustive.&amp;nbsp; If you want to get a serious analysis of useful indexes in your databases, you definitely want to use a tool that will perform a more extensive analysis.&lt;/LI&gt;
&lt;LI&gt;The DMVs only persist their information since the last time the SQL Server service was restarted.&amp;nbsp; If you've recently restarted the service you'll get very little information back.&amp;nbsp; These DMVs are best to use when your server has been running under normal load for a while.&lt;/LI&gt;
&lt;LI&gt;The suggestions returned by the DMVs aren't always the best way to go.&amp;nbsp; These DMVs often recommend suggested indexes with lots of overlap (lots of columns in common, often in similar order).&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;To put it another way, don't take the raw information returned by these DMVs at face value.&amp;nbsp; The information they return is definitely useful for determining where indexes might provide benefit if your system has been running under normal load for a while, and the redundant index suggestions tend to indicate which indexes might be most useful.&amp;nbsp; But these DMVs just amount to a starting point for analyzing your indexing needs.&amp;nbsp; I'd recommend against creating dozens of redundant&amp;nbsp;indexes based on the raw output of these DMVs.&lt;/P&gt;
&lt;P&gt;Visual Studio will normally populate the dataset fields.&amp;nbsp; If for some reason it doesn't, you can manually edit the fields by hitting the&amp;nbsp;&lt;IMG style="WIDTH:12px;HEIGHT:11px;" title="Edit Selected Dataset button" alt="Edit Selected Dataset button" src="http://brprfa.bay.livefilestore.com/y1p1RjlRPeT8nUiaHkby2NgdTPdwAZhlX8j1xno7j2uXjLVrCXDh4iCA3tat3aKVR2mak4Anfa_irdyFjJ8vd1qRUXFznVjXJLl/edit-selected-dataset.jpg" width=25 height=22&gt;&amp;nbsp;&lt;I&gt;Edit Selected Dataset&lt;/I&gt; button to pull up the &lt;I&gt;Dataset&lt;/I&gt; window.&amp;nbsp; You can then enter the field names on the &lt;I&gt;Fields&lt;/I&gt; tab if they aren't already populated.&lt;/P&gt;
&lt;P&gt;&lt;IMG style="WIDTH:388px;HEIGHT:319px;" title="Edit Dataset Fields tab" alt="Edit Dataset Fields tab" src="http://brprfa.bay.livefilestore.com/y1pfvnIF4EbFtuA6q8rBYk0t072J_cDu43NCKGn3DGtJepbF5Xtr-qqAQ23gcmmMQr94DH295woheHjRbkSBuXMC-oHJsxPlDoL/dataset-fields.jpg" width=554 height=458&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Building the Report&lt;/STRONG&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;So far most of what we've done is just setup.&amp;nbsp; With this&amp;nbsp;done, it's time to design and build the actual report.&amp;nbsp; For this, click on the Visual Studio &lt;EM&gt;Layout&lt;/EM&gt; tab to get to the report designer surface.&amp;nbsp; You can drag and drop text boxes, charts, tables, images and any other controls from the Toolbox onto the designer surface.&amp;nbsp; To keep it simple we'll just drag a text box and a table onto the designer.&lt;/P&gt;
&lt;P&gt;&lt;IMG style="WIDTH:685px;HEIGHT:341px;" title="Reprot Designer Layout tab" alt="Reprot Designer Layout tab" src="http://brprfa.bay.livefilestore.com/y1pWNM-fc_9Nr_h6im9m8v9jweJclU9QXhuvkIMwSDMxkaDXMq_QqvgLUJN3wtzqqQil54T4aTHvvDOFPupnH2D_i0WQAhx9u2G/report-designer-1.jpg" width=685 height=341&gt;&lt;/P&gt;
&lt;P&gt;Put the title of the report in the text box (in this case "Missing Index Report") and format it to your liking.&amp;nbsp; The table we dragged onto the designer surface has three columns by default.&amp;nbsp; For this example we want six columns total.&amp;nbsp; To add more columns right-click on the top border of the table and choose &lt;I&gt;Insert Column to the Left&lt;/I&gt; to add a new column.&amp;nbsp; Repeat two more times.&lt;/P&gt;
&lt;P&gt;&lt;IMG style="WIDTH:516px;HEIGHT:265px;" title="Inserting columns in SSRS table" alt="Inserting columns in SSRS table" src="http://brprfa.bay.livefilestore.com/y1pMVVRej-iyVngxatXV5eZNwxe42KRX3loOI5AMNbJYNPvaQLwNPdA2_rEfbFqaXJ1M827zxGteCq8wtIkw8mJmOigbBDgloik/insert-columns.jpg" width=831 height=459&gt;&lt;/P&gt;
&lt;P&gt;In the &lt;I&gt;Header&lt;/I&gt; row of the table we'll type in the headers for each column like the following:&lt;/P&gt;
&lt;P&gt;&lt;IMG style="WIDTH:577px;HEIGHT:173px;" title="Editing Table Column Headers in a report" alt="Editing Table Column Headers in a report" src="http://brprfa.bay.livefilestore.com/y1pclRRkvyQ58kZth8uxowVdjARwR9LROwxTNmOxKph-la2SwSyk5UdkLqGTrgDQVNk1bi-Q4A9YX_8RUluiCHCba_EI6APPNOz/report-column-headers.jpg" width=968 height=303&gt;&lt;/P&gt;
&lt;P&gt;In the &lt;I&gt;Detail&lt;/I&gt; row we'll put in the formulas to populate the database fields like this:&lt;/P&gt;
&lt;P&gt;&lt;IMG style="WIDTH:579px;HEIGHT:181px;" title="Editing the Report Table Details" alt="Editing the Report Table Details" src="http://brprfa.bay.livefilestore.com/y1pCcKPNTXmgXVchY8WkAtQYF-L5iPN8g65mJC8cHhd0fJ7O3tPx4iAHmhWO7XrQG8VXQ-c2p-pUE01v5noF_nqihOBBaQ9d15j/report-column-details.jpg" width=968 height=303&gt;&lt;/P&gt;
&lt;P&gt;SSRS formulas begin with the equal sign (&lt;STRONG&gt;=&lt;/STRONG&gt;).&amp;nbsp; Fields from the dataset are referenced directly using the format &lt;EM&gt;&lt;STRONG&gt;Fields!field_name.Value&lt;/STRONG&gt;&lt;/EM&gt;.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;U&gt;Deploying and Running the Report&lt;/U&gt;&lt;/STRONG&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;At this point use Visual Studio to build the project.&amp;nbsp; Once it builds without error, navigate to the project directory in Windows Explorer and copy the &lt;I&gt;Missing Index.rdl&lt;/I&gt; file to the SSMS Custom Reports directory (on my computer this directory is located at &lt;EM&gt;C:\Users\Michael\Documents\SQL Server Management Studio\Custom Reports&lt;/EM&gt;, it'll be different on yours).&amp;nbsp; &lt;/P&gt;
&lt;P&gt;You can now bring up this report in SSMS by right-clicking on a database in the Object Explorer and selecting &lt;I&gt;Reports &amp;gt; Custom Reports...&lt;/I&gt; to select the custom report.&lt;/P&gt;
&lt;P&gt;&lt;IMG style="WIDTH:350px;HEIGHT:322px;" title="Running a Custom Report in SSMS" alt="Running a Custom Report in SSMS" src="http://brprfa.bay.livefilestore.com/y1pXFRn1jsLwq2U9tpYrjStVVVnrG-A7RO2mZfEAd_tZPMUVN1X3VRrc81PtQl8l0TcHgCFIMa3dPDSb1qhAxRvyxu8vL94iaPB/run-custom-report.jpg" width=567 height=551&gt;&lt;/P&gt;
&lt;P&gt;Choose your custom report from the file selection box and click &lt;I&gt;Open&lt;/I&gt;.&lt;/P&gt;
&lt;P&gt;&lt;IMG style="WIDTH:543px;HEIGHT:340px;" title="Selecting a Custom Report in SSMS" alt="Selecting a Custom Report in SSMS" src="http://brprfa.bay.livefilestore.com/y1pwUOidWktlB26rl2DefIcRZ4YzSDVRUwqZ3IqFDNh3mAEvNg9Fs-Gy8k8m5lnVJfSPm3dEb6GNQpOXGdsK2u1ABViZ4cHivzr/choose-custom-report.jpg" width=864 height=543&gt;&lt;/P&gt;
&lt;P&gt;When you run a custom report in SSMS you'll get a warning like the following:&lt;/P&gt;
&lt;P&gt;&lt;IMG style="WIDTH:306px;HEIGHT:186px;" title="SSMS Custom Report Warning Box" alt="SSMS Custom Report Warning Box" src="http://brprfa.bay.livefilestore.com/y1pj7c9vCxvKz3cPrIDZuL5EIvxHJGN6FlCspgGan0cZdd08mvzz0CKuUbdxcfbKA-hPSJU4F9pP6BJb08s1vLqurCuKhYMWDHe/custom-report-warning.jpg" width=420 height=256&gt;&lt;/P&gt;
&lt;P&gt;Just choose &lt;EM&gt;Run&lt;/EM&gt;.&amp;nbsp; You might also want to check the box that says "&lt;EM&gt;Please don't show this warning again&lt;/EM&gt;" to keep the box from popping up every time you run a custom report.&amp;nbsp; The simple custom report you've created looks like the one shown below.&lt;/P&gt;
&lt;P&gt;&lt;IMG style="WIDTH:593px;HEIGHT:254px;" title="Simple Custom Report" alt="Simple Custom Report" src="http://brprfa.bay.livefilestore.com/y1pTSsqYVoiCmzuzPOOHutMQnibG2CwxjGijBWma-J9VL3XPF1P0CpVzbQUUbGUj9vXmYh0avAt7armpL4BnSvxub7pcAq8xT3O/simple-report.jpg" width=964 height=453&gt;&lt;/P&gt;
&lt;P&gt;You can use images, color and other formatting techniques to make the report easier to read and use, and more flexible for your users.&amp;nbsp; Consider the image below, which is a screenshot of a reformatted version of the &lt;EM&gt;Missing Index&lt;/EM&gt; report.&amp;nbsp; This one includes more information, color and collapsible sections.&amp;nbsp; Both reports are included in the attached &lt;A title="SSMS Custom Reports" href="http://brprfa.bay.livefilestore.com/y1pu65YtRksdmF-NkqPRSNVJVjP75MjU31Yyvna97r9AoEdF9wilfgmWTFCpm7DDuuPRpS9qe9Io-h4_pms-Y2N0LV1L6j8bNeU/Custom%20Report%20Samples.zip?download"&gt;ZIP file&lt;/A&gt; under the Missing Index and Missing Index Color directories.&lt;/P&gt;
&lt;P&gt;&lt;IMG style="WIDTH:601px;HEIGHT:488px;" title="Reformatted SSMS Custom Report" alt="Reformatted SSMS Custom Report" src="http://brprfa.bay.livefilestore.com/y1pHxjPdr2Zd4nKD0hsBC6T0BTOiIH15VmH6pfwHt3jfrod1z_bQ_dqEx6eDfZKCTt66KotLSPQXOOrX7F40Lwc3T05ZBCZGypG/final-report-color.jpg" width=991 height=810&gt;&lt;/P&gt;
&lt;P&gt;You can play around with the source files included in the attached &lt;A title="Sample SSMS Custom Reports" href="http://brprfa.bay.livefilestore.com/y1pu65YtRksdmF-NkqPRSNVJVjP75MjU31Yyvna97r9AoEdF9wilfgmWTFCpm7DDuuPRpS9qe9Io-h4_pms-Y2N0LV1L6j8bNeU/Custom%20Report%20Samples.zip?download" target=_blank&gt;ZIP file&lt;/A&gt;.&lt;/P&gt;</description></item><item><title>It's Official - SQLSaturday is Coming to NYC!</title><link>http://sqlblog.com/blogs/michael_coles/archive/2010/02/06/it-s-official-sqlsaturday-is-coming-to-nyc.aspx</link><pubDate>Sat, 06 Feb 2010 19:59:00 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:21916</guid><dc:creator>Mike C</dc:creator><description>&lt;P&gt;&lt;A title="NJSQL Home Page" href="http://www.njsql.org/" target=_blank&gt;New Jersey SQL Server User Group (NJSQL)&lt;/A&gt; is bringing &lt;A title="SQLSaturday #39 Home Page" href="http://www.sqlsaturday.com/39/eventhome.aspx" target=_blank&gt;SQLSaturday #39&lt;/A&gt;&amp;nbsp;to NYC on April 24, 2010!&amp;nbsp; The free all-day training event will be hosted by Microsoft at their Midtown Manhattan offices.&amp;nbsp; The speaker line-up is growing fast—if you'd like to present, visit the event's open &lt;A title="SQLSaturday #39 Call for Speakers" href="http://www.sqlsaturday.com/39/callforspeakers.aspx" target=_blank&gt;call for speakers&lt;/A&gt;.&amp;nbsp;&amp;nbsp;This is a free full-day training&amp;nbsp;event, but &lt;A title="SQLSaturday #39 Registration Page" href="http://www.sqlsaturday.com/39/register.aspx" target=_blank&gt;registration is required&lt;/A&gt;&amp;nbsp;to attend.&amp;nbsp; Seating is limited.&lt;/P&gt;
&lt;P&gt;Registration, speaker, and sponsorship details are posted at &lt;A href="http://www.sqlsaturday.com/39/eventhome.aspx"&gt;http://www.sqlsaturday.com/39/eventhome.aspx&lt;/A&gt;.&lt;/P&gt;</description></item><item><title>The SQL developer gap (Warning: rant coming up)</title><link>http://sqlblog.com/blogs/jamie_thomson/archive/2010/01/12/the-sql-developer-gap-warning-rant-coming-up.aspx</link><pubDate>Tue, 12 Jan 2010 23:43:21 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:20975</guid><dc:creator>jamiet</dc:creator><description>&lt;p&gt;I recently submitted a bug to Microsoft Connect concerning the behaviour of the expression language in SSRS, if you’re interested you can read about it here: &lt;a href="https://connect.microsoft.com/SQLServer/feedback/ViewFeedback.aspx?FeedbackID=523703" target="_blank"&gt;DateAdd() doesn't throw an error when it has invalid parameters&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;I got a swift and detailed reply (for which I am grateful) from a fellow on the SSRS team however the content of it wasn’t exactly music to my ears:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;While I do agree it would be desirable to have an error here, the SSRS engine makes use of the VB code engine for functions such as this. So, the call to DateAdd is just a passthrough as far as SSRS is concerned. The majority of the functions available in SSRS are actually just VB ones.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;In other words the inequities of SSRS’s expression language are down to the frailties of a 14 year old scripting language that should have been thrown out long ago on the coattails of Crystal Reports. Am I the only SQL Server BI developer that feels a little … oh I don’t know … &lt;em&gt;unloved&lt;/em&gt; sometimes by the various BI teams in SQL Server land. Let’s have a look at some of the things that we have to put up with:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;two different expression languages (one for SSIS, one for SSRS), neither of which support comments as far as I am aware, neither of which have any debugging features and neither of which are extensible &lt;/li&gt;    &lt;li&gt;an expression language in SSRS that is based on a dead scripting language and rarely produces meaningful errors &lt;/li&gt;    &lt;li&gt;an expression editor in SSIS for which there isn’t even context-sensitive help let alone intellisense &lt;/li&gt;    &lt;li&gt;an MDX query editor in SSMS that doesn’t have intellisense &lt;/li&gt;    &lt;li&gt;a script task editor in SSIS that shows read-only system variables in the ReadWriteVariables dropdown &lt;/li&gt;    &lt;li&gt;I could go on…&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;None of these issues are particularly prohibitive on their own but when you add them all up (along with many others) I’ve no doubt that we could all be a heck of a lot more productive were they all solved.&lt;/p&gt;  &lt;p&gt;I look around at our cousins in .Net land and I see their fancy WPF code editors, extensible languages, Javascript Intellisense, code navigation shortcuts, mockable code, code style checkers, MEF-compliant IDEs, type-inferencing, 3rd-party code editors, keyboard shortcuts, modern type-safe compilers, code generation templates, meaningful error messages, proper debuggers, runtime watches, collapsable code regions, IDEs with built-in refactoring support, built-in code formatting, code documentation tools, whitespace highlighting, code performance analysis tools, LINQ, fluent this-that-and-the-other etc…&amp;#160; and I can’t help but feeling a little hard done by. (Anyone that has used Resharper for .Net will know exactly what I mean.) Am I the only SQL guy that feels like a second class citizen in the Microsoft developer ecosystem?&lt;/p&gt;  &lt;p&gt;I must be fair and admit that we have it a lot better than other database platform developers (if you have ever used any of the plethora of Oracle developer tools out there you will know what I mean) but nonetheless it would be nice to see a little bit of love go the way of us lowly SQL bods don’t you think?&lt;/p&gt;  &lt;p&gt;OK, rant over. My apologies if you came here hoping for some words of wisdom but I’ve been wanting to get this off my chest for ages; normal service will be resumed forthwith!&lt;/p&gt;  &lt;p&gt;&lt;a href="http://twitter.com/jamiet" target="_blank"&gt;@Jamiet&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;P.S. A valid response to this from the SQL Server team may be “submit your ideas to Connect”. I’d like it to be known that the majority of things I have listed above have already been submitted to Connect in some way shape or form and I would be happy to supply a list if one were required!&lt;/p&gt;  &lt;p&gt;I should also apologise to the SSRS team for making an example of them – the submission highlighted above is hardly the most annoying of problems listed here but it just happened to be the one that pushed me over the tipping point to writing this!&lt;/p&gt;</description></item><item><title>5 things I wish every SSRS developer would do</title><link>http://sqlblog.com/blogs/james_luetkehoelter/archive/2008/02/26/5-things-i-wish-every-ssrs-developer-would-do.aspx</link><pubDate>Tue, 26 Feb 2008 10:34:00 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:5276</guid><dc:creator>James Luetkehoelter</dc:creator><description>&lt;P&gt;I had a great discussion while teaching a class on Reporting Services today, discussing the basics of report design (yes, I make them consider basic principles of report design before I start talking about the technical details - I'm a stickler that way). That made me consider some of the most common design issues that I see with SSRS and the principles I'd like to see everyone stick to:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;1) Design for your audience - If you develop a report that is more than one page and give it to a CEO or upper management, it will probably be ignored. If you give a one page report to a "bean-counter", they'll throw it away (and yell at you to boot). One of the hardest aspects of report design is determining the level of detail for any given audience.&lt;/P&gt;
&lt;P&gt;2) Design for design - This is an odd phrase, but the whole concept of getting all of your report requirements up front, spending a fair amount of time developing the report,&amp;nbsp;only to have the end user say "that isn't what I wanted". Often you can't get sufficient requirements from your customers without presenting them with a sample report and asking them if it accurate (data) and what they wanted (layout). That first pass through in report design should be simply to find out what the customer really wants. How often do customers ask for what they really want?&lt;/P&gt;
&lt;P&gt;3) Design for reuse - No report should be a complete standalone. It may begin that way, but there should always be the opportunity to either expand on the original design or leverage it using different parameters. Rather than making a single report for a single department, investigate creating a general report that any department could use, then make it specific for that single department by means of a hidden parameter. If you combine that type of general report with the functionality of linked reports, you can have distinct, visual and securable reports all driven from the same design. Think about reusability from the very beginning - you'll be surprised how often it pays off.&lt;/P&gt;
&lt;P&gt;4) Design with pagination in mind - In particular with parameterized reports, you need to be aware of how SSRS will handle pagination. Since we can set pagination rules with each individual data region, those including multiple regions (read: a list within a list within a list ad infinitum), pagination can quickly get out of control. Side by side data regions are even worse. What you thought would be a single page report can often grow into a multi-page report, page-breaking in the most awkward of places. Be sure to control your pagination (hint: ever explore the Rectangle quasi-data region?).&lt;/P&gt;
&lt;P&gt;5) Design as if you aren't writing a report - SSRS gives you the ability to display marginally related data (from a database standpoint) together on the same report by means of separate data regions. Other reporting tools traditionally use a banded design: a detail row, grouping rows, report headers and footers, etc. SSRS presents us with a canvas to paint a variety of report display items from separate data sources (without subreports - no one should ever have to use a supreport again). Take advantage of that ability and fundamentally rethink what the best way to visualize data.&lt;/P&gt;
&lt;P&gt;If you disagree, tell me why. If you want me to blather on more about a specific item, just let me know (those that know me well know that once you get me started, I'm off to the races - viva la propeller-heads!).&lt;/P&gt;</description></item></channel></rss>