{"id":527,"date":"2011-10-04T02:42:00","date_gmt":"2011-10-04T02:42:00","guid":{"rendered":"\/blogs\/joe\/post\/Under-the-covers-with-sp_server_diagnostics-data-(Part-I).aspx"},"modified":"2011-10-04T02:42:00","modified_gmt":"2011-10-04T02:42:00","slug":"under-the-covers-with-sp_server_diagnostics-data-part-i","status":"publish","type":"post","link":"https:\/\/www.sqlskills.com\/blogs\/joe\/under-the-covers-with-sp_server_diagnostics-data-part-i\/","title":{"rendered":"Under the covers with sp_server_diagnostics data (Part I)"},"content":{"rendered":"<p><font face=\"Times New Roman\" size=\"3\"><\/font><\/p>\n<p style=\"margin: 0in 0in 10pt\" class=\"MsoNormal\">\n<font face=\"Calibri\"><font size=\"3\"><em>This post covers examples from Denali CTP3, version 11.0.1440<\/em>.<\/font><\/font>\n<\/p>\n<p><font face=\"Times New Roman\" size=\"3\"><\/font><\/p>\n<p style=\"margin: 0in 0in 10pt\" class=\"MsoNormal\">\n<font size=\"3\"><font face=\"Calibri\">In this post I&rsquo;ll be discussing the SQL Server health related output from Denali&rsquo;s <em>sys.sp_server_diagnostics<\/em> system stored procedure. <span>&nbsp;<\/span>This system stored procedure is used to check Denali SQL Server health status behind-the-scenes for both failover cluster instances and availability groups. <span>&nbsp;<\/span><\/font><\/font>\n<\/p>\n<p><font face=\"Times New Roman\" size=\"3\"><\/font><\/p>\n<p style=\"margin: 0in 0in 10pt\" class=\"MsoNormal\">\n<font size=\"3\"><font face=\"Calibri\">While this procedure is used in service of base functionality, you can still call sys.sp_server_diagnostics directly yourself and find some pretty useful information embedded in the [data] column.<span>&nbsp; <\/span>This is information that you could gather using other methods as well, but if you&rsquo;re in a situation where you don&rsquo;t have access to your script toolbox or if there are no existing data collection processes running on the SQL Server instance you have a quick way to snapshot the health of the SQL Server instance at a specific point in time.<span>&nbsp; <\/span><\/font><\/font>\n<\/p>\n<p><font face=\"Times New Roman\" size=\"3\"><\/font><\/p>\n<p style=\"margin: 0in 0in 10pt\" class=\"MsoNormal\">\n<font face=\"Calibri\"><font size=\"3\">While this procedure is documented in Books Online, the output it returns may change in the future and so you should avoid creating application dependencies on it.<span>&nbsp; <\/span><span>&nbsp;<\/span>With that said, I think this is a great out-of-the-box tool and I can definitely see using it in the future to supplement other data sources or serve as a quick assessment in a pinch&hellip;<\/font><\/font>\n<\/p>\n<p><font face=\"Times New Roman\" size=\"3\"><\/font><\/p>\n<p style=\"margin: 0in 0in 10pt\" class=\"MsoNormal\">\n<font size=\"3\"><font face=\"Calibri\">For this post I&rsquo;ll capture a single execution of the stored procedure into a new table in tempdb:<\/font><\/font>\n<\/p>\n<p><font face=\"Times New Roman\" size=\"3\"><\/font><\/p>\n<p style=\"margin: 0in 0in 0pt 0.5in\" class=\"MsoNormal\">\n<font size=\"3\"><font face=\"Calibri\">USE tempdb<\/font><\/font>\n<\/p>\n<p><font face=\"Times New Roman\" size=\"3\"><\/font><\/p>\n<p style=\"margin: 0in 0in 0pt 0.5in\" class=\"MsoNormal\">\n<font face=\"Calibri\" size=\"3\"><\/font>\n<\/p>\n<p><font face=\"Times New Roman\" size=\"3\"><\/font><\/p>\n<p style=\"margin: 0in 0in 0pt 0.5in\" class=\"MsoNormal\">\n<font size=\"3\"><font face=\"Calibri\">CREATE TABLE dbo.tmp_sp_server_diagnostics<\/font><\/font>\n<\/p>\n<p><font face=\"Times New Roman\" size=\"3\"><\/font><\/p>\n<p style=\"margin: 0in 0in 0pt 0.5in\" class=\"MsoNormal\">\n<font face=\"Calibri\"><font size=\"3\"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>([create_time] datetime,<\/font><\/font>\n<\/p>\n<p><font face=\"Times New Roman\" size=\"3\"><\/font><\/p>\n<p style=\"margin: 0in 0in 0pt 0.5in\" class=\"MsoNormal\">\n<font face=\"Calibri\"><font size=\"3\"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><span>&nbsp;<\/span>[component_name] nvarchar(20),<\/font><\/font>\n<\/p>\n<p><font face=\"Times New Roman\" size=\"3\"><\/font><\/p>\n<p style=\"margin: 0in 0in 0pt 0.5in\" class=\"MsoNormal\">\n<font face=\"Calibri\"><font size=\"3\"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><span>&nbsp;<\/span>[state] int,<\/font><\/font>\n<\/p>\n<p><font face=\"Times New Roman\" size=\"3\"><\/font><\/p>\n<p style=\"margin: 0in 0in 0pt 0.5in\" class=\"MsoNormal\">\n<font face=\"Calibri\"><font size=\"3\"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><span>&nbsp;<\/span>[state_desc] nvarchar(20),<\/font><\/font>\n<\/p>\n<p><font face=\"Times New Roman\" size=\"3\"><\/font><\/p>\n<p style=\"margin: 0in 0in 0pt 0.5in\" class=\"MsoNormal\">\n<font face=\"Calibri\"><font size=\"3\"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><span>&nbsp;<\/span>[data] xml)<\/font><\/font>\n<\/p>\n<p><font face=\"Times New Roman\" size=\"3\"><\/font><\/p>\n<p style=\"margin: 0in 0in 0pt 0.5in\" class=\"MsoNormal\">\n<font face=\"Calibri\" size=\"3\"><\/font>\n<\/p>\n<p><font face=\"Times New Roman\" size=\"3\"><\/font><\/p>\n<p style=\"margin: 0in 0in 0pt 0.5in\" class=\"MsoNormal\">\n<font size=\"3\"><font face=\"Calibri\">INSERT dbo.tmp_sp_server_diagnostics<\/font><\/font>\n<\/p>\n<p><font face=\"Times New Roman\" size=\"3\"><\/font><\/p>\n<p style=\"margin: 0in 0in 0pt 0.5in\" class=\"MsoNormal\">\n<font size=\"3\"><font face=\"Calibri\">EXEC sys.sp_server_diagnostics<\/font><\/font>\n<\/p>\n<p><font face=\"Times New Roman\" size=\"3\"><\/font><\/p>\n<p style=\"margin: 0in 0in 0pt 0.5in\" class=\"MsoNormal\">\n<font face=\"Calibri\" size=\"3\"><\/font>\n<\/p>\n<p><font face=\"Times New Roman\" size=\"3\"><\/font><\/p>\n<p style=\"margin: 0in 0in 10pt\" class=\"MsoNormal\">\n<font face=\"Calibri\" size=\"3\">As an aside, I&rsquo;m using the xml data type for the &ldquo;data&rdquo; column in the tmp_sp_server_diagnostics table &ndash; but that is <em>not<\/em> its actual data type according to Books Online (which states that it is varchar(max)). Aaron Bertrand (<\/font><a href=\"http:\/\/sqlblog.com\/blogs\/aaron_bertrand\/\" target=\"_blank\" class=\"broken_link\"><font face=\"Calibri\" size=\"3\" color=\"#0000ff\">b<\/font><\/a><font face=\"Calibri\" size=\"3\"> | <\/font><a href=\"https:\/\/twitter.com\/#!\/aaronbertrand\" target=\"_blank\"><font face=\"Calibri\" size=\"3\" color=\"#0000ff\">t<\/font><\/a><font face=\"Calibri\" size=\"3\">) actually posted a&nbsp;<a href=\"http:\/\/connect.microsoft.com\/SQLServer\/feedback\/details\/625262\/denali-engine-sys-sp-server-diagnostics-should-return-xml-data-as-xml\" target=\"_blank\">Microsoft Connect item<\/a> regarding<\/font><font face=\"Calibri\"><font size=\"3\">&nbsp;this observation several months ago, discussing the merits of using the xml data type instead (one advantage being that the format is easier to display in SSMS). And if I designate the [data] column as xml for the destination output table, it implicitly converts upon INSERT just fine.<\/font><\/font>\n<\/p>\n<p><font face=\"Times New Roman\" size=\"3\"><\/font><\/p>\n<p style=\"margin: 0in 0in 10pt\" class=\"MsoNormal\">\n<font size=\"3\"><font face=\"Calibri\">The following query returns the 5 rows (without doing anything fancy with the XML value):<\/font><\/font>\n<\/p>\n<p><font face=\"Times New Roman\" size=\"3\"><\/font><\/p>\n<p style=\"margin: 0in 0in 0pt 0.5in\" class=\"MsoNormal\">\n<font size=\"3\"><font face=\"Calibri\">SELECT create_time, component_name, state, state_desc, data <\/font><\/font>\n<\/p>\n<p><font face=\"Times New Roman\" size=\"3\"><\/font><\/p>\n<p style=\"margin: 0in 0in 0pt 0.5in\" class=\"MsoNormal\">\n<font size=\"3\"><font face=\"Calibri\">FROM dbo.tmp_sp_server_diagnostics<\/font><\/font>\n<\/p>\n<p><font face=\"Times New Roman\" size=\"3\"><\/font><\/p>\n<p style=\"margin: 0in 0in 0pt 0.5in\" class=\"MsoNormal\">\n<font face=\"Calibri\" size=\"3\"><\/font>\n<\/p>\n<p><font face=\"Times New Roman\" size=\"3\"><\/font><\/p>\n<p style=\"margin: 0in 0in 10pt\" class=\"MsoNormal\">\n<font size=\"3\"><font face=\"Calibri\">This returned:<\/font><\/font>\n<\/p>\n<p><font face=\"Times New Roman\" size=\"3\"><\/font><\/p>\n<blockquote>\n<p style=\"margin: 0in 0in 0pt\" class=\"MsoNormal\">\n\t<font face=\"Calibri\"><font size=\"3\">create_time<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>component_name<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>state<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>state_desc<\/font><\/font>\n\t<\/p>\n<p>\t<font face=\"Times New Roman\" size=\"3\"><\/font><\/p>\n<p style=\"margin: 0in 0in 0pt\" class=\"MsoNormal\">\n\t<font face=\"Calibri\"><font size=\"3\">2011-10-04 07:57:07.503<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>system<span>&nbsp; <\/span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>1<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>clean<\/font><\/font>\n\t<\/p>\n<p>\t<font face=\"Times New Roman\" size=\"3\"><\/font><\/p>\n<p style=\"margin: 0in 0in 0pt\" class=\"MsoNormal\">\n\t<font face=\"Calibri\"><font size=\"3\">2011-10-04 07:57:07.503<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>resource<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>1<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>clean<\/font><\/font>\n\t<\/p>\n<p>\t<font face=\"Times New Roman\" size=\"3\"><\/font><\/p>\n<p style=\"margin: 0in 0in 0pt\" class=\"MsoNormal\">\n\t<font face=\"Calibri\"><font size=\"3\">2011-10-04 07:57:07.503<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>query_processing<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>1<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>clean<\/font><\/font>\n\t<\/p>\n<p>\t<font face=\"Times New Roman\" size=\"3\"><\/font><\/p>\n<p style=\"margin: 0in 0in 0pt\" class=\"MsoNormal\">\n\t<font face=\"Calibri\"><font size=\"3\">2011-10-04 07:57:07.503<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>io_subsystem<span>&nbsp;&nbsp;&nbsp;&nbsp; <\/span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>1<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>clean<\/font><\/font>\n\t<\/p>\n<p>\t<font face=\"Times New Roman\" size=\"3\"><\/font><\/p>\n<p style=\"margin: 0in 0in 0pt\" class=\"MsoNormal\">\n\t<font face=\"Calibri\"><font size=\"3\">2011-10-04 07:57:07.503<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>events<span>&nbsp;&nbsp; <\/span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>0<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>unknown<\/font><\/font>\n\t<\/p>\n<p>\t<font face=\"Times New Roman\" size=\"3\"><\/font>\n<\/p><\/blockquote>\n<p style=\"margin: 0in 0in 0pt\" class=\"MsoNormal\">\n<font face=\"Calibri\" size=\"3\"><\/font>\n<\/p>\n<p><font face=\"Times New Roman\" size=\"3\"><\/font><\/p>\n<p style=\"margin: 0in 0in 0pt\" class=\"MsoNormal\">\n<font size=\"3\"><font face=\"Calibri\">I intentionally left off the xml [data] column off the previous result set as this is what I&rsquo;ll be walking through over this post and the next. Each row represents a different monitored &ldquo;component&rdquo; &ndash; covering system, resource, query processing, IO subsystem and events. I won&rsquo;t recap BOL on what each of the rows reflects &ndash; but instead I&rsquo;ll jump into the output and call out why this is useful.<\/font><\/font>\n<\/p>\n<p><font face=\"Times New Roman\" size=\"3\"><\/font><\/p>\n<p style=\"margin: 0in 0in 0pt 0.5in\" class=\"MsoNormal\">\n<font face=\"Calibri\" size=\"3\"><\/font>\n<\/p>\n<p><font face=\"Times New Roman\" size=\"3\"><\/font><\/p>\n<p style=\"margin: 0in 0in 10pt\" class=\"MsoNormal\">\n<font face=\"Calibri\"><font size=\"3\">Since the [data] column was captured in the xml data type, clicking on any value in SQL Server Management Studio should bring you to the output in a separate, formatted window.<span>&nbsp; <\/span>So on my system, the first row was for the &ldquo;system&rdquo; component, which had a value as follows:<\/font><\/font>\n<\/p>\n<p><font face=\"Times New Roman\" size=\"3\"><\/font><\/p>\n<p style=\"margin: 0in 0in 10pt 0.5in\" class=\"MsoNormal\">\n<font size=\"3\"><font face=\"Calibri\">&lt;system sqlCpuUtilization=&quot;0&quot; systemCpuUtilization=&quot;4&quot; pageFaults=&quot;2654&quot; nonYieldingTasksReported=&quot;0&quot; intervalDumpRequests=&quot;0&quot; totalDumpRequests=&quot;0&quot; writeAccessViolationCount=&quot;0&quot; isAccessViolationOccurred=&quot;0&quot; latchWarnings=&quot;0&quot; sickSpinlockTypeAfterAv=&quot;none&quot; sickSpinlockType=&quot;none&quot; spinlockBackoffs=&quot;0&quot;\/&gt;<\/font><\/font>\n<\/p>\n<p><font face=\"Times New Roman\" size=\"3\"><\/font><\/p>\n<p style=\"margin: 0in 0in 10pt\" class=\"MsoNormal\">\n<font size=\"3\"><font face=\"Calibri\">Based on the naming conventions we&rsquo;re looking at &#8211; the following categories of information for the &ldquo;system&rdquo; component data get surfaced:<\/font><\/font>\n<\/p>\n<p><font face=\"Times New Roman\" size=\"3\"><\/font><\/p>\n<p style=\"text-indent: -0.25in; margin: 0in 0in 0pt 0.5in\" class=\"MsoListParagraphCxSpFirst\">\n<span style=\"font-family: Symbol\"><span><font size=\"3\">&middot;<\/font><span style=\"font: 7pt 'Times New Roman'; font-size-adjust: none; font-stretch: normal\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><\/span><\/span><font face=\"Calibri\"><font size=\"3\">CPU utilization (sqlCpuUtilization, systemCpuUtilization)<\/font><\/font>\n<\/p>\n<p><font face=\"Times New Roman\" size=\"3\"><\/font><\/p>\n<p style=\"text-indent: -0.25in; margin: 0in 0in 0pt 0.5in\" class=\"MsoListParagraphCxSpMiddle\">\n<span style=\"font-family: Symbol\"><span><font size=\"3\">&middot;<\/font><span style=\"font: 7pt 'Times New Roman'; font-size-adjust: none; font-stretch: normal\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><\/span><\/span><font face=\"Calibri\"><font size=\"3\">Page Faults (pageFaults)<\/font><\/font>\n<\/p>\n<p><font face=\"Times New Roman\" size=\"3\"><\/font><\/p>\n<p style=\"text-indent: -0.25in; margin: 0in 0in 0pt 0.5in\" class=\"MsoListParagraphCxSpMiddle\">\n<span style=\"font-family: Symbol\"><span><font size=\"3\">&middot;<\/font><span style=\"font: 7pt 'Times New Roman'; font-size-adjust: none; font-stretch: normal\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><\/span><\/span><font face=\"Calibri\"><font size=\"3\">Non Yielding tasks (nonYieldingTasksReported)<\/font><\/font>\n<\/p>\n<p><font face=\"Times New Roman\" size=\"3\"><\/font><\/p>\n<p style=\"text-indent: -0.25in; margin: 0in 0in 0pt 0.5in\" class=\"MsoListParagraphCxSpMiddle\">\n<span style=\"font-family: Symbol\"><span><font size=\"3\">&middot;<\/font><span style=\"font: 7pt 'Times New Roman'; font-size-adjust: none; font-stretch: normal\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><\/span><\/span><font face=\"Calibri\"><font size=\"3\">Dumps (intervalDumpRequests, totalDumpRequests)<\/font><\/font>\n<\/p>\n<p><font face=\"Times New Roman\" size=\"3\"><\/font><\/p>\n<p style=\"text-indent: -0.25in; margin: 0in 0in 0pt 0.5in\" class=\"MsoListParagraphCxSpMiddle\">\n<span style=\"font-family: Symbol\"><span><font size=\"3\">&middot;<\/font><span style=\"font: 7pt 'Times New Roman'; font-size-adjust: none; font-stretch: normal\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><\/span><\/span><font face=\"Calibri\"><font size=\"3\">Access Violations (writeAccessViolationCount, isAccessViolationOccurred )<\/font><\/font>\n<\/p>\n<p><font face=\"Times New Roman\" size=\"3\"><\/font><\/p>\n<p style=\"text-indent: -0.25in; margin: 0in 0in 0pt 0.5in\" class=\"MsoListParagraphCxSpMiddle\">\n<span style=\"font-family: Symbol\"><span><font size=\"3\">&middot;<\/font><span style=\"font: 7pt 'Times New Roman'; font-size-adjust: none; font-stretch: normal\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><\/span><\/span><font face=\"Calibri\"><font size=\"3\">Latches (latchWarnings)<\/font><\/font>\n<\/p>\n<p><font face=\"Times New Roman\" size=\"3\"><\/font><\/p>\n<p style=\"text-indent: -0.25in; margin: 0in 0in 10pt 0.5in\" class=\"MsoListParagraphCxSpLast\">\n<span style=\"font-family: Symbol\"><span><font size=\"3\">&middot;<\/font><span style=\"font: 7pt 'Times New Roman'; font-size-adjust: none; font-stretch: normal\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><\/span><\/span><font face=\"Calibri\"><font size=\"3\">Spinlock activity (spinlockBackoffs, sickSpinlockType, sickSpinlockTypeAfterAv )<\/font><\/font>\n<\/p>\n<p><font face=\"Times New Roman\" size=\"3\"><\/font><\/p>\n<p style=\"margin: 0in 0in 10pt\" class=\"MsoNormal\">\n<font face=\"Calibri\"><font size=\"3\">So basically we&rsquo;re looking at a bundling of occurrence counts and current values that would be quite helpful to a support engineer.<span>&nbsp; <\/span>I&rsquo;ll be interested to find out what rules are used to assess &ldquo;clean&rdquo; state for the system component.<span>&nbsp; <\/span>I imagine this can be reversed engineered through various scenarios, but hopefully the logic will be revealed directly.<span>&nbsp; <\/span>The actual text of sp_server_diagnostics is &ldquo;(server internal)&rdquo; if you try looking at the definition.<\/font><\/font>\n<\/p>\n<p><font face=\"Times New Roman\" size=\"3\"><\/font><\/p>\n<p style=\"margin: 0in 0in 10pt\" class=\"MsoNormal\">\n<font size=\"3\"><font face=\"Calibri\">Moving along, for the &ldquo;resource&rdquo; component data there are three areas of interest in the XML output. The first is around general resource monitoring:<\/font><\/font>\n<\/p>\n<p><font face=\"Times New Roman\" size=\"3\"><\/font><\/p>\n<p style=\"margin: 0in 0in 10pt 0.5in\" class=\"MsoNormal\">\n<font size=\"3\"><font face=\"Calibri\">&lt;resource lastNotification=&quot;RESOURCE_MEMPHYSICAL_HIGH&quot; outOfMemoryExceptions=&quot;0&quot; isAnyPoolOutOfMemory=&quot;0&quot; processOutOfMemoryPeriod=&quot;0&quot;&gt;<\/font><\/font>\n<\/p>\n<p><font face=\"Times New Roman\" size=\"3\"><\/font><\/p>\n<p style=\"margin: 0in 0in 10pt\" class=\"MsoNormal\">\n<font face=\"Calibri\"><font size=\"3\">So the lastNotification looks to be the memory manager&rsquo;s latest report, with RESOURCE_MEMPHYSICAL_HIGH telling us that SQL Server can further consume more memory (in this example).<span>&nbsp;&nbsp; <\/span>The other attributes cover out-of-memory statistics.<\/font><\/font>\n<\/p>\n<p><font face=\"Times New Roman\" size=\"3\"><\/font><\/p>\n<p style=\"margin: 0in 0in 10pt\" class=\"MsoNormal\">\n<font size=\"3\"><font face=\"Calibri\">The second section of information from the &ldquo;resource&rdquo; component data is a memory report around Process and System counters and counts:<\/font><\/font>\n<\/p>\n<p><font face=\"Times New Roman\" size=\"3\"><\/font><\/p>\n<p style=\"margin: 0in 0in 0pt 0.5in\" class=\"MsoNormal\">\n<font size=\"3\"><font face=\"Calibri\">&lt;memoryReport name=&quot;Process\/System Counts&quot; unit=&quot;Value&quot;&gt;<\/font><\/font>\n<\/p>\n<p><font face=\"Times New Roman\" size=\"3\"><\/font><\/p>\n<p style=\"margin: 0in 0in 0pt 0.5in\" class=\"MsoNormal\">\n<font face=\"Calibri\"><font size=\"3\"><span>&nbsp;&nbsp;&nbsp; <\/span>&lt;entry description=&quot;Available Physical Memory&quot; value=&quot;286638080&quot; \/&gt;<\/font><\/font>\n<\/p>\n<p><font face=\"Times New Roman\" size=\"3\"><\/font><\/p>\n<p style=\"margin: 0in 0in 0pt 0.5in\" class=\"MsoNormal\">\n<font face=\"Calibri\"><font size=\"3\"><span>&nbsp;&nbsp;&nbsp; <\/span>&lt;entry description=&quot;Available Virtual Memory&quot; value=&quot;8792557727744&quot; \/&gt;<\/font><\/font>\n<\/p>\n<p><font face=\"Times New Roman\" size=\"3\"><\/font><\/p>\n<p style=\"margin: 0in 0in 0pt 0.5in\" class=\"MsoNormal\">\n<font face=\"Calibri\"><font size=\"3\"><span>&nbsp;&nbsp;&nbsp; <\/span>&lt;entry description=&quot;Available Paging File&quot; value=&quot;1205690368&quot; \/&gt;<\/font><\/font>\n<\/p>\n<p><font face=\"Times New Roman\" size=\"3\"><\/font><\/p>\n<p style=\"margin: 0in 0in 0pt 0.5in\" class=\"MsoNormal\">\n<font face=\"Calibri\"><font size=\"3\"><span>&nbsp;&nbsp;&nbsp; <\/span>&lt;entry description=&quot;Working Set&quot; value=&quot;184197120&quot; \/&gt;<\/font><\/font>\n<\/p>\n<p><font face=\"Times New Roman\" size=\"3\"><\/font><\/p>\n<p style=\"margin: 0in 0in 0pt 0.5in\" class=\"MsoNormal\">\n<font face=\"Calibri\"><font size=\"3\"><span>&nbsp;&nbsp;&nbsp; <\/span>&lt;entry description=&quot;Percent of Committed Memory in WS&quot; value=&quot;100&quot; \/&gt;<\/font><\/font>\n<\/p>\n<p><font face=\"Times New Roman\" size=\"3\"><\/font><\/p>\n<p style=\"margin: 0in 0in 0pt 0.5in\" class=\"MsoNormal\">\n<font face=\"Calibri\"><font size=\"3\"><span>&nbsp;&nbsp;&nbsp; <\/span>&lt;entry description=&quot;Page Faults&quot; value=&quot;70284&quot; \/&gt;<\/font><\/font>\n<\/p>\n<p><font face=\"Times New Roman\" size=\"3\"><\/font><\/p>\n<p style=\"margin: 0in 0in 0pt 0.5in\" class=\"MsoNormal\">\n<font face=\"Calibri\"><font size=\"3\"><span>&nbsp;&nbsp;&nbsp; <\/span>&lt;entry description=&quot;System physical memory high&quot; value=&quot;1&quot; \/&gt;<\/font><\/font>\n<\/p>\n<p><font face=\"Times New Roman\" size=\"3\"><\/font><\/p>\n<p style=\"margin: 0in 0in 0pt 0.5in\" class=\"MsoNormal\">\n<font face=\"Calibri\"><font size=\"3\"><span>&nbsp;&nbsp;&nbsp; <\/span>&lt;entry description=&quot;System physical memory low&quot; value=&quot;0&quot; \/&gt;<\/font><\/font>\n<\/p>\n<p><font face=\"Times New Roman\" size=\"3\"><\/font><\/p>\n<p style=\"margin: 0in 0in 0pt 0.5in\" class=\"MsoNormal\">\n<font face=\"Calibri\"><font size=\"3\"><span>&nbsp;&nbsp;&nbsp; <\/span>&lt;entry description=&quot;Process physical memory low&quot; value=&quot;0&quot; \/&gt;<\/font><\/font>\n<\/p>\n<p><font face=\"Times New Roman\" size=\"3\"><\/font><\/p>\n<p style=\"margin: 0in 0in 0pt 0.5in\" class=\"MsoNormal\">\n<font face=\"Calibri\"><font size=\"3\"><span>&nbsp;&nbsp;&nbsp; <\/span>&lt;entry description=&quot;Process virtual memory low&quot; value=&quot;0&quot; \/&gt;<\/font><\/font>\n<\/p>\n<p><font face=\"Times New Roman\" size=\"3\"><\/font><\/p>\n<p style=\"margin: 0in 0in 0pt 0.5in\" class=\"MsoNormal\">\n<font face=\"Calibri\"><font size=\"3\"><span>&nbsp; <\/span>&lt;\/memoryReport&gt;<\/font><\/font>\n<\/p>\n<p><font face=\"Times New Roman\" size=\"3\"><\/font><\/p>\n<p style=\"margin: 0in 0in 0pt\" class=\"MsoNormal\">\n<font face=\"Calibri\" size=\"3\"><\/font>\n<\/p>\n<p><font face=\"Times New Roman\" size=\"3\"><\/font><\/p>\n<p style=\"margin: 0in 0in 0pt\" class=\"MsoNormal\">\n<font face=\"Calibri\"><font size=\"3\">Again this is an example where we are pulling data (such as available physical and virtual memory) that could be pulled via other methods and sources.<span>&nbsp; <\/span>But in absence of other ready-to-use queries, using sp_server_diagnostics you have a nice sampling of the data as of a point in time.<\/font><\/font>\n<\/p>\n<p><font face=\"Times New Roman\" size=\"3\"><\/font><\/p>\n<p style=\"margin: 0in 0in 0pt\" class=\"MsoNormal\">\n<font size=\"3\"><font face=\"Calibri\"><span><\/span><\/font><\/font>\n<\/p>\n<p><font face=\"Times New Roman\" size=\"3\"><\/font><\/p>\n<p style=\"margin: 0in 0in 0pt\" class=\"MsoNormal\">\n<font size=\"3\"><font face=\"Calibri\">The third memory report from the &ldquo;resource&rdquo; component data covers Memory Manager counter values:<\/font><\/font>\n<\/p>\n<p><font face=\"Times New Roman\" size=\"3\"><\/font><\/p>\n<p style=\"margin: 0in 0in 0pt\" class=\"MsoNormal\">\n<font face=\"Calibri\" size=\"3\"><\/font>\n<\/p>\n<p><font face=\"Times New Roman\" size=\"3\"><\/font><\/p>\n<p style=\"margin: 0in 0in 0pt 0.5in\" class=\"MsoNormal\">\n<font face=\"Calibri\"><font size=\"3\"><span>&nbsp; <\/span>&lt;memoryReport name=&quot;Memory Manager&quot; unit=&quot;KB&quot;&gt;<\/font><\/font>\n<\/p>\n<p><font face=\"Times New Roman\" size=\"3\"><\/font><\/p>\n<p style=\"margin: 0in 0in 0pt 0.5in\" class=\"MsoNormal\">\n<font face=\"Calibri\"><font size=\"3\"><span>&nbsp;&nbsp;&nbsp; <\/span>&lt;entry description=&quot;VM Reserved&quot; value=&quot;3098256&quot; \/&gt;<\/font><\/font>\n<\/p>\n<p><font face=\"Times New Roman\" size=\"3\"><\/font><\/p>\n<p style=\"margin: 0in 0in 0pt 0.5in\" class=\"MsoNormal\">\n<font face=\"Calibri\"><font size=\"3\"><span>&nbsp;&nbsp;&nbsp; <\/span>&lt;entry description=&quot;VM Committed&quot; value=&quot;162896&quot; \/&gt;<\/font><\/font>\n<\/p>\n<p><font face=\"Times New Roman\" size=\"3\"><\/font><\/p>\n<p style=\"margin: 0in 0in 0pt 0.5in\" class=\"MsoNormal\">\n<font face=\"Calibri\"><font size=\"3\"><span>&nbsp;&nbsp;&nbsp; <\/span>&lt;entry description=&quot;Locked Pages Allocated&quot; value=&quot;0&quot; \/&gt;<\/font><\/font>\n<\/p>\n<p><font face=\"Times New Roman\" size=\"3\"><\/font><\/p>\n<p style=\"margin: 0in 0in 0pt 0.5in\" class=\"MsoNormal\">\n<font face=\"Calibri\"><font size=\"3\"><span>&nbsp;&nbsp;&nbsp; <\/span>&lt;entry description=&quot;Large Pages Allocated&quot; value=&quot;0&quot; \/&gt;<\/font><\/font>\n<\/p>\n<p><font face=\"Times New Roman\" size=\"3\"><\/font><\/p>\n<p style=\"margin: 0in 0in 0pt 0.5in\" class=\"MsoNormal\">\n<font face=\"Calibri\"><font size=\"3\"><span>&nbsp;&nbsp;&nbsp; <\/span>&lt;entry description=&quot;Emergency Memory&quot; value=&quot;1024&quot; \/&gt;<\/font><\/font>\n<\/p>\n<p><font face=\"Times New Roman\" size=\"3\"><\/font><\/p>\n<p style=\"margin: 0in 0in 0pt 0.5in\" class=\"MsoNormal\">\n<font face=\"Calibri\"><font size=\"3\"><span>&nbsp;&nbsp;&nbsp; <\/span>&lt;entry description=&quot;Emergency Memory In Use&quot; value=&quot;16&quot; \/&gt;<\/font><\/font>\n<\/p>\n<p><font face=\"Times New Roman\" size=\"3\"><\/font><\/p>\n<p style=\"margin: 0in 0in 0pt 0.5in\" class=\"MsoNormal\">\n<font face=\"Calibri\"><font size=\"3\"><span>&nbsp;&nbsp;&nbsp; <\/span>&lt;entry description=&quot;Target Committed&quot; value=&quot;389912&quot; \/&gt;<\/font><\/font>\n<\/p>\n<p><font face=\"Times New Roman\" size=\"3\"><\/font><\/p>\n<p style=\"margin: 0in 0in 0pt 0.5in\" class=\"MsoNormal\">\n<font face=\"Calibri\"><font size=\"3\"><span>&nbsp;&nbsp;&nbsp; <\/span>&lt;entry description=&quot;Current Committed&quot; value=&quot;162896&quot; \/&gt;<\/font><\/font>\n<\/p>\n<p><font face=\"Times New Roman\" size=\"3\"><\/font><\/p>\n<p style=\"margin: 0in 0in 0pt 0.5in\" class=\"MsoNormal\">\n<font face=\"Calibri\"><font size=\"3\"><span>&nbsp;&nbsp;&nbsp; <\/span>&lt;entry description=&quot;Pages Allocated&quot; value=&quot;109672&quot; \/&gt;<\/font><\/font>\n<\/p>\n<p><font face=\"Times New Roman\" size=\"3\"><\/font><\/p>\n<p style=\"margin: 0in 0in 0pt 0.5in\" class=\"MsoNormal\">\n<font face=\"Calibri\"><font size=\"3\"><span>&nbsp;&nbsp;&nbsp; <\/span>&lt;entry description=&quot;Pages Reserved&quot; value=&quot;0&quot; \/&gt;<\/font><\/font>\n<\/p>\n<p><font face=\"Times New Roman\" size=\"3\"><\/font><\/p>\n<p style=\"margin: 0in 0in 0pt 0.5in\" class=\"MsoNormal\">\n<font face=\"Calibri\"><font size=\"3\"><span>&nbsp;&nbsp;&nbsp; <\/span>&lt;entry description=&quot;Pages Free&quot; value=&quot;3464&quot; \/&gt;<\/font><\/font>\n<\/p>\n<p><font face=\"Times New Roman\" size=\"3\"><\/font><\/p>\n<p style=\"margin: 0in 0in 0pt 0.5in\" class=\"MsoNormal\">\n<font face=\"Calibri\"><font size=\"3\"><span>&nbsp;&nbsp;&nbsp; <\/span>&lt;entry description=&quot;Pages In Use&quot; value=&quot;122536&quot; \/&gt;<\/font><\/font>\n<\/p>\n<p><font face=\"Times New Roman\" size=\"3\"><\/font><\/p>\n<p style=\"margin: 0in 0in 0pt 0.5in\" class=\"MsoNormal\">\n<font face=\"Calibri\"><font size=\"3\"><span>&nbsp;&nbsp;&nbsp; <\/span>&lt;entry description=&quot;Page Alloc Potential&quot; value=&quot;873184&quot; \/&gt;<\/font><\/font>\n<\/p>\n<p><font face=\"Times New Roman\" size=\"3\"><\/font><\/p>\n<p style=\"margin: 0in 0in 0pt 0.5in\" class=\"MsoNormal\">\n<font face=\"Calibri\"><font size=\"3\"><span>&nbsp;&nbsp;&nbsp; <\/span>&lt;entry description=&quot;NUMA Growth Phase&quot; value=&quot;0&quot; \/&gt;<\/font><\/font>\n<\/p>\n<p><font face=\"Times New Roman\" size=\"3\"><\/font><\/p>\n<p style=\"margin: 0in 0in 0pt 0.5in\" class=\"MsoNormal\">\n<font face=\"Calibri\"><font size=\"3\"><span>&nbsp;&nbsp;&nbsp; <\/span>&lt;entry description=&quot;Last OOM Factor&quot; value=&quot;0&quot; \/&gt;<\/font><\/font>\n<\/p>\n<p><font face=\"Times New Roman\" size=\"3\"><\/font><\/p>\n<p style=\"margin: 0in 0in 0pt 0.5in\" class=\"MsoNormal\">\n<font face=\"Calibri\"><font size=\"3\"><span>&nbsp;&nbsp;&nbsp; <\/span>&lt;entry description=&quot;Last OS Error&quot; value=&quot;0&quot; \/&gt;<\/font><\/font>\n<\/p>\n<p><font face=\"Times New Roman\" size=\"3\"><\/font><\/p>\n<p style=\"margin: 0in 0in 0pt 0.5in\" class=\"MsoNormal\">\n<font face=\"Calibri\"><font size=\"3\"><span>&nbsp; <\/span>&lt;\/memoryReport&gt;<\/font><\/font>\n<\/p>\n<p><font face=\"Times New Roman\" size=\"3\"><\/font><\/p>\n<p style=\"margin: 0in 0in 0pt 0.5in\" class=\"MsoNormal\">\n<font size=\"3\"><font face=\"Calibri\">&lt;\/resource&gt;<\/font><\/font>\n<\/p>\n<p><font face=\"Times New Roman\" size=\"3\"><\/font><\/p>\n<p style=\"margin: 0in 0in 0pt 0.5in\" class=\"MsoNormal\">\n<font face=\"Calibri\" size=\"3\"><\/font>\n<\/p>\n<p><font face=\"Times New Roman\" size=\"3\"><\/font><\/p>\n<p style=\"margin: 0in 0in 10pt\" class=\"MsoNormal\">\n<font size=\"3\"><font face=\"Calibri\">In this case, although this summarized data is good, I do think collecting DBCC MEMORYSTATUS would still be useful (more detailed) along with perfmon data so I can see memory trends over time. As with any new feature, the real test of utility is in using it during an actual issue and seeing if it helps. <\/font><\/font>\n<\/p>\n<p><font face=\"Times New Roman\" size=\"3\"><\/font><\/p>\n<p style=\"margin: 0in 0in 10pt\" class=\"MsoNormal\">\n<font size=\"3\"><font face=\"Calibri\">In Part II of this post I&rsquo;ll cover the &ldquo;query_processing&rdquo; (my favorite out of the bunch), &ldquo;io_subsystem&rdquo; and &ldquo;events&rdquo; component data.<span>&nbsp; <\/span>At a future point I&rsquo;d also like to share<span>&nbsp; <\/span>queries for parsing out the data and also comparing samplings over time, particularly since sp_server_diagnostics has a built-in repeat interval capability, enabling it to sample data every X number of seconds.<\/font><\/font>\n<\/p>\n<p><font face=\"Times New Roman\" size=\"3\"><\/font><\/p>\n","protected":false},"excerpt":{"rendered":"<p>This post covers examples from Denali CTP3, version 11.0.1440. In this post I&rsquo;ll be discussing the SQL Server health related output from Denali&rsquo;s sys.sp_server_diagnostics system stored procedure. &nbsp;This system stored procedure is used to check Denali SQL Server health status behind-the-scenes for both failover cluster instances and availability groups. &nbsp; While this procedure is used [&hellip;]<\/p>\n","protected":false},"author":7,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[28],"tags":[],"class_list":["post-527","post","type-post","status-publish","format-standard","hentry","category-performance"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v21.9.1 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Under the covers with sp_server_diagnostics data (Part I) - Joe Sack<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.sqlskills.com\/blogs\/joe\/under-the-covers-with-sp_server_diagnostics-data-part-i\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Under the covers with sp_server_diagnostics data (Part I) - Joe Sack\" \/>\n<meta property=\"og:description\" content=\"This post covers examples from Denali CTP3, version 11.0.1440. In this post I&rsquo;ll be discussing the SQL Server health related output from Denali&rsquo;s sys.sp_server_diagnostics system stored procedure. &nbsp;This system stored procedure is used to check Denali SQL Server health status behind-the-scenes for both failover cluster instances and availability groups. &nbsp; While this procedure is used [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.sqlskills.com\/blogs\/joe\/under-the-covers-with-sp_server_diagnostics-data-part-i\/\" \/>\n<meta property=\"og:site_name\" content=\"Joe Sack\" \/>\n<meta property=\"article:published_time\" content=\"2011-10-04T02:42:00+00:00\" \/>\n<meta name=\"author\" content=\"Joseph Sack\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Joseph Sack\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"10 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/joe\/under-the-covers-with-sp_server_diagnostics-data-part-i\/\",\"url\":\"https:\/\/www.sqlskills.com\/blogs\/joe\/under-the-covers-with-sp_server_diagnostics-data-part-i\/\",\"name\":\"Under the covers with sp_server_diagnostics data (Part I) - Joe Sack\",\"isPartOf\":{\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/joe\/#website\"},\"datePublished\":\"2011-10-04T02:42:00+00:00\",\"dateModified\":\"2011-10-04T02:42:00+00:00\",\"author\":{\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/joe\/#\/schema\/person\/533eb0113a15fb5a6e8067a49e4ae648\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/joe\/under-the-covers-with-sp_server_diagnostics-data-part-i\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.sqlskills.com\/blogs\/joe\/under-the-covers-with-sp_server_diagnostics-data-part-i\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/joe\/under-the-covers-with-sp_server_diagnostics-data-part-i\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.sqlskills.com\/blogs\/joe\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Performance\",\"item\":\"https:\/\/www.sqlskills.com\/blogs\/joe\/category\/performance\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Under the covers with sp_server_diagnostics data (Part I)\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/joe\/#website\",\"url\":\"https:\/\/www.sqlskills.com\/blogs\/joe\/\",\"name\":\"Joe Sack\",\"description\":\"SQL Server Performance Tuning, High Availability and Disaster Recovery Blog\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.sqlskills.com\/blogs\/joe\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/joe\/#\/schema\/person\/533eb0113a15fb5a6e8067a49e4ae648\",\"name\":\"Joseph Sack\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/joe\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/a4b39a7719a6bfff1add3ec00527810734579ee114d6d983e8e68f937b77be96?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/a4b39a7719a6bfff1add3ec00527810734579ee114d6d983e8e68f937b77be96?s=96&d=mm&r=g\",\"caption\":\"Joseph Sack\"},\"description\":\"Joe Sack is a Principal Consultant with SQLskills. He has worked as a SQL Server professional since 1997 and has supported and developed for SQL Server environments in financial services, IT consulting, manufacturing, retail and the real estate industry. Prior to joining SQLskills he worked at Microsoft as a Premier Field Engineer supporting very large enterprise customer environments. He was responsible for providing deep SQL Server advisory services, training, troubleshooting and ongoing solutions guidance. His areas of expertise include performance tuning, scalability, T-SQL development and high-availability. In 2006 Joe earned the \u201cMicrosoft Certified Master: SQL Server 2005\u201d certification and in 2008 he earned the \u201cMicrosoft Certified Master: SQL Server 2008\u201d certification. In 2009 he took over responsibility for the entire SQL Server Microsoft Certified Master program and held that post until 2011. He was given the SQL Server MVP award in 2013.\",\"sameAs\":[\"http:\/\/3.209.169.194\/blogs\/joe\",\"https:\/\/twitter.com\/https:\/\/twitter.com\/josephsack\"],\"url\":\"https:\/\/www.sqlskills.com\/blogs\/joe\/author\/joe\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Under the covers with sp_server_diagnostics data (Part I) - Joe Sack","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.sqlskills.com\/blogs\/joe\/under-the-covers-with-sp_server_diagnostics-data-part-i\/","og_locale":"en_US","og_type":"article","og_title":"Under the covers with sp_server_diagnostics data (Part I) - Joe Sack","og_description":"This post covers examples from Denali CTP3, version 11.0.1440. In this post I&rsquo;ll be discussing the SQL Server health related output from Denali&rsquo;s sys.sp_server_diagnostics system stored procedure. &nbsp;This system stored procedure is used to check Denali SQL Server health status behind-the-scenes for both failover cluster instances and availability groups. &nbsp; While this procedure is used [&hellip;]","og_url":"https:\/\/www.sqlskills.com\/blogs\/joe\/under-the-covers-with-sp_server_diagnostics-data-part-i\/","og_site_name":"Joe Sack","article_published_time":"2011-10-04T02:42:00+00:00","author":"Joseph Sack","twitter_misc":{"Written by":"Joseph Sack","Est. reading time":"10 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.sqlskills.com\/blogs\/joe\/under-the-covers-with-sp_server_diagnostics-data-part-i\/","url":"https:\/\/www.sqlskills.com\/blogs\/joe\/under-the-covers-with-sp_server_diagnostics-data-part-i\/","name":"Under the covers with sp_server_diagnostics data (Part I) - Joe Sack","isPartOf":{"@id":"https:\/\/www.sqlskills.com\/blogs\/joe\/#website"},"datePublished":"2011-10-04T02:42:00+00:00","dateModified":"2011-10-04T02:42:00+00:00","author":{"@id":"https:\/\/www.sqlskills.com\/blogs\/joe\/#\/schema\/person\/533eb0113a15fb5a6e8067a49e4ae648"},"breadcrumb":{"@id":"https:\/\/www.sqlskills.com\/blogs\/joe\/under-the-covers-with-sp_server_diagnostics-data-part-i\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.sqlskills.com\/blogs\/joe\/under-the-covers-with-sp_server_diagnostics-data-part-i\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.sqlskills.com\/blogs\/joe\/under-the-covers-with-sp_server_diagnostics-data-part-i\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.sqlskills.com\/blogs\/joe\/"},{"@type":"ListItem","position":2,"name":"Performance","item":"https:\/\/www.sqlskills.com\/blogs\/joe\/category\/performance\/"},{"@type":"ListItem","position":3,"name":"Under the covers with sp_server_diagnostics data (Part I)"}]},{"@type":"WebSite","@id":"https:\/\/www.sqlskills.com\/blogs\/joe\/#website","url":"https:\/\/www.sqlskills.com\/blogs\/joe\/","name":"Joe Sack","description":"SQL Server Performance Tuning, High Availability and Disaster Recovery Blog","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.sqlskills.com\/blogs\/joe\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.sqlskills.com\/blogs\/joe\/#\/schema\/person\/533eb0113a15fb5a6e8067a49e4ae648","name":"Joseph Sack","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.sqlskills.com\/blogs\/joe\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/a4b39a7719a6bfff1add3ec00527810734579ee114d6d983e8e68f937b77be96?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/a4b39a7719a6bfff1add3ec00527810734579ee114d6d983e8e68f937b77be96?s=96&d=mm&r=g","caption":"Joseph Sack"},"description":"Joe Sack is a Principal Consultant with SQLskills. He has worked as a SQL Server professional since 1997 and has supported and developed for SQL Server environments in financial services, IT consulting, manufacturing, retail and the real estate industry. Prior to joining SQLskills he worked at Microsoft as a Premier Field Engineer supporting very large enterprise customer environments. He was responsible for providing deep SQL Server advisory services, training, troubleshooting and ongoing solutions guidance. His areas of expertise include performance tuning, scalability, T-SQL development and high-availability. In 2006 Joe earned the \u201cMicrosoft Certified Master: SQL Server 2005\u201d certification and in 2008 he earned the \u201cMicrosoft Certified Master: SQL Server 2008\u201d certification. In 2009 he took over responsibility for the entire SQL Server Microsoft Certified Master program and held that post until 2011. He was given the SQL Server MVP award in 2013.","sameAs":["http:\/\/3.209.169.194\/blogs\/joe","https:\/\/twitter.com\/https:\/\/twitter.com\/josephsack"],"url":"https:\/\/www.sqlskills.com\/blogs\/joe\/author\/joe\/"}]}},"_links":{"self":[{"href":"https:\/\/www.sqlskills.com\/blogs\/joe\/wp-json\/wp\/v2\/posts\/527","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.sqlskills.com\/blogs\/joe\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.sqlskills.com\/blogs\/joe\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.sqlskills.com\/blogs\/joe\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/www.sqlskills.com\/blogs\/joe\/wp-json\/wp\/v2\/comments?post=527"}],"version-history":[{"count":0,"href":"https:\/\/www.sqlskills.com\/blogs\/joe\/wp-json\/wp\/v2\/posts\/527\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.sqlskills.com\/blogs\/joe\/wp-json\/wp\/v2\/media?parent=527"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.sqlskills.com\/blogs\/joe\/wp-json\/wp\/v2\/categories?post=527"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.sqlskills.com\/blogs\/joe\/wp-json\/wp\/v2\/tags?post=527"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}