<?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 'SSRS' and 'SQL Server Reporting Services'</title><link>http://sqlblog.com/search/SearchResults.aspx?o=DateDescending&amp;tag=SSRS,SQL+Server+Reporting+Services&amp;orTags=0</link><description>Search results matching tags 'SSRS' and 'SQL Server Reporting Services'</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>Convert an integer seconds value into words in VBScript : Reporting Services</title><link>http://sqlblog.com/blogs/jamie_thomson/archive/2010/11/14/convert-an-integer-seconds-value-into-words-in-reporting-services.aspx</link><pubDate>Sun, 14 Nov 2010 22:36:00 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:30557</guid><dc:creator>jamiet</dc:creator><description>&lt;P&gt;Occasionally I stick random bits of code up on this blog because (a) I know I’ll need it again someday and (b) maybe it’ll be useful for someone else. This particular VBScript function called &lt;FONT face=Consolas&gt;TimeInWords&lt;/FONT&gt; can be used in SQL Server Reporting Services to turn a numerical value representing number of seconds into a meaningful string. For example:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;FONT face=Consolas&gt;TimeInWords(53)&lt;/FONT&gt; returns “53s”&lt;/LI&gt;
&lt;LI&gt;&lt;FONT face=Consolas&gt;TimeInWords(1632)&lt;/FONT&gt; returns “27m 12s”&lt;/LI&gt;
&lt;LI&gt;&lt;FONT face=Consolas&gt;TimeInWords(7923)&lt;/FONT&gt; returns “2h 12m 3s”&lt;/LI&gt;
&lt;LI&gt;&lt;FONT face=Consolas&gt;TimeInWords(894823)&lt;/FONT&gt; returns “10d 8h 34m 43s”&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Pretty useful for reporting on durations. I haven’t done endless testing on it but I’m pretty sure it works. Here’s the code:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;FONT face=Consolas&gt;Function TimeInWords (RemainderTimeInSeconds as Integer) AS String &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim ReturnValue As String &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; IF (RemainderTimeInSeconds &amp;gt; 86400) &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ReturnValue = TimeInDays(RemainderTimeInSeconds ) &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ELSE IF (RemainderTimeInSeconds &amp;gt; 3600) &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ReturnValue = TimeInHours(RemainderTimeInSeconds ) &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ELSE IF (RemainderTimeInSeconds &amp;gt; 60) &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ReturnValue = TimeInMinutes(RemainderTimeInSeconds ) &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ELSE &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ReturnValue = TimeInSeconds(RemainderTimeInSeconds ) &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Return ReturnValue &lt;BR&gt;End Function&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Consolas&gt;Function TimeInDays (RemainderTimeInSeconds AS Integer) AS String &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Return CStr(Floor(RemainderTimeInSeconds / 86400)) + "d " + TimeInHours(RemainderTimeInSeconds Mod 86400) &lt;BR&gt;End Function &lt;BR&gt;Function TimeInHours (RemainderTimeInSeconds AS Integer) AS String &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Return CStr(Floor(RemainderTimeInSeconds / 3600)) + "h " + TimeInMinutes(RemainderTimeInSeconds Mod 3600) &lt;BR&gt;End Function &lt;BR&gt;Function TimeInMinutes (RemainderTimeInSeconds AS Integer) AS String &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Return CStr(Floor(RemainderTimeInSeconds / 60)) + "m " + TimeInSeconds(RemainderTimeInSeconds Mod 60) &lt;BR&gt;End Function &lt;BR&gt;Function TimeInSeconds (RemainderTimeInSeconds AS Integer) AS String &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Return CStr(RemainderTimeInSeconds) + "s" &lt;BR&gt;End Function&lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Nothing particularly special but if it saves someone else from writing it well…why not!&lt;/P&gt;
&lt;P&gt;Hope that is useful to someone.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://twitter.com/jamiet"&gt;@Jamiet&lt;/A&gt;&lt;/P&gt;</description></item></channel></rss>