<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.technet.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Kevin Holman's OpsMgr Blog : TSQL</title><link>http://blogs.technet.com/kevinholman/archive/tags/TSQL/default.aspx</link><description>Tags: TSQL</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>Writing reports against RAW Perf data in the Data Warehouse</title><link>http://blogs.technet.com/kevinholman/archive/2009/07/24/writing-reports-against-raw-perf-data-in-the-data-warehouse.aspx</link><pubDate>Fri, 24 Jul 2009 22:51:25 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3267911</guid><dc:creator>kevinhol</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.technet.com/kevinholman/comments/3267911.aspx</comments><wfw:commentRss>http://blogs.technet.com/kevinholman/commentrss.aspx?PostID=3267911</wfw:commentRss><wfw:comment>http://blogs.technet.com/kevinholman/rsscomments.aspx?PostID=3267911</wfw:comment><description>&lt;p&gt;By default – our generic reports access *aggregated* data in the warehouse… either daily or hourly.&amp;#160; These contain information like number of data points, avg, min, max, and std. deviation data.&amp;#160; However, sometimes users will want access to the RAW, individual data points.&lt;/p&gt;  &lt;p&gt;This is kept in the warehouse – and you can see it in the Perf.vPerfRaw view in the DB.&amp;#160; By default – we keep this data for 10 days, and in general – we do NOT recommend that you extend this to any longer retention.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;I will add these to my mega-query list… &lt;a href="http://blogs.technet.com/kevinholman/archive/2007/10/18/useful-operations-manager-2007-sql-queries.aspx"&gt;HERE&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Here are some core query examples/samples for RAW perf data – which you can use to write reports against this output:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Raw data – core query:&lt;/strong&gt; &lt;/p&gt;  &lt;p&gt;select top 10 *    &lt;br /&gt;from Perf.vPerfRaw pvpr    &lt;br /&gt;inner join vManagedEntity vme on pvpr.ManagedEntityRowId = vme.ManagedEntityRowId    &lt;br /&gt;inner join vPerformanceRuleInstance vpri on pvpr.PerformanceRuleInstanceRowId = vpri.PerformanceRuleInstanceRowId    &lt;br /&gt;inner join vPerformanceRule vpr on vpr.RuleRowId = vpri.RuleRowId &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;More selective of “interesting” output data:&lt;/strong&gt; &lt;/p&gt;  &lt;p&gt;select top 10 Path, FullName, ObjectName, CounterName, InstanceName, SampleValue, DateTime    &lt;br /&gt;from Perf.vPerfRaw pvpr    &lt;br /&gt;inner join vManagedEntity vme on pvpr.ManagedEntityRowId = vme.ManagedEntityRowId    &lt;br /&gt;inner join vPerformanceRuleInstance vpri on pvpr.PerformanceRuleInstanceRowId = vpri.PerformanceRuleInstanceRowId    &lt;br /&gt;inner join vPerformanceRule vpr on vpr.RuleRowId = vpri.RuleRowId &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Scoped to a ComputerName (FQDN)&lt;/strong&gt; &lt;/p&gt;  &lt;p&gt;select top 10 Path, FullName, ObjectName, CounterName, InstanceName, SampleValue, DateTime    &lt;br /&gt;from Perf.vPerfRaw pvpr    &lt;br /&gt;inner join vManagedEntity vme on pvpr.ManagedEntityRowId = vme.ManagedEntityRowId    &lt;br /&gt;inner join vPerformanceRuleInstance vpri on pvpr.PerformanceRuleInstanceRowId = vpri.PerformanceRuleInstanceRowId    &lt;br /&gt;inner join vPerformanceRule vpr on vpr.RuleRowId = vpri.RuleRowId    &lt;br /&gt;WHERE Path = 'OMDB.opsmgr.net' &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Scoped to a Counter:&lt;/strong&gt; &lt;/p&gt;  &lt;p&gt;select top 10 Path, FullName, ObjectName, CounterName, InstanceName, SampleValue, DateTime    &lt;br /&gt;from Perf.vPerfRaw pvpr    &lt;br /&gt;inner join vManagedEntity vme on pvpr.ManagedEntityRowId = vme.ManagedEntityRowId    &lt;br /&gt;inner join vPerformanceRuleInstance vpri on pvpr.PerformanceRuleInstanceRowId = vpri.PerformanceRuleInstanceRowId    &lt;br /&gt;inner join vPerformanceRule vpr on vpr.RuleRowId = vpri.RuleRowId    &lt;br /&gt;WHERE CounterName = 'Private Bytes' &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Scoped to a Computer and Counter:&lt;/strong&gt; &lt;/p&gt;  &lt;p&gt;select top 10 Path, FullName, ObjectName, CounterName, InstanceName, SampleValue, DateTime    &lt;br /&gt;from Perf.vPerfRaw pvpr    &lt;br /&gt;inner join vManagedEntity vme on pvpr.ManagedEntityRowId = vme.ManagedEntityRowId    &lt;br /&gt;inner join vPerformanceRuleInstance vpri on pvpr.PerformanceRuleInstanceRowId = vpri.PerformanceRuleInstanceRowId    &lt;br /&gt;inner join vPerformanceRule vpr on vpr.RuleRowId = vpri.RuleRowId    &lt;br /&gt;WHERE CounterName = 'Private Bytes'    &lt;br /&gt;AND Path = 'OMDB.OPSMGR.NET' &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Ordered By DateTime:&lt;/strong&gt; &lt;/p&gt;  &lt;p&gt;select top 10 Path, FullName, ObjectName, CounterName, InstanceName, SampleValue, DateTime    &lt;br /&gt;from Perf.vPerfRaw pvpr    &lt;br /&gt;inner join vManagedEntity vme on pvpr.ManagedEntityRowId = vme.ManagedEntityRowId    &lt;br /&gt;inner join vPerformanceRuleInstance vpri on pvpr.PerformanceRuleInstanceRowId = vpri.PerformanceRuleInstanceRowId    &lt;br /&gt;inner join vPerformanceRule vpr on vpr.RuleRowId = vpri.RuleRowId    &lt;br /&gt;WHERE CounterName = 'Private Bytes'    &lt;br /&gt;AND Path = 'OMDB.OPSMGR.NET'    &lt;br /&gt;Order By DateTime DESC &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Modified DateTime relative to Central Time zone:&lt;/strong&gt; &lt;/p&gt;  &lt;p&gt;select top 10 Path, FullName, ObjectName, CounterName, InstanceName, SampleValue, dateadd(hh,-5,DateTime) as 'DateTime (GMT-5)'    &lt;br /&gt;from Perf.vPerfRaw pvpr    &lt;br /&gt;inner join vManagedEntity vme on pvpr.ManagedEntityRowId = vme.ManagedEntityRowId    &lt;br /&gt;inner join vPerformanceRuleInstance vpri on pvpr.PerformanceRuleInstanceRowId = vpri.PerformanceRuleInstanceRowId    &lt;br /&gt;inner join vPerformanceRule vpr on vpr.RuleRowId = vpri.RuleRowId    &lt;br /&gt;WHERE CounterName = 'Private Bytes'    &lt;br /&gt;AND Path = 'OMDB.OPSMGR.NET'    &lt;br /&gt;Order By DateTime DESC &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;How to get all the possible optional data to modify these queries above, in a list:&lt;/strong&gt; &lt;/p&gt;  &lt;p&gt;Select Distinct Path   &lt;br /&gt;from Perf.vPerfRaw pvpr    &lt;br /&gt;inner join vManagedEntity vme on pvpr.ManagedEntityRowId = vme.ManagedEntityRowId    &lt;br /&gt;inner join vPerformanceRuleInstance vpri on pvpr.PerformanceRuleInstanceRowId = vpri.PerformanceRuleInstanceRowId    &lt;br /&gt;inner join vPerformanceRule vpr on vpr.RuleRowId = vpri.RuleRowId &lt;/p&gt;  &lt;p&gt;Select Distinct Fullname   &lt;br /&gt;from Perf.vPerfRaw pvpr    &lt;br /&gt;inner join vManagedEntity vme on pvpr.ManagedEntityRowId = vme.ManagedEntityRowId    &lt;br /&gt;inner join vPerformanceRuleInstance vpri on pvpr.PerformanceRuleInstanceRowId = vpri.PerformanceRuleInstanceRowId    &lt;br /&gt;inner join vPerformanceRule vpr on vpr.RuleRowId = vpri.RuleRowId &lt;/p&gt;  &lt;p&gt;Select Distinct ObjectName   &lt;br /&gt;from Perf.vPerfRaw pvpr    &lt;br /&gt;inner join vManagedEntity vme on pvpr.ManagedEntityRowId = vme.ManagedEntityRowId    &lt;br /&gt;inner join vPerformanceRuleInstance vpri on pvpr.PerformanceRuleInstanceRowId = vpri.PerformanceRuleInstanceRowId    &lt;br /&gt;inner join vPerformanceRule vpr on vpr.RuleRowId = vpri.RuleRowId &lt;/p&gt;  &lt;p&gt;Select Distinct CounterName   &lt;br /&gt;from Perf.vPerfRaw pvpr    &lt;br /&gt;inner join vManagedEntity vme on pvpr.ManagedEntityRowId = vme.ManagedEntityRowId    &lt;br /&gt;inner join vPerformanceRuleInstance vpri on pvpr.PerformanceRuleInstanceRowId = vpri.PerformanceRuleInstanceRowId    &lt;br /&gt;inner join vPerformanceRule vpr on vpr.RuleRowId = vpri.RuleRowId &lt;/p&gt;  &lt;p&gt;Select Distinct InstanceName   &lt;br /&gt;from Perf.vPerfRaw pvpr    &lt;br /&gt;inner join vManagedEntity vme on pvpr.ManagedEntityRowId = vme.ManagedEntityRowId    &lt;br /&gt;inner join vPerformanceRuleInstance vpri on pvpr.PerformanceRuleInstanceRowId = vpri.PerformanceRuleInstanceRowId    &lt;br /&gt;inner join vPerformanceRule vpr on vpr.RuleRowId = vpri.RuleRowId&lt;/p&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3267911" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/kevinholman/archive/tags/Reporting/default.aspx">Reporting</category><category domain="http://blogs.technet.com/kevinholman/archive/tags/TSQL/default.aspx">TSQL</category></item><item><title>Outages and Maintenance Report</title><link>http://blogs.technet.com/kevinholman/archive/2009/06/11/outages-and-maintenance-report.aspx</link><pubDate>Thu, 11 Jun 2009 07:48:00 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3253340</guid><dc:creator>kevinhol</dc:creator><slash:comments>10</slash:comments><comments>http://blogs.technet.com/kevinholman/comments/3253340.aspx</comments><wfw:commentRss>http://blogs.technet.com/kevinholman/commentrss.aspx?PostID=3253340</wfw:commentRss><wfw:comment>http://blogs.technet.com/kevinholman/rsscomments.aspx?PostID=3253340</wfw:comment><description>&lt;P&gt;This is a little report I put together on request.&lt;/P&gt;
&lt;P&gt;This report will query the data warehouse, and show all the outages, and maintenance, for objects in specific groups.&lt;/P&gt;
&lt;P&gt;The outages look at all the “Failed to Connect to Computer” alerts, and list the start and end time of the outage, based on the time the alert was created, to the time it was closed (assumes it is auto-closed by the agent coming back online)&lt;/P&gt;
&lt;P&gt;The maintenance looks at the times that the Health Service Watcher objects are placed into maintenance mode.&lt;/P&gt;
&lt;P&gt;There is a start and end time parameters for the report – and the report defaults to the last 30 days.&lt;/P&gt;
&lt;P&gt;There is a group choice parameter – you should pick a group that contains Health Service Watcher objects.&lt;/P&gt;
&lt;P&gt;It looks like this:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/OutagesandMaintenanceReport_14EC7/image_2.png" mce_href="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/OutagesandMaintenanceReport_14EC7/image_2.png"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=image border=0 alt=image src="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/OutagesandMaintenanceReport_14EC7/image_thumb.png" width=644 height=257 mce_src="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/OutagesandMaintenanceReport_14EC7/image_thumb.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;It is based on this query, which you can tune to meet your needs:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;declare @startdate datetime &lt;BR&gt;declare @enddate datetime &lt;BR&gt;declare @computergroups varchar(50) &lt;BR&gt;SET @startdate = '2009-06-01 00:00:00.000' &lt;BR&gt;SET @enddate = getutcdate() &lt;BR&gt;set @computergroups = 'Agent Managed Computer Group' &lt;/P&gt;
&lt;P&gt;select &lt;BR&gt;apv.ParameterValue as SystemName, &lt;BR&gt;(DATEADD(hh,DATEDIFF(hh,getutcdate(),getdate()),av.RaisedDateTime)) as DownDateTime, &lt;BR&gt;(DATEADD(hh,DATEDIFF(hh,getutcdate(),getdate()),arsv.StateSetDateTime)) as RestoredDateTime, &lt;BR&gt;adv.CustomField2 as OutageType, &lt;BR&gt;adv.CustomField3 as RootCause, &lt;BR&gt;adv.CustomField4 as Reason, &lt;BR&gt;adv.DBLastModifiedByUserId as UserID &lt;BR&gt;FROM Alert.vAlert av &lt;BR&gt;JOIN Alert.vAlertDetail adv on av.AlertGuid = adv.AlertGuid &lt;BR&gt;JOIN Alert.vAlertResolutionState arsv on av.AlertGuid = arsv.AlertGuid &lt;BR&gt;JOIN Alert.vAlertParameter apv on av.AlertGuid = apv.AlertGuid &lt;BR&gt;WHERE AlertName = 'Failed to Connect to Computer' &lt;BR&gt;AND arsv.ResolutionState = '255' &lt;BR&gt;--AND adv.CustomField2 IS NOT NULL &lt;BR&gt;AND (DATEADD(hh,DATEDIFF(hh,getutcdate(),getdate()),av.RaisedDateTime)) between @startdate and @enddate &lt;BR&gt;and apv.ParameterValue IN ( &lt;BR&gt;SELECT vManagedEntity.DisplayName &lt;BR&gt;FROM&amp;nbsp; vManagedEntity &lt;BR&gt;INNER JOIN vRelationship ON vManagedEntity.ManagedEntityRowId = vRelationship.TargetManagedEntityRowId &lt;BR&gt;INNER JOIN vManagedEntity AS ManagedEntity_1 ON vRelationship.SourceManagedEntityRowId = ManagedEntity_1.ManagedEntityRowId &lt;BR&gt;WHERE (ManagedEntity_1.DisplayName = @computergroups) &lt;BR&gt;) &lt;/P&gt;
&lt;P&gt;UNION ALL &lt;/P&gt;
&lt;P&gt;select &lt;BR&gt;vme.displayname, &lt;BR&gt;(DATEADD(hh,DATEDIFF(hh,getutcdate(),getdate()),vmm.StartDateTime)) as DownDateTime, &lt;BR&gt;(DATEADD(hh,DATEDIFF(hh,getutcdate(),getdate()),vmm.EndDateTime)) as RestoredDateTime, &lt;BR&gt;'OutageType' = &lt;BR&gt;CASE &lt;BR&gt;&amp;nbsp; vmm.PlannedMaintenanceInd &lt;BR&gt;&amp;nbsp; WHEN '1' THEN 'Scheduled' &lt;BR&gt;&amp;nbsp; WHEN '0' THEN 'Unscheduled' &lt;BR&gt;END, &lt;BR&gt;'RootCause' = &lt;BR&gt;CASE &lt;BR&gt;&amp;nbsp; vmmh.ReasonCode &lt;BR&gt;&amp;nbsp; WHEN '0' THEN 'Other (Planned)' &lt;BR&gt;&amp;nbsp; WHEN '1' THEN 'Other (Unplanned)' &lt;BR&gt;&amp;nbsp; WHEN '2' THEN 'Hardware: Maintenance (Planned)' &lt;BR&gt;&amp;nbsp; WHEN '3' THEN 'Hardware: Maintenance (Unplanned)' &lt;BR&gt;&amp;nbsp; WHEN '4' THEN 'Hardware: Installation (Planned)' &lt;BR&gt;&amp;nbsp; WHEN '5' THEN 'Hardware: Installation (Unplanned)' &lt;BR&gt;&amp;nbsp; WHEN '6' THEN 'Operating System: Reconfiguration (Planned)' &lt;BR&gt;&amp;nbsp; WHEN '7' THEN 'Operating System: Reconfiguration (Unplanned)' &lt;BR&gt;&amp;nbsp; WHEN '8' THEN 'Application: Maintenance (Planned)' &lt;BR&gt;&amp;nbsp; WHEN '9' THEN 'Application: Maintenance (Unplanned)' &lt;BR&gt;&amp;nbsp; WHEN '10' THEN 'Application: Installation (Planned)' &lt;BR&gt;&amp;nbsp; WHEN '11' THEN 'Application: Unresponsive' &lt;BR&gt;&amp;nbsp; WHEN '12' THEN 'Application:&amp;nbsp; Unstable' &lt;BR&gt;&amp;nbsp; WHEN '13' THEN 'Security Issue' &lt;BR&gt;&amp;nbsp; WHEN '14' THEN 'Loss of network connectivity (Unplanned)' &lt;BR&gt;END, &lt;BR&gt;vmmh.Comment as Reason, &lt;BR&gt;vmmh.userid as UserID &lt;BR&gt;from vMaintenanceMode vmm &lt;BR&gt;join vManagedEntity vme on vmm.managedentityrowid = vme.managedentityrowid &lt;BR&gt;join vMaintenanceModeHistory vmmh on vmm.maintenancemoderowid = vmmh.maintenancemoderowid &lt;BR&gt;where vme.FullName LIKE '%HealthServiceWatcher%' &lt;BR&gt;and (DATEADD(hh,DATEDIFF(hh,getutcdate(),getdate()),vmm.StartDateTime)) between @startdate and @enddate &lt;BR&gt;and vme.displayname IN ( &lt;BR&gt;SELECT vManagedEntity.DisplayName &lt;BR&gt;FROM&amp;nbsp; vManagedEntity &lt;BR&gt;INNER JOIN vRelationship ON vManagedEntity.ManagedEntityRowId = vRelationship.TargetManagedEntityRowId &lt;BR&gt;INNER JOIN vManagedEntity AS ManagedEntity_1 ON vRelationship.SourceManagedEntityRowId = ManagedEntity_1.ManagedEntityRowId &lt;BR&gt;WHERE (ManagedEntity_1.DisplayName = @computergroups) &lt;BR&gt;) &lt;BR&gt;ORDER BY DownDateTime&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;The report is attached below.&lt;/P&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3253340" width="1" height="1"&gt;</description><enclosure url="http://blogs.technet.com/kevinholman/attachment/3253340.ashx" length="3131" type="application/x-zip-compressed" /><category domain="http://blogs.technet.com/kevinholman/archive/tags/query/default.aspx">query</category><category domain="http://blogs.technet.com/kevinholman/archive/tags/Reporting/default.aspx">Reporting</category><category domain="http://blogs.technet.com/kevinholman/archive/tags/TSQL/default.aspx">TSQL</category></item><item><title>How to find a specific rule/monitor/discovery in the console – when all you have a more cryptic ID in an alert</title><link>http://blogs.technet.com/kevinholman/archive/2009/04/17/how-to-find-a-specific-rule-monitor-discovery-in-the-console-when-all-you-have-a-more-cryptic-id-in-an-alert.aspx</link><pubDate>Fri, 17 Apr 2009 21:58:53 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3227701</guid><dc:creator>kevinhol</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.technet.com/kevinholman/comments/3227701.aspx</comments><wfw:commentRss>http://blogs.technet.com/kevinholman/commentrss.aspx?PostID=3227701</wfw:commentRss><wfw:comment>http://blogs.technet.com/kevinholman/rsscomments.aspx?PostID=3227701</wfw:comment><description>&lt;p&gt;Sometimes – we will get a Script Error alert, or WMI failure Alert, or some generic alert, telling us that some OTHER workflow had a problem.&amp;#160; These alerts are NOT the root cause… the root cause is the workflow that gets referenced in the alert.&amp;#160; &lt;/p&gt;  &lt;p&gt;The problem is – the alert often gives us a Rule/Monitor/Discovery name, that is not the same as the Common Display Name of the workflow in the console.&lt;/p&gt;  &lt;p&gt;For instance – in R2 – we have a new rule that will temporarily disable a workflow that is flooding alerts.&amp;#160; Here is an example of that alert:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;Alert generation was temporarily suspended due to too many alerts        &lt;br /&gt;A rule has generated 50 alerts in the last 60 seconds.&amp;#160; &lt;br /&gt;Usually, when a rule generates this many alerts, it is because the rule definition is misconfigured.&amp;#160; &lt;br /&gt;Please examine the rule for errors.         &lt;br /&gt;In order to avoid excessive load, this rule will be temporarily suspended until 2009-04-17T10:54:33.2764287+01:00.         &lt;br /&gt;Rule: &lt;font color="#ff0000"&gt;Microsoft.SystemCenter.GenericNTPerfMapperModule.FailedExecution.Alert&lt;/font&gt;         &lt;br /&gt;Instance: rms.opsmgr.net         &lt;br /&gt;Instance ID: {1219134EC-909D-VA37-1E06-679DD505D87C}         &lt;br /&gt;Management Group: OPS&lt;/strong&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Now – to tune, or investigate – we need to understand the problem workflow.&amp;#160; In this case… the problem workflow is a rule, “Microsoft.SystemCenter.GenericNTPerfMapperModule.FailedExecution.Alert”&lt;/p&gt;  &lt;p&gt;To troubleshoot – we need to find this rule in the console.&amp;#160; However – the console lets us search on the Display Name, not this more cryptic ID.&amp;#160; So here is a query that will help us map that:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;&lt;font color="#0000ff" size="4"&gt;Rules:&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;SQL:&lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;select DisplayName from ruleview      &lt;br /&gt;where name = 'Microsoft.SystemCenter.GenericNTPerfMapperModule.FailedExecution.Alert' &lt;/p&gt;    &lt;p&gt;&lt;strong&gt;Command Shell:&lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;(Get-Rule | Where {$_.name -match 'Microsoft.SystemCenter.GenericNTPerfMapperModule.FailedExecution.Alert'}).DisplayName&lt;/p&gt;    &lt;p&gt;&amp;#160;&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;&lt;font color="#0000ff" size="4"&gt;Discoveries:&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;SQL:&lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;select DisplayName from DiscoveryView      &lt;br /&gt;where name = 'Microsoft.Office.Sharepoint.Server.2007.MOSS.Server.Discovery'&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;Command Shell:&lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;(Get-Discovery| Where {$_.name -match 'Microsoft.Office.Sharepoint.Server.2007.MOSS.Server.Discovery'}).DisplayName&lt;/p&gt;    &lt;p&gt;&amp;#160;&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;&lt;font color="#0000ff" size="4"&gt;Monitors:&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;SQL:&lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;select DisplayName from monitorview      &lt;br /&gt;where Name = 'MAPI_logon_failure.Monitor'&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;Command Shell:&lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;(Get-Monitor| Where {$_.name -match 'MAPI_logon_failure.Monitor'}).DisplayName &lt;/p&gt;    &lt;p&gt;&amp;#160;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;This will output the common display name of the rule/monitor/discovery:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;Generic Performance Mapper Module Execution Failure&lt;/strong&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;With this – finding the rule is pretty easy.&amp;#160; One of the fastest ways – is to use search:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Tools &amp;gt; Search&lt;/strong&gt;, then paste in the workflow common display name we got from the query:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/Howtofindaspecificrulemonitordiscoveryin_C49C/image_2.png"&gt;&lt;img title="image" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="376" alt="image" src="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/Howtofindaspecificrulemonitordiscoveryin_C49C/image_thumb.png" width="542" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Then – click “&lt;strong&gt;&lt;em&gt;View Knowledge&lt;/em&gt;&lt;/strong&gt;”&amp;#160; This will bring up the rule properties.&amp;#160; From there – you can view the data source, and get a better idea of what the rule/monitor/discovery does, and how to troubleshoot it.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/Howtofindaspecificrulemonitordiscoveryin_C49C/image_4.png"&gt;&lt;img title="image" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="419" alt="image" src="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/Howtofindaspecificrulemonitordiscoveryin_C49C/image_thumb_1.png" width="652" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3227701" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/kevinholman/archive/tags/management+pack/default.aspx">management pack</category><category domain="http://blogs.technet.com/kevinholman/archive/tags/TSQL/default.aspx">TSQL</category></item><item><title>MOM 2005 SP1 - upgrading SQL server from 2000 to 2005</title><link>http://blogs.technet.com/kevinholman/archive/2008/02/01/mom-2005-sp1-upgrading-sql-server-from-2000-to-2005.aspx</link><pubDate>Sat, 02 Feb 2008 01:44:02 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:2811087</guid><dc:creator>kevinhol</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.technet.com/kevinholman/comments/2811087.aspx</comments><wfw:commentRss>http://blogs.technet.com/kevinholman/commentrss.aspx?PostID=2811087</wfw:commentRss><wfw:comment>http://blogs.technet.com/kevinholman/rsscomments.aspx?PostID=2811087</wfw:comment><description>&lt;h4&gt;&amp;#160;&lt;/h4&gt;  &lt;h4&gt;&lt;font color="#0080c0"&gt;Upgrading from SQL 2000 to SQL 2005 to support MOM 2005 SP1:&lt;/font&gt;&lt;/h4&gt;  &lt;p&gt;&lt;font size="2"&gt;1. Backup your MOM SQL server databases (OnePoint and Systemcenterreporting). Backup your Microsoft SQL Server Reporting Services databases.     &lt;br /&gt;2. Backup the SRS encryption key.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;3. Stop the MOM Service on all management servers.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;4. Upgrade the database servers and reporting servers to SQL 2005.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;5. Upgrade the servers with SQL SP1 or greater.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;6. Finally you need to apply the following hotfixes to complete the upgrade process:&lt;/font&gt;    &lt;br /&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="cam" size="2"&gt;File Name: MOM2005-SP1-KB913812-X86-ENU.MSI     &lt;br /&gt;Knowledge Base (KB) Article: KB913812      &lt;br /&gt;Overview: Unable to discover computers in AD after upgrading to .NET Framework 2.0&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="cam" size="2"&gt;     &lt;br /&gt;&lt;/font&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=F53F1EF3-A7A0-4C45-AEFC-7C1EC5DCCAA6&amp;amp;displaylang=en"&gt;&lt;font face="cam" size="2"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyId=F53F1EF3-A7A0-4C45-AEFC-7C1EC5DCCAA6&amp;amp;displaylang=en&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="cam" size="2"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="cam" size="2"&gt;This updates the following files. If your files are newer &amp;#8211; no need to apply:&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;table class="MsoNormalTable" style="mso-cellspacing: .7pt; mso-yfti-tbllook: 1184" cellspacing="1" cellpadding="0" border="0"&gt;&lt;tbody&gt;     &lt;tr style="mso-yfti-irow: 0; mso-yfti-firstrow: yes"&gt;       &lt;td style="padding-right: 3.75pt; padding-left: 3.75pt; background: #cecfce; padding-bottom: 3.75pt; padding-top: 3.75pt"&gt;         &lt;p class="MsoNormal" style="margin-top: 7.5pt; line-height: normal; text-align: center; mso-margin-bottom-alt: auto" align="center"&gt;&lt;b&gt;&lt;span style="font-size: 8.5pt; font-family: " verdana","sans-serif"; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'"&gt;File name                &lt;p&gt;&lt;/p&gt;             &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="padding-right: 3.75pt; padding-left: 3.75pt; background: #cecfce; padding-bottom: 3.75pt; padding-top: 3.75pt"&gt;         &lt;p class="MsoNormal" style="margin-top: 7.5pt; line-height: normal; text-align: center; mso-margin-bottom-alt: auto" align="center"&gt;&lt;b&gt;&lt;span style="font-size: 8.5pt; font-family: " verdana","sans-serif"; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'"&gt;File version                &lt;p&gt;&lt;/p&gt;             &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="padding-right: 3.75pt; padding-left: 3.75pt; background: #cecfce; padding-bottom: 3.75pt; padding-top: 3.75pt"&gt;         &lt;p class="MsoNormal" style="margin-top: 7.5pt; line-height: normal; text-align: center; mso-margin-bottom-alt: auto" align="center"&gt;&lt;b&gt;&lt;span style="font-size: 8.5pt; font-family: " verdana","sans-serif"; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'"&gt;File size                &lt;p&gt;&lt;/p&gt;             &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="padding-right: 3.75pt; padding-left: 3.75pt; background: #cecfce; padding-bottom: 3.75pt; padding-top: 3.75pt"&gt;         &lt;p class="MsoNormal" style="margin-top: 7.5pt; line-height: normal; text-align: center; mso-margin-bottom-alt: auto" align="center"&gt;&lt;b&gt;&lt;span style="font-size: 8.5pt; font-family: " verdana","sans-serif"; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'"&gt;Date                &lt;p&gt;&lt;/p&gt;             &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="padding-right: 3.75pt; padding-left: 3.75pt; background: #cecfce; padding-bottom: 3.75pt; padding-top: 3.75pt"&gt;         &lt;p class="MsoNormal" style="margin-top: 7.5pt; line-height: normal; text-align: center; mso-margin-bottom-alt: auto" align="center"&gt;&lt;b&gt;&lt;span style="font-size: 8.5pt; font-family: " verdana","sans-serif"; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'"&gt;Time                &lt;p&gt;&lt;/p&gt;             &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr style="mso-yfti-irow: 1"&gt;       &lt;td style="padding-right: 3.75pt; padding-left: 3.75pt; background: #f7f7ff; padding-bottom: 3.75pt; padding-top: 3.75pt" valign="top"&gt;         &lt;p class="MsoNormal" style="margin-top: 7.5pt; line-height: normal; mso-margin-bottom-alt: auto"&gt;&lt;span style="font-size: 8.5pt; font-family: " verdana","sans-serif"; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'"&gt;Dasclient.dll              &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="padding-right: 3.75pt; padding-left: 3.75pt; background: #f7f7ff; padding-bottom: 3.75pt; padding-top: 3.75pt" valign="top"&gt;         &lt;p class="MsoNormal" style="margin-top: 7.5pt; line-height: normal; mso-margin-bottom-alt: auto"&gt;&lt;span style="font-size: 8.5pt; font-family: " verdana","sans-serif"; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'"&gt;5.0.2911.31              &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="padding-right: 3.75pt; padding-left: 3.75pt; background: #f7f7ff; padding-bottom: 3.75pt; padding-top: 3.75pt" valign="top"&gt;         &lt;p class="MsoNormal" style="margin-top: 7.5pt; line-height: normal; mso-margin-bottom-alt: auto"&gt;&lt;span style="font-size: 8.5pt; font-family: " verdana","sans-serif"; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'"&gt;101,104              &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="padding-right: 3.75pt; padding-left: 3.75pt; background: #f7f7ff; padding-bottom: 3.75pt; padding-top: 3.75pt" valign="top"&gt;         &lt;p class="MsoNormal" style="margin-top: 7.5pt; line-height: normal; mso-margin-bottom-alt: auto"&gt;&lt;span style="font-size: 8.5pt; font-family: " verdana","sans-serif"; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'"&gt;08-Feb-2006              &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="padding-right: 3.75pt; padding-left: 3.75pt; background: #f7f7ff; padding-bottom: 3.75pt; padding-top: 3.75pt" valign="top"&gt;         &lt;p class="MsoNormal" style="margin-top: 7.5pt; line-height: normal; mso-margin-bottom-alt: auto"&gt;&lt;span style="font-size: 8.5pt; font-family: " verdana","sans-serif"; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'"&gt;19:32              &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr style="mso-yfti-irow: 2"&gt;       &lt;td style="padding-right: 3.75pt; padding-left: 3.75pt; background: #f7f7ff; padding-bottom: 3.75pt; padding-top: 3.75pt" valign="top"&gt;         &lt;p class="MsoNormal" style="margin-top: 7.5pt; line-height: normal; mso-margin-bottom-alt: auto"&gt;&lt;span style="font-size: 8.5pt; font-family: " verdana","sans-serif"; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'"&gt;Dasclient.tlb              &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="padding-right: 3.75pt; padding-left: 3.75pt; background: #f7f7ff; padding-bottom: 3.75pt; padding-top: 3.75pt" valign="top"&gt;         &lt;p class="MsoNormal" style="margin-top: 7.5pt; line-height: normal; mso-margin-bottom-alt: auto"&gt;&lt;span style="font-size: 8.5pt; font-family: " verdana","sans-serif"; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'"&gt;Not applicable              &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="padding-right: 3.75pt; padding-left: 3.75pt; background: #f7f7ff; padding-bottom: 3.75pt; padding-top: 3.75pt" valign="top"&gt;         &lt;p class="MsoNormal" style="margin-top: 7.5pt; line-height: normal; mso-margin-bottom-alt: auto"&gt;&lt;span style="font-size: 8.5pt; font-family: " verdana","sans-serif"; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'"&gt;5,720              &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="padding-right: 3.75pt; padding-left: 3.75pt; background: #f7f7ff; padding-bottom: 3.75pt; padding-top: 3.75pt" valign="top"&gt;         &lt;p class="MsoNormal" style="margin-top: 7.5pt; line-height: normal; mso-margin-bottom-alt: auto"&gt;&lt;span style="font-size: 8.5pt; font-family: " verdana","sans-serif"; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'"&gt;08-Feb-2006              &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="padding-right: 3.75pt; padding-left: 3.75pt; background: #f7f7ff; padding-bottom: 3.75pt; padding-top: 3.75pt" valign="top"&gt;         &lt;p class="MsoNormal" style="margin-top: 7.5pt; line-height: normal; mso-margin-bottom-alt: auto"&gt;&lt;span style="font-size: 8.5pt; font-family: " verdana","sans-serif"; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'"&gt;19:32              &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr style="mso-yfti-irow: 3"&gt;       &lt;td style="padding-right: 3.75pt; padding-left: 3.75pt; background: #f7f7ff; padding-bottom: 3.75pt; padding-top: 3.75pt" valign="top"&gt;         &lt;p class="MsoNormal" style="margin-top: 7.5pt; line-height: normal; mso-margin-bottom-alt: auto"&gt;&lt;span style="font-size: 8.5pt; font-family: " verdana","sans-serif"; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'"&gt;Discoveryengine.dll              &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="padding-right: 3.75pt; padding-left: 3.75pt; background: #f7f7ff; padding-bottom: 3.75pt; padding-top: 3.75pt" valign="top"&gt;         &lt;p class="MsoNormal" style="margin-top: 7.5pt; line-height: normal; mso-margin-bottom-alt: auto"&gt;&lt;span style="font-size: 8.5pt; font-family: " verdana","sans-serif"; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'"&gt;5.0.2911.31              &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="padding-right: 3.75pt; padding-left: 3.75pt; background: #f7f7ff; padding-bottom: 3.75pt; padding-top: 3.75pt" valign="top"&gt;         &lt;p class="MsoNormal" style="margin-top: 7.5pt; line-height: normal; mso-margin-bottom-alt: auto"&gt;&lt;span style="font-size: 8.5pt; font-family: " verdana","sans-serif"; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'"&gt;109,296              &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="padding-right: 3.75pt; padding-left: 3.75pt; background: #f7f7ff; padding-bottom: 3.75pt; padding-top: 3.75pt" valign="top"&gt;         &lt;p class="MsoNormal" style="margin-top: 7.5pt; line-height: normal; mso-margin-bottom-alt: auto"&gt;&lt;span style="font-size: 8.5pt; font-family: " verdana","sans-serif"; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'"&gt;08-Feb-2006              &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="padding-right: 3.75pt; padding-left: 3.75pt; background: #f7f7ff; padding-bottom: 3.75pt; padding-top: 3.75pt" valign="top"&gt;         &lt;p class="MsoNormal" style="margin-top: 7.5pt; line-height: normal; mso-margin-bottom-alt: auto"&gt;&lt;span style="font-size: 8.5pt; font-family: " verdana","sans-serif"; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'"&gt;19:32              &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr style="mso-yfti-irow: 4"&gt;       &lt;td style="padding-right: 3.75pt; padding-left: 3.75pt; background: #f7f7ff; padding-bottom: 3.75pt; padding-top: 3.75pt" valign="top"&gt;         &lt;p class="MsoNormal" style="margin-top: 7.5pt; line-height: normal; mso-margin-bottom-alt: auto"&gt;&lt;span style="font-size: 8.5pt; font-family: " verdana","sans-serif"; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'"&gt;Nativewrappers.dll              &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="padding-right: 3.75pt; padding-left: 3.75pt; background: #f7f7ff; padding-bottom: 3.75pt; padding-top: 3.75pt" valign="top"&gt;         &lt;p class="MsoNormal" style="margin-top: 7.5pt; line-height: normal; mso-margin-bottom-alt: auto"&gt;&lt;span style="font-size: 8.5pt; font-family: " verdana","sans-serif"; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'"&gt;5.0.2911.31              &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="padding-right: 3.75pt; padding-left: 3.75pt; background: #f7f7ff; padding-bottom: 3.75pt; padding-top: 3.75pt" valign="top"&gt;         &lt;p class="MsoNormal" style="margin-top: 7.5pt; line-height: normal; mso-margin-bottom-alt: auto"&gt;&lt;span style="font-size: 8.5pt; font-family: " verdana","sans-serif"; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'"&gt;33,008              &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="padding-right: 3.75pt; padding-left: 3.75pt; background: #f7f7ff; padding-bottom: 3.75pt; padding-top: 3.75pt" valign="top"&gt;         &lt;p class="MsoNormal" style="margin-top: 7.5pt; line-height: normal; mso-margin-bottom-alt: auto"&gt;&lt;span style="font-size: 8.5pt; font-family: " verdana","sans-serif"; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'"&gt;08-Feb-2006              &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="padding-right: 3.75pt; padding-left: 3.75pt; background: #f7f7ff; padding-bottom: 3.75pt; padding-top: 3.75pt" valign="top"&gt;         &lt;p class="MsoNormal" style="margin-top: 7.5pt; line-height: normal; mso-margin-bottom-alt: auto"&gt;&lt;span style="font-size: 8.5pt; font-family: " verdana","sans-serif"; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'"&gt;19:32              &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr style="mso-yfti-irow: 5"&gt;       &lt;td style="padding-right: 3.75pt; padding-left: 3.75pt; background: #f7f7ff; padding-bottom: 3.75pt; padding-top: 3.75pt" valign="top"&gt;         &lt;p class="MsoNormal" style="margin-top: 7.5pt; line-height: normal; mso-margin-bottom-alt: auto"&gt;&lt;span style="font-size: 8.5pt; font-family: " verdana","sans-serif"; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'"&gt;Updatemom.exe              &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="padding-right: 3.75pt; padding-left: 3.75pt; background: #f7f7ff; padding-bottom: 3.75pt; padding-top: 3.75pt" valign="top"&gt;         &lt;p class="MsoNormal" style="margin-top: 7.5pt; line-height: normal; mso-margin-bottom-alt: auto"&gt;&lt;span style="font-size: 8.5pt; font-family: " verdana","sans-serif"; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'"&gt;Not applicable              &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="padding-right: 3.75pt; padding-left: 3.75pt; background: #f7f7ff; padding-bottom: 3.75pt; padding-top: 3.75pt" valign="top"&gt;         &lt;p class="MsoNormal" style="margin-top: 7.5pt; line-height: normal; mso-margin-bottom-alt: auto"&gt;&lt;span style="font-size: 8.5pt; font-family: " verdana","sans-serif"; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'"&gt;118,784              &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="padding-right: 3.75pt; padding-left: 3.75pt; background: #f7f7ff; padding-bottom: 3.75pt; padding-top: 3.75pt" valign="top"&gt;         &lt;p class="MsoNormal" style="margin-top: 7.5pt; line-height: normal; mso-margin-bottom-alt: auto"&gt;&lt;span style="font-size: 8.5pt; font-family: " verdana","sans-serif"; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'"&gt;18-Oct-2004              &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="padding-right: 3.75pt; padding-left: 3.75pt; background: #f7f7ff; padding-bottom: 3.75pt; padding-top: 3.75pt" valign="top"&gt;         &lt;p class="MsoNormal" style="margin-top: 7.5pt; line-height: normal; mso-margin-bottom-alt: auto"&gt;&lt;span style="font-size: 8.5pt; font-family: " verdana","sans-serif"; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'"&gt;13:52              &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr style="mso-yfti-irow: 6; mso-yfti-lastrow: yes"&gt;       &lt;td style="padding-right: 3.75pt; padding-left: 3.75pt; background: #f7f7ff; padding-bottom: 3.75pt; padding-top: 3.75pt" valign="top"&gt;         &lt;p class="MsoNormal" style="margin-top: 7.5pt; line-height: normal; mso-margin-bottom-alt: auto"&gt;&lt;span style="font-size: 8.5pt; font-family: " verdana","sans-serif"; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'"&gt;Utils.dll              &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="padding-right: 3.75pt; padding-left: 3.75pt; background: #f7f7ff; padding-bottom: 3.75pt; padding-top: 3.75pt" valign="top"&gt;         &lt;p class="MsoNormal" style="margin-top: 7.5pt; line-height: normal; mso-margin-bottom-alt: auto"&gt;&lt;span style="font-size: 8.5pt; font-family: " verdana","sans-serif"; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'"&gt;5.0.2911.31              &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="padding-right: 3.75pt; padding-left: 3.75pt; background: #f7f7ff; padding-bottom: 3.75pt; padding-top: 3.75pt" valign="top"&gt;         &lt;p class="MsoNormal" style="margin-top: 7.5pt; line-height: normal; mso-margin-bottom-alt: auto"&gt;&lt;span style="font-size: 8.5pt; font-family: " verdana","sans-serif"; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'"&gt;150,256              &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="padding-right: 3.75pt; padding-left: 3.75pt; background: #f7f7ff; padding-bottom: 3.75pt; padding-top: 3.75pt" valign="top"&gt;         &lt;p class="MsoNormal" style="margin-top: 7.5pt; line-height: normal; mso-margin-bottom-alt: auto"&gt;&lt;span style="font-size: 8.5pt; font-family: " verdana","sans-serif"; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'"&gt;08-Feb-2006              &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="padding-right: 3.75pt; padding-left: 3.75pt; background: #f7f7ff; padding-bottom: 3.75pt; padding-top: 3.75pt" valign="top"&gt;         &lt;p class="MsoNormal" style="margin-top: 7.5pt; line-height: normal; mso-margin-bottom-alt: auto"&gt;&lt;span style="font-size: 8.5pt; font-family: " verdana","sans-serif"; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'"&gt;19:32              &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;font face="cam" size="2"&gt;File Name: MOM2005-SP1-KB915785-X86-ENU.msi      &lt;br /&gt;Knowledge Base (KB) Article: KB915785      &lt;br /&gt;Overview: MOM 2005 SP1 Hotfix for malformed XML error message with SQL 2005 Reporting Server&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="cam" size="2"&gt;     &lt;br /&gt;&lt;/font&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=E5FC1871-1286-461D-BFCD-D32CF426E8C3&amp;amp;displaylang=en"&gt;&lt;font face="cam" size="2"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyId=E5FC1871-1286-461D-BFCD-D32CF426E8C3&amp;amp;displaylang=en&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="cam" size="2"&gt;The above is run on the DW server &amp;#8211; it updates the database.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="cam" size="2"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="cam" size="2"&gt;File Name: MOM2005-SP1-KB913801-X86-ENU.MSI      &lt;br /&gt;Knowledge Base (KB) Article: KB913801      &lt;br /&gt;Overview: MOM 2005 SP1 Hotfix for deadlocks with SQL 2005      &lt;br /&gt;&lt;/font&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=596710CC-CF17-476F-A30C-8973612F4AC7&amp;amp;displaylang=en"&gt;&lt;font face="cam" size="2"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyId=596710CC-CF17-476F-A30C-8973612F4AC7&amp;amp;displaylang=en&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="cam" size="2"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="cam" size="2"&gt;This updates the following files. If your files are newer &amp;#8211; no need to apply:&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;table class="MsoNormalTable" style="mso-cellspacing: .7pt; mso-yfti-tbllook: 1184" cellspacing="1" cellpadding="0" border="0"&gt;&lt;tbody&gt;     &lt;tr style="mso-yfti-irow: 0; mso-yfti-firstrow: yes"&gt;       &lt;td style="padding-right: 3.75pt; padding-left: 3.75pt; background: #cecfce; padding-bottom: 3.75pt; padding-top: 3.75pt"&gt;         &lt;p class="MsoNormal" style="margin-top: 7.5pt; line-height: normal; text-align: center; mso-margin-bottom-alt: auto" align="center"&gt;&lt;b&gt;&lt;span style="font-size: 8.5pt; font-family: " verdana","sans-serif"; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'"&gt;File name                &lt;p&gt;&lt;/p&gt;             &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="padding-right: 3.75pt; padding-left: 3.75pt; background: #cecfce; padding-bottom: 3.75pt; padding-top: 3.75pt"&gt;         &lt;p class="MsoNormal" style="margin-top: 7.5pt; line-height: normal; text-align: center; mso-margin-bottom-alt: auto" align="center"&gt;&lt;b&gt;&lt;span style="font-size: 8.5pt; font-family: " verdana","sans-serif"; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'"&gt;File version                &lt;p&gt;&lt;/p&gt;             &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="padding-right: 3.75pt; padding-left: 3.75pt; background: #cecfce; padding-bottom: 3.75pt; padding-top: 3.75pt"&gt;         &lt;p class="MsoNormal" style="margin-top: 7.5pt; line-height: normal; text-align: center; mso-margin-bottom-alt: auto" align="center"&gt;&lt;b&gt;&lt;span style="font-size: 8.5pt; font-family: " verdana","sans-serif"; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'"&gt;File size                &lt;p&gt;&lt;/p&gt;             &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="padding-right: 3.75pt; padding-left: 3.75pt; background: #cecfce; padding-bottom: 3.75pt; padding-top: 3.75pt"&gt;         &lt;p class="MsoNormal" style="margin-top: 7.5pt; line-height: normal; text-align: center; mso-margin-bottom-alt: auto" align="center"&gt;&lt;b&gt;&lt;span style="font-size: 8.5pt; font-family: " verdana","sans-serif"; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'"&gt;Date                &lt;p&gt;&lt;/p&gt;             &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="padding-right: 3.75pt; padding-left: 3.75pt; background: #cecfce; padding-bottom: 3.75pt; padding-top: 3.75pt"&gt;         &lt;p class="MsoNormal" style="margin-top: 7.5pt; line-height: normal; text-align: center; mso-margin-bottom-alt: auto" align="center"&gt;&lt;b&gt;&lt;span style="font-size: 8.5pt; font-family: " verdana","sans-serif"; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'"&gt;Time                &lt;p&gt;&lt;/p&gt;             &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr style="mso-yfti-irow: 1; mso-yfti-lastrow: yes"&gt;       &lt;td style="padding-right: 3.75pt; padding-left: 3.75pt; background: #f7f7ff; padding-bottom: 3.75pt; padding-top: 3.75pt" valign="top"&gt;         &lt;p class="MsoNormal" style="margin-top: 7.5pt; line-height: normal; mso-margin-bottom-alt: auto"&gt;&lt;span style="font-size: 8.5pt; font-family: " verdana","sans-serif"; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'"&gt;Dasserver.dll              &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="padding-right: 3.75pt; padding-left: 3.75pt; background: #f7f7ff; padding-bottom: 3.75pt; padding-top: 3.75pt" valign="top"&gt;         &lt;p class="MsoNormal" style="margin-top: 7.5pt; line-height: normal; mso-margin-bottom-alt: auto"&gt;&lt;span style="font-size: 8.5pt; font-family: " verdana","sans-serif"; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'"&gt;5.0.2911.30              &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="padding-right: 3.75pt; padding-left: 3.75pt; background: #f7f7ff; padding-bottom: 3.75pt; padding-top: 3.75pt" valign="top"&gt;         &lt;p class="MsoNormal" style="margin-top: 7.5pt; line-height: normal; mso-margin-bottom-alt: auto"&gt;&lt;span style="font-size: 8.5pt; font-family: " verdana","sans-serif"; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'"&gt;4,041,968              &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="padding-right: 3.75pt; padding-left: 3.75pt; background: #f7f7ff; padding-bottom: 3.75pt; padding-top: 3.75pt" valign="top"&gt;         &lt;p class="MsoNormal" style="margin-top: 7.5pt; line-height: normal; mso-margin-bottom-alt: auto"&gt;&lt;span style="font-size: 8.5pt; font-family: " verdana","sans-serif"; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'"&gt;04-Feb-2006              &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="padding-right: 3.75pt; padding-left: 3.75pt; background: #f7f7ff; padding-bottom: 3.75pt; padding-top: 3.75pt" valign="top"&gt;         &lt;p class="MsoNormal" style="margin-top: 7.5pt; line-height: normal; mso-margin-bottom-alt: auto"&gt;&lt;span style="font-size: 8.5pt; font-family: " verdana","sans-serif"; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'"&gt;01:20              &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;font face="camb" size="2"&gt;7. After the required hotfixes are installed without error launch the MOM Administrator Console and verify that it is operating as expected.&lt;/font&gt;&lt;/p&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=2811087" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/kevinholman/archive/tags/TSQL/default.aspx">TSQL</category></item><item><title>Useful MOM 2005 SQL queries</title><link>http://blogs.technet.com/kevinholman/archive/2007/10/18/useful-mom-2005-sql-queries.aspx</link><pubDate>Thu, 18 Oct 2007 21:44:00 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:2199783</guid><dc:creator>kevinhol</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.technet.com/kevinholman/comments/2199783.aspx</comments><wfw:commentRss>http://blogs.technet.com/kevinholman/commentrss.aspx?PostID=2199783</wfw:commentRss><wfw:comment>http://blogs.technet.com/kevinholman/rsscomments.aspx?PostID=2199783</wfw:comment><description>&lt;p&gt;&lt;font size="5"&gt;SCDW/DTS:&lt;/font&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Primary 6 tables that SCDW data is retained in:&lt;/strong&gt; &lt;/p&gt;  &lt;p&gt;SC_AlertFact_Table   &lt;br /&gt;SC_AlertHistoryFact_Table    &lt;br /&gt;SC_AlertToEventFact_Table    &lt;br /&gt;SC_EventFact_Table    &lt;br /&gt;SC_EventParameterFact_Table    &lt;br /&gt;SC_SampledNumericDataFact_Table &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Commands to execute to modify the data retention age:&amp;#160; Please run these commands changing the values from 385 to the number to the number of days of data to be retained: &lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Exec p_updategroomdays 'SC_AlertFact_Table', 385   &lt;br /&gt;Exec p_updategroomdays 'SC_AlertHistoryFact_Table', 385    &lt;br /&gt;Exec p_updategroomdays 'SC_AlertToEventFact_Table', 385    &lt;br /&gt;Exec p_updategroomdays 'SC_EventFact_Table', 385    &lt;br /&gt;Exec p_updategroomdays 'SC_EventParameterFact_Table', 385    &lt;br /&gt;Exec p_updategroomdays 'SC_SampledNumericDataFact_Table', 385 &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Queries to verify above setting:&lt;/strong&gt; &lt;/p&gt;  &lt;p&gt;For example, to verify the number of days that the SC_AlertFact_Table retains data, use the following command: &lt;/p&gt;  &lt;p&gt;select cs.cs_tablename 'Table Name', wcs.wcs_groomdays 'Groom Days' from warehouseclassschema wcs   &lt;br /&gt;join classschemas cs    &lt;br /&gt;on cs.cs_classID = wcs.wcs_classID    &lt;br /&gt;where cs.cs_tablename = 'SC_AlertFact_Table'    &lt;br /&gt;and wcs.wcs_mustbegroomed = 1&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Grooming the SCDW:&lt;/strong&gt;&amp;#160; &lt;br /&gt;If you set the grooming data to attempt to groom too much data at a time, the job will likely fail due to the transaction log filling up.&amp;#160; You should first ensure your transaction log has plenty of free space, or grow it manually, or set it to auto-grow (if ample disk space).&amp;#160; Ensure your tempdb has ample room (disk space) to grow temporarily, and then attempt to run the SCDWgroomjob.&amp;#160; Start with only grooming out 10 days at a time. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Queries to find out how old present data is:&lt;/strong&gt; &lt;/p&gt;  &lt;p&gt;SELECT DATEDIFF(d, MIN(DateTimeLastModified), GETDATE()) AS [Current] FROM SC_AlertFact_View   &lt;br /&gt;SELECT DATEDIFF(d, MIN(DateTimeLastModified), GETDATE()) AS [Current] FROM SC_AlertHistoryFact_View    &lt;br /&gt;SELECT DATEDIFF(d, MIN(DateTimeEventStored), GETDATE()) AS [Current] FROM SC_AlertToEventFact_View    &lt;br /&gt;SELECT DATEDIFF(d, MIN(DateTimeStored), GETDATE()) AS [Current] FROM SC_EventFact_View    &lt;br /&gt;SELECT DATEDIFF(d, MIN(DateTimeEventStored), GETDATE()) AS [Current] FROM SC_EventParameterFact_View    &lt;br /&gt;SELECT DATEDIFF(d, MIN(DateTimeAdded), GETDATE()) AS [Current] FROM SC_SampledNumericDataFact_View &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Delete event data from SCDW (NOT SUPPORTED):&lt;/strong&gt; &lt;/p&gt;  &lt;p&gt;USE SystemCenterReporting   &lt;br /&gt;DELETE SC_EventFact_Table    &lt;br /&gt;FROM SC_EventFact_Table AS ft    &lt;br /&gt;INNER JOIN SC_EventDetailDimension_Table AS ed    &lt;br /&gt;ON ft.EventDetail_FK = ed.SMC_InstanceID    &lt;br /&gt;WHERE ed.EventID_PK = '1234' &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Query to examine the last groom job and how long it took in the SCDW:&lt;/strong&gt; &lt;/p&gt;  &lt;p&gt;Use SystemCenterReporting   &lt;br /&gt;GO    &lt;br /&gt;Select MWCS.GroomDays, MCS.ClassName, MCS.TableName,MWGI.*, DATEDIFF(s,MWGI.StartTime, MWGI.EndTime) AS GroomTookSeconds FROM dbo.SMC_Meta_WarehouseGroomingInfo MWGI    &lt;br /&gt;INNER JOIN SMC_Meta_ClassSchemas MCS    &lt;br /&gt;ON MWGI.ClassID=MCS.ClassID    &lt;br /&gt;INNER JOIN SMC_Meta_WarehouseClassSchema MWCS    &lt;br /&gt;ON MWGI.ClassID=MWCS.ClassID    &lt;br /&gt;ORDER BY MCS.ClassName &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Running the DTS job with latency:     &lt;br /&gt;&lt;/strong&gt;Add the &amp;#8220;/latency:90&amp;#8221;&amp;#160; switch to the scheduled task command line for the DTS job (MOM.Datawarehousing.DTSPackageGenerator.exe)    &lt;br /&gt;(The latency switch specifies the number of days to skip) &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Setting query timeout value:&lt;/strong&gt;    &lt;br /&gt;If a *remote* query or DTS job times out, you can change the value in Ent. Manager, on the properties of the server, connections tab.&amp;#160; &lt;br /&gt;Default is 600, set this to 0 for unlimited. &lt;/p&gt;  &lt;p&gt;Query to look at oldest date of event records: &lt;/p&gt;  &lt;p&gt;use SystemCenterReporting   &lt;br /&gt;select min(timestored) from sdkeventview &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Given the event ID &amp;#8211; a quick query to view the number of distinct events for each message, and view the text of the event message: &lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;select distinct message, count(*) as number from sdkeventview where nteventid = '7036' group by message order by number desc &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Faking the Onepoint database to think DTS is working in order to groom:&lt;/strong&gt;    &lt;br /&gt;Changed the Date of &amp;quot;TimeDTSLastRan&amp;quot; to today's date in ReportingSettings table of Onepoint DB.    &lt;br /&gt;Then, run the MOMX Partitioning and grooming job.&amp;#160; This will delete all data in Onepoint based on the global setting of data retention, even if it has not been transferred to the SCDW. &lt;/p&gt;  &lt;p&gt;The GroomingSettings table also contains a &amp;#8220;TimeDTSLastRan&amp;#8221; value &amp;#8211; but this will be an old date, as it is typically the time and date of the reporting server install and is apparently not used by the grooming stored procedure. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;DTS Logging:&lt;/strong&gt; &lt;/p&gt;  &lt;p&gt;1. Setup Error Logging for the DTS Package. You can use info from the following MS KB to setup DTS Package Logging:   &lt;br /&gt;316043 HOW TO: Log Data Transformation Services Package Execution to a Text File    &lt;br /&gt;&lt;a href="http://support.microsoft.com/?id=316043"&gt;http://support.microsoft.com/?id=316043&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;2. SQL Log location:&amp;#160; Zip up all the files in the SQL Server Log folder &amp;quot;..\program files\microsoft    &lt;br /&gt;sql server\MSSQL\LOG&amp;quot; Note: if you have a SQL Named Instance then the path will be as following for     &lt;br /&gt;the LOG Folder:&amp;#160; &amp;quot;..\program files\microsoft sql server\SQLNamedInstance\MSSQL\LOG&amp;quot; &lt;/p&gt;  &lt;p&gt;3.&amp;#160;&amp;#160;&amp;#160;&amp;#160; SQL profiler settings to capture for DTS logging:    &lt;br /&gt;- Errors and Warnings&amp;#160;&amp;#160; ---&amp;gt; Add All events under this    &lt;br /&gt;- Stored Proc ---&amp;gt; RPC/SP Starting/Completed, SP:Stmt Starting/Completed, and&amp;#160; SP:     &lt;br /&gt;Recompile    &lt;br /&gt;- Transactions ---&amp;gt; All of these    &lt;br /&gt;- TSQL ---&amp;gt; SQL:Batch/SQL:Stmt Starting/Completed &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;font size="5"&gt;Onepoint:&lt;/font&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font size="4"&gt;Alerts:&lt;/font&gt;&lt;/strong&gt; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Most common alerts in a Onepoint DB:&lt;/strong&gt;    &lt;br /&gt;This will tell us how many alerts we are generating per day, and &lt;/p&gt;  &lt;p&gt;SELECT CONVERT(char(10), TimeRaised, 101) AS &amp;quot;Alert Date (by Day)&amp;quot;, COUNT(*) AS &amp;quot;Number of Alerts&amp;quot;   &lt;br /&gt;FROM SDKAlertView    &lt;br /&gt;GROUP BY CONVERT(char(10), TimeRaised, 101)    &lt;br /&gt;ORDER BY &amp;quot;Alert Date (by Day)&amp;quot; DESC &lt;/p&gt;  &lt;p&gt;SELECT Culprit, Name, SUM(1) AS AlertCount, SUM(RepeatCount+1) AS AlertCountWithRepeatCount   &lt;br /&gt;FROM Alert WITH (NOLOCK)    &lt;br /&gt;WHERE ResolutionState = (0|255)    &lt;br /&gt;GROUP BY Culprit, Name    &lt;br /&gt;ORDER BY AlertCount DESC    &lt;br /&gt;-- ORDER BY AlertCountWithRepeatCount DESC &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font size="4"&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font size="4"&gt;Events:&lt;/font&gt;&lt;/strong&gt; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Most common events in a Onepoint DB:&lt;/strong&gt; &lt;/p&gt;  &lt;p&gt;SELECT CONVERT(char(10), TimeGenerated, 101) AS &amp;quot;Events Date (by Day)&amp;quot;, COUNT(*) AS &amp;quot;Number of Events&amp;quot;   &lt;br /&gt;FROM SDKEventView    &lt;br /&gt;GROUP BY CONVERT(char(10), TimeGenerated, 101)    &lt;br /&gt;ORDER BY &amp;quot;Events Date (by Day)&amp;quot; DESC &lt;/p&gt;  &lt;p&gt;SELECT NTEventID, COUNT(*) AS &amp;quot;Numver of Events&amp;quot;   &lt;br /&gt;FROM SDKEventView    &lt;br /&gt;GROUP BY NTEventID    &lt;br /&gt;ORDER BY &amp;quot;Numver of Events&amp;quot; DESC &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;To view the oldest events in the database (this should mirror the &amp;#8220;1&amp;#8221; in Lastgroomed from above query): &lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;select min(timestored) from sdkeventview &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;To count the number of events in Onepoint: &lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;select count(*) from sdkeventview &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;To determine computers that are generating the most event data: &lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;select distinct ComputerName, count(*) as NumberOfOccurences from SDKEventView   &lt;br /&gt;group by Computername order by numberofoccurences desc &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;To determine the noisiest computers and see the events they are generating: &lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;select top 100 Computername, Message, NTEventID, Source, Count(*) AS TOTAL    &lt;br /&gt;from SDKEventView    &lt;br /&gt;Group by Computername, Message, NTEventID, Source    &lt;br /&gt;Order by TOTAL DESC &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Selecting multiple events: &lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Select * from SDKeventview where NTeventID in (&amp;#8216;9980&amp;#8217;,&amp;#8217;9981&amp;#8217;,&amp;#8217;9982&amp;#8217;,&amp;#8217;9983&amp;#8217;) &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Given the event ID &amp;#8211; a quick query to view the number of distinct events for each message, and view the text of the event message: &lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Select distinct message, count(*) as number from sdkeventview where nteventid = '7036' group by message order by number desc &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font size="4"&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font size="4"&gt;Performance: &lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;To display the most common perf insertions: &lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;select performanceobjectname, performancecountername, count(performanceobjectname) as 'count' from sdkperformanceview   &lt;br /&gt;group by performanceobjectname, performancecountername    &lt;br /&gt;order by 'count' desc &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;To determine computers are generating the most perf insertions: &lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;select distinct server, count(*) as NumberOfOccurences from SampledNumericDataPerformanceReportView   &lt;br /&gt;group by server order by numberofoccurences desc &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Top 10% Computers with High Perf Volume, by Counter, by Object, by Day &lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;SELECT top 10 percent CONVERT(char(10), TimeSampled, 101) AS &amp;quot;Perf Date (by Day)&amp;quot;   &lt;br /&gt; , Computername, PerformanceObjectName, PerformanceCounterName, COUNT(*) AS &amp;quot;Number of PerfObjects&amp;quot;    &lt;br /&gt;FROM SDKPerformanceView    &lt;br /&gt;GROUP BY CONVERT(char(10), TimeSampled, 101), computername, PerformanceObjectName, PerformanceCounterName    &lt;br /&gt;ORDER BY &amp;quot;Number of PerfObjects&amp;quot; DESC&amp;#160; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Top 10% Computers with High Perf Volume, by Day &lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;SELECT&amp;#160; top 10 percent CONVERT(char(10), TimeSampled, 101) AS &amp;quot;Perf Date (by Day)&amp;quot;, computername, COUNT(*) AS &amp;quot;Number of PerfObjects&amp;quot;   &lt;br /&gt;FROM SDKPerformanceView    &lt;br /&gt;GROUP BY CONVERT(char(10), TimeSampled, 101), computername    &lt;br /&gt;ORDER BY &amp;quot;Number of PerfObjects&amp;quot; DESC &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Top 10% Computers with High Perf Volume, by Object, by Day &lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;SELECT top 10 percent CONVERT(char(10), TimeSampled, 101) AS &amp;quot;Perf Date (by Day)&amp;quot;, computername, performanceobjectname, COUNT(*) AS &amp;quot;Number of PerfObjects&amp;quot;   &lt;br /&gt;FROM SDKPerformanceView    &lt;br /&gt;GROUP BY CONVERT(char(10), TimeSampled, 101), computername, performanceobjectname    &lt;br /&gt;ORDER BY &amp;quot;Number of PerfObjects&amp;quot; DESC &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;To display the counters causing the most perf impact per computer: &lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;select performanceobjectname, performancecountername, count(performanceobjectname) as 'count'    &lt;br /&gt;from sdkperformanceview    &lt;br /&gt;where computername = 'COMPUTERNAME'    &lt;br /&gt;group by performanceobjectname, performancecountername    &lt;br /&gt;order by 'count' desc &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font size="4"&gt;Misc Onepoint:&lt;/font&gt; &lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;To view the number of Operations Console currently open: &lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;SELECT program_name, count(*)    &lt;br /&gt;FROM Master..sysprocesses     &lt;br /&gt;WHERE ecid=0 and program_name='Microsoft Operations Manager - DAS Operations Console'     &lt;br /&gt;GROUP BY program_name     &lt;br /&gt;ORDER BY count(*) desc&amp;#160; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;To view the grooming information on tables in one point, especially with respect to the &amp;#8220;Current&amp;#8221; and &amp;#8220;LastGroomed&amp;#8221; columns =1     &lt;br /&gt;&lt;/strong&gt;SELECT * FROM dbo.PartitionTables &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;To view or modify the TimeDTSLastRan field to allow grooming to occur:     &lt;br /&gt;&lt;/strong&gt;select * from ReportingSettings &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;To display the rule name given a GUID: &lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;select Name FROM onepoint.dbo.ProcessRule WHERE idProcessRule=&amp;#8217;GUIDstringHERE&amp;#8217; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;To find all rules associated with a provider: &lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;select pr.name 'Rule Name', pi.name 'Provider Name' from processrule pr   &lt;br /&gt;join ProviderInstance pi    &lt;br /&gt;on pr.idproviderinstance = pi.idproviderinstance    &lt;br /&gt;where pi.name like 'ISA Server%' &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;To display the Total number of agents (all agent types) &lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;SELECT * FROM ManagedCountsView WHERE ManagedType = &amp;#8216;-1&amp;#8217; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;To display the total number of Unmanaged agents &lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;SELECT * FROM ManagedCountsView WHERE ManagedType = &amp;#8216;0&amp;#8217; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;To display the total number of Managed agents &lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;SELECT * FROM ManagedCountsView WHERE ManagedType = &amp;#8216;2&amp;#8217; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;To display the total number of Windows Server Cluster computers &lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;SELECT * FROM ManagedCountsView WHERE ManagedType = &amp;#8216;3&amp;#8217; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;To display the total number of Agents reporting to a specific Mgmt Server &lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;SELECT COUNT(*) FROM MOMv2_ComputerAllPropertiesView WHERE ConfigManagerName = &amp;#8216;mgmt server name&amp;#8217; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;or to list the total number of Agents reporting to all Mgmt Servers (NULL are unmanaged) &lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;SELECT configmanagername, COUNT(*) FROM MOMv2_ComputerAllPropertiesView group by ConfigManagerName &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;To display the agent action account for all servers: &lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;use OnePoint   &lt;br /&gt;Select Name, Value    &lt;br /&gt;from Attribute INNER JOIN Computer ON DISCOVERYCOMPUTERID = IDCOMPUTER    &lt;br /&gt;WHERE ClassAttributeID IN (Select ClassAttributeID from ClassAttribute where    &lt;br /&gt;ClassAttributeName = 'Action Account Identity')    &lt;br /&gt;AND IDComputer IN (Select DiscoveryComputerID from Attribute WHERE    &lt;br /&gt;ClassAttributeID IN (Select ClassAttributeID from ClassAttribute where    &lt;br /&gt;ClassAttributeName = 'Action Account Identity'))    &lt;br /&gt;order by value, name &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font size="4"&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font size="4"&gt;MISC:&lt;/font&gt;&lt;/strong&gt; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Simple query to display large tables: &lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;SELECT    &lt;br /&gt;so.name,    &lt;br /&gt;8 * Sum(CASE WHEN si.indid IN (0, 1) THEN si.reserved END) AS data_kb,     &lt;br /&gt;Coalesce(8 * Sum(CASE WHEN si.indid NOT IN (0, 1, 255) THEN si.reserved END), 0) AS index_kb,     &lt;br /&gt;Coalesce(8 * Sum(CASE WHEN si.indid IN (255) THEN si.reserved END), 0) AS blob_kb    &lt;br /&gt;FROM dbo.sysobjects AS so JOIN dbo.sysindexes AS si ON (si.id = so.id)     &lt;br /&gt;WHERE 'U' = so.type GROUP BY so.name&amp;#160; ORDER BY data_kb DESC &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Simple query for Onepoint or SCDW to dump a perfcounter to a table output.&amp;#160; Modify Computername and timestamps: &lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;DECLARE @BeginDate datetime   &lt;br /&gt;DECLARE @EndDate datetime    &lt;br /&gt;SET @BeginDate = '2006-10-18 05:45:00.287'    &lt;br /&gt;SET @EndDate = '2006-10-19 05:45:00.287'    &lt;br /&gt;SELECT * FROM dbo.SDKPerformanceView WHERE Computername = 'EXCH1' and PERFORMANCECOUNTERNAME = 'Local Queue Length' and TimeSampled BETWEEN @BeginDate AND @EndDate ORDER BY TimeSampled DESC &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font size="4"&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font size="4"&gt;Database Performance:&lt;/font&gt; &lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;The System Center DW does not come with any maintenance.&amp;#160; &lt;br /&gt;I really like the maintenance plan at:&amp;#160; &lt;a href="http://systemcenterforum.org/wp-content/uploads/scdw_reindex1.zip"&gt;http://systemcenterforum.org/wp-content/uploads/scdw_reindex1.zip&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;To get better performance manually: &lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Update Statistics (will help speed up reports and takes less time than a full reindex): &lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;EXEC sp_updatestats &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Show index fragmentation (to determine how badly you need a reindex &amp;#8211; logical scan frag &amp;gt; 10% = bad.&amp;#160; Scan density below 80 = bad): &lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;DBCC SHOWCONTIG   &lt;br /&gt;DBCC SHOWCONTIG WITH FAST (less data than above &amp;#8211; in case you don&amp;#8217;t have time) &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Reindex the database: &lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Onepoint: &lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;USE OnePoint    &lt;br /&gt;go     &lt;br /&gt;SET ANSI_NULLS ON    &lt;br /&gt;SET ANSI_PADDING ON    &lt;br /&gt;SET ANSI_WARNINGS ON    &lt;br /&gt;SET ARITHABORT ON    &lt;br /&gt;SET CONCAT_NULL_YIELDS_NULL ON    &lt;br /&gt;SET QUOTED_IDENTIFIER ON    &lt;br /&gt;SET NUMERIC_ROUNDABORT OFF    &lt;br /&gt;EXEC SP_MSForEachTable &amp;quot;Print 'Reindexing '+'?' DBCC DBREINDEX ('?')&amp;quot;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; SystemCenterReporting:    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; DBCC REINDEX (&amp;#8216;TableName&amp;#8217;)&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; DBCC REINDEX (&amp;#8216;SC_SampledNumericDataFact_Table&amp;#8217;) &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Update usage (use when SQL reports a table size that you know not to be correct): &lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;DBCC updateusage ('systemcenterreporting')   &lt;br /&gt;DBCC updateusage ('systemcenterreporting','sc_samplednumericdatafact_table') &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;How to identify your version of SQL server: &lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;SELECT&amp;#160; SERVERPROPERTY('productversion'), SERVERPROPERTY ('productlevel'), SERVERPROPERTY ('edition') &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;SQL 2005: &lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;SQL Server 2005 RTM&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 2005.90.1399    &lt;br /&gt;SQL Server 2005 SP1&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 2005.90.2047    &lt;br /&gt;SQL Server 2005 SP1 plus 918222&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 2005.90.2153    &lt;br /&gt;SQL Server 2005 SP2&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 2005.90.3042 &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;SQL 2000: &lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;SQL Server 2000 RTM&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 2000.80.194.0    &lt;br /&gt;SQL Server 2000 SP1&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 2000.80.384.0     &lt;br /&gt;SQL Server 2000 SP2&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 2000.80.534.0     &lt;br /&gt;SQL Server 2000 SP3&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 2000.80.760.0     &lt;br /&gt;SQL Server 2000 SP3a&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 2000.80.760.0     &lt;br /&gt;SQL Server 2000 SP4&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 2000.8.00.2039 &lt;/p&gt;  &lt;p&gt;SQL2000 Reporting RTM&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 8.00.743.00   &lt;br /&gt;SQL2000 Reporting SP1&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 8.00.878.00    &lt;br /&gt;SQL2000 Reporting SP2&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 8.00.1038.00&lt;/p&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=2199783" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/kevinholman/archive/tags/database/default.aspx">database</category><category domain="http://blogs.technet.com/kevinholman/archive/tags/query/default.aspx">query</category><category domain="http://blogs.technet.com/kevinholman/archive/tags/TSQL/default.aspx">TSQL</category></item><item><title>Useful Operations Manager 2007 SQL queries</title><link>http://blogs.technet.com/kevinholman/archive/2007/10/18/useful-operations-manager-2007-sql-queries.aspx</link><pubDate>Thu, 18 Oct 2007 18:35:00 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:2199747</guid><dc:creator>kevinhol</dc:creator><slash:comments>26</slash:comments><comments>http://blogs.technet.com/kevinholman/comments/2199747.aspx</comments><wfw:commentRss>http://blogs.technet.com/kevinholman/commentrss.aspx?PostID=2199747</wfw:commentRss><wfw:comment>http://blogs.technet.com/kevinholman/rsscomments.aspx?PostID=2199747</wfw:comment><description>&lt;p mce_keep="true"&gt;&lt;strong&gt;&lt;font size="5"&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;strong&gt;&lt;font size="3"&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;strong&gt;&lt;font size="3"&gt;Last updated 11-9-09&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p mce_keep="true"&gt;&amp;#160;&lt;/p&gt;  &lt;p mce_keep="true"&gt;&amp;#160;&lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;strong&gt;&lt;font color="#ff0000"&gt;Large Table query&lt;/font&gt;.&lt;/strong&gt;&amp;#160; (I am putting this at the top, because I use it so much – to find out what is taking up so much space in the OpsDB or DW)&lt;/p&gt; &lt;font color="#0000ff"&gt;SELECT so.name,    &lt;br /&gt;8 * Sum(CASE WHEN si.indid IN (0, 1) THEN si.reserved END) AS data_kb,     &lt;br /&gt;Coalesce(8 * Sum(CASE WHEN si.indid NOT IN (0, 1, 255) THEN si.reserved END), 0) AS index_kb,     &lt;br /&gt;Coalesce(8 * Sum(CASE WHEN si.indid IN (255) THEN si.reserved END), 0) AS blob_kb     &lt;br /&gt;FROM dbo.sysobjects AS so JOIN dbo.sysindexes AS si ON (si.id = so.id)     &lt;br /&gt;WHERE 'U' = so.type GROUP BY so.name&amp;#160; ORDER BY data_kb DESC&lt;/font&gt;   &lt;p mce_keep="true"&gt;&amp;#160;&lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;strong&gt;&lt;font size="5"&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;strong&gt;&lt;font size="5"&gt;Operational Database Section:&lt;/font&gt;&lt;/strong&gt;&amp;#160; &lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p mce_keep="true"&gt;&amp;#160;&lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;strong&gt;&lt;em&gt;&lt;font size="4"&gt;&lt;/font&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;strong&gt;&lt;em&gt;&lt;font color="#000080" size="4"&gt;Alerts Section:&lt;/font&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;strong&gt;Number of console Alerts per Day:&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;SELECT CONVERT(VARCHAR(20), TimeAdded, 102) AS DayAdded, COUNT(*) AS NumAlertsPerDay    &lt;br /&gt;FROM Alert WITH (NOLOCK)     &lt;br /&gt;WHERE TimeRaised is not NULL     &lt;br /&gt;GROUP BY CONVERT(VARCHAR(20), TimeAdded, 102)     &lt;br /&gt;ORDER BY DayAdded DESC&lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;strong&gt;Top 20 Alerts in an Operational Database, by Alert Count &lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;SELECT TOP 20 SUM(1) AS AlertCount, AlertStringName, AlertStringDescription, MonitoringRuleId, Name    &lt;br /&gt;FROM Alertview WITH (NOLOCK)     &lt;br /&gt;WHERE TimeRaised is not NULL     &lt;br /&gt;GROUP BY AlertStringName, AlertStringDescription, MonitoringRuleId, Name     &lt;br /&gt;ORDER BY AlertCount DESC&lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;strong&gt;Top 20 Alerts in an Operational Database, by Repeat Count &lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;SELECT TOP 20 SUM(RepeatCount+1) AS RepeatCount, AlertStringName, AlertStringDescription, MonitoringRuleId, Name    &lt;br /&gt;FROM Alertview WITH (NOLOCK)     &lt;br /&gt;WHERE Timeraised is not NULL     &lt;br /&gt;GROUP BY AlertStringName, AlertStringDescription, MonitoringRuleId, Name     &lt;br /&gt;ORDER BY RepeatCount DESC&lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;strong&gt;Number of console Alerts per Day by Resolution State:&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;SELECT    &lt;br /&gt;CASE WHEN(GROUPING(CONVERT(VARCHAR(20), TimeAdded, 102)) = 1) THEN 'All Days' ELSE CONVERT(VARCHAR(20), TimeAdded, 102) END AS [Date],     &lt;br /&gt;CASE WHEN(GROUPING(ResolutionState) = 1) THEN 'All Resolution States' ELSE CAST(ResolutionState AS VARCHAR(5)) END AS [ResolutionState],     &lt;br /&gt;COUNT(*) AS NumAlerts     &lt;br /&gt;FROM Alert WITH (NOLOCK)     &lt;br /&gt;WHERE TimeRaised is not NULL     &lt;br /&gt;GROUP BY CONVERT(VARCHAR(20), TimeAdded, 102), ResolutionState WITH ROLLUP     &lt;br /&gt;ORDER BY DATE DESC&lt;/p&gt;  &lt;p mce_keep="true"&gt;&amp;#160;&lt;/p&gt;  &lt;p mce_keep="true"&gt;(Note:&amp;#160; There will be more alerts in the &amp;quot;Alert&amp;quot; table in the form of rows, than exist in the console.&amp;#160; This is because there are non-console alerts where TimeRaised is NULL - these have to do with driving state change records, and are not included in the above queries by design)&lt;/p&gt;  &lt;p mce_keep="true"&gt;&amp;#160;&lt;/p&gt;  &lt;p mce_keep="true"&gt;   &lt;br /&gt;&lt;strong&gt;&lt;em&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;strong&gt;&lt;em&gt;&lt;font color="#000080" size="4"&gt;Events Section:&lt;/font&gt;&lt;/em&gt;&lt;/strong&gt; &lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;strong&gt;All Events by count by day, with total for entire database:&amp;#160; &lt;/strong&gt;&lt;em&gt;(this tells us how many events per day we are inserting - and helps us look for too many events, event storms, and the result after tuning rules that generate too many events)&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;SELECT CASE WHEN(GROUPING(CONVERT(VARCHAR(20), TimeAdded, 102)) = 1)    &lt;br /&gt;THEN 'All Days'     &lt;br /&gt;ELSE CONVERT(VARCHAR(20), TimeAdded, 102) END AS DayAdded,     &lt;br /&gt;COUNT(*) AS EventsPerDay     &lt;br /&gt;FROM EventAllView     &lt;br /&gt;GROUP BY CONVERT(VARCHAR(20), TimeAdded, 102) WITH ROLLUP     &lt;br /&gt;ORDER BY DayAdded DESC&lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;strong&gt;Most Common Events by event number:&lt;/strong&gt;&amp;#160; &lt;em&gt;(This helps us know which event ID's are the most common in the database)&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;SELECT top 20 Number as EventID, COUNT(*) AS TotalEvents    &lt;br /&gt;FROM EventView with (NOLOCK)     &lt;br /&gt;GROUP BY Number     &lt;br /&gt;ORDER BY TotalEvents DESC&lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;strong&gt;Most common events by event number and event publishername: &lt;/strong&gt;&lt;em&gt;(This gives us the event source name to help see what is raising these events)&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;SELECT top 20 Number as EventID, COUNT(*) AS TotalEvents, Publishername as EventSource    &lt;br /&gt;FROM EventAllView eav with (nolock)     &lt;br /&gt;GROUP BY Number, Publishername     &lt;br /&gt;ORDER BY TotalEvents DESC&lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;strong&gt;Most common events, grouped by identical event number, publishername, and event parameters:&lt;/strong&gt; (&lt;em&gt;This shows use completely redundant events with identical data - but might be different than the above queries... you need to see both data outputs to fully tune)&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;SELECT top 100 Number as EventID, COUNT(*) AS TotalEvents, Publishername as EventSource, EventParameters    &lt;br /&gt;FROM EventAllView with (NOLOCK)     &lt;br /&gt;GROUP BY Number, Publishername, EventParameters     &lt;br /&gt;ORDER BY TotalEvents DESC&lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;strong&gt;Computers generating the most events:&lt;/strong&gt;&amp;#160;&lt;em&gt;(This shows us which computers create the most event traffic and use the most database space)&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;SELECT top 20 LoggingComputer as ComputerName, COUNT(*) AS TotalEvents    &lt;br /&gt;FROM EventallView with (NOLOCK)     &lt;br /&gt;GROUP BY LoggingComputer     &lt;br /&gt;ORDER BY TotalEvents DESC&lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;strong&gt;Computers generating the most events, by event number:&lt;/strong&gt;&amp;#160;&lt;em&gt;(This shows the noisiest computers, group by unique event numbers)&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;SELECT top 20 LoggingComputer as ComputerName, COUNT(*) AS TotalEvents, Number as EventID    &lt;br /&gt;FROM EventallView with (NOLOCK)     &lt;br /&gt;GROUP BY LoggingComputer, Number     &lt;br /&gt;ORDER BY TotalEvents DESC&lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;strong&gt;Computers generating the most events, grouped by identical event number and publishername:&lt;/strong&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;SELECT top 20 LoggingComputer as ComputerName, COUNT(*) AS TotalEvents, PublisherName as EventSource, Number as EventID    &lt;br /&gt;FROM EventallView with (NOLOCK)     &lt;br /&gt;GROUP BY LoggingComputer, PublisherName, Number     &lt;br /&gt;ORDER BY TotalEvents DESC&lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;strong&gt;&lt;/strong&gt;&amp;#160;&lt;/p&gt;  &lt;p mce_keep="true"&gt;&amp;#160;&lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;em&gt;&lt;font size="4"&gt;&lt;font color="#000080"&gt;&lt;strong&gt;P&lt;/strong&gt;&lt;strong&gt;erformance Section:&lt;/strong&gt;&lt;/font&gt;&lt;/font&gt;&lt;/em&gt;&amp;#160;&lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;strong&gt;Performance insertions per day:&lt;/strong&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;SELECT CASE WHEN(GROUPING(CONVERT(VARCHAR(20), TimeSampled, 102)) = 1)    &lt;br /&gt;THEN 'All Days' ELSE CONVERT(VARCHAR(20), TimeSampled, 102)     &lt;br /&gt;END AS DaySampled, COUNT(*) AS PerfInsertPerDay     &lt;br /&gt;FROM PerformanceDataAllView with (NOLOCK)     &lt;br /&gt;GROUP BY CONVERT(VARCHAR(20), TimeSampled, 102) WITH ROLLUP     &lt;br /&gt;ORDER BY DaySampled DESC&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Top 20 performance insertions by perf object and counter name:&lt;/strong&gt;&amp;#160; &lt;/p&gt;  &lt;p&gt;select top 20 pcv.ObjectName, pcv.CounterName, count (pcv.countername) as Total    &lt;br /&gt;from performancedataallview as pdv, performancecounterview as pcv     &lt;br /&gt;where (pdv.performancesourceinternalid = pcv.performancesourceinternalid)     &lt;br /&gt;group by pcv.objectname, pcv.countername     &lt;br /&gt;order by count (pcv.countername) desc&lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;strong&gt;To view all performance insertions for a given computer:&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;select Path, ObjectName, CounterName, InstanceName, SampleValue, TimeSampled    &lt;br /&gt;from PerformanceDataAllView pdv with (NOLOCK)     &lt;br /&gt;inner join PerformanceCounterView pcv on pdv.performancesourceinternalid = pcv.performancesourceinternalid     &lt;br /&gt;inner join BaseManagedEntity bme on pcv.ManagedEntityId = bme.BaseManagedEntityId     &lt;br /&gt;where path = 'omterm.opsmgr.net'     &lt;br /&gt;order by countername, timesampled&lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;strong&gt;To refine a the above query to pull all perf data for a given computer, object, counter, and instance:&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;select Path, ObjectName, CounterName, InstanceName, SampleValue, TimeSampled    &lt;br /&gt;from PerformanceDataAllView pdv with (NOLOCK)     &lt;br /&gt;inner join PerformanceCounterView pcv on pdv.performancesourceinternalid = pcv.performancesourceinternalid     &lt;br /&gt;inner join BaseManagedEntity bme on pcv.ManagedEntityId = bme.BaseManagedEntityId     &lt;br /&gt;where path = 'omterm.opsmgr.net' AND     &lt;br /&gt;objectname = 'LogicalDisk' AND     &lt;br /&gt;countername = 'Free Megabytes'     &lt;br /&gt;order by timesampled&lt;/p&gt;  &lt;p mce_keep="true"&gt;&amp;#160;&lt;/p&gt;  &lt;p mce_keep="true"&gt;&amp;#160; &lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;em&gt;&lt;font size="4"&gt;&lt;font color="#000080"&gt;&lt;strong&gt;State &lt;/strong&gt;&lt;strong&gt;Section:&lt;/strong&gt;&lt;/font&gt;&lt;/font&gt;&lt;/em&gt;&amp;#160;&lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;strong&gt;State changes per day:&lt;/strong&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;SELECT CASE WHEN(GROUPING(CONVERT(VARCHAR(20), TimeGenerated, 102)) = 1)    &lt;br /&gt;THEN 'All Days' ELSE CONVERT(VARCHAR(20), TimeGenerated, 102)     &lt;br /&gt;END AS DayGenerated, COUNT(*) AS StateChangesPerDay     &lt;br /&gt;FROM StateChangeEvent WITH (NOLOCK)     &lt;br /&gt;GROUP BY CONVERT(VARCHAR(20), TimeGenerated, 102) WITH ROLLUP     &lt;br /&gt;ORDER BY DayGenerated DESC&lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;strong&gt;Noisiest monitors in the database: (Note – these will include old state changes – might not be current)&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;select distinct top 50 count(sce.StateId) as NumStateChanges, m.MonitorName, mt.typename AS TargetClass    &lt;br /&gt;from StateChangeEvent sce with (nolock)     &lt;br /&gt;join state s with (nolock) on sce.StateId = s.StateId     &lt;br /&gt;join monitor m with (nolock) on s.MonitorId = m.MonitorId     &lt;br /&gt;join managedtype mt with (nolock) on m.TargetManagedEntityType = mt.ManagedTypeId     &lt;br /&gt;where m.IsUnitMonitor = 1     &lt;br /&gt;group by m.MonitorName,mt.typename     &lt;br /&gt;order by NumStateChanges desc&lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;strong&gt;Noisiest Monitor in the database – PER Object/Computer : (Note – these will include old state changes – might not be current)&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;select distinct top 50 count(sce.StateId) as NumStateChanges, bme.DisplayName AS ObjectName, bme.Path, m.MonitorName, mt.typename AS TargetClass    &lt;br /&gt;from StateChangeEvent sce with (nolock)     &lt;br /&gt;join state s with (nolock) on sce.StateId = s.StateId     &lt;br /&gt;join BaseManagedEntity bme with (nolock) on s.BasemanagedEntityId = bme.BasemanagedEntityId     &lt;br /&gt;join monitor m with (nolock) on s.MonitorId = m.MonitorId     &lt;br /&gt;join managedtype mt with (nolock) on m.TargetManagedEntityType = mt.ManagedTypeId     &lt;br /&gt;where m.IsUnitMonitor = 1     &lt;br /&gt;group by s.BasemanagedEntityId,bme.DisplayName,bme.Path,m.MonitorName,mt.typename     &lt;br /&gt;order by NumStateChanges desc&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Noisiest Monitor in the database by total (Note the DATE – might be very old data)&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;select    &lt;br /&gt;datepart(year, timegenerated) AS Year, datepart(month, timegenerated) AS Month, datepart(day, timegenerated) AS Day, MonitorName, count(*) AS TotalStateChanges     &lt;br /&gt;from statechangeevent with(nolock)     &lt;br /&gt;inner join state with(nolock) on statechangeevent.stateid = state.stateid     &lt;br /&gt;inner join basemanagedentity with(nolock) on state.basemanagedentityid = basemanagedentity.basemanagedentityid     &lt;br /&gt;inner join managedtype with(nolock) on basemanagedentity.basemanagedtypeid = managedtype.managedtypeid     &lt;br /&gt;inner join monitor with(nolock)     &lt;br /&gt;on monitor.monitorid = state.monitorid and monitor.IsUnitMonitor = '1'     &lt;br /&gt;group by datepart(year, timegenerated), datepart(month, timegenerated), datepart(day, timegenerated), monitorname     &lt;br /&gt;order by TotalStateChanges DESC&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Historical list of state changes by Monitor, by Day: (will show current state changes happening)&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;select    &lt;br /&gt;datepart(year, timegenerated) AS Year, datepart(month, timegenerated) AS Month, datepart(day, timegenerated) AS Day, MonitorName, count(*) AS TotalStateChanges     &lt;br /&gt;from statechangeevent with(nolock)     &lt;br /&gt;inner join state with(nolock) on statechangeevent.stateid = state.stateid     &lt;br /&gt;inner join basemanagedentity with(nolock) on state.basemanagedentityid = basemanagedentity.basemanagedentityid     &lt;br /&gt;inner join managedtype with(nolock) on basemanagedentity.basemanagedtypeid = managedtype.managedtypeid     &lt;br /&gt;inner join monitor with(nolock)     &lt;br /&gt;on monitor.monitorid = state.monitorid and monitor.IsUnitMonitor = '1'     &lt;br /&gt;group by datepart(year, timegenerated), datepart(month, timegenerated), datepart(day, timegenerated), monitorname     &lt;br /&gt;order by datepart(year, timegenerated) DESC, datepart(month, timegenerated) DESC, datepart(day, timegenerated) DESC &lt;/p&gt;  &lt;p mce_keep="true"&gt;&amp;#160;&lt;/p&gt;  &lt;p mce_keep="true"&gt;&amp;#160;&lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;em&gt;&lt;font size="4"&gt;&lt;font color="#000080"&gt;&lt;strong&gt;P&lt;/strong&gt;&lt;strong&gt;erformance Signature Section:&lt;/strong&gt;&lt;/font&gt;&lt;/font&gt;&lt;/em&gt;&amp;#160;&lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;strong&gt;To find the rules collecting the most Performance Signature data in the database:&lt;/strong&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;select managementpack.MPName, ruleview.DisplayName,    &lt;br /&gt;count(*) AS TotalPerfSig     &lt;br /&gt;from performancesignaturedata with (nolock)     &lt;br /&gt;inner join performancesignaturehistory with (nolock)     &lt;br /&gt;on performancesignaturedata.performancesignaturehistoryid = performancesignaturehistory.performancesignaturehistoryid     &lt;br /&gt;inner join performancesignature with (nolock)     &lt;br /&gt;on performancesignaturehistory.performancesignatureid = performancesignature.performancesignatureid     &lt;br /&gt;inner join ruleview with (nolock)     &lt;br /&gt;on ruleview.id = performancesignature.learningruleid     &lt;br /&gt;inner join managementpack with(nolock)     &lt;br /&gt;on ruleview.managementpackid = managementpack.managementpackid     &lt;br /&gt;group by managementpack.mpname, ruleview.Displayname     &lt;br /&gt;order by TotalPerfSig DESC, managementpack.mpname, ruleview.DisplayName&lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;strong&gt;To find all Performance Signature Collection rules:&lt;/strong&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;select managementpack.mpname, rules.rulename    &lt;br /&gt;from performancesignature with (nolock)     &lt;br /&gt;inner join rules with (nolock)     &lt;br /&gt;on rules.ruleid = performancesignature.learningruleid     &lt;br /&gt;inner join managementpack with(nolock)     &lt;br /&gt;on rules.managementpackid = managementpack.managementpackid     &lt;br /&gt;group by managementpack.mpname, rules.rulename     &lt;br /&gt;order by managementpack.mpname, rules.rulename&lt;/p&gt;  &lt;p mce_keep="true"&gt;&amp;#160;&lt;/p&gt;  &lt;p mce_keep="true"&gt;&amp;#160;&lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;strong&gt;&lt;em&gt;&lt;font color="#000080" size="4"&gt;Management Pack info:&lt;/font&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;strong&gt;&lt;font color="#0000ff" size="2"&gt;Rules section:&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;strong&gt;To find a common rule name given a Rule ID name:&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;SELECT DisplayName from RuleView    &lt;br /&gt;where name = 'Microsoft.SystemCenter.GenericNTPerfMapperModule.FailedExecution.Alert'     &lt;br /&gt;-- change the 'name' value above to the Rule ID shown in an alert&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Rules per MP:&lt;/strong&gt;&lt;/p&gt;  &lt;p mce_keep="true"&gt;SELECT mp.MPName, COUNT(*) As RulesPerMP    &lt;br /&gt;FROM Rules r     &lt;br /&gt;INNER JOIN ManagementPack mp ON mp.ManagementPackID = r.ManagementPackID     &lt;br /&gt;GROUP BY mp.MPName     &lt;br /&gt;ORDER BY RulesPerMP DESC&lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;strong&gt;Rules per MP by category:&lt;/strong&gt;&lt;/p&gt;  &lt;p mce_keep="true"&gt;SELECT mp.MPName, r.RuleCategory, COUNT(*) As RulesPerMPPerCategory    &lt;br /&gt;FROM Rules r     &lt;br /&gt;INNER JOIN ManagementPack mp ON mp.ManagementPackID = r.ManagementPackID     &lt;br /&gt;GROUP BY mp.MPName, r.RuleCategory     &lt;br /&gt;ORDER BY RulesPerMPPerCategory DESC&amp;#160; &lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;strong&gt;To find all Rules per MP that generate an alert:&lt;/strong&gt;&amp;#160; &lt;/p&gt;  &lt;p mce_keep="true"&gt;declare @mpid as varchar(50)    &lt;br /&gt;select @mpid= managementpackid from managementpack where     &lt;br /&gt;mpName='Microsoft.Exchange.2007'     &lt;br /&gt;select rl.rulename,rl.ruleid,md.modulename from rules rl, module md     &lt;br /&gt;where md.managementpackid = @mpid     &lt;br /&gt;and rl.ruleid=md.parentid     &lt;br /&gt;and moduleconfiguration like '%&amp;lt;AlertLevel&amp;gt;50&amp;lt;/AlertLevel&amp;gt;%'&lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;strong&gt;To find all rules per MP with a given alert severity:&lt;/strong&gt;&lt;/p&gt;  &lt;p mce_keep="true"&gt;declare @mpid as varchar(50)    &lt;br /&gt;select @mpid= managementpackid from managementpack where     &lt;br /&gt;mpName='Microsoft.Exchange.Server.2003.Monitoring'     &lt;br /&gt;select rl.rulename,rl.ruleid,md.modulename from rules rl, module md     &lt;br /&gt;where md.managementpackid = @mpid     &lt;br /&gt;and rl.ruleid=md.parentid     &lt;br /&gt;and moduleconfiguration like '%&amp;lt;Severity&amp;gt;2&amp;lt;/Severity&amp;gt;%' &lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;strong&gt;Rules are stored in a table named Rules. This table has columns linking rules to classes and Management Packs. To find all rules in a Management Pack use the following query and substitute in the required Management Pack name: &lt;/strong&gt;&lt;/p&gt;  &lt;p mce_keep="true"&gt;SELECT * FROM Rules WHERE ManagementPackID = (SELECT ManagementPackID from ManagementPack WHERE MPName = 'Microsoft.Windows.Server.2003')&amp;#160; &lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;strong&gt;To find all rules targeted at a given class use the following query and substitute in the required class name: &lt;/strong&gt;&lt;/p&gt;  &lt;p mce_keep="true"&gt;SELECT * FROM Rules WHERE TargetManagedEntityType = (SELECT ManagedTypeId FROM ManagedType WHERE TypeName = 'Microsoft.Windows.Computer')&amp;#160; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font color="#0000ff" size="2"&gt;Monitors Section:&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;strong&gt;Monitors Per MP:&lt;/strong&gt;&lt;/p&gt;  &lt;p mce_keep="true"&gt;SELECT mp.MPName, COUNT(*) As MonitorsPerMPPerCategory    &lt;br /&gt;FROM Monitor m     &lt;br /&gt;INNER JOIN ManagementPack mp ON mp.ManagementPackID = m.ManagementPackID     &lt;br /&gt;GROUP BY mp.MPName     &lt;br /&gt;ORDER BY COUNT(*) Desc&lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;strong&gt;To find your Monitor by common name:&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;select * from Monitor m    &lt;br /&gt;Inner join LocalizedText LT on LT.ElementName = m.MonitorName     &lt;br /&gt;where LTValue = 'Monitor Common Name'&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;To find your Monitor by ID name:&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;select * from Monitor m    &lt;br /&gt;Inner join LocalizedText LT on LT.ElementName = m.MonitorName     &lt;br /&gt;where m.monitorname = 'Monitor ID name'&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;To find all monitors targeted at a specific class:&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;SELECT * FROM monitor WHERE TargetManagedEntityType = (SELECT ManagedTypeId FROM ManagedType WHERE TypeName = 'Microsoft.Windows.Computer') &lt;/p&gt;  &lt;p mce_keep="true"&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font color="#0000ff" size="2"&gt;Groups Section:&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;strong&gt;To find all groups for a given computer/object (change “computername” in the query below):&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;SELECT SourceMonitoringObjectDisplayName AS 'Group'    &lt;br /&gt;FROM RelationshipGenericView     &lt;br /&gt;WHERE TargetMonitoringObjectDisplayName like ('%&lt;font color="#ff0000"&gt;&lt;strong&gt;computername&lt;/strong&gt;&lt;/font&gt;%')     &lt;br /&gt;AND (SourceMonitoringObjectDisplayName IN     &lt;br /&gt;(SELECT ManagedEntityGenericView.DisplayName     &lt;br /&gt;FROM ManagedEntityGenericView INNER JOIN     &lt;br /&gt;(SELECT&amp;#160;&amp;#160;&amp;#160;&amp;#160; BaseManagedEntityId     &lt;br /&gt;FROM&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; BaseManagedEntity WITH (NOLOCK)     &lt;br /&gt;WHERE&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; (BaseManagedEntityId = TopLevelHostEntityId) AND (BaseManagedEntityId NOT IN     &lt;br /&gt;(SELECT&amp;#160;&amp;#160;&amp;#160;&amp;#160; R.TargetEntityId     &lt;br /&gt;FROM&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Relationship AS R WITH (NOLOCK) INNER JOIN     &lt;br /&gt;dbo.fn_ContainmentRelationshipTypes() AS CRT ON R.RelationshipTypeId = CRT.RelationshipTypeId     &lt;br /&gt;WHERE&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; (R.IsDeleted = 0)))) AS GetTopLevelEntities ON     &lt;br /&gt;GetTopLevelEntities.BaseManagedEntityId = ManagedEntityGenericView.Id INNER JOIN     &lt;br /&gt;(SELECT DISTINCT BaseManagedEntityId     &lt;br /&gt;FROM&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; TypedManagedEntity WITH (NOLOCK)     &lt;br /&gt;WHERE&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; (ManagedTypeId IN     &lt;br /&gt;(SELECT&amp;#160;&amp;#160;&amp;#160;&amp;#160; DerivedManagedTypeId     &lt;br /&gt;FROM dbo.fn_DerivedManagedTypes(dbo.fn_ManagedTypeId_Group()) AS fn_DerivedManagedTypes_1))) AS GetOnlyGroups ON     &lt;br /&gt;GetOnlyGroups.BaseManagedEntityId = ManagedEntityGenericView.Id))     &lt;br /&gt;ORDER BY 'Group'&lt;/p&gt;  &lt;p mce_keep="true"&gt;&amp;#160;&lt;/p&gt;  &lt;p mce_keep="true"&gt;&amp;#160;&lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;strong&gt;&lt;font color="#0000ff" size="2"&gt;Management Pack general:&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;strong&gt;To find all installed Management Packs and their version:&lt;/strong&gt;&lt;/p&gt;  &lt;p mce_keep="true"&gt;SELECT MPName, MPFriendlyName, MPVersion, MPIsSealed    &lt;br /&gt;FROM ManagementPack WITH(NOLOCK)     &lt;br /&gt;ORDER BY MPName&lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;strong&gt;Number of Views per Management Pack:&lt;/strong&gt;&lt;/p&gt;  &lt;p mce_keep="true"&gt;SELECT mp.MPName, v.ViewVisible, COUNT(*) As ViewsPerMP    &lt;br /&gt;FROM [Views] v     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; INNER JOIN ManagementPack mp ON mp.ManagementPackID = v.ManagementPackID     &lt;br /&gt;GROUP BY&amp;#160; mp.MPName, v.ViewVisible     &lt;br /&gt;ORDER BY v.ViewVisible DESC, COUNT(*) Desc&lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;strong&gt;How to gather all the views in the database, their ID, MP location, and view type:&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;select vv.id as 'View Id',    &lt;br /&gt;vv.displayname as 'View DisplayName',     &lt;br /&gt;vv.name as 'View Name',     &lt;br /&gt;vtv.DisplayName as 'ViewType',     &lt;br /&gt;mpv.FriendlyName as 'MP Name'     &lt;br /&gt;from ViewsView vv     &lt;br /&gt;inner join managementpackview mpv on mpv.id = vv.managementpackid     &lt;br /&gt;inner join viewtypeview vtv on vtv.id = vv.monitoringviewtypeid     &lt;br /&gt;--where mpv.FriendlyName like '%default%'     &lt;br /&gt;--where vv.displayname like '%operating%'     &lt;br /&gt;order by mpv.FriendlyName, vv.displayname&lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;strong&gt;Classes available in the DB:&lt;/strong&gt;&lt;/p&gt;  &lt;p mce_keep="true"&gt;SELECT * FROM ManagedType&lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;strong&gt;Classes available in the DB for Microsoft Windows type:&lt;/strong&gt;&lt;/p&gt;  &lt;p mce_keep="true"&gt;SELECT * FROM ManagedType WHERE TypeName LIKE 'Microsoft.Windows.%' &lt;strong&gt;&amp;#160;&lt;/strong&gt;&lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;strong&gt;Every property of every class:&lt;/strong&gt;&lt;/p&gt;  &lt;p mce_keep="true"&gt;SELECT * FROM MT_Computer&amp;#160; &lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;strong&gt;All instances of all types once discovered&lt;/strong&gt;&lt;/p&gt;  &lt;p mce_keep="true"&gt;SELECT * FROM BaseManagedEntity&lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;strong&gt;To get the state of every instance of a particular monitor the following query can be run, (replace &amp;lt;MonitorName&amp;gt; with the name of the monitor):&lt;/strong&gt;&lt;/p&gt;  &lt;p mce_keep="true"&gt;SELECT bme.FullName, bme.DisplayName, s.HealthState FROM state AS s, BaseManagedEntity as bme WHERE s.basemanagedentityid = bme.basemanagedentityid AND s.monitorid IN (SELECT MonitorId FROM Monitor WHERE MonitorName = =&amp;lt;MonitorName&amp;gt;‘)&lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;strong&gt;For example, this gets the state of the Microsoft.SQLServer.2005.DBEngine.ServiceMonitor for each instance of the SQL 2005 Database Engine class. &lt;/strong&gt;&lt;/p&gt;  &lt;p mce_keep="true"&gt;SELECT bme.FullName, bme.DisplayName, s.HealthState FROM state AS s, BaseManagedEntity as bme WHERE s.basemanagedentityid = bme.basemanagedentityid AND s.monitorid IN (SELECT MonitorId FROM Monitor WHERE MonitorName = 'Microsoft.SQLServer.2005.DBEngine.ServiceMonitor')&amp;#160; &lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;strong&gt;To find the overall state of any object in OpsMgr the following query should be used to return the state of the System.EntityState monitor: &lt;/strong&gt;&lt;/p&gt;  &lt;p mce_keep="true"&gt;SELECT bme.FullName, bme.DisplayName, s.HealthState FROM state AS s, mt_managedcomputer AS mt, BaseManagedEntity as bme WHERE s.basemanagedentityid = bme.basemanagedentityid AND s.monitorid IN (SELECT MonitorId FROM Monitor WHERE MonitorName = 'System.Health.EntityState')&amp;#160; &lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;strong&gt;The Alert table contains all alerts currently open in OpsMgr. This includes resolved alerts until they are groomed out of the database. To get all alerts across all instances of a given monitor use the following query and substitute in the required monitor name: &lt;/strong&gt;&lt;/p&gt;  &lt;p mce_keep="true"&gt;SELECT * FROM Alert WHERE ProblemID IN (SELECT MonitorId FROM Monitor WHERE MonitorName = 'Microsoft.SQLServer.2005.DBEngine.ServiceMonitor') &lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;strong&gt;To retrieve all alerts for all instances of a specific class use the following query and substitute in the required table name, in this example MT_DBEngine is used to look for SQL alerts: &lt;/strong&gt;&lt;/p&gt;  &lt;p mce_keep="true"&gt;SELECT * FROM Alert WHERE BaseManagedEntityID IN (SELECT BaseManagedEntityID from MT_DBEngine)&lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;strong&gt;To determine which table is currently being written to for event and performance data use the following query: &lt;/strong&gt;&lt;/p&gt;  &lt;p mce_keep="true"&gt;SELECT * FROM PartitionTables WHERE IsCurrent = 1&lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;strong&gt;To retrieve events generated by a specific rule use the following query and substitute in the required rule ID: &lt;/strong&gt;&lt;/p&gt;  &lt;p mce_keep="true"&gt;SELECT * FROM Event_00 WHERE RuleId = (SELECT RuleId FROM Rules WHERE RuleName = 'Microsoft.Windows.Server.2003.OperatingSystem.CleanShutdown.Collection ') &lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;strong&gt;To retrieve all events generated by rules in a specific Management Pack the following query can be used where the Management Pack name is substituted with the required value: &lt;/strong&gt;&lt;/p&gt;  &lt;p mce_keep="true"&gt;SELECT * FROM EventAllView WHERE RuleID IN (SELECT RuleId FROM Rules WHERE ManagementPackId = (SELECT ManagementPackId FROM ManagementPack WHERE MPName = 'Microsoft.Windows.Server.2003'))&lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;strong&gt;Number of instances of a type:&amp;#160; (Number of disks, computers, databases, etc that OpsMgr has discovered)&lt;/strong&gt;&amp;#160;&lt;/p&gt;  &lt;p mce_keep="true"&gt;SELECT mt.ManagedTypeID, mt.TypeName, COUNT(*) AS NumEntitiesByType    &lt;br /&gt;FROM BaseManagedEntity bme WITH(NOLOCK)     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; LEFT JOIN ManagedType mt WITH(NOLOCK) ON mt.ManagedTypeID = bme.BaseManagedTypeID     &lt;br /&gt;WHERE bme.IsDeleted = 0     &lt;br /&gt;GROUP BY mt.ManagedTypeID, mt.TypeName     &lt;br /&gt;ORDER BY COUNT(*) DESC&lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;strong&gt;To retrieve all performance data for a given rule in a readable format use the following query: &lt;/strong&gt;(change the r.RuleName value – get list from Rules Table)&lt;/p&gt;  &lt;p&gt;SELECT bme.Path, pc.ObjectName, pc.CounterName, ps.PerfmonInstanceName, pdav.SampleValue, pdav.TimeSampled    &lt;br /&gt;FROM PerformanceDataAllView AS pdav with (NOLOCK)     &lt;br /&gt;INNER JOIN PerformanceSource ps on pdav.PerformanceSourceInternalId = ps.PerformanceSourceInternalId     &lt;br /&gt;INNER JOIN PerformanceCounter pc on ps.PerformanceCounterId = pc.PerformanceCounterId     &lt;br /&gt;INNER JOIN Rules r on ps.RuleId = r.RuleId     &lt;br /&gt;INNER JOIN BaseManagedEntity bme on ps.BaseManagedEntityID = bme.BaseManagedEntityID     &lt;br /&gt;WHERE r.RuleName = 'Microsoft.Windows.Server.2003.LogicalDisk.FreeSpace.Collection'     &lt;br /&gt;GROUP BY PerfmonInstanceName, ObjectName, CounterName, SampleValue, TimeSampled, bme.path     &lt;br /&gt;ORDER BY bme.path, PerfmonInstanceName, TimeSampled&lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;strong&gt;To determine what discoveries are still associated with a computer – helpful in finding old stale computer objects in the console that are no longer agent managed, or desired.&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;select BME.FullName, DS.DiscoveryRuleID, D.DiscoveryName from typedmanagedentity TME    &lt;br /&gt;Join BaseManagedEntity BME ON TME.BaseManagedEntityId = BME.BaseManagedEntityId     &lt;br /&gt;JOIN DiscoverySourceToTypedManagedEntity DSTME ON TME.TypedManagedEntityID = DSTME.TypedManagedEntityID     &lt;br /&gt;JOIN DiscoverySource DS ON DS.DiscoverySourceID = DSTME.DiscoverySourceID     &lt;br /&gt;JOIN Discovery D ON DS.DiscoveryRuleID=D.DiscoveryID     &lt;br /&gt;Where BME.Fullname like '%ComputerName%'&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;To dump out all the rules and monitors that have overrides, and display the context and instance of the override:&lt;/strong&gt; &lt;/p&gt;  &lt;p&gt;select rv.DisplayName as WorkFlowName, OverrideName, mo.Value as OverrideValue,    &lt;br /&gt;mt.TypeName as OverrideScope, bme.DisplayName as InstanceName, bme.Path as InstancePath,     &lt;br /&gt;mpv.DisplayName as ORMPName, mo.LastModified as LastModified     &lt;br /&gt;from ModuleOverride mo     &lt;br /&gt;inner join managementpackview mpv on mpv.Id = mo.ManagementPackId     &lt;br /&gt;inner join ruleview rv on rv.Id = mo.ParentId     &lt;br /&gt;inner join ManagedType mt on mt.managedtypeid = mo.TypeContext     &lt;br /&gt;left join BaseManagedEntity bme on bme.BaseManagedEntityId = mo.InstanceContext     &lt;br /&gt;Where mpv.Sealed = 0     &lt;br /&gt;UNION ALL     &lt;br /&gt;select mv.DisplayName as WorkFlowName, OverrideName, mto.Value as OverrideValue,     &lt;br /&gt;mt.TypeName as OverrideScope, bme.DisplayName as InstanceName, bme.Path as InstancePath,     &lt;br /&gt;mpv.DisplayName as ORMPName, mto.LastModified as LastModified     &lt;br /&gt;from MonitorOverride mto     &lt;br /&gt;inner join managementpackview mpv on mpv.Id = mto.ManagementPackId     &lt;br /&gt;inner join monitorview mv on mv.Id = mto.MonitorId     &lt;br /&gt;inner join ManagedType mt on mt.managedtypeid = mto.TypeContext     &lt;br /&gt;left join BaseManagedEntity bme on bme.BaseManagedEntityId = mto.InstanceContext     &lt;br /&gt;Where mpv.Sealed = 0     &lt;br /&gt;Order By mpv.DisplayName&lt;/p&gt;  &lt;p mce_keep="true"&gt;&amp;#160;&lt;/p&gt;  &lt;p mce_keep="true"&gt;&amp;#160;&lt;/p&gt;  &lt;p mce_keep="true"&gt;&amp;#160;&lt;/p&gt;  &lt;p mce_keep="true"&gt;&amp;#160;&lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;strong&gt;&lt;em&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;strong&gt;&lt;em&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;strong&gt;&lt;em&gt;&lt;font color="#000080" size="4"&gt;Agent Info:&lt;/font&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;strong&gt;To find all managed computers that are currently down and not pingable:&lt;/strong&gt;&lt;/p&gt;  &lt;p mce_keep="true"&gt;SELECT bme.DisplayName,s.LastModified as LastModifiedUTC, dateadd(hh,-5,s.LastModified) as 'LastModifiedCST (GMT-5)'    &lt;br /&gt;FROM state AS s, BaseManagedEntity AS bme     &lt;br /&gt;WHERE s.basemanagedentityid = bme.basemanagedentityid     &lt;br /&gt;AND s.monitorid     &lt;br /&gt;IN (SELECT MonitorId FROM Monitor WHERE MonitorName = 'Microsoft.SystemCenter.HealthService.ComputerDown')     &lt;br /&gt;AND s.Healthstate = '3' AND bme.IsDeleted = '0'     &lt;br /&gt;ORDER BY s.Lastmodified DESC&lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;strong&gt;All managed computers count:&lt;/strong&gt;&amp;#160;&lt;/p&gt;  &lt;p mce_keep="true"&gt;SELECT COUNT(*) AS NumManagedComps FROM (    &lt;br /&gt;SELECT bme2.BaseManagedEntityID     &lt;br /&gt;FROM BaseManagedEntity bme WITH (NOLOCK)     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; INNER JOIN BaseManagedEntity bme2 WITH (NOLOCK) ON bme2.BaseManagedEntityID = bme.TopLevelHostEntityID     &lt;br /&gt;WHERE bme2.IsDeleted = 0     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; AND bme2.IsDeleted = 0     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; AND bme2.BaseManagedTypeID = (SELECT TOP 1 ManagedTypeID FROM ManagedType WHERE TypeName = 'microsoft.windows.computer')     &lt;br /&gt;GROUP BY bme2.BaseManagedEntityID     &lt;br /&gt;) AS Comps&lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;strong&gt;To find a computer name from a HealthServiceID (guid from the Agent proxy alerts)&lt;/strong&gt;&lt;/p&gt;  &lt;p mce_keep="true"&gt;select DisplayName, Path, basemanagedentityid from basemanagedentity where basemanagedentityid = 'guid'&lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;strong&gt;To view the agent patch list (all hotfixes applied to all agents)&lt;/strong&gt;&lt;/p&gt;  &lt;p mce_keep="true"&gt;select bme.path AS 'Agent Name', hs.patchlist AS 'Patch List' from MT_HealthService hs    &lt;br /&gt;inner join BaseManagedEntity bme on hs.BaseManagedEntityId = bme.BaseManagedEntityId     &lt;br /&gt;order by path&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;To view all agents missing a specific hotfix (change the KB number below to the one you are looking for):&lt;/strong&gt; &lt;/p&gt;  &lt;p&gt;select bme.path AS 'Agent Name', hs.patchlist AS 'Patch List' from MT_HealthService hs    &lt;br /&gt;inner join BaseManagedEntity bme on hs.BaseManagedEntityId = bme.BaseManagedEntityId     &lt;br /&gt;where hs.patchlist not like '%951380%'     &lt;br /&gt;order by path&lt;/p&gt;  &lt;p mce_keep="true"&gt;&amp;#160;&lt;/p&gt;  &lt;p mce_keep="true"&gt;&amp;#160;&lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;strong&gt;&lt;font color="#000080" size="4"&gt;&lt;em&gt;Misc OpsDB:&lt;/em&gt;&lt;/font&gt;&lt;/strong&gt;&amp;#160;&lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;strong&gt;To view grooming info:&lt;/strong&gt;&lt;/p&gt;  &lt;p mce_keep="true"&gt;SELECT * FROM PartitionAndGroomingSettings WITH (NOLOCK)&lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;strong&gt;Information on existing User Roles:&lt;/strong&gt;&lt;/p&gt;  &lt;p mce_keep="true"&gt;SELECT UserRoleName, IsSystem from userrole&lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;strong&gt;Operational DB version:&lt;/strong&gt;&lt;/p&gt;  &lt;p mce_keep="true"&gt;select DBVersion from __MOMManagementGroupInfo__&lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;strong&gt;To view all Run-As Profiles, their associated Run-As account, and associated agent name:&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;select srv.displayname as 'RunAs Profile Name',    &lt;br /&gt;srv.description as 'RunAs Profile Description',     &lt;br /&gt;cmss.name as 'RunAs Account Name',     &lt;br /&gt;cmss.description as 'RunAs Account Description',     &lt;br /&gt;cmss.username as 'RunAs Account Username',     &lt;br /&gt;cmss.domain as 'RunAs Account Domain',     &lt;br /&gt;mp.FriendlyName as 'RunAs Profile MP',     &lt;br /&gt;bme.displayname as 'HealthService'     &lt;br /&gt;from dbo.SecureStorageSecureReference sssr     &lt;br /&gt;inner join SecureReferenceView srv on srv.id = sssr.securereferenceID     &lt;br /&gt;inner join CredentialManagerSecureStorage cmss on cmss.securestorageelementID = sssr.securestorageelementID     &lt;br /&gt;inner join managementpackview mp on srv.ManagementPackId = mp.Id     &lt;br /&gt;inner join BaseManagedEntity bme on bme.basemanagedentityID = sssr.healthserviceid     &lt;br /&gt;order by srv.displayname&lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;strong&gt;To clean up old StateChangeEvent data for state changes that are older than the defined grooming period, such as monitors currently in a disabled, warning, or critical state.&amp;#160; By default we only groom monitor statechangeevents where the monitor is enabled and healthy at the time of grooming.&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;USE [OperationsManager]    &lt;br /&gt;GO     &lt;br /&gt;SET ANSI_NULLS ON     &lt;br /&gt;GO     &lt;br /&gt;SET QUOTED_IDENTIFIER ON     &lt;br /&gt;GO     &lt;br /&gt;BEGIN &lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; SET NOCOUNT ON &lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; DECLARE @Err int    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; DECLARE @Ret int     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; DECLARE @DaysToKeep tinyint     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; DECLARE @GroomingThresholdLocal datetime     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; DECLARE @GroomingThresholdUTC datetime     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; DECLARE @TimeGroomingRan datetime     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; DECLARE @MaxTimeGroomed datetime     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; DECLARE @RowCount int     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; SET @TimeGroomingRan = getutcdate() &lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; SELECT @GroomingThresholdLocal = dbo.fn_GroomingThreshold(DaysToKeep, getdate())    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; FROM dbo.PartitionAndGroomingSettings     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; WHERE ObjectName = 'StateChangeEvent' &lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; EXEC dbo.p_ConvertLocalTimeToUTC @GroomingThresholdLocal, @GroomingThresholdUTC OUT    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; SET @Err = @@ERROR &lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; IF (@Err &amp;lt;&amp;gt; 0)    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; BEGIN     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; GOTO Error_Exit     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; END &lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; SET @RowCount = 1&amp;#160;&amp;#160; &lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; -- This is to update the settings table    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; -- with the max groomed data     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; SELECT @MaxTimeGroomed = MAX(TimeGenerated)     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; FROM dbo.StateChangeEvent     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; WHERE TimeGenerated &amp;lt; @GroomingThresholdUTC &lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; IF @MaxTimeGroomed IS NULL    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; GOTO Success_Exit &lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; -- Instead of the FK DELETE CASCADE handling the deletion of the rows from    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; -- the MJS table, do it explicitly. Performance is much better this way.     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; DELETE MJS     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; FROM dbo.MonitoringJobStatus MJS     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; JOIN dbo.StateChangeEvent SCE     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ON SCE.StateChangeEventId = MJS.StateChangeEventId     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; JOIN dbo.State S WITH(NOLOCK)     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ON SCE.[StateId] = S.[StateId]     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; WHERE SCE.TimeGenerated &amp;lt; @GroomingThresholdUTC     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; AND S.[HealthState] in (0,1,2,3) &lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; SELECT @Err = @@ERROR    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; IF (@Err &amp;lt;&amp;gt; 0)     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; BEGIN     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; GOTO Error_Exit     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; END &lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; WHILE (@RowCount &amp;gt; 0)    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; BEGIN     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; -- Delete StateChangeEvents that are older than @GroomingThresholdUTC     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; -- We are doing this in chunks in separate transactions on     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; -- purpose: to avoid the transaction log to grow too large.     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; DELETE TOP (10000) SCE     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; FROM dbo.StateChangeEvent SCE     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; JOIN dbo.State S WITH(NOLOCK)     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ON SCE.[StateId] = S.[StateId]     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; WHERE TimeGenerated &amp;lt; @GroomingThresholdUTC     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; AND S.[HealthState] in (0,1,2,3) &lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; SELECT @Err = @@ERROR, @RowCount = @@ROWCOUNT &lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; IF (@Err &amp;lt;&amp;gt; 0)    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; BEGIN     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; GOTO Error_Exit     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; END     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; END&amp;#160;&amp;#160;&amp;#160; &lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; UPDATE dbo.PartitionAndGroomingSettings    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; SET GroomingRunTime = @TimeGroomingRan,     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; DataGroomedMaxTime = @MaxTimeGroomed     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; WHERE ObjectName = 'StateChangeEvent' &lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; SELECT @Err = @@ERROR, @RowCount = @@ROWCOUNT &lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; IF (@Err &amp;lt;&amp;gt; 0)    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; BEGIN     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; GOTO Error_Exit     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; END&amp;#160; &lt;br /&gt;Success_Exit:     &lt;br /&gt;Error_Exit:&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;END&lt;/p&gt;  &lt;p mce_keep="true"&gt;&amp;#160;&lt;/p&gt;  &lt;p mce_keep="true"&gt;&amp;#160;&lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;em&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;em&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;em&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;strong&gt;&lt;font size="5"&gt;Data Warehouse Database Section:&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;strong&gt;&lt;font size="5"&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;strong&gt;&lt;font size="4"&gt;&lt;em&gt;&lt;/em&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;strong&gt;&lt;font color="#000080" size="4"&gt;&lt;em&gt;&lt;/em&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;strong&gt;&lt;font color="#000080" size="4"&gt;&lt;em&gt;&lt;/em&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;strong&gt;&lt;font color="#000080" size="4"&gt;&lt;em&gt;Alerts Section:&lt;/em&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;strong&gt;To get all raw alert data from the data warehouse to build reports from:&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;select * from Alert.vAlertResolutionState ars    &lt;br /&gt;inner join Alert.vAlertDetail adt on ars.alertguid = adt.alertguid     &lt;br /&gt;inner join Alert.vAlert alt on ars.alertguid = alt.alertguid&lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;strong&gt;To view data on all alerts modified by a specific user:&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;select ars.alertguid, alertname, alertdescription, statesetbyuserid, resolutionstate, statesetdatetime, severity, priority, managedentityrowID, repeatcount    &lt;br /&gt;from Alert.vAlertResolutionState ars     &lt;br /&gt;inner join Alert.vAlert alt on ars.alertguid = alt.alertguid     &lt;br /&gt;where statesetbyuserid like '%username%'     &lt;br /&gt;order by statesetdatetime&lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;strong&gt;To view a count of all alerts closed by all users:&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;select statesetbyuserid, count(*) as 'Number of Alerts'    &lt;br /&gt;from Alert.vAlertResolutionState ars     &lt;br /&gt;where resolutionstate = '255'     &lt;br /&gt;group by statesetbyuserid     &lt;br /&gt;order by 'Number of Alerts' DESC&lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;strong&gt;&lt;font color="#000080" size="4"&gt;&lt;em&gt;&lt;/em&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;strong&gt;&lt;font color="#000080" size="4"&gt;&lt;em&gt;&lt;/em&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;strong&gt;&lt;font color="#000080" size="4"&gt;&lt;em&gt;Events Section:&lt;/em&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;strong&gt;To inspect total events in DW, and then break it down per day:&amp;#160; (this helps us know what we will be grooming out, and look for partitcular day event storms)&lt;/strong&gt; &lt;/p&gt;  &lt;p&gt;SELECT CASE WHEN(GROUPING(CONVERT(VARCHAR(20), DateTime, 101)) = 1)    &lt;br /&gt;THEN 'All Days'     &lt;br /&gt;ELSE CONVERT(VARCHAR(20), DateTime, 101) END AS DayAdded,     &lt;br /&gt;COUNT(*) AS NumEventsPerDay     &lt;br /&gt;FROM Event.vEvent     &lt;br /&gt;GROUP BY CONVERT(VARCHAR(20), DateTime, 101) WITH ROLLUP     &lt;br /&gt;ORDER BY DayAdded DESC &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Most Common Events by event number:&amp;#160; (This helps us know which event ID's are the most common in the database)&lt;/strong&gt; &lt;/p&gt;  &lt;p&gt;SELECT top 50 EventDisplayNumber, COUNT(*) AS TotalEvents    &lt;br /&gt;FROM Event.vEvent     &lt;br /&gt;GROUP BY EventDisplayNumber     &lt;br /&gt;ORDER BY TotalEvents DESC &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Most common events by event number and raw event description (this will take a very long time to run but it shows us not only event ID - but a description of the event to help understand which MP is the generating the noise)&lt;/strong&gt; &lt;/p&gt;  &lt;p&gt;SELECT top 50 EventDisplayNumber, Rawdescription, COUNT(*) AS TotalEvents    &lt;br /&gt;FROM Event.vEvent evt     &lt;br /&gt;inner join Event.vEventDetail evtd on evt.eventoriginid = evtd.eventoriginid     &lt;br /&gt;GROUP BY EventDisplayNumber, Rawdescription     &lt;br /&gt;ORDER BY TotalEvents DESC &lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;strong&gt;To view all event data in the DW for a given Event ID:&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;select * from Event.vEvent ev    &lt;br /&gt;inner join Event.vEventDetail evd on ev.eventoriginid = evd.eventoriginid     &lt;br /&gt;inner join Event.vEventParameter evp on ev.eventoriginid = evp.eventoriginid     &lt;br /&gt;where eventdisplaynumber = '528'&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;To search for all computers who have NOT logged a specific event in the DW:&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;select distinct elc.computername from Event.vEvent ev    &lt;br /&gt;inner join vEventLoggingComputer elc on elc.eventloggingcomputerrowid = ev.loggingcomputerrowid     &lt;br /&gt;where NOT eventdisplaynumber = '223'&lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;strong&gt;&lt;em&gt;&lt;font color="#000080" size="4"&gt;&lt;/font&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;strong&gt;&lt;em&gt;&lt;font color="#000080" size="4"&gt;&lt;/font&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;strong&gt;&lt;em&gt;&lt;font color="#000080" size="4"&gt;Performance Section:&lt;/font&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;strong&gt;&lt;em&gt;&lt;font color="#000080" size="4"&gt;&lt;/font&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Raw data – core query:&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;select top 10 *    &lt;br /&gt;from Perf.vPerfRaw pvpr     &lt;br /&gt;inner join vManagedEntity vme on pvpr.ManagedEntityRowId = vme.ManagedEntityRowId     &lt;br /&gt;inner join vPerformanceRuleInstance vpri on pvpr.PerformanceRuleInstanceRowId = vpri.PerformanceRuleInstanceRowId     &lt;br /&gt;inner join vPerformanceRule vpr on vpr.RuleRowId = vpri.RuleRowId &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Raw data - &lt;/strong&gt;&lt;strong&gt;More selective of “interesting” output data:&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;select top 10 Path, FullName, ObjectName, CounterName, InstanceName, SampleValue, DateTime    &lt;br /&gt;from Perf.vPerfRaw pvpr     &lt;br /&gt;inner join vManagedEntity vme on pvpr.ManagedEntityRowId = vme.ManagedEntityRowId     &lt;br /&gt;inner join vPerformanceRuleInstance vpri on pvpr.PerformanceRuleInstanceRowId = vpri.PerformanceRuleInstanceRowId     &lt;br /&gt;inner join vPerformanceRule vpr on vpr.RuleRowId = vpri.RuleRowId &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Raw data - &lt;/strong&gt;&lt;strong&gt;Scoped to a ComputerName (FQDN)&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;select top 10 Path, FullName, ObjectName, CounterName, InstanceName, SampleValue, DateTime    &lt;br /&gt;from Perf.vPerfRaw pvpr     &lt;br /&gt;inner join vManagedEntity vme on pvpr.ManagedEntityRowId = vme.ManagedEntityRowId     &lt;br /&gt;inner join vPerformanceRuleInstance vpri on pvpr.PerformanceRuleInstanceRowId = vpri.PerformanceRuleInstanceRowId     &lt;br /&gt;inner join vPerformanceRule vpr on vpr.RuleRowId = vpri.RuleRowId     &lt;br /&gt;WHERE Path = 'OMDB.opsmgr.net' &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Raw data - &lt;/strong&gt;&lt;strong&gt;Scoped to a Counter:&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;select top 10 Path, FullName, ObjectName, CounterName, InstanceName, SampleValue, DateTime    &lt;br /&gt;from Perf.vPerfRaw pvpr     &lt;br /&gt;inner join vManagedEntity vme on pvpr.ManagedEntityRowId = vme.ManagedEntityRowId     &lt;br /&gt;inner join vPerformanceRuleInstance vpri on pvpr.PerformanceRuleInstanceRowId = vpri.PerformanceRuleInstanceRowId     &lt;br /&gt;inner join vPerformanceRule vpr on vpr.RuleRowId = vpri.RuleRowId     &lt;br /&gt;WHERE CounterName = 'Private Bytes' &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Raw data - &lt;/strong&gt;&lt;strong&gt;Scoped to a Computer and Counter:&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;select top 10 Path, FullName, ObjectName, CounterName, InstanceName, SampleValue, DateTime    &lt;br /&gt;from Perf.vPerfRaw pvpr     &lt;br /&gt;inner join vManagedEntity vme on pvpr.ManagedEntityRowId = vme.ManagedEntityRowId     &lt;br /&gt;inner join vPerformanceRuleInstance vpri on pvpr.PerformanceRuleInstanceRowId = vpri.PerformanceRuleInstanceRowId     &lt;br /&gt;inner join vPerformanceRule vpr on vpr.RuleRowId = vpri.RuleRowId     &lt;br /&gt;WHERE CounterName = 'Private Bytes'     &lt;br /&gt;AND Path = 'OMDB.OPSMGR.NET' &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Raw data - &lt;/strong&gt;&lt;strong&gt;Ordered By DateTime:&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;select top 10 Path, FullName, ObjectName, CounterName, InstanceName, SampleValue, DateTime    &lt;br /&gt;from Perf.vPerfRaw pvpr     &lt;br /&gt;inner join vManagedEntity vme on pvpr.ManagedEntityRowId = vme.ManagedEntityRowId     &lt;br /&gt;inner join vPerformanceRuleInstance vpri on pvpr.PerformanceRuleInstanceRowId = vpri.PerformanceRuleInstanceRowId     &lt;br /&gt;inner join vPerformanceRule vpr on vpr.RuleRowId = vpri.RuleRowId     &lt;br /&gt;WHERE CounterName = 'Private Bytes'     &lt;br /&gt;AND Path = 'OMDB.OPSMGR.NET'     &lt;br /&gt;Order By DateTime DESC &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Raw data - &lt;/strong&gt;&lt;strong&gt;Modified DateTime relative to Central Time zone:&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;select top 10 Path, FullName, ObjectName, CounterName, InstanceName, SampleValue, dateadd(hh,-5,DateTime) as 'DateTime (GMT-5)'    &lt;br /&gt;from Perf.vPerfRaw pvpr     &lt;br /&gt;inner join vManagedEntity vme on pvpr.ManagedEntityRowId = vme.ManagedEntityRowId     &lt;br /&gt;inner join vPerformanceRuleInstance vpri on pvpr.PerformanceRuleInstanceRowId = vpri.PerformanceRuleInstanceRowId     &lt;br /&gt;inner join vPerformanceRule vpr on vpr.RuleRowId = vpri.RuleRowId     &lt;br /&gt;WHERE CounterName = 'Private Bytes'     &lt;br /&gt;AND Path = 'OMDB.OPSMGR.NET'     &lt;br /&gt;Order By DateTime DESC &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Raw data - &lt;/strong&gt;&lt;strong&gt;How to get all the possible optional data to modify these queries above, in a list:&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Select Distinct Path    &lt;br /&gt;from Perf.vPerfRaw pvpr     &lt;br /&gt;inner join vManagedEntity vme on pvpr.ManagedEntityRowId = vme.ManagedEntityRowId     &lt;br /&gt;inner join vPerformanceRuleInstance vpri on pvpr.PerformanceRuleInstanceRowId = vpri.PerformanceRuleInstanceRowId     &lt;br /&gt;inner join vPerformanceRule vpr on vpr.RuleRowId = vpri.RuleRowId &lt;/p&gt;  &lt;p&gt;Select Distinct Fullname    &lt;br /&gt;from Perf.vPerfRaw pvpr     &lt;br /&gt;inner join vManagedEntity vme on pvpr.ManagedEntityRowId = vme.ManagedEntityRowId     &lt;br /&gt;inner join vPerformanceRuleInstance vpri on pvpr.PerformanceRuleInstanceRowId = vpri.PerformanceRuleInstanceRowId     &lt;br /&gt;inner join vPerformanceRule vpr on vpr.RuleRowId = vpri.RuleRowId &lt;/p&gt;  &lt;p&gt;Select Distinct ObjectName    &lt;br /&gt;from Perf.vPerfRaw pvpr     &lt;br /&gt;inner join vManagedEntity vme on pvpr.ManagedEntityRowId = vme.ManagedEntityRowId     &lt;br /&gt;inner join vPerformanceRuleInstance vpri on pvpr.PerformanceRuleInstanceRowId = vpri.PerformanceRuleInstanceRowId     &lt;br /&gt;inner join vPerformanceRule vpr on vpr.RuleRowId = vpri.RuleRowId &lt;/p&gt;  &lt;p&gt;Select Distinct CounterName    &lt;br /&gt;from Perf.vPerfRaw pvpr     &lt;br /&gt;inner join vManagedEntity vme on pvpr.ManagedEntityRowId = vme.ManagedEntityRowId     &lt;br /&gt;inner join vPerformanceRuleInstance vpri on pvpr.PerformanceRuleInstanceRowId = vpri.PerformanceRuleInstanceRowId     &lt;br /&gt;inner join vPerformanceRule vpr on vpr.RuleRowId = vpri.RuleRowId &lt;/p&gt;  &lt;p&gt;Select Distinct InstanceName    &lt;br /&gt;from Perf.vPerfRaw pvpr     &lt;br /&gt;inner join vManagedEntity vme on pvpr.ManagedEntityRowId = vme.ManagedEntityRowId     &lt;br /&gt;inner join vPerformanceRuleInstance vpri on pvpr.PerformanceRuleInstanceRowId = vpri.PerformanceRuleInstanceRowId     &lt;br /&gt;inner join vPerformanceRule vpr on vpr.RuleRowId = vpri.RuleRowId&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;strong&gt;&lt;em&gt;&lt;font color="#000080" size="4"&gt;&lt;/font&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;strong&gt;&lt;font color="#000080" size="4"&gt;&lt;em&gt;&lt;/em&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;strong&gt;&lt;font color="#000080" size="4"&gt;&lt;em&gt;&lt;/em&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;strong&gt;&lt;font color="#000080" size="4"&gt;&lt;em&gt;&lt;/em&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;strong&gt;&lt;font color="#000080" size="4"&gt;&lt;em&gt;Grooming in the DataWarehouse:&lt;/em&gt;&lt;/font&gt;&amp;#160; &lt;/strong&gt;&lt;/p&gt;  &lt;p mce_keep="true"&gt;Grooming no longer uses SQL agent jobs.&amp;#160; Grooming is handled by scheduled stored procedures, that run much more frequently, which provides less impact than in the previous version.&amp;#160; &lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;strong&gt;Default grooming for the DW for each dataset, to examine Data Warehouse grooming settings:&lt;/strong&gt;&lt;/p&gt;  &lt;p mce_keep="true"&gt;SELECT AggregationIntervalDurationMinutes, BuildAggregationStoredProcedureName, GroomStoredProcedureName, MaxDataAgeDays, GroomingIntervalMinutes FROM StandardDatasetAggregation&lt;/p&gt;  &lt;p mce_keep="true"&gt;The first row is the interval in minutes.    &lt;br /&gt;NULL is raw data, 60 is hourly, and 1440 is daily.     &lt;br /&gt;The second and third row shows what data it is     &lt;br /&gt;MaxDataAgeDays has the retention period in days - this is the field to update if the administrator wants to lower the days of retention.     &lt;br /&gt;RAW alert – 400 days     &lt;br /&gt;RAW event – 100 days     &lt;br /&gt;RAW perf – 10 days (hourly and daily perf = 400 days)     &lt;br /&gt;RAW state – 180 days&amp;#160; (hourly and daily state = 400 days)&lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;strong&gt;Here is a better view of the current data retention in your data warehouse:&lt;/strong&gt;&lt;/p&gt;  &lt;p mce_keep="true"&gt;select ds.datasetDefaultName AS 'Dataset Name', sda.AggregationTypeId AS 'Agg Type 0=raw, 20=Hourly, 30=Daily', sda.MaxDataAgeDays AS 'Retention Time in Days'    &lt;br /&gt;from dataset ds, StandardDatasetAggregation sda     &lt;br /&gt;WHERE ds.datasetid = sda.datasetid     &lt;br /&gt;ORDER by ds.datasetDefaultName&lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;strong&gt;To view the number of days of total data of each type in the DW:&lt;/strong&gt;&lt;/p&gt;  &lt;p mce_keep="true"&gt;SELECT DATEDIFF(d, MIN(DWCreatedDateTime), GETDATE()) AS [Current] FROM Alert.vAlert    &lt;br /&gt;SELECT DATEDIFF(d, MIN(DateTime), GETDATE()) AS [Current] FROM Event.vEvent     &lt;br /&gt;SELECT DATEDIFF(d, MIN(DateTime), GETDATE()) AS [Current] FROM Perf.vPerfRaw     &lt;br /&gt;SELECT DATEDIFF(d, MIN(DateTime), GETDATE()) AS [Current] FROM Perf.vPerfHourly     &lt;br /&gt;SELECT DATEDIFF(d, MIN(DateTime), GETDATE()) AS [Current] FROM Perf.vPerfDaily     &lt;br /&gt;SELECT DATEDIFF(d, MIN(DateTime), GETDATE()) AS [Current] FROM State.vStateRaw     &lt;br /&gt;SELECT DATEDIFF(d, MIN(DateTime), GETDATE()) AS [Current] FROM State.vStateHourly     &lt;br /&gt;SELECT DATEDIFF(d, MIN(DateTime), GETDATE()) AS [Current] FROM State.vStateDaily&lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;strong&gt;To view the oldest and newest recorded timestamps of each data type in the DW:&lt;/strong&gt;&lt;/p&gt;  &lt;p mce_keep="true"&gt;select min(DateTime) from Event.vEvent    &lt;br /&gt;select max(DateTime) from Event.vEvent     &lt;br /&gt;select min(DateTime) from Perf.vPerfRaw     &lt;br /&gt;select max(DateTime) from Perf.vPerfRaw     &lt;br /&gt;select min(DWCreatedDateTime) from Alert.vAlert     &lt;br /&gt;select max(DWCreatedDateTime) from Alert.vAlert&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;strong&gt;&lt;em&gt;&lt;font color="#000080" size="4"&gt;AEM Queries (Data Warehouse):&lt;/font&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;strong&gt;Default query to return all RAW AEM data:&lt;/strong&gt;&amp;#160;&lt;/p&gt;  &lt;p mce_keep="true"&gt;select * from [CM].[vCMAemRaw] Rw    &lt;br /&gt;inner join dbo.AemComputer Computer on Computer.AemComputerRowID = Rw.AemComputerRowID     &lt;br /&gt;inner join dbo.AemUser Usr on Usr.AemUserRowId = Rw.AemUserRowId     &lt;br /&gt;inner join dbo.AemErrorGroup EGrp on Egrp.ErrorGroupRowId = Rw.ErrorGroupRowId     &lt;br /&gt;Inner join dbo.AemApplication App on App.ApplicationRowId = Egrp.ApplicationRowId&lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;strong&gt;Count the raw crashes per day:&lt;/strong&gt;&lt;/p&gt;  &lt;p mce_keep="true"&gt;SELECT CONVERT(char(10), DateTime, 101) AS &amp;quot;Crash Date (by Day)&amp;quot;, COUNT(*) AS &amp;quot;Number of Crashes&amp;quot;    &lt;br /&gt;FROM [CM].[vCMAemRaw]     &lt;br /&gt;GROUP BY CONVERT(char(10), DateTime, 101)     &lt;br /&gt;ORDER BY &amp;quot;Crash Date (by Day)&amp;quot; DESC&lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;b style="mso-bidi-font-weight: normal"&gt;&lt;span style="font-family: &amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;; font-size: 10pt"&gt;Count the total number of raw crashes in the DW database:&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;b style="mso-bidi-font-weight: normal"&gt;&lt;span style="font-family: &amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;; font-size: 10pt"&gt;&lt;/span&gt;&lt;/b&gt;&lt;span class="GramE"&gt;&lt;span style="font-family: &amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;; font-size: 10pt"&gt;select count(*) from CM.vCMAemRaw&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;; font-size: 10pt"&gt;&lt;span class="SpellE"&gt;&lt;/span&gt; &lt;/span&gt;&lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;strong&gt;Default grooming for the DW for the AEM dataset:&amp;#160; (Aggregated data kept for 400 days, RAW 30 days by default)&lt;/strong&gt;&lt;/p&gt;  &lt;p mce_keep="true"&gt;SELECT AggregationTypeID, BuildAggregationStoredProcedureName, GroomStoredProcedureName, MaxDataAgeDays, GroomingIntervalMinutes    &lt;br /&gt;FROM StandardDatasetAggregation WHERE BuildAggregationStoredProcedureName = 'AemAggregate'&lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p mce_keep="true"&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p mce_keep="true"&gt;   &lt;br /&gt;&lt;/p&gt; &lt;strong&gt;&lt;/strong&gt;  &lt;p mce_keep="true"&gt;&lt;em&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;strong&gt;&lt;font color="#000000" size="5"&gt;Misc Section:&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;strong&gt;Simple query to display large tables, to determine what is taking up space in the database:&lt;/strong&gt;&lt;/p&gt;  &lt;p mce_keep="true"&gt;SELECT so.name,    &lt;br /&gt;8 * Sum(CASE WHEN si.indid IN (0, 1) THEN si.reserved END) AS data_kb,     &lt;br /&gt;Coalesce(8 * Sum(CASE WHEN si.indid NOT IN (0, 1, 255) THEN si.reserved END), 0) AS index_kb,     &lt;br /&gt;Coalesce(8 * Sum(CASE WHEN si.indid IN (255) THEN si.reserved END), 0) AS blob_kb     &lt;br /&gt;FROM dbo.sysobjects AS so JOIN dbo.sysindexes AS si ON (si.id = so.id)     &lt;br /&gt;WHERE 'U' = so.type GROUP BY so.name&amp;#160; ORDER BY data_kb DESC&lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;strong&gt;Is SQL broker enabled?&lt;/strong&gt;&lt;/p&gt;  &lt;p mce_keep="true"&gt;SELECT is_broker_enabled FROM sys.databases WHERE name = 'OperationsManager'&lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;strong&gt;How to identify your version of SQL server:&lt;/strong&gt;&lt;/p&gt;  &lt;p mce_keep="true"&gt;SELECT&amp;#160; SERVERPROPERTY('productversion'), SERVERPROPERTY ('productlevel'), SERVERPROPERTY ('edition')&lt;/p&gt;  &lt;p mce_keep="true"&gt;SQL 2005:    &lt;br /&gt;SQL Server 2005 RTM&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 2005.90.1399     &lt;br /&gt;SQL Server 2005 SP1&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 2005.90.2047     &lt;br /&gt;SQL Server 2005 SP1 plus 918222&amp;#160; 2005.90.2153     &lt;br /&gt;SQL Server 2005 SP2&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 2005.90.3042&lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;strong&gt;How to identify your version of OpsMgr 2007:&lt;/strong&gt;&lt;/p&gt;  &lt;p mce_keep="true"&gt;RTM:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 6.0.5000.0&lt;/p&gt;  &lt;p mce_keep="true"&gt;SP1-RC:&amp;#160;&amp;#160;&amp;#160;&amp;#160; 6.0.6246.0&lt;/p&gt;  &lt;p mce_keep="true"&gt;SP1:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 6.0.6278.0&lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;b&gt;&lt;em&gt;To get better performance manually:&lt;/em&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Update Statistics (will help speed up reports and takes less time than a full reindex):&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;EXEC sp_updatestats&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Show index fragmentation (to determine how badly you need a reindex – logical scan frag &amp;gt; 10% = bad. Scan density below 80 = bad):&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;DBCC SHOWCONTIG&lt;/p&gt;  &lt;p&gt;DBCC SHOWCONTIG WITH FAST (less data than above – in case you don’t have time)&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Reindex the database:&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;USE OperationsManager    &lt;br /&gt;go     &lt;br /&gt;SET ANSI_NULLS ON     &lt;br /&gt;SET ANSI_PADDING ON     &lt;br /&gt;SET ANSI_WARNINGS ON     &lt;br /&gt;SET ARITHABORT ON     &lt;br /&gt;SET CONCAT_NULL_YIELDS_NULL ON     &lt;br /&gt;SET QUOTED_IDENTIFIER ON     &lt;br /&gt;SET NUMERIC_ROUNDABORT OFF     &lt;br /&gt;EXEC SP_MSForEachTable &amp;quot;Print 'Reindexing '+'?' DBCC DBREINDEX ('?')&amp;quot;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Table by table:&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;DBCC DBREINDEX (‘TableName’)&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Query to view the index job history on domain tables in the databases:&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;select *    &lt;br /&gt;from DomainTable dt     &lt;br /&gt;inner join DomainTableIndexOptimizationHistory dti     &lt;br /&gt;on dt.domaintablerowID = dti.domaintableindexrowID     &lt;br /&gt;ORDER BY optimizationdurationseconds DESC&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Query to view the update statistics job history on domain tables in the databases:&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;select *    &lt;br /&gt;from DomainTable dt     &lt;br /&gt;inner join DomainTableStatisticsUpdateHistory dti     &lt;br /&gt;on dt.domaintablerowID = dti.domaintablerowID     &lt;br /&gt;ORDER BY UpdateDurationSeconds DESC&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Data Warehouse query to examine the index and statistics history - run the following query for the Alert, Event, Perf, and State tables (these are non-domain tables):&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;select basetablename, optimizationstartdatetime, optimizationdurationseconds,    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; beforeavgfragmentationinpercent, afteravgfragmentationinpercent,     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; optimizationmethod, onlinerebuildlastperformeddatetime     &lt;br /&gt;from StandardDatasetOptimizationHistory sdoh     &lt;br /&gt;inner join StandardDatasetAggregationStorageIndex sdasi     &lt;br /&gt;on sdoh.StandardDatasetAggregationStorageIndexRowId = sdasi.StandardDatasetAggregationStorageIndexRowId     &lt;br /&gt;inner join StandardDatasetAggregationStorage sdas     &lt;br /&gt;on sdasi.StandardDatasetAggregationStorageRowId = sdas.StandardDatasetAggregationStorageRowId     &lt;br /&gt;ORDER BY optimizationdurationseconds DESC&lt;/p&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=2199747" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/kevinholman/archive/tags/query/default.aspx">query</category><category domain="http://blogs.technet.com/kevinholman/archive/tags/TSQL/default.aspx">TSQL</category></item></channel></rss>