<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;D0UAR3szcCp7ImA9WhRWGEw.&quot;"><id>tag:blogger.com,1999:blog-4405194173885586991</id><updated>2012-01-06T13:00:46.588+11:00</updated><category term="Command Line" /><category term="Tuning" /><category term="Schedule" /><category term="SQL Agent" /><category term="Performance" /><category term="Run" /><category term="Subscription" /><category term="SQL" /><category term="Google Reader" /><category term="NEWID()" /><category term="Performance Monitoring" /><category term="GUID" /><category term="views" /><category term="[sys].[dm_os_performance_counters]" /><category term="Permissions" /><category term="Optimisation" /><category term="Formatting" /><category term="Security" /><category term="Reporting Services" /><category term="Trace" /><category term="Report Server" /><category term="SQLServerPedia" /><category term="Job" /><category term="C#" /><category term="restore" /><category term="Code" /><category term="RSS" /><category term="Project Lucy" /><category term="Profiler" /><category term="Active Directory" /><category term="Script Component" /><category term="HTML" /><category term="Hardware" /><category term="standards" /><category term="Quest" /><category term="Blogs" /><category term="SSIS" /><category term="TempDB" /><category term="Monitoring" /><category term="OPENROWSET" /><category term="backup" /><category term="Excel" /><title>SQL Ninja</title><subtitle type="html">I learn, I pass it on. Please comment and ask questions!</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://sqlninja.blogspot.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://sqlninja.blogspot.com/" /><author><name>Scott Herbert</name><uri>http://www.blogger.com/profile/16970114054517178549</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://1.bp.blogspot.com/_gE0uUId7hao/SLelgrmt6NI/AAAAAAAASQE/GfeX2HUoJRE/S220/PHOTO+002.jpg" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>23</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/SqlNinja" /><feedburner:info uri="sqlninja" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gd:etag="W/&quot;AkIBQn8yfCp7ImA9WhZVGEU.&quot;"><id>tag:blogger.com,1999:blog-4405194173885586991.post-145019525457680558</id><published>2011-06-01T09:41:00.009+10:00</published><updated>2011-06-01T10:35:53.194+10:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-06-01T10:35:53.194+10:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="SSIS" /><category scheme="http://www.blogger.com/atom/ns#" term="NEWID()" /><category scheme="http://www.blogger.com/atom/ns#" term="GUID" /><category scheme="http://www.blogger.com/atom/ns#" term="Script Component" /><category scheme="http://www.blogger.com/atom/ns#" term="C#" /><title>Generate a GUID/newid() in SSIS 2008</title><content type="html">Inexplicably, SSIS doesn't natively include a method for generating new GUIDs in the Derived Column Data Flow Transformation. &lt;br /&gt;&lt;br /&gt;The get-around is to create a custom Script Component. In SSIS 2008, we have a choice of using Visual Basic or C# to write the script code; I'm going to demonstrate a C# script. &lt;br /&gt;&lt;br /&gt;Let's say we have a Data Flow Source and a Data Flow Destination.&lt;br /&gt;(you can click on these pictures to enlarge):&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-37EKk1E76YM/TeWBFlizsaI/AAAAAAABhq4/_0tKauQXTpw/s1600/NEWID-1.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 186px; height: 320px;" src="http://1.bp.blogspot.com/-37EKk1E76YM/TeWBFlizsaI/AAAAAAABhq4/_0tKauQXTpw/s320/NEWID-1.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5613034443564626338" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;For the sake of this demo, the only difference between the source and the destination is that the destination has a GUID column, with no default constraint which adds its own NEWID() on insert. So we need to generate the GUID in SSIS. The usualy was we'd add a new column worth of data is by using the Derived Column transformation, but as I've mentioned (and you've probably found if you're reading this) there isn't a new GUID option.&lt;br /&gt;&lt;br /&gt;So we add a script component.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-oyYZcaVSHzY/TeWC8j2jHlI/AAAAAAABhrA/DQ048_qTXPM/s1600/NEWID-2.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 235px;" src="http://1.bp.blogspot.com/-oyYZcaVSHzY/TeWC8j2jHlI/AAAAAAABhrA/DQ048_qTXPM/s320/NEWID-2.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5613036487514988114" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Choose the "Transformation" option, hit OK, and drag the Source's green arrow onto the Script Component.&lt;br /&gt;&lt;br /&gt;Double click the script component, then "Inputs and Outputs", then expand Output 0 and Add Column. Call the column whatever you like, but I'm going to call it "SQLNinjaGUID" so you can see how it's referenced in the C# code. Change the data type of the column to unique identifier [DT_GUID].&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-axzKpOGHi2o/TeWHj-55LzI/AAAAAAABhrY/zMDIwoM-QL4/s1600/NEWID-4.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 166px;" src="http://4.bp.blogspot.com/-axzKpOGHi2o/TeWHj-55LzI/AAAAAAABhrY/zMDIwoM-QL4/s320/NEWID-4.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5613041562838183730" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Jump back to the script tab, make sure we're using Microsoft Visual C# 2008 as the ScriptLanguage, Edit Script, and replace ALL of the code with the following.&lt;br /&gt;&lt;br /&gt;&lt;code style="font-size: 12px;"&gt;&lt;span style="color:blue"&gt;using &lt;/span&gt;&lt;span style="color:black"&gt;System&lt;/span&gt;&lt;span style="color:gray"&gt;;&lt;br&gt;&lt;/span&gt;&lt;span style="color:blue"&gt;using &lt;/span&gt;&lt;span style="color:black"&gt;System.Data&lt;/span&gt;&lt;span style="color:gray"&gt;;&lt;br&gt;&lt;/span&gt;&lt;span style="color:blue"&gt;using &lt;/span&gt;&lt;span style="color:black"&gt;Microsoft.SqlServer.Dts.Pipeline.Wrapper&lt;/span&gt;&lt;span style="color:gray"&gt;;&lt;br&gt;&lt;/span&gt;&lt;span style="color:blue"&gt;using &lt;/span&gt;&lt;span style="color:black"&gt;Microsoft.SqlServer.Dts.Runtime.Wrapper&lt;/span&gt;&lt;span style="color:gray"&gt;;&lt;br&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color:black"&gt;[Microsoft.SqlServer.Dts.Pipeline.SSISScriptComponentEntryPointAttribute]&lt;br&gt;&lt;/span&gt;&lt;span style="color:blue"&gt;public class &lt;/span&gt;&lt;span style="color:black"&gt;ScriptMain &lt;/span&gt;&lt;span style="color:gray"&gt;: &lt;/span&gt;&lt;span style="color:black"&gt;UserComponent&lt;br&gt;{&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color:blue"&gt;public override void &lt;/span&gt;&lt;span style="color:black"&gt;Input0_ProcessInputRow&lt;/span&gt;&lt;span style="color:gray"&gt;(&lt;/span&gt;&lt;span style="color:black"&gt;Input0Buffer Row&lt;/span&gt;&lt;span style="color:gray"&gt;)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color:black"&gt;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Row.SQLNinjaGUID &lt;/span&gt;&lt;span style="color:blue"&gt;= &lt;/span&gt;&lt;span style="color:black"&gt;System.Guid.NewGuid&lt;/span&gt;&lt;span style="color:gray"&gt;();&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color:black"&gt;}&lt;br&gt;&lt;br&gt;}&lt;br&gt;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Now when you drag the Script Component's green arrow onto your Data Flow Destination, you should see SQLNinjaGUID (or whatever you called your new column) pop up as an available Input Column in the destination's Mapping tab.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4405194173885586991-145019525457680558?l=sqlninja.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/iHftEORgm_cqZ2TPx7blXPPzjxI/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/iHftEORgm_cqZ2TPx7blXPPzjxI/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/iHftEORgm_cqZ2TPx7blXPPzjxI/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/iHftEORgm_cqZ2TPx7blXPPzjxI/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/SqlNinja/~4/Upcn2ABqglg" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://sqlninja.blogspot.com/feeds/145019525457680558/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4405194173885586991&amp;postID=145019525457680558" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4405194173885586991/posts/default/145019525457680558?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4405194173885586991/posts/default/145019525457680558?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SqlNinja/~3/Upcn2ABqglg/generate-guidnewid-in-ssis-2008.html" title="Generate a GUID/newid() in SSIS 2008" /><author><name>Scott Herbert</name><uri>http://www.blogger.com/profile/16970114054517178549</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://1.bp.blogspot.com/_gE0uUId7hao/SLelgrmt6NI/AAAAAAAASQE/GfeX2HUoJRE/S220/PHOTO+002.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/-37EKk1E76YM/TeWBFlizsaI/AAAAAAABhq4/_0tKauQXTpw/s72-c/NEWID-1.jpg" height="72" width="72" /><thr:total>2</thr:total><feedburner:origLink>http://sqlninja.blogspot.com/2011/06/generate-guidnewid-in-ssis-2008.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0MDRHY4fyp7ImA9WhZVE0s.&quot;"><id>tag:blogger.com,1999:blog-4405194173885586991.post-7274146295445080781</id><published>2011-05-26T10:02:00.003+10:00</published><updated>2011-05-26T10:24:35.837+10:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-05-26T10:24:35.837+10:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Trace" /><category scheme="http://www.blogger.com/atom/ns#" term="SQLServerPedia" /><category scheme="http://www.blogger.com/atom/ns#" term="Project Lucy" /><category scheme="http://www.blogger.com/atom/ns#" term="Quest" /><category scheme="http://www.blogger.com/atom/ns#" term="Profiler" /><title>Project Lucy</title><content type="html">&lt;a href="http://www.quest.com/"&gt;Quest Software&lt;/a&gt;, the kind people behind &lt;a href="http://sqlserverpedia.com/"&gt;SQLServerPedia&lt;/a&gt; are running an experiment in cloud based performance analysis called &lt;a href="www.projectlucy.com"&gt;Project Lucy&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;The idea is that you can upload a SQL .trc (Profiler trace) file, and Project Lucy will do some analysis for you - analysing  CPU time, durations, IO etc. There's histograms of statement durations, and the ability to filter the trace easily by picking from drop downs. &lt;br /&gt;&lt;br /&gt;All this is of course possible by uploading your trace file to a database table (or saving the trace output directly to a table) and writing your own SQL queries. However, Project Lucy's aim is to start mining the crowd sourced data to provide comparison between your trace and similar workloads uploaded by the rest of the community.&lt;br /&gt;&lt;br /&gt;It's an interesting project, and like SQLServerPedia it needs community support to succeed. It's useful now, but to reach its potential it needs feeding with data. I've started uploading traces over the last couple of days, and I'm finding that the analyses available thus far are useful enough to keep you interested while Quest work on extending the functionalities. Each trace file you upload is its own "analysis", and all your analyses are saved for later appraisal. &lt;br /&gt;&lt;br /&gt;Also, they're giving away a $50 Amazon voucher each day (to US residents only unfortunately), so that's a pretty good incentive to give it a try.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4405194173885586991-7274146295445080781?l=sqlninja.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/9L_ub_4B2dS59siiTG0JI1AsLL4/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/9L_ub_4B2dS59siiTG0JI1AsLL4/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/9L_ub_4B2dS59siiTG0JI1AsLL4/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/9L_ub_4B2dS59siiTG0JI1AsLL4/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/SqlNinja/~4/rkqUbvCDHG4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://sqlninja.blogspot.com/feeds/7274146295445080781/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4405194173885586991&amp;postID=7274146295445080781" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4405194173885586991/posts/default/7274146295445080781?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4405194173885586991/posts/default/7274146295445080781?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SqlNinja/~3/rkqUbvCDHG4/project-lucy.html" title="Project Lucy" /><author><name>Scott Herbert</name><uri>http://www.blogger.com/profile/16970114054517178549</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://1.bp.blogspot.com/_gE0uUId7hao/SLelgrmt6NI/AAAAAAAASQE/GfeX2HUoJRE/S220/PHOTO+002.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://sqlninja.blogspot.com/2011/05/project-lucy.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUcGQ34zfSp7ImA9WhZQGEo.&quot;"><id>tag:blogger.com,1999:blog-4405194173885586991.post-8364814256559354972</id><published>2011-04-27T14:02:00.003+10:00</published><updated>2011-04-27T14:03:42.085+10:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-04-27T14:03:42.085+10:00</app:edited><title>Get a list of all the Tables in a Database</title><content type="html">Script follows, with little to no fanfare!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;code style="font-size: 12px;"&gt;&lt;span style="color:blue"&gt;SELECT &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color:black"&gt;schemas.name &lt;/span&gt;&lt;span style="color:gray"&gt;+ &lt;/span&gt;&lt;span style="color:red"&gt;'.' &lt;/span&gt;&lt;span style="color:gray"&gt;+ &lt;/span&gt;&lt;span style="color:black"&gt;tables.name SchemaTableName&lt;br&gt;&lt;/span&gt;&lt;span style="color:blue"&gt;FROM &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color:black"&gt;sys.tables &lt;br&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color:blue"&gt;JOIN&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color:black"&gt;sys.schemas&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue"&gt;ON &lt;/span&gt;&lt;span style="color:black"&gt;tables.schema_id &lt;/span&gt;&lt;span style="color:blue"&gt;= &lt;/span&gt;&lt;span style="color:black"&gt;schemas.schema_id&lt;br&gt;&lt;/span&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4405194173885586991-8364814256559354972?l=sqlninja.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/_VxTLx3VQ6b1_nwV1YGntQTFqAU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/_VxTLx3VQ6b1_nwV1YGntQTFqAU/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/_VxTLx3VQ6b1_nwV1YGntQTFqAU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/_VxTLx3VQ6b1_nwV1YGntQTFqAU/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/SqlNinja/~4/8Gj3ISV5d8A" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://sqlninja.blogspot.com/feeds/8364814256559354972/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4405194173885586991&amp;postID=8364814256559354972" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4405194173885586991/posts/default/8364814256559354972?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4405194173885586991/posts/default/8364814256559354972?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SqlNinja/~3/8Gj3ISV5d8A/get-list-of-all-tables-in-database.html" title="Get a list of all the Tables in a Database" /><author><name>Scott Herbert</name><uri>http://www.blogger.com/profile/16970114054517178549</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://1.bp.blogspot.com/_gE0uUId7hao/SLelgrmt6NI/AAAAAAAASQE/GfeX2HUoJRE/S220/PHOTO+002.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://sqlninja.blogspot.com/2011/04/get-list-of-all-tables-in-database.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkQHQH4yeCp7ImA9Wx9bFUQ.&quot;"><id>tag:blogger.com,1999:blog-4405194173885586991.post-2362402548064134836</id><published>2011-02-25T11:35:00.002+11:00</published><updated>2011-02-25T11:38:51.090+11:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-02-25T11:38:51.090+11:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Reporting Services" /><category scheme="http://www.blogger.com/atom/ns#" term="Permissions" /><category scheme="http://www.blogger.com/atom/ns#" term="Active Directory" /><title>Report Permissions</title><content type="html">A reader of this blog asked me this morning: "&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px; "&gt;If you wanted to design a query to make a report for management that would show which AD Groups or users have access to which reports, how would you go about it."&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px; "&gt;This is what I quickly whipped up:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px; "&gt;&lt;br /&gt;&lt;pre style="font-size: 12px;"&gt;&lt;font color="blue"&gt;SELECT&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="black"&gt;Catalog.Name ReportName&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="gray"&gt;,&lt;/font&gt;&lt;font color="black"&gt;Users.UserName&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="gray"&gt;,&lt;/font&gt;&lt;font color="black"&gt;Roles.RoleName&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="blue"&gt;FROM &lt;/font&gt;&lt;font color="black"&gt;[dbo].[Catalog]&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="blue"&gt;JOIN&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="black"&gt;dbo.PolicyUserRole&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="blue"&gt;ON&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="black"&gt;[Catalog].PolicyID &lt;/font&gt;&lt;font color="blue"&gt;= &lt;/font&gt;&lt;font color="black"&gt;PolicyUserRole.PolicyID&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="blue"&gt;JOIN&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="black"&gt;dbo.Users&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="blue"&gt;ON&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="black"&gt;PolicyUserRole.UserID &lt;/font&gt;&lt;font color="blue"&gt;= &lt;/font&gt;&lt;font color="black"&gt;Users.UserID&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="blue"&gt;JOIN&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="black"&gt;dbo.Roles&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="blue"&gt;ON&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="black"&gt;PolicyUserRole.RoleID &lt;/font&gt;&lt;font color="blue"&gt;= &lt;/font&gt;&lt;font color="black"&gt;Roles.RoleID&lt;/font&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;Can anyone see any problems with that?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4405194173885586991-2362402548064134836?l=sqlninja.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/KIxk3HZ9pY50F52vPKPHAhirFS0/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/KIxk3HZ9pY50F52vPKPHAhirFS0/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/KIxk3HZ9pY50F52vPKPHAhirFS0/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/KIxk3HZ9pY50F52vPKPHAhirFS0/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/SqlNinja/~4/En-fTGmocEo" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://sqlninja.blogspot.com/feeds/2362402548064134836/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4405194173885586991&amp;postID=2362402548064134836" title="6 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4405194173885586991/posts/default/2362402548064134836?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4405194173885586991/posts/default/2362402548064134836?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SqlNinja/~3/En-fTGmocEo/report-permissions.html" title="Report Permissions" /><author><name>Scott Herbert</name><uri>http://www.blogger.com/profile/16970114054517178549</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://1.bp.blogspot.com/_gE0uUId7hao/SLelgrmt6NI/AAAAAAAASQE/GfeX2HUoJRE/S220/PHOTO+002.jpg" /></author><thr:total>6</thr:total><feedburner:origLink>http://sqlninja.blogspot.com/2011/02/report-permissions.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CE8ERX8-fCp7ImA9Wx9UEkk.&quot;"><id>tag:blogger.com,1999:blog-4405194173885586991.post-1826498198863122575</id><published>2011-02-09T19:54:00.003+11:00</published><updated>2011-02-09T20:13:24.154+11:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-02-09T20:13:24.154+11:00</app:edited><title>Microsoft Certified Master - Database Structures</title><content type="html">The &lt;a href="http://www.microsoft.com/learning/en/us/certification/master.aspx"&gt;MCM program&lt;/a&gt; is aimed at the uber-uber-uber SQL gurus, and from what I'm reading on various blogs it's no walk in the park for them.&lt;br /&gt;&lt;br /&gt;The awesome thing that's popped up out of the newly revised program is that there are a bunch of free training material videos available.&lt;br /&gt;&lt;br /&gt;While I'm not personally anywhere near thinking about attempting the MCM certification, I'm interested in hearing about what lies under the covers of SQL server from people who know it inside out. The absolute nitty gritty: like learning about DNA and mitochondria as opposed to the more systemic/anatomical view that the MCITP type courses cover.&lt;br /&gt;&lt;br /&gt;The first video in the series covers database structures: the ways that data is stored and managed on the disk. It's presented by Paul Randal, who spent 9 years working on the storage engine for SQL server, so the info is really from the horse's mouth.&lt;br /&gt;&lt;br /&gt;To paraphrase the summary of the video:&lt;br /&gt;&lt;br /&gt;Records - the rows, or "slots" which make up our tables,&lt;br /&gt;Pages - the 8kB chunks where the records live,&lt;br /&gt;Extents - collections of 8 contiguous pages,&lt;br /&gt;Allocation bitmaps - keep an eye on the extents, and;&lt;br /&gt;IAM chains and allocation units - keep track of what's living where.&lt;div&gt;&lt;br /&gt;If you've a spare 42 minutes, &lt;a href="http://technet.microsoft.com/en-us/sqlserver/gg313756.aspx"&gt;check it out here&lt;/a&gt;.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4405194173885586991-1826498198863122575?l=sqlninja.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/JRPDy-87PKdrAfLvChXh_qKp_oc/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/JRPDy-87PKdrAfLvChXh_qKp_oc/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/JRPDy-87PKdrAfLvChXh_qKp_oc/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/JRPDy-87PKdrAfLvChXh_qKp_oc/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/SqlNinja/~4/qLvFAzdKjqk" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://sqlninja.blogspot.com/feeds/1826498198863122575/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4405194173885586991&amp;postID=1826498198863122575" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4405194173885586991/posts/default/1826498198863122575?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4405194173885586991/posts/default/1826498198863122575?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SqlNinja/~3/qLvFAzdKjqk/microsoft-certified-master-database.html" title="Microsoft Certified Master - Database Structures" /><author><name>Scott Herbert</name><uri>http://www.blogger.com/profile/16970114054517178549</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://1.bp.blogspot.com/_gE0uUId7hao/SLelgrmt6NI/AAAAAAAASQE/GfeX2HUoJRE/S220/PHOTO+002.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://sqlninja.blogspot.com/2011/02/microsoft-certified-master-database.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0ICRX49eip7ImA9Wx9UEkw.&quot;"><id>tag:blogger.com,1999:blog-4405194173885586991.post-3218825600490266941</id><published>2011-02-08T09:13:00.006+11:00</published><updated>2011-02-09T11:32:44.062+11:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-02-09T11:32:44.062+11:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Blogs" /><category scheme="http://www.blogger.com/atom/ns#" term="SQL" /><category scheme="http://www.blogger.com/atom/ns#" term="HTML" /><category scheme="http://www.blogger.com/atom/ns#" term="Formatting" /><category scheme="http://www.blogger.com/atom/ns#" term="Code" /><title>Formatting SQL Code for Blogs</title><content type="html">Up until recently, all the SQL code on this blog looked awful: completely lacking in formatting and unreadable (though still useful!). It looked like this:&lt;br /&gt;&lt;br /&gt;SELECT&lt;br /&gt;*&lt;br /&gt;FROM&lt;br /&gt;Ow.My.Eyes.Hurt&lt;br /&gt;&lt;br /&gt;Then I discovered &lt;a href="http://extras.sqlservercentral.com/prettifier/prettifier.aspx"&gt;The Simple-Talk Code Prettifier&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;You pop your formatted SQL code in (copied out of SSMS or Visual Studio), choose the style of HTML (forums in my case), whether to correct indenting and lenth of tabs etc., and voila: html code is produced which results in something real pretty like the below:&lt;br /&gt;&lt;br /&gt;&lt;pre style="font-size: 12px;"&gt;&lt;font color="blue"&gt;SELECT&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="gray"&gt;*&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="blue"&gt;FROM&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="black"&gt;Oh.That.Be.Nice&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Thanks to &lt;a href="http://thehobt.blogspot.com/2009/01/formatting-code-for-blogger.html"&gt;the HOBT (Aaron Alton)&lt;/a&gt; for blogging about this tool better and sooner than I.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4405194173885586991-3218825600490266941?l=sqlninja.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/WGzj06SA780Bwisp96vTkrDK-TE/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/WGzj06SA780Bwisp96vTkrDK-TE/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/WGzj06SA780Bwisp96vTkrDK-TE/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/WGzj06SA780Bwisp96vTkrDK-TE/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/SqlNinja/~4/poQl7GhSZSE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://sqlninja.blogspot.com/feeds/3218825600490266941/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4405194173885586991&amp;postID=3218825600490266941" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4405194173885586991/posts/default/3218825600490266941?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4405194173885586991/posts/default/3218825600490266941?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SqlNinja/~3/poQl7GhSZSE/formatting-sql-code-for-blogs.html" title="Formatting SQL Code for Blogs" /><author><name>Scott Herbert</name><uri>http://www.blogger.com/profile/16970114054517178549</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://1.bp.blogspot.com/_gE0uUId7hao/SLelgrmt6NI/AAAAAAAASQE/GfeX2HUoJRE/S220/PHOTO+002.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://sqlninja.blogspot.com/2011/02/formatting-sql-code-for-blogs.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CU8ARHg5fip7ImA9WhZVGUw.&quot;"><id>tag:blogger.com,1999:blog-4405194173885586991.post-2412688196621824967</id><published>2011-02-07T13:35:00.010+11:00</published><updated>2011-06-01T17:37:25.626+10:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-06-01T17:37:25.626+10:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Excel" /><category scheme="http://www.blogger.com/atom/ns#" term="OPENROWSET" /><title>Importing an Excel Sheet to a Database Table.</title><content type="html">&lt;div&gt;I've always found the SQL Server Import and Export Wizard a great way to pull data out of Excel into SQL Server. Except for when it doesn't work. It can be a frustrating beast, with all kinds of little idiosyncratic things to consider.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;However, it's easily avoided for basic imports from Excel. If you just want a table in a SQL database which looks and feels exactly like the source data, this command is your new friend:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;pre style="font-size: 12px;"&gt;&lt;font color="blue"&gt;SELECT&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="gray"&gt;*&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="blue"&gt;INTO&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="black"&gt;dbName.schemaName.tableName&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="blue"&gt;FROM&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OPENROWSET&lt;/font&gt;&lt;font color="gray"&gt;(&lt;/font&gt;&lt;font color="red"&gt;'Microsoft.ACE.OLEDB.12.0'&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;&lt;/font&gt;&lt;font color="gray"&gt;, &lt;/font&gt;&lt;font color="red"&gt;'Excel 12.0;Database=excelFilePathName.xlsx'&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;&lt;/font&gt;&lt;font color="gray"&gt;, &lt;/font&gt;&lt;font color="black"&gt;[worksheetName$]&lt;/font&gt;&lt;font color="gray"&gt;)&lt;/font&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Works a charm, and avoids clicking through a GUI which tends to crash when there's any slight problems.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;If you have any "missing provider" problems, which may happen on new 64 bit SQL servers, download the provider from &lt;a href="http://www.microsoft.com/downloads/en/details.aspx?FamilyID=c06b8369-60dd-4b64-a44b-84b371ede16d&amp;amp;displaylang=en"&gt;Microsoft Access Database Engine 2010 Redistributable&lt;/a&gt;.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4405194173885586991-2412688196621824967?l=sqlninja.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/BByr5p3mSjbq2vS4YHDL9szNhlM/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/BByr5p3mSjbq2vS4YHDL9szNhlM/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/BByr5p3mSjbq2vS4YHDL9szNhlM/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/BByr5p3mSjbq2vS4YHDL9szNhlM/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/SqlNinja/~4/iXEtPjx_GlQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://sqlninja.blogspot.com/feeds/2412688196621824967/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4405194173885586991&amp;postID=2412688196621824967" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4405194173885586991/posts/default/2412688196621824967?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4405194173885586991/posts/default/2412688196621824967?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SqlNinja/~3/iXEtPjx_GlQ/importing-excel-sheet-to-database-table.html" title="Importing an Excel Sheet to a Database Table." /><author><name>Scott Herbert</name><uri>http://www.blogger.com/profile/16970114054517178549</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://1.bp.blogspot.com/_gE0uUId7hao/SLelgrmt6NI/AAAAAAAASQE/GfeX2HUoJRE/S220/PHOTO+002.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://sqlninja.blogspot.com/2011/02/importing-excel-sheet-to-database-table.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEEHSXc4fSp7ImA9Wx9UEUw.&quot;"><id>tag:blogger.com,1999:blog-4405194173885586991.post-1197122830908689220</id><published>2009-12-11T10:53:00.001+11:00</published><updated>2011-02-08T09:10:38.935+11:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-02-08T09:10:38.935+11:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Reporting Services" /><category scheme="http://www.blogger.com/atom/ns#" term="Security" /><category scheme="http://www.blogger.com/atom/ns#" term="Permissions" /><title>Which Reports Aren't Inherting Permissions?</title><content type="html">Managing security settings in Reporting Services through the Report Manager website is usually pretty easy. However I've found that sometimes things go astray. Today I found a few reports which weren't inheriting permissions from their parent directory. Easy enough to fix, you jump into the security settings for that report and set "Revert to Parent Security". However, I have dozens of reports in each of a dozen directories; if I suspect this problem is going on in other reports, I'm not keen on a "needle in a haystack" search.&lt;br /&gt;&lt;br /&gt;Here's the code for identifying which reports are no longer inheriting permissions from their parent:&lt;br /&gt;&lt;br /&gt;&lt;pre style="font-size: 12px;"&gt;&lt;font color="blue"&gt;USE &lt;/font&gt;&lt;font color="black"&gt;ReportServer&lt;br&gt;&lt;/font&gt;&lt;font color="blue"&gt;SELECT&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="black"&gt;[Path]&lt;/font&gt;&lt;font color="gray"&gt;,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="black"&gt;[Name]&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="blue"&gt;FROM&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="black"&gt;[dbo].[Catalog]&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="blue"&gt;WHERE&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="black"&gt;[PolicyRoot] &lt;/font&gt;&lt;font color="blue"&gt;= &lt;/font&gt;&lt;font color="black"&gt;1&lt;/font&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4405194173885586991-1197122830908689220?l=sqlninja.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/FJGqJz6Ib5sDK43zzPES0qvtn-A/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/FJGqJz6Ib5sDK43zzPES0qvtn-A/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/FJGqJz6Ib5sDK43zzPES0qvtn-A/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/FJGqJz6Ib5sDK43zzPES0qvtn-A/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/SqlNinja/~4/u7uyiFZOj14" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://sqlninja.blogspot.com/feeds/1197122830908689220/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4405194173885586991&amp;postID=1197122830908689220" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4405194173885586991/posts/default/1197122830908689220?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4405194173885586991/posts/default/1197122830908689220?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SqlNinja/~3/u7uyiFZOj14/which-reports-arent-inherting.html" title="Which Reports Aren't Inherting Permissions?" /><author><name>Scott Herbert</name><uri>http://www.blogger.com/profile/16970114054517178549</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://1.bp.blogspot.com/_gE0uUId7hao/SLelgrmt6NI/AAAAAAAASQE/GfeX2HUoJRE/S220/PHOTO+002.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://sqlninja.blogspot.com/2009/12/which-reports-arent-inherting.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ck4FRXo9cSp7ImA9WxJUFEg.&quot;"><id>tag:blogger.com,1999:blog-4405194173885586991.post-5546197260397807244</id><published>2009-07-13T12:08:00.002+10:00</published><updated>2009-07-13T12:08:34.469+10:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-07-13T12:08:34.469+10:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="standards" /><category scheme="http://www.blogger.com/atom/ns#" term="views" /><title>Another Standards Discussion: Views and Business Rules</title><content type="html">Let’s say that the business you work for has also been around for many years, and in that time loads of little rules about the data have appeared. Market A works differently to market B. This car shouldn’t be included in this list of products. When pulling together a list of shoppers, we only care about those that have credit cards. &lt;br /&gt;&lt;br /&gt;Every time a new project comes up, a new part of a public facing website or a new module in an in-house application, new stored procs are developed. Often, these procs are written by people who weren’t around when the DB schema involved was designed, or they haven’t got all of those little rules I discussed above memorized. Who does? &lt;br /&gt;&lt;br /&gt;This is where Views can come in handy. Instead of building each of those annoying little rules into each new Stored Procedure that’s developed, build them into Views, and point all Stored Procs towards Views instead of Tables. &lt;br /&gt;&lt;br /&gt;And I mean ALL Stored Procs. As a standard. If you follow this standard, you can be sure that when it’s time to implement a new business rule, you can find the appropriate View, alter some code, and all the dependant Stored Procedures will now follow that new business rule.&lt;br /&gt;&lt;br /&gt;For example, you have a table called Lotto.Entry. It records who has entered a lottery, and how old they are. Supplying the website, there are three hundred stored procedures which access data from this table. The CEO at your company decides that it’s no longer ethical to be reporting on people under 17 who have entered the lottery. If all those 300 Stored Procedures are pointing towards the table, you’re faced with moving data around, or changing all of those procs. If the procs are instead pointing towards Lotto.vEntry, that view can have a “WHERE Entry.Age &gt; 17” clause added. Other Views should point towards this View instead of the underlying Table, so that the business rules are “inherited” across the system.&lt;br /&gt;&lt;br /&gt;Another advantage is that the business rules are centralized. You know to look towards the basic view of a table if you want to know how its data is handled. &lt;br /&gt;&lt;br /&gt;Pretending to delete data is another thing that can be done in views. Let’s say you want the users of the website/UI to feel like they’re deleting data, but you want an audit trail on that data, and you simply want to hide it from the users. Add an “IsDeleted” field to your table, and a “WHERE IsDeleted = 0” clause to the base view of that table. The data is then easily “undeleted” in cases of errors. &lt;br /&gt;&lt;br /&gt;Views are a centralized, transparent and predictable way of implementing rules in which your data is accessed.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4405194173885586991-5546197260397807244?l=sqlninja.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/MZANXsFAUne_h1mBwy2uZvPUpWs/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/MZANXsFAUne_h1mBwy2uZvPUpWs/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/MZANXsFAUne_h1mBwy2uZvPUpWs/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/MZANXsFAUne_h1mBwy2uZvPUpWs/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/SqlNinja/~4/cwHb2S4g5M0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://sqlninja.blogspot.com/feeds/5546197260397807244/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4405194173885586991&amp;postID=5546197260397807244" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4405194173885586991/posts/default/5546197260397807244?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4405194173885586991/posts/default/5546197260397807244?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SqlNinja/~3/cwHb2S4g5M0/another-standards-discussion-views-and.html" title="Another Standards Discussion: Views and Business Rules" /><author><name>Scott Herbert</name><uri>http://www.blogger.com/profile/16970114054517178549</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://1.bp.blogspot.com/_gE0uUId7hao/SLelgrmt6NI/AAAAAAAASQE/GfeX2HUoJRE/S220/PHOTO+002.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://sqlninja.blogspot.com/2009/07/another-standards-discussion-views-and.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DE4NQHY9fyp7ImA9WxJUEU0.&quot;"><id>tag:blogger.com,1999:blog-4405194173885586991.post-8394714637191267883</id><published>2009-07-09T12:35:00.001+10:00</published><updated>2009-07-09T12:36:31.867+10:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-07-09T12:36:31.867+10:00</app:edited><title>Object Naming Standards</title><content type="html">Having a look through the new features of SQL2008, I was intrigued to find the new Declarative Management Framework. In short, it's a way to enforce various policies on your environments. &lt;br /&gt;&lt;br /&gt;Without going too far into it (in this post), it made me think about what kinds of policies or standards I like to enforce as a Team Leader. &lt;br /&gt;&lt;br /&gt;One particular area is in object naming conventions. This is always going to be an idiosyncratic/personal aspect of programming, but I’ve found that if one person takes the initiative, other people will follow. An agreed standard makes it easy to predict what an object will be called, cutting down on searching and guessing when you’re not familiar with a schema that someone else has designed.&lt;br /&gt;&lt;br /&gt;Tables:&lt;br /&gt;- No tables have a plural name, i.e. “Lottery.Entry”, not “Lottery.Entries”&lt;br /&gt;&lt;br /&gt;Stored Procedures&lt;br /&gt;- have the prefix “s”&lt;br /&gt;- wherever possible include the main object they reference, what they are doing to the object, and by what parameters (if any, and only when there’s only one or two, otherwise use “filters” or “various” etc.)  in the format “s[OBJECTNAME][ACTION]by[PARAMETERS]”. The main point is the object name and the action. This is open to a fair bit of interpretation, but here’s some examples&lt;br /&gt;o Lottery.sEntrySelectByID&lt;br /&gt;o Lottery.sEntryInsert&lt;br /&gt;o Lottery.sResultSelectByFilters&lt;br /&gt;o Lottery.sPredictionUpdate&lt;br /&gt;&lt;br /&gt;- no underscores. One of my bugbears is guessing whether or not an underscore might separate one part of an object name from another. The simplest answer is to not use them&lt;br /&gt;&lt;br /&gt;Views&lt;br /&gt;- have the prefix “v”&lt;br /&gt;- if they return fields from one table only, then they are named “v[TableName]”&lt;br /&gt;- it they return fields mostly from one table, and reference other tables/views in order to bring back names etc,. for IDs in the original table, then they are named “v[TableName]Overview”&lt;br /&gt;- no underscores&lt;br /&gt;&lt;br /&gt;Triggers&lt;br /&gt;- prefixed with “trig”&lt;br /&gt;- suffixed with “AfterInsert”, “InsteadOfInsert” etc&lt;br /&gt;- example: Lottery.trigEntryAfterInsert&lt;br /&gt;&lt;br /&gt;Functions&lt;br /&gt;- same rules as for stored procedures, but prefixed with “f”&lt;br /&gt;&lt;br /&gt;Keys&lt;br /&gt;- prefixed with “pk” for primary, “fk” for foreign, “uq” for unique&lt;br /&gt;- perhaps “uk” would be more consistent for uniques? Hmmm I may have stuffed that one up over the last few years….&lt;br /&gt;- reference the object name and the fields: e.g. fkEntry_LotteryID&lt;br /&gt;- hey what’s that underscore doing there? I’m fine with underscores in objects that are rarely referenced which writing code off the top of your head. I think they’re fine in keys, indices etc., anything that’s not a view, proc or table&lt;br /&gt;&lt;br /&gt;Indices&lt;br /&gt;- ixTABLENAME_FieldName1_FieldName2 etc&lt;br /&gt;- no need to reference INCLUDEd columns&lt;br /&gt;&lt;br /&gt;Constraints&lt;br /&gt;- “df” prefix for default constraints, e.g. dfEntryName&lt;br /&gt;- “ck” prefix for Check Constraints&lt;br /&gt;&lt;br /&gt;I’m sure there are plenty of people who would vehemently disagree with some of the choices I’ve made above. That’s great, and I’d love to hear why! My main point though is that having standards helps save time by making it easy for fellow developers/DBAs to predict what your objects are called when they’re searching for them. In a database like the main one I manage at the moment, where there are now over 10,000 objects, this can save some of the precious sanity we have left.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4405194173885586991-8394714637191267883?l=sqlninja.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/cGstYLzKhLJ7hujZ_6k5SC1IXOk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/cGstYLzKhLJ7hujZ_6k5SC1IXOk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/cGstYLzKhLJ7hujZ_6k5SC1IXOk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/cGstYLzKhLJ7hujZ_6k5SC1IXOk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/SqlNinja/~4/ys8JwDgjcVI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://sqlninja.blogspot.com/feeds/8394714637191267883/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4405194173885586991&amp;postID=8394714637191267883" title="3 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4405194173885586991/posts/default/8394714637191267883?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4405194173885586991/posts/default/8394714637191267883?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SqlNinja/~3/ys8JwDgjcVI/object-naming-standards.html" title="Object Naming Standards" /><author><name>Scott Herbert</name><uri>http://www.blogger.com/profile/16970114054517178549</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://1.bp.blogspot.com/_gE0uUId7hao/SLelgrmt6NI/AAAAAAAASQE/GfeX2HUoJRE/S220/PHOTO+002.jpg" /></author><thr:total>3</thr:total><feedburner:origLink>http://sqlninja.blogspot.com/2009/07/object-naming-standards.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkUMQH04fip7ImA9WxJVGEU.&quot;"><id>tag:blogger.com,1999:blog-4405194173885586991.post-2313437613087371254</id><published>2009-07-06T22:35:00.002+10:00</published><updated>2009-07-06T22:44:41.336+10:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-07-06T22:44:41.336+10:00</app:edited><title>It's been a while!</title><content type="html">Excuses? Work, Vietnam, Cambodia, Malaysia, music composition duties. It's been a while since I've blogged. Well I haven't forgotten about SQL, in fact it's high on the priority list.&lt;br /&gt;&lt;br /&gt;I've just received some new SQL books in the mail. It's time to have a go at some certifications again. 70-432 and 70-433, Database Implementation and Maintenance, and Database Design, respectively. Flicking through the books, there's so much I already know, but I've never actually been near SQL2008, so there's also some huge chunks that are absolute news to me.&lt;br /&gt;&lt;br /&gt;I'm also starting a Masters of Information Technology at the University of New England, part-time by "distance education". My aim there is to broaden my knowledge of IT, being a person who "fell into" IT at work rather than doing an IT based degree first. The degree I completed in 1995 was a Bachelor of Science, majoring in microbiology and genetics. Now I'm a DBA. Go figure! Apparently it's not such a rare thing for your degree to not have a huge bearing on your career path anymore.&lt;br /&gt;&lt;br /&gt;Well, anyhow, just wanted to let y'all know I'm still here. Catch you soon.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4405194173885586991-2313437613087371254?l=sqlninja.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/C-JWlNOOl3c6jUJOoqHlOdS5Gg0/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/C-JWlNOOl3c6jUJOoqHlOdS5Gg0/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/C-JWlNOOl3c6jUJOoqHlOdS5Gg0/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/C-JWlNOOl3c6jUJOoqHlOdS5Gg0/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/SqlNinja/~4/csuz1bqarB4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://sqlninja.blogspot.com/feeds/2313437613087371254/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4405194173885586991&amp;postID=2313437613087371254" title="4 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4405194173885586991/posts/default/2313437613087371254?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4405194173885586991/posts/default/2313437613087371254?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SqlNinja/~3/csuz1bqarB4/its-been-while.html" title="It's been a while!" /><author><name>Scott Herbert</name><uri>http://www.blogger.com/profile/16970114054517178549</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://1.bp.blogspot.com/_gE0uUId7hao/SLelgrmt6NI/AAAAAAAASQE/GfeX2HUoJRE/S220/PHOTO+002.jpg" /></author><thr:total>4</thr:total><feedburner:origLink>http://sqlninja.blogspot.com/2009/07/its-been-while.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEMGQn4-cCp7ImA9Wx9UEUw.&quot;"><id>tag:blogger.com,1999:blog-4405194173885586991.post-930011599979859284</id><published>2009-02-23T12:49:00.002+11:00</published><updated>2011-02-08T09:07:03.058+11:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-02-08T09:07:03.058+11:00</app:edited><title>Database Performance Monitoring on the Cheap Part 2</title><content type="html">I was pretty happy to see that my last post "&lt;a href="http://sqlninja.blogspot.com/2009/02/database-performance-monitoring-on.html"&gt;Database Performance Monitoring on the Cheap&lt;/a&gt;" got a bunch of hits on the intertubes. This somewhat balanced out my shame that the procedure I provided for querying the recorded data needed to be a bit smarter to be truly helpful.&lt;br /&gt;Turns out that the stats provided by the sys.dm_os_performance_counters DMV are not all straightforward to interpret.&lt;br /&gt;Some of them are either ratios (where one counter needs to be divided by another), or they are cumulative (where the counter needs to be compared to a previous value, and divided by the number of seconds elapsed).&lt;br /&gt;Thankfully, there's an easy way to tell which counters are which, by checking the cntr_type field. When it comes to ratios, the numerator type is 537003264, and the denominator (or base) is 1073939712 (and has the word "base" at the end of the counter_name). The cumulative fellows are of type 272696576.&lt;br /&gt;&lt;br /&gt;So without further ado, here's a smarter way to query that data which we've had collecting:&lt;br /&gt;&lt;br /&gt;&lt;pre style="font-size: 12px;"&gt;&lt;font color="blue"&gt;CREATE PROCEDURE &lt;/font&gt;&lt;font color="black"&gt;[Monitoring].[sPerformanceCountersSelectByDateRange]&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="#434343"&gt;@FormerDate &lt;/font&gt;&lt;font color="blue"&gt;DATETIME&lt;/font&gt;&lt;font color="gray"&gt;,&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="#434343"&gt;@LatterDate &lt;/font&gt;&lt;font color="blue"&gt;DATETIME&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AS&lt;br&gt;&amp;nbsp;&amp;nbsp; BEGIN&lt;br&gt;&amp;nbsp;&amp;nbsp; SELECT&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;&lt;/font&gt;&lt;font color="black"&gt;DateTimeID&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;&lt;/font&gt;&lt;font color="gray"&gt;,&lt;/font&gt;&lt;font color="blue"&gt;DATETIME&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;&lt;/font&gt;&lt;font color="gray"&gt;,&lt;/font&gt;&lt;font color="magenta"&gt;OBJECT_NAME&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;&lt;/font&gt;&lt;font color="gray"&gt;,&lt;/font&gt;&lt;font color="black"&gt;counter_name&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;&lt;/font&gt;&lt;font color="gray"&gt;,&lt;/font&gt;&lt;font color="black"&gt;instance_name&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;&lt;/font&gt;&lt;font color="gray"&gt;,&lt;/font&gt;&lt;font color="black"&gt;cntr_value&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;&lt;/font&gt;&lt;font color="gray"&gt;,&lt;/font&gt;&lt;font color="black"&gt;cntr_type&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;FROM&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="gray"&gt;(&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;SELECT&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; &lt;/font&gt;&lt;font color="black"&gt;DateTimeID&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; &lt;/font&gt;&lt;font color="gray"&gt;,&lt;/font&gt;&lt;font color="blue"&gt;DATETIME&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; &lt;/font&gt;&lt;font color="gray"&gt;,&lt;/font&gt;&lt;font color="magenta"&gt;OBJECT_NAME&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; &lt;/font&gt;&lt;font color="gray"&gt;,&lt;/font&gt;&lt;font color="black"&gt;counter_name&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; &lt;/font&gt;&lt;font color="gray"&gt;,&lt;/font&gt;&lt;font color="black"&gt;instance_name&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; &lt;/font&gt;&lt;font color="gray"&gt;,&lt;/font&gt;&lt;font color="black"&gt;cntr_value&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; &lt;/font&gt;&lt;font color="gray"&gt;,&lt;/font&gt;&lt;font color="black"&gt;cntr_type&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="blue"&gt;FROM&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; &lt;/font&gt;&lt;font color="black"&gt;Monitoring.PerformanceCounters&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="blue"&gt;WHERE&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; &lt;/font&gt;&lt;font color="gray"&gt;NOT &lt;/font&gt;&lt;font color="black"&gt;PerformanceCounters.cntr_type &lt;/font&gt;&lt;font color="blue"&gt;IN &lt;/font&gt;&lt;font color="gray"&gt;(&lt;/font&gt;&lt;font color="black"&gt;272696576&lt;/font&gt;&lt;font color="gray"&gt;,&lt;/font&gt;&lt;font color="black"&gt;537003264&lt;/font&gt;&lt;font color="gray"&gt;,&lt;/font&gt;&lt;font color="black"&gt;1073939712&lt;/font&gt;&lt;font color="gray"&gt;) &lt;/font&gt;&lt;font color="green"&gt;--Cumulative and Ratio counters&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="blue"&gt;UNION&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SELECT &lt;/font&gt;&lt;font color="green"&gt;--Cumulative Counters&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; &lt;/font&gt;&lt;font color="black"&gt;CurrentPerformanceCounters.DateTimeID&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; &lt;/font&gt;&lt;font color="gray"&gt;,&lt;/font&gt;&lt;font color="black"&gt;CurrentPerformanceCounters.&lt;/font&gt;&lt;font color="blue"&gt;DATETIME&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; &lt;/font&gt;&lt;font color="gray"&gt;,&lt;/font&gt;&lt;font color="black"&gt;CurrentPerformanceCounters.&lt;/font&gt;&lt;font color="magenta"&gt;OBJECT_NAME&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; &lt;/font&gt;&lt;font color="gray"&gt;,&lt;/font&gt;&lt;font color="black"&gt;CurrentPerformanceCounters.counter_name&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; &lt;/font&gt;&lt;font color="gray"&gt;,&lt;/font&gt;&lt;font color="black"&gt;CurrentPerformanceCounters.instance_name&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; &lt;/font&gt;&lt;font color="gray"&gt;,(&lt;/font&gt;&lt;font color="black"&gt;CurrentPerformanceCounters.cntr_value&lt;/font&gt;&lt;font color="gray"&gt;-&lt;/font&gt;&lt;font color="black"&gt;PreviousPerformanceCounters.cntr_value&lt;/font&gt;&lt;font color="gray"&gt;)/&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; &lt;/font&gt;&lt;font color="magenta"&gt;DATEDIFF&lt;/font&gt;&lt;font color="gray"&gt;(&lt;/font&gt;&lt;font color="black"&gt;ss&lt;/font&gt;&lt;font color="gray"&gt;,&lt;/font&gt;&lt;font color="black"&gt;PreviousPerformanceCounters.&lt;/font&gt;&lt;font color="blue"&gt;DATETIME&lt;/font&gt;&lt;font color="gray"&gt;,&lt;/font&gt;&lt;font color="black"&gt;CurrentPerformanceCounters.&lt;/font&gt;&lt;font color="blue"&gt;DATETIME&lt;/font&gt;&lt;font color="gray"&gt;) &lt;/font&gt;&lt;font color="black"&gt;cntr_value&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; &lt;/font&gt;&lt;font color="gray"&gt;,&lt;/font&gt;&lt;font color="black"&gt;CurrentPerformanceCounters.cntr_type&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="blue"&gt;FROM&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; &lt;/font&gt;&lt;font color="black"&gt;Monitoring.PerformanceCounters CurrentPerformanceCounters&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; &lt;/font&gt;&lt;font color="blue"&gt;JOIN&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; &lt;/font&gt;&lt;font color="black"&gt;Monitoring.PerformanceCounters PreviousPerformanceCounters&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; &lt;/font&gt;&lt;font color="blue"&gt;ON &lt;/font&gt;&lt;font color="black"&gt;CurrentPerformanceCounters.counter_name &lt;/font&gt;&lt;font color="blue"&gt;= &lt;/font&gt;&lt;font color="black"&gt;PreviousPerformanceCounters.counter_name&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;&lt;/font&gt;&lt;font color="gray"&gt;AND &lt;/font&gt;&lt;font color="black"&gt;CurrentPerformanceCounters.instance_name &lt;/font&gt;&lt;font color="blue"&gt;= &lt;/font&gt;&lt;font color="black"&gt;PreviousPerformanceCounters.instance_name&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;&lt;/font&gt;&lt;font color="gray"&gt;AND &lt;/font&gt;&lt;font color="black"&gt;CurrentPerformanceCounters.DateTimeID&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="blue"&gt;= &lt;/font&gt;&lt;font color="black"&gt;PreviousPerformanceCounters.DateTimeID&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; &lt;/font&gt;&lt;font color="gray"&gt;+ &lt;/font&gt;&lt;font color="magenta"&gt;CASE RIGHT&lt;/font&gt;&lt;font color="gray"&gt;(&lt;/font&gt;&lt;font color="black"&gt;CurrentPerformanceCounters.DateTimeID&lt;/font&gt;&lt;font color="gray"&gt;,&lt;/font&gt;&lt;font color="black"&gt;2&lt;/font&gt;&lt;font color="gray"&gt;)&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;WHEN &lt;/font&gt;&lt;font color="black"&gt;00 &lt;/font&gt;&lt;font color="blue"&gt;THEN &lt;/font&gt;&lt;font color="black"&gt;45&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="blue"&gt;ELSE &lt;/font&gt;&lt;font color="black"&gt;5&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="blue"&gt;END&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; WHERE&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; &lt;/font&gt;&lt;font color="black"&gt;CurrentPerformanceCounters.cntr_type &lt;/font&gt;&lt;font color="blue"&gt;= &lt;/font&gt;&lt;font color="black"&gt;272696576&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="blue"&gt;UNION&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SELECT &lt;/font&gt;&lt;font color="green"&gt;--Ratio Counters&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; &lt;/font&gt;&lt;font color="black"&gt;NumeratorPerformanceCounters.DateTimeID&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; &lt;/font&gt;&lt;font color="gray"&gt;,&lt;/font&gt;&lt;font color="black"&gt;NumeratorPerformanceCounters.&lt;/font&gt;&lt;font color="blue"&gt;DATETIME&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; &lt;/font&gt;&lt;font color="gray"&gt;,&lt;/font&gt;&lt;font color="black"&gt;NumeratorPerformanceCounters.&lt;/font&gt;&lt;font color="magenta"&gt;OBJECT_NAME&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; &lt;/font&gt;&lt;font color="gray"&gt;,&lt;/font&gt;&lt;font color="black"&gt;NumeratorPerformanceCounters.counter_name&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; &lt;/font&gt;&lt;font color="gray"&gt;,&lt;/font&gt;&lt;font color="black"&gt;NumeratorPerformanceCounters.instance_name&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; &lt;/font&gt;&lt;font color="gray"&gt;,&lt;/font&gt;&lt;font color="black"&gt;NumeratorPerformanceCounters.cntr_value&lt;/font&gt;&lt;font color="gray"&gt;/&lt;/font&gt;&lt;font color="magenta"&gt;CAST&lt;/font&gt;&lt;font color="gray"&gt;(&lt;/font&gt;&lt;font color="black"&gt;DenominatorPerformanceCounters.cntr_value &lt;/font&gt;&lt;font color="blue"&gt;AS FLOAT&lt;/font&gt;&lt;font color="gray"&gt;) &lt;/font&gt;&lt;font color="black"&gt;cntr_value&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; &lt;/font&gt;&lt;font color="gray"&gt;,&lt;/font&gt;&lt;font color="black"&gt;NumeratorPerformanceCounters.cntr_type&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="blue"&gt;FROM&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; &lt;/font&gt;&lt;font color="black"&gt;Monitoring.PerformanceCounters NumeratorPerformanceCounters&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; &lt;/font&gt;&lt;font color="blue"&gt;JOIN&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; &lt;/font&gt;&lt;font color="black"&gt;Monitoring.PerformanceCounters DenominatorPerformanceCounters&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; &lt;/font&gt;&lt;font color="blue"&gt;ON &lt;/font&gt;&lt;font color="black"&gt;DenominatorPerformanceCounters.cntr_type &lt;/font&gt;&lt;font color="blue"&gt;= &lt;/font&gt;&lt;font color="black"&gt;1073939712&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;&lt;/font&gt;&lt;font color="gray"&gt;AND &lt;/font&gt;&lt;font color="black"&gt;NumeratorPerformanceCounters.DateTimeID &lt;/font&gt;&lt;font color="blue"&gt;= &lt;/font&gt;&lt;font color="black"&gt;DenominatorPerformanceCounters.DateTimeID&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;&lt;/font&gt;&lt;font color="gray"&gt;AND &lt;/font&gt;&lt;font color="black"&gt;NumeratorPerformanceCounters.instance_name &lt;/font&gt;&lt;font color="blue"&gt;= &lt;/font&gt;&lt;font color="black"&gt;DenominatorPerformanceCounters.instance_name&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="blue"&gt;WHERE&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; &lt;/font&gt;&lt;font color="black"&gt;NumeratorPerformanceCounters.&lt;/font&gt;&lt;font color="blue"&gt;DATETIME &lt;/font&gt;&lt;font color="gray"&gt;BETWEEN &lt;/font&gt;&lt;font color="#434343"&gt;@FormerDate &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;&lt;/font&gt;&lt;font color="gray"&gt;AND &lt;/font&gt;&lt;font color="#434343"&gt;@LatterDate&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;&lt;/font&gt;&lt;font color="gray"&gt;AND &lt;/font&gt;&lt;font color="black"&gt;NumeratorPerformanceCounters.cntr_type &lt;/font&gt;&lt;font color="blue"&gt;= &lt;/font&gt;&lt;font color="black"&gt;537003264&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="gray"&gt;) &lt;/font&gt;&lt;font color="black"&gt;AllResults&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;WHERE&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;&lt;/font&gt;&lt;font color="black"&gt;AllResults.&lt;/font&gt;&lt;font color="blue"&gt;DATETIME &lt;/font&gt;&lt;font color="gray"&gt;BETWEEN &lt;/font&gt;&lt;font color="#434343"&gt;@FormerDate &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="gray"&gt;AND &lt;/font&gt;&lt;font color="#434343"&gt;@LatterDate&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="blue"&gt;END&lt;/font&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4405194173885586991-930011599979859284?l=sqlninja.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/uMcVQ-M5m-1ZYsl1VDdCMxoxjRo/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/uMcVQ-M5m-1ZYsl1VDdCMxoxjRo/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/uMcVQ-M5m-1ZYsl1VDdCMxoxjRo/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/uMcVQ-M5m-1ZYsl1VDdCMxoxjRo/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/SqlNinja/~4/fYwtO9DStcc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://sqlninja.blogspot.com/feeds/930011599979859284/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4405194173885586991&amp;postID=930011599979859284" title="5 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4405194173885586991/posts/default/930011599979859284?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4405194173885586991/posts/default/930011599979859284?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SqlNinja/~3/fYwtO9DStcc/database-performance-monitoring-on_23.html" title="Database Performance Monitoring on the Cheap Part 2" /><author><name>Scott Herbert</name><uri>http://www.blogger.com/profile/16970114054517178549</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://1.bp.blogspot.com/_gE0uUId7hao/SLelgrmt6NI/AAAAAAAASQE/GfeX2HUoJRE/S220/PHOTO+002.jpg" /></author><thr:total>5</thr:total><feedburner:origLink>http://sqlninja.blogspot.com/2009/02/database-performance-monitoring-on_23.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkcDRn04eyp7ImA9Wx9UEU8.&quot;"><id>tag:blogger.com,1999:blog-4405194173885586991.post-4641294167242159086</id><published>2009-02-18T18:31:00.011+11:00</published><updated>2011-02-08T10:07:57.333+11:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-02-08T10:07:57.333+11:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="[sys].[dm_os_performance_counters]" /><category scheme="http://www.blogger.com/atom/ns#" term="Performance Monitoring" /><category scheme="http://www.blogger.com/atom/ns#" term="SQL" /><title>Database Performance Monitoring on the Cheap</title><content type="html">The system views are (to many) hidden gems in SQL. One in particular I'd like to address today is [sys].[dm_os_performance_counters], available in SQL2005 (and I assume 2008).&lt;br /&gt;&lt;br /&gt;A quick SELECT * FROM [sys].[dm_os_performance_counters] will show you all that's available; a whole range of performance counters that you'd often go to Perfmon to check out.&lt;br /&gt;&lt;br /&gt;The advantage of having this all so simply queryable from SQL is that we can start recording this every x minutes/hours, and start charting it out, and get some ideas about some of the weaknesses of our DBs, when they're under load etc.&lt;br /&gt;&lt;br /&gt;First we need somewhere to store the data:&lt;br /&gt;&lt;br /&gt;&lt;pre style="font-size: 12px;"&gt;&lt;font color="green"&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp; ----------------------------------------------------------------------------------------&lt;br&gt;&amp;nbsp;&amp;nbsp; --&lt;br&gt;&amp;nbsp;&amp;nbsp; -- Create a schema&lt;br&gt;&amp;nbsp;&amp;nbsp; --&lt;br&gt;&amp;nbsp;&amp;nbsp; ----------------------------------------------------------------------------------------&lt;br&gt;&lt;/font&gt;&lt;font color="blue"&gt;CREATE SCHEMA &lt;/font&gt;&lt;font color="black"&gt;[Monitoring]&lt;/font&gt;&lt;font color="gray"&gt;;&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="green"&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp; ----------------------------------------------------------------------------------------&lt;br&gt;&amp;nbsp;&amp;nbsp; --&lt;br&gt;&amp;nbsp;&amp;nbsp; -- Create a table for the stats to live in&lt;br&gt;&amp;nbsp;&amp;nbsp; --&lt;br&gt;&amp;nbsp;&amp;nbsp; ----------------------------------------------------------------------------------------&lt;br&gt;&lt;/font&gt;&lt;font color="blue"&gt;CREATE TABLE &lt;/font&gt;&lt;font color="black"&gt;[Monitoring].[PerformanceCounters]&lt;/font&gt;&lt;font color="gray"&gt;(&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;&lt;/font&gt;&lt;font color="black"&gt;[DateTimeID] [bigint] &lt;/font&gt;&lt;font color="gray"&gt;NOT NULL,&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;&lt;/font&gt;&lt;font color="black"&gt;[DateTime] [datetime] &lt;/font&gt;&lt;font color="gray"&gt;NOT NULL,&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;&lt;/font&gt;&lt;font color="black"&gt;[object_name] [nvarchar]&lt;/font&gt;&lt;font color="gray"&gt;(&lt;/font&gt;&lt;font color="black"&gt;128&lt;/font&gt;&lt;font color="gray"&gt;) NOT NULL,&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;&lt;/font&gt;&lt;font color="black"&gt;[counter_name] [nvarchar]&lt;/font&gt;&lt;font color="gray"&gt;(&lt;/font&gt;&lt;font color="black"&gt;128&lt;/font&gt;&lt;font color="gray"&gt;) NOT NULL,&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;&lt;/font&gt;&lt;font color="black"&gt;[instance_name] [nvarchar]&lt;/font&gt;&lt;font color="gray"&gt;(&lt;/font&gt;&lt;font color="black"&gt;128&lt;/font&gt;&lt;font color="gray"&gt;) NULL,&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;&lt;/font&gt;&lt;font color="black"&gt;[cntr_value] [bigint] &lt;/font&gt;&lt;font color="gray"&gt;NULL,&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;&lt;/font&gt;&lt;font color="black"&gt;[cntr_type] [int] &lt;/font&gt;&lt;font color="gray"&gt;NULL,&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;&lt;/font&gt;&lt;font color="blue"&gt;CONSTRAINT &lt;/font&gt;&lt;font color="black"&gt;[pkPerformanceCounters] &lt;/font&gt;&lt;font color="blue"&gt;PRIMARY KEY CLUSTERED&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="gray"&gt;(&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; &lt;/font&gt;&lt;font color="black"&gt;[DateTimeID] &lt;/font&gt;&lt;font color="blue"&gt;ASC&lt;/font&gt;&lt;font color="gray"&gt;,&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; &lt;/font&gt;&lt;font color="black"&gt;[counter_name] &lt;/font&gt;&lt;font color="blue"&gt;ASC&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="gray"&gt;)&lt;/font&gt;&lt;font color="blue"&gt;WITH &lt;/font&gt;&lt;font color="gray"&gt;(&lt;/font&gt;&lt;font color="black"&gt;PAD_INDEX &lt;/font&gt;&lt;font color="blue"&gt;= OFF&lt;/font&gt;&lt;font color="gray"&gt;, &lt;/font&gt;&lt;font color="black"&gt;STATISTICS_NORECOMPUTE &lt;/font&gt;&lt;font color="blue"&gt;= OFF&lt;/font&gt;&lt;font color="gray"&gt;, &lt;/font&gt;&lt;font color="black"&gt;IGNORE_DUP_KEY &lt;/font&gt;&lt;font color="blue"&gt;= OFF&lt;/font&gt;&lt;font color="gray"&gt;, &lt;/font&gt;&lt;font color="black"&gt;ALLOW_ROW_LOCKS &lt;/font&gt;&lt;font color="blue"&gt;= ON&lt;/font&gt;&lt;font color="gray"&gt;, &lt;/font&gt;&lt;font color="black"&gt;ALLOW_PAGE_LOCKS &lt;/font&gt;&lt;font color="blue"&gt;= ON&lt;/font&gt;&lt;font color="gray"&gt;, &lt;/font&gt;&lt;font color="blue"&gt;FILLFACTOR = &lt;/font&gt;&lt;font color="black"&gt;90&lt;/font&gt;&lt;font color="gray"&gt;) &lt;/font&gt;&lt;font color="blue"&gt;ON &lt;/font&gt;&lt;font color="black"&gt;[PRIMARY]&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="gray"&gt;) &lt;/font&gt;&lt;font color="blue"&gt;ON &lt;/font&gt;&lt;font color="black"&gt;[PRIMARY]&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I've used a DateTimeID field as I don't like using Datetimes as part of primary keys, and also they can be useful in any Analysis Services you might want to do down the road.&lt;br /&gt;&lt;br /&gt;Now for a proc to record some counters (feel free to pick and choose which counters you think are appropriate, and please let me know if you've any suggestions):&lt;br /&gt;&lt;br /&gt;&lt;pre style="font-size: 12px;"&gt;&lt;font color="green"&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp; ----------------------------------------------------------------------------------------&lt;br&gt;&amp;nbsp;&amp;nbsp; --&lt;br&gt;&amp;nbsp;&amp;nbsp; -- Create a procedure which will query the DMVs and store the results for reporting&lt;br&gt;&amp;nbsp;&amp;nbsp; --&lt;br&gt;&amp;nbsp;&amp;nbsp; ----------------------------------------------------------------------------------------&lt;br&gt;&lt;/font&gt;&lt;font color="blue"&gt;CREATE PROCEDURE &lt;/font&gt;&lt;font color="black"&gt;[Monitoring].[sPerformanceCountersInsert]&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="blue"&gt;AS&lt;br&gt;&amp;nbsp;&amp;nbsp; BEGIN&lt;br&gt;&amp;nbsp;&amp;nbsp; INSERT INTO&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; &lt;/font&gt;&lt;font color="black"&gt;[Monitoring].[PerformanceCounters]&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;SELECT&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;&lt;/font&gt;&lt;font color="magenta"&gt;CAST&lt;/font&gt;&lt;font color="gray"&gt;(&lt;/font&gt;&lt;font color="magenta"&gt;DATEPART&lt;/font&gt;&lt;font color="gray"&gt;(&lt;/font&gt;&lt;font color="magenta"&gt;YEAR&lt;/font&gt;&lt;font color="gray"&gt;, &lt;/font&gt;&lt;font color="magenta"&gt;GETDATE&lt;/font&gt;&lt;font color="gray"&gt;()) &lt;/font&gt;&lt;font color="blue"&gt;AS &lt;/font&gt;&lt;font color="black"&gt;bigint&lt;/font&gt;&lt;font color="gray"&gt;)*&lt;/font&gt;&lt;font color="black"&gt;100000000&lt;/font&gt;&lt;font color="gray"&gt;+&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;&lt;/font&gt;&lt;font color="magenta"&gt;DATEPART&lt;/font&gt;&lt;font color="gray"&gt;(&lt;/font&gt;&lt;font color="magenta"&gt;MONTH&lt;/font&gt;&lt;font color="gray"&gt;, &lt;/font&gt;&lt;font color="magenta"&gt;GETDATE&lt;/font&gt;&lt;font color="gray"&gt;())*&lt;/font&gt;&lt;font color="black"&gt;1000000&lt;/font&gt;&lt;font color="gray"&gt;+&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;&lt;/font&gt;&lt;font color="magenta"&gt;DATEPART&lt;/font&gt;&lt;font color="gray"&gt;(&lt;/font&gt;&lt;font color="magenta"&gt;DAY&lt;/font&gt;&lt;font color="gray"&gt;, &lt;/font&gt;&lt;font color="magenta"&gt;GETDATE&lt;/font&gt;&lt;font color="gray"&gt;())*&lt;/font&gt;&lt;font color="black"&gt;10000&lt;/font&gt;&lt;font color="gray"&gt;+&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;&lt;/font&gt;&lt;font color="magenta"&gt;DATEPART&lt;/font&gt;&lt;font color="gray"&gt;(&lt;/font&gt;&lt;font color="black"&gt;hour&lt;/font&gt;&lt;font color="gray"&gt;, &lt;/font&gt;&lt;font color="magenta"&gt;GETDATE&lt;/font&gt;&lt;font color="gray"&gt;())*&lt;/font&gt;&lt;font color="black"&gt;100&lt;/font&gt;&lt;font color="gray"&gt;+&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;&lt;/font&gt;&lt;font color="magenta"&gt;DATEPART&lt;/font&gt;&lt;font color="gray"&gt;(&lt;/font&gt;&lt;font color="black"&gt;minute&lt;/font&gt;&lt;font color="gray"&gt;, &lt;/font&gt;&lt;font color="magenta"&gt;GETDATE&lt;/font&gt;&lt;font color="gray"&gt;()),&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;&lt;/font&gt;&lt;font color="magenta"&gt;GETDATE&lt;/font&gt;&lt;font color="gray"&gt;(),&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;&lt;/font&gt;&lt;font color="black"&gt;[dm_os_performance_counters].[object_name]&lt;/font&gt;&lt;font color="gray"&gt;,&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;&lt;/font&gt;&lt;font color="black"&gt;[dm_os_performance_counters].[counter_name]&lt;/font&gt;&lt;font color="gray"&gt;,&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;&lt;/font&gt;&lt;font color="black"&gt;[dm_os_performance_counters].[instance_name]&lt;/font&gt;&lt;font color="gray"&gt;,&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;&lt;/font&gt;&lt;font color="black"&gt;[dm_os_performance_counters].[cntr_value]&lt;/font&gt;&lt;font color="gray"&gt;,&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;&lt;/font&gt;&lt;font color="black"&gt;[dm_os_performance_counters].[cntr_type]&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;FROM&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;&lt;/font&gt;&lt;font color="black"&gt;[TheDBYouWantToMonitor].[sys].[dm_os_performance_counters]&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;WHERE&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="gray"&gt;(&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; &lt;/font&gt;&lt;font color="magenta"&gt;OBJECT_NAME &lt;/font&gt;&lt;font color="blue"&gt;= &lt;/font&gt;&lt;font color="red"&gt;'SQLServer:Buffer Manager'&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;&lt;/font&gt;&lt;font color="gray"&gt;AND (&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;counter_name &lt;/font&gt;&lt;font color="blue"&gt;= &lt;/font&gt;&lt;font color="red"&gt;'Page life expectancy'&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="gray"&gt;)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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; OR (&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; &lt;/font&gt;&lt;font color="magenta"&gt;OBJECT_NAME &lt;/font&gt;&lt;font color="blue"&gt;= &lt;/font&gt;&lt;font color="red"&gt;'SQLServer:General Statistics'&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;&lt;/font&gt;&lt;font color="gray"&gt;AND (&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;counter_name &lt;/font&gt;&lt;font color="blue"&gt;= &lt;/font&gt;&lt;font color="red"&gt;'User Connections'&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; &lt;/font&gt;&lt;font color="gray"&gt;OR &lt;/font&gt;&lt;font color="black"&gt;counter_name &lt;/font&gt;&lt;font color="blue"&gt;= &lt;/font&gt;&lt;font color="red"&gt;'Processes blocked'&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="gray"&gt;)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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; OR (&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; &lt;/font&gt;&lt;font color="magenta"&gt;OBJECT_NAME &lt;/font&gt;&lt;font color="blue"&gt;= &lt;/font&gt;&lt;font color="red"&gt;'SQLServer:Databases'&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;&lt;/font&gt;&lt;font color="gray"&gt;AND &lt;/font&gt;&lt;font color="black"&gt;instance_name &lt;/font&gt;&lt;font color="blue"&gt;= &lt;/font&gt;&lt;font color="red"&gt;'TheDBYouWantToMonitor'&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;&lt;/font&gt;&lt;font color="gray"&gt;AND (&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;counter_name &lt;/font&gt;&lt;font color="blue"&gt;= &lt;/font&gt;&lt;font color="red"&gt;'Transactions/sec'&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="gray"&gt;)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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; OR (&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; &lt;/font&gt;&lt;font color="magenta"&gt;OBJECT_NAME &lt;/font&gt;&lt;font color="blue"&gt;= &lt;/font&gt;&lt;font color="red"&gt;'SQLServer:Access Methods'&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;&lt;/font&gt;&lt;font color="gray"&gt;AND (&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;counter_name &lt;/font&gt;&lt;font color="blue"&gt;= &lt;/font&gt;&lt;font color="red"&gt;'Full Scans/sec'&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; &lt;/font&gt;&lt;font color="gray"&gt;OR &lt;/font&gt;&lt;font color="black"&gt;counter_name &lt;/font&gt;&lt;font color="blue"&gt;= &lt;/font&gt;&lt;font color="red"&gt;'Range Scans/sec'&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; &lt;/font&gt;&lt;font color="gray"&gt;OR &lt;/font&gt;&lt;font color="black"&gt;counter_name &lt;/font&gt;&lt;font color="blue"&gt;= &lt;/font&gt;&lt;font color="red"&gt;'Index Searches/sec'&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; &lt;/font&gt;&lt;font color="gray"&gt;OR &lt;/font&gt;&lt;font color="black"&gt;counter_name &lt;/font&gt;&lt;font color="blue"&gt;= &lt;/font&gt;&lt;font color="red"&gt;'Page Splits/sec'&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; &lt;/font&gt;&lt;font color="gray"&gt;OR &lt;/font&gt;&lt;font color="black"&gt;counter_name &lt;/font&gt;&lt;font color="blue"&gt;= &lt;/font&gt;&lt;font color="red"&gt;'Table Lock Escalations/sec'&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="gray"&gt;)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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; OR (&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; &lt;/font&gt;&lt;font color="magenta"&gt;OBJECT_NAME &lt;/font&gt;&lt;font color="blue"&gt;= &lt;/font&gt;&lt;font color="red"&gt;'SQLServer:SQL Statistics'&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;&lt;/font&gt;&lt;font color="gray"&gt;AND &lt;/font&gt;&lt;font color="black"&gt;counter_name &lt;/font&gt;&lt;font color="blue"&gt;= &lt;/font&gt;&lt;font color="red"&gt;'SQL Re-Compilations/sec'&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="gray"&gt;)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OR (&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; &lt;/font&gt;&lt;font color="magenta"&gt;OBJECT_NAME &lt;/font&gt;&lt;font color="blue"&gt;= &lt;/font&gt;&lt;font color="red"&gt;'SQLServer:Memory Manager'&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;&lt;/font&gt;&lt;font color="gray"&gt;AND &lt;/font&gt;&lt;font color="black"&gt;counter_name &lt;/font&gt;&lt;font color="blue"&gt;= &lt;/font&gt;&lt;font color="red"&gt;'Memory Grants Outstanding'&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="gray"&gt;)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OR (&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; &lt;/font&gt;&lt;font color="magenta"&gt;OBJECT_NAME &lt;/font&gt;&lt;font color="blue"&gt;= &lt;/font&gt;&lt;font color="red"&gt;'SQLServer:Transactions'&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;&lt;/font&gt;&lt;font color="gray"&gt;AND &lt;/font&gt;&lt;font color="black"&gt;counter_name &lt;/font&gt;&lt;font color="blue"&gt;= &lt;/font&gt;&lt;font color="red"&gt;'Transactions'&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="gray"&gt;)&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="blue"&gt;END&lt;/font&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;This is all pretty DB centric stuff, it's unfortunate that more server level stats aren't available with this method, such as memory and disk usage.&lt;br /&gt;&lt;br /&gt;Now we just need to set up a SQL Server Agent job to fire off that job every x minutes/hours. That'll depend on how busy your DB is, on my main prod DB I've got this guy running every 5 minutes, and a similar proc recording Data and Log file sizes on a daily basis.&lt;br /&gt;&lt;br /&gt;Once you've got enough historical data, it's a simple matter to query:&lt;br /&gt;&lt;br /&gt;&lt;pre style="font-size: 12px;"&gt;&lt;font color="blue"&gt;CREATE PROCEDURE &lt;/font&gt;&lt;font color="black"&gt;[Monitoring].[sPerformanceCountersSelectByDateRange]&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="#434343"&gt;@FormerDate &lt;/font&gt;&lt;font color="blue"&gt;DATETIME&lt;/font&gt;&lt;font color="gray"&gt;,&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="#434343"&gt;@LatterDate &lt;/font&gt;&lt;font color="blue"&gt;DATETIME&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AS&lt;br&gt;&amp;nbsp;&amp;nbsp; BEGIN&lt;br&gt;&amp;nbsp;&amp;nbsp; SELECT&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;&lt;/font&gt;&lt;font color="black"&gt;[DateTimeID]&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;&lt;/font&gt;&lt;font color="gray"&gt;,&lt;/font&gt;&lt;font color="black"&gt;[DateTime]&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;&lt;/font&gt;&lt;font color="gray"&gt;,&lt;/font&gt;&lt;font color="black"&gt;[object_name]&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;&lt;/font&gt;&lt;font color="gray"&gt;,&lt;/font&gt;&lt;font color="black"&gt;[counter_name]&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;&lt;/font&gt;&lt;font color="gray"&gt;,&lt;/font&gt;&lt;font color="black"&gt;[instance_name]&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;&lt;/font&gt;&lt;font color="gray"&gt;,&lt;/font&gt;&lt;font color="black"&gt;[cntr_value]&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;&lt;/font&gt;&lt;font color="gray"&gt;,&lt;/font&gt;&lt;font color="black"&gt;[cntr_type]&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;FROM&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;&lt;/font&gt;&lt;font color="black"&gt;[Monitoring].[PerformanceCounters]&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;WHERE&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;&lt;/font&gt;&lt;font color="black"&gt;[DateTime] &lt;/font&gt;&lt;font color="gray"&gt;BETWEEN &lt;/font&gt;&lt;font color="#434343"&gt;@FormerDate &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="gray"&gt;AND &lt;/font&gt;&lt;font color="#434343"&gt;@LatterDate&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="blue"&gt;END&lt;/font&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I'm hooking this proc up into a Reporting Services report at the moment, charting each counter seperately. It's quite interesting to see the shapes of the charts, and spurring me into understanding more about what each one really means. It's great stuff to show to mgt as well, giving them a bit of a look into the black box that is their SQL Server.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4405194173885586991-4641294167242159086?l=sqlninja.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/T9fZ37hci4XeaC9bKGMKWkBJmG8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/T9fZ37hci4XeaC9bKGMKWkBJmG8/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/T9fZ37hci4XeaC9bKGMKWkBJmG8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/T9fZ37hci4XeaC9bKGMKWkBJmG8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/SqlNinja/~4/dwPVz_GgzS4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://sqlninja.blogspot.com/feeds/4641294167242159086/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4405194173885586991&amp;postID=4641294167242159086" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4405194173885586991/posts/default/4641294167242159086?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4405194173885586991/posts/default/4641294167242159086?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SqlNinja/~3/dwPVz_GgzS4/database-performance-monitoring-on.html" title="Database Performance Monitoring on the Cheap" /><author><name>Scott Herbert</name><uri>http://www.blogger.com/profile/16970114054517178549</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://1.bp.blogspot.com/_gE0uUId7hao/SLelgrmt6NI/AAAAAAAASQE/GfeX2HUoJRE/S220/PHOTO+002.jpg" /></author><thr:total>2</thr:total><feedburner:origLink>http://sqlninja.blogspot.com/2009/02/database-performance-monitoring-on.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CU4DRXg8fCp7ImA9Wx9UEkw.&quot;"><id>tag:blogger.com,1999:blog-4405194173885586991.post-3509850117037540668</id><published>2009-01-16T08:46:00.006+11:00</published><updated>2011-02-09T12:12:54.674+11:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-02-09T12:12:54.674+11:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Subscription" /><category scheme="http://www.blogger.com/atom/ns#" term="Schedule" /><category scheme="http://www.blogger.com/atom/ns#" term="Reporting Services" /><category scheme="http://www.blogger.com/atom/ns#" term="GUID" /><category scheme="http://www.blogger.com/atom/ns#" term="Job" /><category scheme="http://www.blogger.com/atom/ns#" term="SQL Agent" /><category scheme="http://www.blogger.com/atom/ns#" term="Report Server" /><title>Warning: Don’t play with Reporting Services’ SQL Agent Jobs! Or How to Tell Which Job is Doing What</title><content type="html">Having a look through SQL Server Agent’s list of jobs yesterday, I got a bit upset. About half the jobs in there are named things like “0343229B-0642-4E38-B7A5-C603C1F45976”. They’re Reporting Services Subscription jobs. Once again RS looks like a half-arsed product.&lt;br /&gt;&lt;br /&gt;So I decide to go about renaming them, figuring that RS’ subscriptions will still be able to recognize the jobs as I’m only changing their names, not their IDs. Bad move. RS uses the names, can’t find the jobs when you restart the service, and recreates all those jobs with new GUIDs. Worse yet, I started getting “Only members of sysadmin role are allowed to update or delete jobs owned by a different login” errors whenever I tried to update subscriptions through the Report Manager, forcing me to have to play around with login permissions and job owners. A nightmare!&lt;br /&gt;&lt;br /&gt;The script I wrote to help me recognize which job fires which subscription is below. It’s now more useful than ever:&lt;br /&gt;&lt;br /&gt;NB: The CASE statement which transforms the “DaysOfWeek” int figure into actual days of the week doesn’t cover ever possible case, but it covered my needs. For a rundown of how this int works, see “Toolman’s” post at &lt;a href="http://www.sqlservercentral.com/Forums/Topic501408-150-1.aspx"&gt;http://www.sqlservercentral.com/Forums/Topic501408-150-1.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Also thanks to “stevefromOZ” from whose post at &lt;a href="http://www.sqlservercentral.com/Forums/Topic254010-150-1.aspx"&gt;http://www.sqlservercentral.com/Forums/Topic254010-150-1.aspx&lt;/a&gt; I nabbed the email address part of the code below.&lt;br /&gt;&lt;br /&gt;&lt;pre style="font-size: 12px;"&gt;&lt;font color="blue"&gt;USE &lt;/font&gt;&lt;font color="black"&gt;ReportServer&lt;br&gt;&lt;/font&gt;&lt;font color="blue"&gt;SELECT&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="black"&gt;sysjobs.name&lt;/font&gt;&lt;font color="gray"&gt;,&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="red"&gt;'RS - '&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="gray"&gt;+ &lt;/font&gt;&lt;font color="black"&gt;Catalog.Name&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="gray"&gt;+ &lt;/font&gt;&lt;font color="red"&gt;' ['&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="gray"&gt;+ &lt;/font&gt;&lt;font color="magenta"&gt;CASE&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;&lt;/font&gt;&lt;font color="blue"&gt;WHEN &lt;/font&gt;&lt;font color="black"&gt;DaysOfMonth &lt;/font&gt;&lt;font color="blue"&gt;IS &lt;/font&gt;&lt;font color="gray"&gt;NOT NULL&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;&lt;/font&gt;&lt;font color="blue"&gt;THEN &lt;/font&gt;&lt;font color="magenta"&gt;CAST&lt;/font&gt;&lt;font color="gray"&gt;(&lt;/font&gt;&lt;font color="black"&gt;DaysOfMonth &lt;/font&gt;&lt;font color="blue"&gt;AS VARCHAR&lt;/font&gt;&lt;font color="gray"&gt;(&lt;/font&gt;&lt;font color="black"&gt;10&lt;/font&gt;&lt;font color="gray"&gt;)) + &lt;/font&gt;&lt;font color="red"&gt;' Day of Month'&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;&lt;/font&gt;&lt;font color="blue"&gt;WHEN &lt;/font&gt;&lt;font color="black"&gt;DaysOfWeek &lt;/font&gt;&lt;font color="blue"&gt;= &lt;/font&gt;&lt;font color="black"&gt;1 &lt;/font&gt;&lt;font color="blue"&gt;THEN &lt;/font&gt;&lt;font color="red"&gt;'Monday'&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;&lt;/font&gt;&lt;font color="blue"&gt;WHEN &lt;/font&gt;&lt;font color="black"&gt;DaysOfWeek &lt;/font&gt;&lt;font color="blue"&gt;= &lt;/font&gt;&lt;font color="black"&gt;2 &lt;/font&gt;&lt;font color="blue"&gt;THEN &lt;/font&gt;&lt;font color="red"&gt;'Tuesday'&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;&lt;/font&gt;&lt;font color="blue"&gt;WHEN &lt;/font&gt;&lt;font color="black"&gt;DaysOfWeek &lt;/font&gt;&lt;font color="blue"&gt;= &lt;/font&gt;&lt;font color="black"&gt;4 &lt;/font&gt;&lt;font color="blue"&gt;THEN &lt;/font&gt;&lt;font color="red"&gt;'Wednesday'&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;&lt;/font&gt;&lt;font color="blue"&gt;WHEN &lt;/font&gt;&lt;font color="black"&gt;DaysOfWeek &lt;/font&gt;&lt;font color="blue"&gt;= &lt;/font&gt;&lt;font color="black"&gt;8 &lt;/font&gt;&lt;font color="blue"&gt;THEN &lt;/font&gt;&lt;font color="red"&gt;'Thursday'&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;&lt;/font&gt;&lt;font color="blue"&gt;WHEN &lt;/font&gt;&lt;font color="black"&gt;DaysOfWeek &lt;/font&gt;&lt;font color="blue"&gt;= &lt;/font&gt;&lt;font color="black"&gt;16 &lt;/font&gt;&lt;font color="blue"&gt;THEN &lt;/font&gt;&lt;font color="red"&gt;'Friday'&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;&lt;/font&gt;&lt;font color="blue"&gt;WHEN &lt;/font&gt;&lt;font color="black"&gt;DaysOfWeek &lt;/font&gt;&lt;font color="blue"&gt;= &lt;/font&gt;&lt;font color="black"&gt;32 &lt;/font&gt;&lt;font color="blue"&gt;THEN &lt;/font&gt;&lt;font color="red"&gt;'Saturday'&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;&lt;/font&gt;&lt;font color="blue"&gt;WHEN &lt;/font&gt;&lt;font color="black"&gt;DaysOfWeek &lt;/font&gt;&lt;font color="blue"&gt;= &lt;/font&gt;&lt;font color="black"&gt;64 &lt;/font&gt;&lt;font color="blue"&gt;THEN &lt;/font&gt;&lt;font color="red"&gt;'Sunday'&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;&lt;/font&gt;&lt;font color="blue"&gt;WHEN &lt;/font&gt;&lt;font color="black"&gt;DaysOfWeek &lt;/font&gt;&lt;font color="blue"&gt;= &lt;/font&gt;&lt;font color="black"&gt;62 &lt;/font&gt;&lt;font color="blue"&gt;THEN &lt;/font&gt;&lt;font color="red"&gt;'Monday - Friday'&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;&lt;/font&gt;&lt;font color="blue"&gt;WHEN &lt;/font&gt;&lt;font color="black"&gt;DaysOfWeek &lt;/font&gt;&lt;font color="blue"&gt;= &lt;/font&gt;&lt;font color="black"&gt;120 &lt;/font&gt;&lt;font color="blue"&gt;THEN &lt;/font&gt;&lt;font color="red"&gt;'Wednesday - Saturday'&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;&lt;/font&gt;&lt;font color="blue"&gt;WHEN &lt;/font&gt;&lt;font color="black"&gt;DaysOfWeek &lt;/font&gt;&lt;font color="blue"&gt;= &lt;/font&gt;&lt;font color="black"&gt;126 &lt;/font&gt;&lt;font color="blue"&gt;THEN &lt;/font&gt;&lt;font color="red"&gt;'Monday - Saturday'&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;&lt;/font&gt;&lt;font color="blue"&gt;WHEN &lt;/font&gt;&lt;font color="black"&gt;DaysOfWeek &lt;/font&gt;&lt;font color="blue"&gt;= &lt;/font&gt;&lt;font color="black"&gt;127 &lt;/font&gt;&lt;font color="blue"&gt;THEN &lt;/font&gt;&lt;font color="red"&gt;'Daily'&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="blue"&gt;END&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="gray"&gt;+ &lt;/font&gt;&lt;font color="red"&gt;' '&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="gray"&gt;+ &lt;/font&gt;&lt;font color="magenta"&gt;CAST&lt;/font&gt;&lt;font color="gray"&gt;(&lt;/font&gt;&lt;font color="magenta"&gt;DATEPART&lt;/font&gt;&lt;font color="gray"&gt;(&lt;/font&gt;&lt;font color="black"&gt;hh&lt;/font&gt;&lt;font color="gray"&gt;,&lt;/font&gt;&lt;font color="black"&gt;Schedule.StartDate&lt;/font&gt;&lt;font color="gray"&gt;)&lt;/font&gt;&lt;font color="blue"&gt;AS VARCHAR&lt;/font&gt;&lt;font color="gray"&gt;(&lt;/font&gt;&lt;font color="black"&gt;2&lt;/font&gt;&lt;font color="gray"&gt;))&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; + &lt;/font&gt;&lt;font color="magenta"&gt;CASE&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;&lt;/font&gt;&lt;font color="blue"&gt;WHEN &lt;/font&gt;&lt;font color="magenta"&gt;LEN&lt;/font&gt;&lt;font color="gray"&gt;(&lt;/font&gt;&lt;font color="magenta"&gt;CAST&lt;/font&gt;&lt;font color="gray"&gt;(&lt;/font&gt;&lt;font color="magenta"&gt;DATEPART&lt;/font&gt;&lt;font color="gray"&gt;(&lt;/font&gt;&lt;font color="black"&gt;n&lt;/font&gt;&lt;font color="gray"&gt;,&lt;/font&gt;&lt;font color="black"&gt;Schedule.StartDate&lt;/font&gt;&lt;font color="gray"&gt;)&lt;/font&gt;&lt;font color="blue"&gt;AS VARCHAR&lt;/font&gt;&lt;font color="gray"&gt;(&lt;/font&gt;&lt;font color="black"&gt;2&lt;/font&gt;&lt;font color="gray"&gt;))) &lt;/font&gt;&lt;font color="blue"&gt;= &lt;/font&gt;&lt;font color="black"&gt;1&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;&lt;/font&gt;&lt;font color="blue"&gt;THEN &lt;/font&gt;&lt;font color="red"&gt;':0' &lt;/font&gt;&lt;font color="gray"&gt;+ &lt;/font&gt;&lt;font color="magenta"&gt;CAST&lt;/font&gt;&lt;font color="gray"&gt;(&lt;/font&gt;&lt;font color="magenta"&gt;DATEPART&lt;/font&gt;&lt;font color="gray"&gt;(&lt;/font&gt;&lt;font color="black"&gt;n&lt;/font&gt;&lt;font color="gray"&gt;,&lt;/font&gt;&lt;font color="black"&gt;Schedule.StartDate&lt;/font&gt;&lt;font color="gray"&gt;)&lt;/font&gt;&lt;font color="blue"&gt;AS VARCHAR&lt;/font&gt;&lt;font color="gray"&gt;(&lt;/font&gt;&lt;font color="black"&gt;2&lt;/font&gt;&lt;font color="gray"&gt;))&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="blue"&gt;ELSE &lt;/font&gt;&lt;font color="red"&gt;':' &lt;/font&gt;&lt;font color="gray"&gt;+ &lt;/font&gt;&lt;font color="magenta"&gt;CAST&lt;/font&gt;&lt;font color="gray"&gt;(&lt;/font&gt;&lt;font color="magenta"&gt;DATEPART&lt;/font&gt;&lt;font color="gray"&gt;(&lt;/font&gt;&lt;font color="black"&gt;n&lt;/font&gt;&lt;font color="gray"&gt;,&lt;/font&gt;&lt;font color="black"&gt;Schedule.StartDate&lt;/font&gt;&lt;font color="gray"&gt;)&lt;/font&gt;&lt;font color="blue"&gt;AS VARCHAR&lt;/font&gt;&lt;font color="gray"&gt;(&lt;/font&gt;&lt;font color="black"&gt;2&lt;/font&gt;&lt;font color="gray"&gt;))&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="blue"&gt;END&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="gray"&gt;+ &lt;/font&gt;&lt;font color="red"&gt;']' &lt;/font&gt;&lt;font color="black"&gt;[NewName]&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="blue"&gt;FROM&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="black"&gt;msdb.dbo.sysjobs&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="blue"&gt;JOIN&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="black"&gt;dbo.ReportSchedule&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="blue"&gt;ON &lt;/font&gt;&lt;font color="black"&gt;sysjobs.name &lt;/font&gt;&lt;font color="blue"&gt;= &lt;/font&gt;&lt;font color="magenta"&gt;CAST&lt;/font&gt;&lt;font color="gray"&gt;(&lt;/font&gt;&lt;font color="black"&gt;ReportSchedule.ScheduleID &lt;/font&gt;&lt;font color="blue"&gt;AS VARCHAR&lt;/font&gt;&lt;font color="gray"&gt;(&lt;/font&gt;&lt;font color="black"&gt;255&lt;/font&gt;&lt;font color="gray"&gt;))&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="blue"&gt;JOIN&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="black"&gt;dbo.Schedule&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="blue"&gt;ON &lt;/font&gt;&lt;font color="black"&gt;ReportSchedule.ScheduleID &lt;/font&gt;&lt;font color="blue"&gt;= &lt;/font&gt;&lt;font color="black"&gt;Schedule.ScheduleID&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="blue"&gt;JOIN&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="black"&gt;dbo.Catalog&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="blue"&gt;ON &lt;/font&gt;&lt;font color="black"&gt;ReportSchedule.ReportID &lt;/font&gt;&lt;font color="blue"&gt;= &lt;/font&gt;&lt;font color="black"&gt;Catalog.ItemID&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="blue"&gt;ORDER BY&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="black"&gt;Catalog.name&lt;/font&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4405194173885586991-3509850117037540668?l=sqlninja.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/dCaSCxyBujV9Po283u6YOnMuvHk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/dCaSCxyBujV9Po283u6YOnMuvHk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/dCaSCxyBujV9Po283u6YOnMuvHk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/dCaSCxyBujV9Po283u6YOnMuvHk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/SqlNinja/~4/kbqYf33R1IM" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://sqlninja.blogspot.com/feeds/3509850117037540668/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4405194173885586991&amp;postID=3509850117037540668" title="6 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4405194173885586991/posts/default/3509850117037540668?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4405194173885586991/posts/default/3509850117037540668?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SqlNinja/~3/kbqYf33R1IM/warning-dont-play-with-reporting.html" title="Warning: Don’t play with Reporting Services’ SQL Agent Jobs! Or How to Tell Which Job is Doing What" /><author><name>Scott Herbert</name><uri>http://www.blogger.com/profile/16970114054517178549</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://1.bp.blogspot.com/_gE0uUId7hao/SLelgrmt6NI/AAAAAAAASQE/GfeX2HUoJRE/S220/PHOTO+002.jpg" /></author><thr:total>6</thr:total><feedburner:origLink>http://sqlninja.blogspot.com/2009/01/warning-dont-play-with-reporting.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CU8FQX89cSp7ImA9Wx9UEkw.&quot;"><id>tag:blogger.com,1999:blog-4405194173885586991.post-3111350929675828428</id><published>2009-01-15T11:48:00.009+11:00</published><updated>2011-02-09T12:10:10.169+11:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-02-09T12:10:10.169+11:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Subscription" /><category scheme="http://www.blogger.com/atom/ns#" term="Schedule" /><category scheme="http://www.blogger.com/atom/ns#" term="Reporting Services" /><category scheme="http://www.blogger.com/atom/ns#" term="Report Server" /><title>Querying ReportServer Database</title><content type="html">&lt;span style="font-size:100%;"&gt;Here's a script I knocked up which gives you some insights into your Reports Catalog in Reporting Services.&lt;br /&gt;&lt;br /&gt;I got frustrated with the Reports Manager site and its inability to give you a wholistic view of subscriptions, and the script blew out a little from there as I had a scrounge around the ResportServer database structure.&lt;br /&gt;&lt;br /&gt;I might hook this up to an RS report at some stage, if that's not akin to "crossing the streams".&lt;br /&gt;&lt;br /&gt;Note that info about the number of executions and last execution time are based on the execution log, which only keeps records for the last 60 days by default.&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;pre style="font-size: 12px;"&gt;&lt;font color="blue"&gt;USE &lt;/font&gt;&lt;font color="black"&gt;ReportServer&lt;br&gt;&lt;/font&gt;&lt;font color="blue"&gt;SELECT&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="black"&gt;CatalogParent.Name ParentName&lt;/font&gt;&lt;font color="gray"&gt;,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="black"&gt;Catalog.Name ReportName&lt;/font&gt;&lt;font color="gray"&gt;,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="black"&gt;ReportCreatedByUsers.UserName ReportCreatedByUserName&lt;/font&gt;&lt;font color="gray"&gt;,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="black"&gt;Catalog.CreationDate ReportCreationDate&lt;/font&gt;&lt;font color="gray"&gt;,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="black"&gt;ReportModifiedByUsers.UserName ReportModifiedByUserName&lt;/font&gt;&lt;font color="gray"&gt;,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="black"&gt;Catalog.ModifiedDate ReportModifiedDate&lt;/font&gt;&lt;font color="gray"&gt;,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="black"&gt;CountExecution.CountStart TotalExecutions&lt;/font&gt;&lt;font color="gray"&gt;,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="black"&gt;ExecutionLog.InstanceName LastExecutedInstanceName&lt;/font&gt;&lt;font color="gray"&gt;,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="black"&gt;ExecutionLog.UserName LastExecutedUserName&lt;/font&gt;&lt;font color="gray"&gt;,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="black"&gt;ExecutionLog.Format LastExecutedFormat&lt;/font&gt;&lt;font color="gray"&gt;,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="black"&gt;ExecutionLog.TimeStart LastExecutedTimeStart&lt;/font&gt;&lt;font color="gray"&gt;,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="black"&gt;ExecutionLog.TimeEnd LastExecutedTimeEnd&lt;/font&gt;&lt;font color="gray"&gt;,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="black"&gt;ExecutionLog.TimeDataRetrieval LastExecutedTimeDataRetrieval&lt;/font&gt;&lt;font color="gray"&gt;,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="black"&gt;ExecutionLog.TimeProcessing LastExecutedTimeProcessing&lt;/font&gt;&lt;font color="gray"&gt;,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="black"&gt;ExecutionLog.TimeRendering LastExecutedTimeRendering&lt;/font&gt;&lt;font color="gray"&gt;,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="black"&gt;ExecutionLog.Status LastExecutedStatus&lt;/font&gt;&lt;font color="gray"&gt;,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="black"&gt;ExecutionLog.ByteCount LastExecutedByteCount&lt;/font&gt;&lt;font color="gray"&gt;,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="black"&gt;ExecutionLog.[RowCount] LastExecutedRowCount&lt;/font&gt;&lt;font color="gray"&gt;,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="black"&gt;SubscriptionOwner.UserName SubscriptionOwnerUserName&lt;/font&gt;&lt;font color="gray"&gt;,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="black"&gt;SubscriptionModifiedByUsers.UserName SubscriptionModifiedByUserName&lt;/font&gt;&lt;font color="gray"&gt;,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="black"&gt;Subscriptions.ModifiedDate SubscriptionModifiedDate&lt;/font&gt;&lt;font color="gray"&gt;,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="black"&gt;Subscriptions.Description SubscriptionDescription&lt;/font&gt;&lt;font color="gray"&gt;,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="black"&gt;Subscriptions.LastStatus SubscriptionLastStatus&lt;/font&gt;&lt;font color="gray"&gt;,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="black"&gt;Subscriptions.LastRunTime SubscriptionLastRunTime&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="blue"&gt;FROM&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="black"&gt;dbo.Catalog&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="blue"&gt;JOIN&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="black"&gt;dbo.Catalog CatalogParent&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="blue"&gt;ON &lt;/font&gt;&lt;font color="black"&gt;Catalog.ParentID &lt;/font&gt;&lt;font color="blue"&gt;= &lt;/font&gt;&lt;font color="black"&gt;CatalogParent.ItemID&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="blue"&gt;JOIN&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="black"&gt;dbo.Users ReportCreatedByUsers&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="blue"&gt;ON &lt;/font&gt;&lt;font color="black"&gt;Catalog.CreatedByID &lt;/font&gt;&lt;font color="blue"&gt;= &lt;/font&gt;&lt;font color="black"&gt;ReportCreatedByUsers.UserID&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="blue"&gt;JOIN&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="black"&gt;dbo.Users ReportModifiedByUsers&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="blue"&gt;ON &lt;/font&gt;&lt;font color="black"&gt;Catalog.ModifiedByID &lt;/font&gt;&lt;font color="blue"&gt;= &lt;/font&gt;&lt;font color="black"&gt;ReportModifiedByUsers.UserID&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="magenta"&gt;LEFT &lt;/font&gt;&lt;font color="blue"&gt;JOIN&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="gray"&gt;(&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="blue"&gt;SELECT&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;&lt;/font&gt;&lt;font color="black"&gt;ReportID&lt;/font&gt;&lt;font color="gray"&gt;,&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;&lt;/font&gt;&lt;font color="magenta"&gt;MAX&lt;/font&gt;&lt;font color="gray"&gt;(&lt;/font&gt;&lt;font color="black"&gt;TimeStart&lt;/font&gt;&lt;font color="gray"&gt;) &lt;/font&gt;&lt;font color="black"&gt;LastTimeStart&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;FROM&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;&lt;/font&gt;&lt;font color="black"&gt;dbo.ExecutionLog&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;GROUP BY&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;&lt;/font&gt;&lt;font color="black"&gt;ReportID&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="gray"&gt;) &lt;/font&gt;&lt;font color="black"&gt;LatestExecution&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="blue"&gt;ON &lt;/font&gt;&lt;font color="black"&gt;Catalog.ItemID &lt;/font&gt;&lt;font color="blue"&gt;= &lt;/font&gt;&lt;font color="black"&gt;LatestExecution.ReportID&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="magenta"&gt;LEFT &lt;/font&gt;&lt;font color="blue"&gt;JOIN&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="gray"&gt;(&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="blue"&gt;SELECT&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;&lt;/font&gt;&lt;font color="black"&gt;ReportID&lt;/font&gt;&lt;font color="gray"&gt;,&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;&lt;/font&gt;&lt;font color="magenta"&gt;COUNT&lt;/font&gt;&lt;font color="gray"&gt;(&lt;/font&gt;&lt;font color="black"&gt;TimeStart&lt;/font&gt;&lt;font color="gray"&gt;) &lt;/font&gt;&lt;font color="black"&gt;CountStart&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;FROM&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;&lt;/font&gt;&lt;font color="black"&gt;dbo.ExecutionLog&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;GROUP BY&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;&lt;/font&gt;&lt;font color="black"&gt;ReportID&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="gray"&gt;) &lt;/font&gt;&lt;font color="black"&gt;CountExecution&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="blue"&gt;ON &lt;/font&gt;&lt;font color="black"&gt;Catalog.ItemID &lt;/font&gt;&lt;font color="blue"&gt;= &lt;/font&gt;&lt;font color="black"&gt;CountExecution.ReportID&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="magenta"&gt;LEFT &lt;/font&gt;&lt;font color="blue"&gt;JOIN&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="black"&gt;dbo.ExecutionLog&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="blue"&gt;ON &lt;/font&gt;&lt;font color="black"&gt;LatestExecution.ReportID &lt;/font&gt;&lt;font color="blue"&gt;= &lt;/font&gt;&lt;font color="black"&gt;ExecutionLog.ReportID&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="gray"&gt;AND &lt;/font&gt;&lt;font color="black"&gt;LatestExecution.LastTimeStart &lt;/font&gt;&lt;font color="blue"&gt;= &lt;/font&gt;&lt;font color="black"&gt;ExecutionLog.TimeStart&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="magenta"&gt;LEFT &lt;/font&gt;&lt;font color="blue"&gt;JOIN&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="black"&gt;dbo.Subscriptions&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="blue"&gt;ON &lt;/font&gt;&lt;font color="black"&gt;Catalog.ItemID &lt;/font&gt;&lt;font color="blue"&gt;= &lt;/font&gt;&lt;font color="black"&gt;Subscriptions.Report_OID&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="magenta"&gt;LEFT &lt;/font&gt;&lt;font color="blue"&gt;JOIN&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="black"&gt;dbo.Users SubscriptionOwner&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="blue"&gt;ON &lt;/font&gt;&lt;font color="black"&gt;Subscriptions.OwnerID &lt;/font&gt;&lt;font color="blue"&gt;= &lt;/font&gt;&lt;font color="black"&gt;SubscriptionOwner.UserID&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="magenta"&gt;LEFT &lt;/font&gt;&lt;font color="blue"&gt;JOIN&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="black"&gt;dbo.Users SubscriptionModifiedByUsers&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="blue"&gt;ON &lt;/font&gt;&lt;font color="black"&gt;Subscriptions.ModifiedByID &lt;/font&gt;&lt;font color="blue"&gt;= &lt;/font&gt;&lt;font color="black"&gt;SubscriptionModifiedByUsers.UserID&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="blue"&gt;ORDER BY&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="black"&gt;CatalogParent.Name&lt;/font&gt;&lt;font color="gray"&gt;,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="black"&gt;Catalog.Name &lt;/font&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4405194173885586991-3111350929675828428?l=sqlninja.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/yeWmHc0q4AFYyuQQZLY3mtf8IkI/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/yeWmHc0q4AFYyuQQZLY3mtf8IkI/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/yeWmHc0q4AFYyuQQZLY3mtf8IkI/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/yeWmHc0q4AFYyuQQZLY3mtf8IkI/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/SqlNinja/~4/-r6RKh5UgvE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://sqlninja.blogspot.com/feeds/3111350929675828428/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4405194173885586991&amp;postID=3111350929675828428" title="8 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4405194173885586991/posts/default/3111350929675828428?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4405194173885586991/posts/default/3111350929675828428?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SqlNinja/~3/-r6RKh5UgvE/querying-reportserver-database.html" title="Querying ReportServer Database" /><author><name>Scott Herbert</name><uri>http://www.blogger.com/profile/16970114054517178549</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://1.bp.blogspot.com/_gE0uUId7hao/SLelgrmt6NI/AAAAAAAASQE/GfeX2HUoJRE/S220/PHOTO+002.jpg" /></author><thr:total>8</thr:total><feedburner:origLink>http://sqlninja.blogspot.com/2009/01/querying-reportserver-database.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUQFQHo4eip7ImA9WxVSEk0.&quot;"><id>tag:blogger.com,1999:blog-4405194173885586991.post-448675689326019088</id><published>2009-01-06T11:44:00.004+11:00</published><updated>2009-01-06T11:55:11.432+11:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-01-06T11:55:11.432+11:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Command Line" /><category scheme="http://www.blogger.com/atom/ns#" term="Run" /><title>The Command Line</title><content type="html">I didn't go to school to learn about computers, LIFE taught me about computers. I learned SQL on the job (well, maybe there's lots of study that's gone on since). &lt;br /&gt;&lt;br /&gt;As a consequence, while I can write T-SQL better than I can write complete sentences in english, there's at least a few little basics that have escaped me along the line. So yesterday when I was trying to work out how to bring up a remote failed cluster node onto which I could no longer remote desktop, it was a revelation to me when someone told me how to remotely reboot a computer from the command line.&lt;br /&gt;&lt;br /&gt;I thought "how do people know this black magic"? &lt;br /&gt;&lt;br /&gt;And then I found the goods: &lt;a href="http://www.ss64.com/nt/"&gt;An A-Z Index of the Windows XP command line&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;which looks quite similar to the &lt;a href="http://technet.microsoft.com/en-au/library/bb491071.aspx"&gt;TechNet article&lt;/a&gt;, but I'm not complaining.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4405194173885586991-448675689326019088?l=sqlninja.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/a7n3UQnseIk5fO3rdoNf0LL90qE/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/a7n3UQnseIk5fO3rdoNf0LL90qE/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/a7n3UQnseIk5fO3rdoNf0LL90qE/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/a7n3UQnseIk5fO3rdoNf0LL90qE/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/SqlNinja/~4/_AuFHpv7sM0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://sqlninja.blogspot.com/feeds/448675689326019088/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4405194173885586991&amp;postID=448675689326019088" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4405194173885586991/posts/default/448675689326019088?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4405194173885586991/posts/default/448675689326019088?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SqlNinja/~3/_AuFHpv7sM0/command-line.html" title="The Command Line" /><author><name>Scott Herbert</name><uri>http://www.blogger.com/profile/16970114054517178549</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://1.bp.blogspot.com/_gE0uUId7hao/SLelgrmt6NI/AAAAAAAASQE/GfeX2HUoJRE/S220/PHOTO+002.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://sqlninja.blogspot.com/2009/01/command-line.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CE4FQ384cSp7ImA9WxRaFUg.&quot;"><id>tag:blogger.com,1999:blog-4405194173885586991.post-1607983028155058695</id><published>2008-12-18T09:00:00.003+11:00</published><updated>2008-12-18T09:28:32.139+11:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-12-18T09:28:32.139+11:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="restore" /><category scheme="http://www.blogger.com/atom/ns#" term="backup" /><title>Backups</title><content type="html">There's quite a jump between being proficient in T-SQL/SSMS and understanding the guts of SQL Server. For example, being able to backup and restore databases is a handy skill, but it's only the tip of the iceberg. Under the water is the differences between the recovery models, the different types of backups, and the effects that doing backups have on recoverability and growth/maintenance of logs.&lt;br /&gt;&lt;br /&gt;As mentioned in my post on "ongoing education", it's helpful to have reference resources which talk to you like a human, and pictures are pretty helpful too. So I'd like to pass on this amazing site: &lt;a href="http://www.sqlbackuprestore.com/"&gt;http://www.sqlbackuprestore.com/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;It'll get you up to speed on the nitty-gritty of backups and restores a lot faster than any book or course I've attempted slogging through.&lt;br /&gt;&lt;br /&gt;Just check it out if you're needing help, especially if you use Red Gate's backup gear, as he knows the innards of that lot intimately and provides a great lot of code samples which have saved me quite a few hours over the last few days.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4405194173885586991-1607983028155058695?l=sqlninja.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/gUIA-o0bh96wbylAYNxlpOzhEuc/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/gUIA-o0bh96wbylAYNxlpOzhEuc/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/gUIA-o0bh96wbylAYNxlpOzhEuc/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/gUIA-o0bh96wbylAYNxlpOzhEuc/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/SqlNinja/~4/Hc2YDWC47Fc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://sqlninja.blogspot.com/feeds/1607983028155058695/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4405194173885586991&amp;postID=1607983028155058695" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4405194173885586991/posts/default/1607983028155058695?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4405194173885586991/posts/default/1607983028155058695?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SqlNinja/~3/Hc2YDWC47Fc/backups.html" title="Backups" /><author><name>Scott Herbert</name><uri>http://www.blogger.com/profile/16970114054517178549</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://1.bp.blogspot.com/_gE0uUId7hao/SLelgrmt6NI/AAAAAAAASQE/GfeX2HUoJRE/S220/PHOTO+002.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://sqlninja.blogspot.com/2008/12/backups.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkUEQnY9eyp7ImA9WxRaE0w.&quot;"><id>tag:blogger.com,1999:blog-4405194173885586991.post-1351225766300180480</id><published>2008-12-15T13:38:00.003+11:00</published><updated>2008-12-15T14:03:23.863+11:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-12-15T14:03:23.863+11:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="TempDB" /><title>Modifying your TempDB setup</title><content type="html">Today I was moving the tempDB on a new server from the drive where every other DB data file sits to its own dedicated drive, with the intention of preventing drive contention.&lt;br /&gt;&lt;br /&gt;To cut a long story short (and anyway I'm not even sure how I got myself into such a tangle) here's a couple of annoyances and their fixes:&lt;br /&gt;&lt;br /&gt;Annoyance #1 - Reducing the Initial File Size of TempDB: If you right click a database, go into Properties, and Files, you can see the Initial file size of the database. Let's say that someone else set this DB up, and you'd like the initial size to be smaller. This is only really a problem you're going to get with TempDB, which re-creates each time you restart the SQL Service btw. So you type in a new value, and hit OK. Well, not OK, because if you re-open that same GUI, you'll see that your changes have not been kept! ARGH!&lt;br /&gt;&lt;br /&gt;Solution #1 - Issue a DBCC SHRINKFILE (N'file' , size in MB) where the size in MB is an amount LESS than the initial size you wish to set. Then, ALTER DATABASE tempdb MODIFY FILE (NAME = 'file', SIZE = new initial size)&lt;br /&gt;&lt;br /&gt;Annoyance #2 - Reducing the Number of Database Files: So you've got TempDB split up into too many files. So you go into the Properties, Files etc and remove the file(s), hit OK and they file's disappeared from the hard drive. But upon restarting the SQL Service for whatever reason, the files get recreated on the hard drive! &lt;br /&gt;&lt;br /&gt;Solution #2 - They've got to be explicity removed from the system catalogue it seems. ALTER DATABASE tempdb &lt;br /&gt;REMOVE FILE (NAME = tempdev2, FILENAME = 'c:\tempdev2.ndf')&lt;br /&gt;&lt;br /&gt;Little secrets.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4405194173885586991-1351225766300180480?l=sqlninja.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/pvIhc5l7rzpM_Cwl2prSUvcXW_8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/pvIhc5l7rzpM_Cwl2prSUvcXW_8/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/pvIhc5l7rzpM_Cwl2prSUvcXW_8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/pvIhc5l7rzpM_Cwl2prSUvcXW_8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/SqlNinja/~4/DMSyinIIJOo" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://sqlninja.blogspot.com/feeds/1351225766300180480/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4405194173885586991&amp;postID=1351225766300180480" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4405194173885586991/posts/default/1351225766300180480?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4405194173885586991/posts/default/1351225766300180480?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SqlNinja/~3/DMSyinIIJOo/modifying-your-tempdb-setup.html" title="Modifying your TempDB setup" /><author><name>Scott Herbert</name><uri>http://www.blogger.com/profile/16970114054517178549</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://1.bp.blogspot.com/_gE0uUId7hao/SLelgrmt6NI/AAAAAAAASQE/GfeX2HUoJRE/S220/PHOTO+002.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://sqlninja.blogspot.com/2008/12/modifying-your-tempdb-setup.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D08BRXgyeyp7ImA9WxRbFEk.&quot;"><id>tag:blogger.com,1999:blog-4405194173885586991.post-267378439056482303</id><published>2008-12-05T13:56:00.000+11:00</published><updated>2008-12-05T13:57:34.693+11:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-12-05T13:57:34.693+11:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Blogs" /><category scheme="http://www.blogger.com/atom/ns#" term="RSS" /><category scheme="http://www.blogger.com/atom/ns#" term="Google Reader" /><category scheme="http://www.blogger.com/atom/ns#" term="SQL" /><title>Ongoing Education for the Terminally Lazy/Busy</title><content type="html">Reading msdn articles and whitepapers and textbooks blows goats as far as I'm concerned. I'm interested for about 5 minutes, max.&lt;br /&gt;&lt;br /&gt;However I’ve been learning a lot about SQL (as well as plenty of other things) since I got myself set up in the RSS world, subscribing to blog and site feeds in Google Reader.&lt;br /&gt;&lt;br /&gt;Maybe I’m preaching to the choir on this blog entry about RSS, but amongst the DB people I know very few seem that savvy about efficient net usage.&lt;br /&gt;&lt;br /&gt;These sites below publish regularly, and when you subscribe to them in Google Reader, you can get a heap of relevant information into your unread “inbox” instead of regularly checking sites to see if anything’s updated.&lt;br /&gt;&lt;br /&gt;If you’ve got a gmail account, you’re crazy not to start using Reader, and it works great on mobile phones cutting down bandwidth hungry sites into nice little readable chunks.&lt;br /&gt;&lt;br /&gt;So, below, are my favourite sites/blogs which update regularly with useful SQL goodies. At least check them out, and if you’re not already in the RSS feed world, get yourself subscribed to these guys in Google Reader and you’ll be picking up more info than ever in a digestible fashion.&lt;br /&gt;&lt;br /&gt;Blogs: &lt;br /&gt;&lt;a href="http://www.brentozar.com/"&gt;http://www.brentozar.com/&lt;/a&gt;&lt;br /&gt;&lt;a href="http://statisticsio.com/"&gt;http://statisticsio.com/&lt;/a&gt;&lt;br /&gt;&lt;a href="http://itknowledgeexchange.techtarget.com/sql-server/"&gt;http://itknowledgeexchange.techtarget.com/sql-server/&lt;/a&gt;&lt;br /&gt;&lt;a href="http://blog.sqlauthority.com/"&gt;http://blog.sqlauthority.com/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;For sites, check out:&lt;br /&gt;&lt;a href="http://sqlserverpedia.com/wiki"&gt;http://sqlserverpedia.com/wiki&lt;/a&gt; and &lt;a href="http://www.sqlservercentral.com/"&gt;http://www.sqlservercentral.com/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4405194173885586991-267378439056482303?l=sqlninja.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/GP1g7W_K_EzwPOha8pVz4vd8EEM/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/GP1g7W_K_EzwPOha8pVz4vd8EEM/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/GP1g7W_K_EzwPOha8pVz4vd8EEM/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/GP1g7W_K_EzwPOha8pVz4vd8EEM/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/SqlNinja/~4/b8McqT9TUGQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://sqlninja.blogspot.com/feeds/267378439056482303/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4405194173885586991&amp;postID=267378439056482303" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4405194173885586991/posts/default/267378439056482303?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4405194173885586991/posts/default/267378439056482303?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SqlNinja/~3/b8McqT9TUGQ/ongoing-education-for-terminally.html" title="Ongoing Education for the Terminally Lazy/Busy" /><author><name>Scott Herbert</name><uri>http://www.blogger.com/profile/16970114054517178549</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://1.bp.blogspot.com/_gE0uUId7hao/SLelgrmt6NI/AAAAAAAASQE/GfeX2HUoJRE/S220/PHOTO+002.jpg" /></author><thr:total>2</thr:total><feedburner:origLink>http://sqlninja.blogspot.com/2008/12/ongoing-education-for-terminally.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkIGQXo7eCp7ImA9WxRREUo.&quot;"><id>tag:blogger.com,1999:blog-4405194173885586991.post-3891721737375675446</id><published>2008-09-23T22:07:00.000+10:00</published><updated>2008-09-23T22:55:20.400+10:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-09-23T22:55:20.400+10:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Hardware" /><category scheme="http://www.blogger.com/atom/ns#" term="Monitoring" /><title>SQL Ninja, Hardware Concerns</title><content type="html">It turns out that the title of my blog is also the name of a &lt;a href="http://sqlninja.sourceforge.net/"&gt;SQL injection attack generator program&lt;/a&gt;! I knew it was too good to be true, but did I bother Googling it first? No, that'd be like reading the manual.. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Ah well, moving on with life.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Today's problem: you've got to provide a report on the state of health of your server hardware, and you've got to provide it quickly. &lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Quickest way? The Real Time server stats in SQL Nexus will give you a look at the server performance as a current snapshot.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Time to hit PerfMon direct instead if you need to see more in-depth and chart it out over time, like say over the next hour. But what to monitor?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Measuring a database server's performance (as opposed to the performance of the database code and objects), is really down to looking at a few parts: the CPU, the disk system, &amp;amp; the RAM.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;For the CPU: enable Processor - % Processor Time and System - Processor Queue Length. The lower for both of these the better, hopefully less that 50% for the former and less than 2 per CPU for the latter.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;For the disk system: % Disk Time (aim for average less than 50%), Average disk queue (like the CPU, less than 2 per disk is good), average writes per second and average reads per second (both of these depend on the disk capacity, against which you'll need to compare and hopefully you'll be using less than 85%). &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;For RAM: Memory - pages per sec (lower the better, less than 20 preferably) and Available Bytes (at least 10% of the total RAM). With a grain of salt taken, SQL Server Buffer Mgr - Buffer Cache Hit Ratio should be at least 99%, and the Page Life Expectancy should be above 300 seconds. I mention the grain of salt, as coding quality can affect these counters, an apparent lack of RAM may really be a case for proper indexing or another DB optimisation problem in disguise. On the other hand, RAM may be cheap relative to development costs..&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Set these counters up, and save a log, polling every 15 seconds or less if there are performance problems (and be aware that running PerfMon will cause its own slight performance hit, as will saving the logs on the local disk if you have to). The log can be reloaded into PerfMon to see averages, maxes and mins and charting of the performance over the monitoring time. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;These counters aren't the be all and end all, but should be enough to spot if there's a problem in one or more of the main systems, and suggest how the server can be beefed up if necessary.&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4405194173885586991-3891721737375675446?l=sqlninja.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/pV8XVpdOU-UQTc_cth3ErqP9o_I/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/pV8XVpdOU-UQTc_cth3ErqP9o_I/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/pV8XVpdOU-UQTc_cth3ErqP9o_I/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/pV8XVpdOU-UQTc_cth3ErqP9o_I/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/SqlNinja/~4/TMUWIxi6N6A" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://sqlninja.blogspot.com/feeds/3891721737375675446/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4405194173885586991&amp;postID=3891721737375675446" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4405194173885586991/posts/default/3891721737375675446?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4405194173885586991/posts/default/3891721737375675446?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SqlNinja/~3/TMUWIxi6N6A/sql-ninja-hardware-concerns.html" title="SQL Ninja, Hardware Concerns" /><author><name>Scott Herbert</name><uri>http://www.blogger.com/profile/16970114054517178549</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://1.bp.blogspot.com/_gE0uUId7hao/SLelgrmt6NI/AAAAAAAASQE/GfeX2HUoJRE/S220/PHOTO+002.jpg" /></author><thr:total>2</thr:total><feedburner:origLink>http://sqlninja.blogspot.com/2008/09/sql-ninja-hardware-concerns.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUQCRHkzfSp7ImA9Wx9UEkw.&quot;"><id>tag:blogger.com,1999:blog-4405194173885586991.post-7213949943098417242</id><published>2008-09-11T12:39:00.001+10:00</published><updated>2011-02-09T12:02:45.785+11:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-02-09T12:02:45.785+11:00</app:edited><title>Hello World</title><content type="html">I just found the first cute little bit of SQL I ever wrote at work, on the 6th of October 2004;&lt;br /&gt;&lt;br /&gt;&lt;pre style="font-size: 12px;"&gt;&lt;font color="blue"&gt;USE &lt;/font&gt;&lt;font color="black"&gt;Scott_Test&lt;br&gt;&lt;/font&gt;&lt;font color="blue"&gt;DECLARE &lt;/font&gt;&lt;font color="#434343"&gt;@TestNum &lt;/font&gt;&lt;font color="blue"&gt;INT&lt;br&gt;&amp;nbsp;&amp;nbsp; SET &lt;/font&gt;&lt;font color="#434343"&gt;@TestNum &lt;/font&gt;&lt;font color="blue"&gt;= &lt;/font&gt;&lt;font color="black"&gt;1047&lt;br&gt;&lt;/font&gt;&lt;font color="blue"&gt;SELECT &lt;/font&gt;&lt;font color="black"&gt;SHID_ID&lt;/font&gt;&lt;font color="gray"&gt;, &lt;/font&gt;&lt;font color="black"&gt;SHID_Complete&lt;/font&gt;&lt;font color="gray"&gt;, &lt;/font&gt;&lt;font color="black"&gt;SHID_SMPNo&lt;/font&gt;&lt;font color="gray"&gt;, &lt;/font&gt;&lt;font color="black"&gt;SHID_Date&lt;/font&gt;&lt;font color="gray"&gt;, &lt;/font&gt;&lt;font color="black"&gt;SHID_TotalShares&lt;/font&gt;&lt;font color="gray"&gt;, &lt;/font&gt;&lt;font color="black"&gt;SHID_PortionAnalyzed&lt;/font&gt;&lt;font color="gray"&gt;,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="black"&gt;SHID_complete&lt;/font&gt;&lt;font color="gray"&gt;, &lt;/font&gt;&lt;font color="black"&gt;SHID_NoExtracts&lt;/font&gt;&lt;font color="gray"&gt;, &lt;/font&gt;&lt;font color="black"&gt;SHID_EnteredBy&lt;/font&gt;&lt;font color="gray"&gt;, &lt;/font&gt;&lt;font color="black"&gt;SHID_ReportSentDate&lt;/font&gt;&lt;font color="gray"&gt;,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="black"&gt;SHID_ReportSentBy&lt;/font&gt;&lt;font color="gray"&gt;, &lt;/font&gt;&lt;font color="black"&gt;SHID_Stage &lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="blue"&gt;FROM &lt;/font&gt;&lt;font color="black"&gt;Shid &lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="blue"&gt;WHERE &lt;/font&gt;&lt;font color="black"&gt;SHID_COID &lt;/font&gt;&lt;font color="blue"&gt;= &lt;/font&gt;&lt;font color="#434343"&gt;@TestNum &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="gray"&gt;AND &lt;/font&gt;&lt;font color="black"&gt;SHID_Stage &lt;/font&gt;&lt;font color="gray"&gt;&amp;lt;&amp;gt; &lt;/font&gt;&lt;font color="black"&gt;0&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="blue"&gt;ORDER BY &lt;/font&gt;&lt;font color="black"&gt;SHID_ID &lt;/font&gt;&lt;font color="blue"&gt;DESC&lt;br&gt;SELECT &lt;/font&gt;&lt;font color="black"&gt;SHID_ID&lt;/font&gt;&lt;font color="gray"&gt;, &lt;/font&gt;&lt;font color="black"&gt;SHID_Date&lt;/font&gt;&lt;font color="gray"&gt;, &lt;/font&gt;&lt;font color="black"&gt;SHID_InternalDeadLine&lt;/font&gt;&lt;font color="gray"&gt;, &lt;/font&gt;&lt;font color="black"&gt;SHID_CompletionDate&lt;/font&gt;&lt;font color="gray"&gt;, &lt;/font&gt;&lt;font color="black"&gt;SHID_Benchmark&lt;/font&gt;&lt;font color="gray"&gt;,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="black"&gt;SHID_NoExtracts&lt;/font&gt;&lt;font color="gray"&gt;, &lt;/font&gt;&lt;font color="black"&gt;Shid_Comment &lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="blue"&gt;FROM &lt;/font&gt;&lt;font color="black"&gt;Shid &lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="blue"&gt;WHERE &lt;/font&gt;&lt;font color="black"&gt;SHID_COID &lt;/font&gt;&lt;font color="blue"&gt;= &lt;/font&gt;&lt;font color="#434343"&gt;@TestNum &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="gray"&gt;AND &lt;/font&gt;&lt;font color="black"&gt;SHID_Stage &lt;/font&gt;&lt;font color="blue"&gt;= &lt;/font&gt;&lt;font color="black"&gt;0&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="blue"&gt;ORDER BY &lt;/font&gt;&lt;font color="black"&gt;SHID_ID &lt;/font&gt;&lt;font color="blue"&gt;ASC&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4405194173885586991-7213949943098417242?l=sqlninja.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/4ZmSgrjADPBRH8vs0R9MwK0dtsc/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/4ZmSgrjADPBRH8vs0R9MwK0dtsc/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/4ZmSgrjADPBRH8vs0R9MwK0dtsc/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/4ZmSgrjADPBRH8vs0R9MwK0dtsc/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/SqlNinja/~4/Ye8yzhoFK1I" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://sqlninja.blogspot.com/feeds/7213949943098417242/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4405194173885586991&amp;postID=7213949943098417242" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4405194173885586991/posts/default/7213949943098417242?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4405194173885586991/posts/default/7213949943098417242?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SqlNinja/~3/Ye8yzhoFK1I/hello-world.html" title="Hello World" /><author><name>Scott Herbert</name><uri>http://www.blogger.com/profile/16970114054517178549</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://1.bp.blogspot.com/_gE0uUId7hao/SLelgrmt6NI/AAAAAAAASQE/GfeX2HUoJRE/S220/PHOTO+002.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://sqlninja.blogspot.com/2008/09/hello-world.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkYHSHs-eSp7ImA9WxRSEE4.&quot;"><id>tag:blogger.com,1999:blog-4405194173885586991.post-5583041272351773257</id><published>2008-09-10T18:01:00.001+10:00</published><updated>2008-09-10T18:08:59.551+10:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-09-10T18:08:59.551+10:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Monitoring" /><category scheme="http://www.blogger.com/atom/ns#" term="Optimisation" /><category scheme="http://www.blogger.com/atom/ns#" term="Tuning" /><category scheme="http://www.blogger.com/atom/ns#" term="Performance" /><title>SQL Nexus Tool</title><content type="html">Amazingly, even in SQL 2008 there's no performance testing/tuning GUI. But of course, you just need to know where to look to find free tools. Welcome to &lt;a href="http://www.codeplex.com/"&gt;Codeplex&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.codeplex.com/sqlnexus"&gt;SQL Nexus&lt;/a&gt; takes advantage of the SQLDiag command line tool that ships with SQL Server, sucking in DMV and Trace data to present in a great drill-through Reporting Services based interface.&lt;br /&gt;&lt;br /&gt;Within an hour, I'd identified 2 hardware based issues with solid evidence to present to management.&lt;br /&gt;&lt;br /&gt;Tip: Read the &lt;a href="http://www.codeplex.com/sqlnexus/Wiki/View.aspx?title=Installation&amp;amp;referringTitle=GETTING_STARTED"&gt;installation steps&lt;/a&gt; carefully; it's not an all-in-one install. Also, when directed towards a download of &lt;span id="ctl00_ctl00_Content_TabContentPanel_Content_wikiSourceLabel"&gt;PerfStatsScript.zip, &lt;a href="http://blogs.msdn.com/psssql/archive/2007/02/21/sql-server-2005-performance-statistics-script.aspx"&gt;look here for the download&lt;/a&gt;.&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4405194173885586991-5583041272351773257?l=sqlninja.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/qmvWXeMcJNIHR7zY00-McQXX02A/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/qmvWXeMcJNIHR7zY00-McQXX02A/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/qmvWXeMcJNIHR7zY00-McQXX02A/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/qmvWXeMcJNIHR7zY00-McQXX02A/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/SqlNinja/~4/IilrHz6q0HU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://sqlninja.blogspot.com/feeds/5583041272351773257/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4405194173885586991&amp;postID=5583041272351773257" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4405194173885586991/posts/default/5583041272351773257?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4405194173885586991/posts/default/5583041272351773257?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SqlNinja/~3/IilrHz6q0HU/sql-nexus-tool.html" title="SQL Nexus Tool" /><author><name>Scott Herbert</name><uri>http://www.blogger.com/profile/16970114054517178549</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://1.bp.blogspot.com/_gE0uUId7hao/SLelgrmt6NI/AAAAAAAASQE/GfeX2HUoJRE/S220/PHOTO+002.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://sqlninja.blogspot.com/2008/09/sql-nexus-tool.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ak8HQHg4eCp7ImA9WxRTGE4.&quot;"><id>tag:blogger.com,1999:blog-4405194173885586991.post-6686201015772122291</id><published>2008-09-08T11:19:00.000+10:00</published><updated>2008-09-08T11:53:51.630+10:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-09-08T11:53:51.630+10:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Optimisation" /><category scheme="http://www.blogger.com/atom/ns#" term="Tuning" /><category scheme="http://www.blogger.com/atom/ns#" term="Performance" /><title>Measuring Performance of Stored Procedures</title><content type="html">&lt;span style="font-size:100%;"&gt;&lt;span style="font-family: arial;"&gt;Lately I've been faced with dual problems: how to spot which stored procs are performing the worst within an application which has been released, and secondly, how to help developers write code that runs quickly before deploying it to production.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: arial;"&gt;Of course you can run Traces, or have a look into System Views, but knowing the how is a lot different to knowing the whiches, whens and whys. For example, which trace events do you enable?&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: arial;"&gt;&lt;a href="http://sqlserveruniverse.com/content/PERF0600104282008MeasuringPerformanceOfStoredProcedures.aspx"&gt;This article&lt;/a&gt; by Preethiviraj Kulasingham  at &lt;a href="http://sqlserveruniverse.com"&gt;SQL Server Universe&lt;/a&gt; set off a few light bulbs for me.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4405194173885586991-6686201015772122291?l=sqlninja.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/ZGqwkumB-ea9BNTncxJVqd0xaa0/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ZGqwkumB-ea9BNTncxJVqd0xaa0/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/ZGqwkumB-ea9BNTncxJVqd0xaa0/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ZGqwkumB-ea9BNTncxJVqd0xaa0/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/SqlNinja/~4/JSf4jZDBB5k" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://sqlninja.blogspot.com/feeds/6686201015772122291/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4405194173885586991&amp;postID=6686201015772122291" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4405194173885586991/posts/default/6686201015772122291?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4405194173885586991/posts/default/6686201015772122291?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SqlNinja/~3/JSf4jZDBB5k/measuring-performance-of-stored.html" title="Measuring Performance of Stored Procedures" /><author><name>Scott Herbert</name><uri>http://www.blogger.com/profile/16970114054517178549</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://1.bp.blogspot.com/_gE0uUId7hao/SLelgrmt6NI/AAAAAAAASQE/GfeX2HUoJRE/S220/PHOTO+002.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://sqlninja.blogspot.com/2008/09/measuring-performance-of-stored.html</feedburner:origLink></entry></feed>

