{"id":508,"date":"2012-02-15T06:25:00","date_gmt":"2012-02-15T06:25:00","guid":{"rendered":"\/blogs\/joe\/post\/What-are-the-Replication-Agents-waiting-for-Accumulating-wait-stats-by-agent-session.aspx"},"modified":"2013-01-02T20:36:29","modified_gmt":"2013-01-03T04:36:29","slug":"what-are-the-replication-agents-waiting-on-accumulating-wait-stats-by-agent-session","status":"publish","type":"post","link":"https:\/\/www.sqlskills.com\/blogs\/joe\/what-are-the-replication-agents-waiting-on-accumulating-wait-stats-by-agent-session\/","title":{"rendered":"What are the Replication Agents waiting on? Accumulating wait stats by agent session"},"content":{"rendered":"<p style=\"line-height: 13pt; margin: 0in 0in 10pt\" class=\"MsoNormal\">\n<font face=\"Calibri\"><font style=\"font-size: 11pt\">Consider the following scenario:<\/font><\/font>\n<\/p>\n<p style=\"line-height: 13pt; text-indent: -0.25in; margin: 0in 0in 0pt 0.5in\" class=\"MsoListParagraphCxSpFirst\">\n<span><span><font face=\"Symbol\"><font style=\"font-size: 11pt\">&middot;<\/font><\/font><span style=\"line-height: normal\"><font face=\"Times New Roman\"><font style=\"font-size: 7pt\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/font><\/font><\/span><\/span><\/span><font face=\"Calibri\"><font style=\"font-size: 11pt\">You have Transactional Replication deployed <\/font><\/font>\n<\/p>\n<p style=\"line-height: 13pt; text-indent: -0.25in; margin: 0in 0in 0pt 0.5in\" class=\"MsoListParagraphCxSpMiddle\">\n<span><span><font face=\"Symbol\"><font style=\"font-size: 11pt\">&middot;<\/font><\/font><span style=\"line-height: normal\"><font face=\"Times New Roman\"><font style=\"font-size: 7pt\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/font><\/font><\/span><\/span><\/span><font face=\"Calibri\"><font style=\"font-size: 11pt\">Data is flowing, but just not as fast as you would like <\/font><\/font>\n<\/p>\n<p style=\"line-height: 13pt; text-indent: -0.25in; margin: 0in 0in 10pt 0.5in\" class=\"MsoListParagraphCxSpLast\">\n<span><span><font face=\"Symbol\"><font style=\"font-size: 11pt\">&middot;<\/font><\/font><span style=\"line-height: normal\"><font face=\"Times New Roman\"><font style=\"font-size: 7pt\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/font><\/font><\/span><\/span><\/span><font face=\"Calibri\"><font style=\"font-size: 11pt\">This scenario could apply to local\/remote distributors and push\/pull subscribers<\/font><\/font>\n<\/p>\n<p style=\"line-height: 13pt; margin: 0in 0in 10pt\" class=\"MsoNormal\">\n<font face=\"Calibri\"><font style=\"font-size: 11pt\">There are several different techniques we can use to narrow down where the replication performance issue is happening.<span>&nbsp; <\/span>Perhaps you&rsquo;ve already found that the performance issue is happening for log reader reads or distribution database writes.<span>&nbsp; <\/span>Or perhaps you suspect the issue is on the subscriber?<\/font><span><font style=\"font-size: 11pt\">&nbsp; <\/font><\/span><\/font>\n<\/p>\n<p style=\"line-height: 13pt; margin: 0in 0in 10pt\" class=\"MsoNormal\">\n<font face=\"Calibri\"><font style=\"font-size: 11pt\">While the various replication techniques can help us narrow down the lagging member of the topology, I still would like more visibility into why a particular agent read or write process is performing more slowly.<span>&nbsp; <\/span>Fortunately, you can do this in SQL Server 2008+&hellip;<\/font><\/font>\n<\/p>\n<p style=\"line-height: 13pt; margin: 0in 0in 10pt\" class=\"MsoNormal\">\n<font face=\"Calibri\"><font style=\"font-size: 11pt\">In the following example, I&rsquo;ll start by retrieving the session IDs of the log reader and distribution agents (and as an aside my replication topology is SQL Server instance version 10.50.2500):<\/font><\/font>\n<\/p>\n<p style=\"line-height: normal; margin: 0in 0in 0pt\" class=\"MsoNormal\">\n<span><font face=\"Consolas\"><font color=\"#008000\" style=\"font-size: 9.5pt\">&#8212; Log Reader<\/font><\/font><\/span><span><\/span>\n<\/p>\n<p style=\"line-height: normal; margin: 0in 0in 0pt\" class=\"MsoNormal\">\n<font face=\"Consolas\"><span><font color=\"#0000ff\"><font style=\"font-size: 9.5pt\">SELECT<\/font><\/font><\/span><span><font style=\"font-size: 9.5pt\"><span> <\/span><span><font color=\"#008080\">session_id<\/font><\/span><span><font color=\"#808080\">,<\/font><\/span> <span><font color=\"#ff00ff\">program_name<\/font><\/span><\/font><span><font color=\"#808080\" style=\"font-size: 9.5pt\">,<\/font><\/span><\/span><\/font>\n<\/p>\n<p style=\"line-height: normal; margin: 0in 0in 0pt\" class=\"MsoNormal\">\n<span><font face=\"Consolas\"><span><font style=\"font-size: 9.5pt\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/font><\/span><font style=\"font-size: 9.5pt\"><span><font color=\"#008080\">reads<\/font><\/span><\/font><span><font color=\"#808080\" style=\"font-size: 9.5pt\">,<\/font><\/span><\/font><\/span>\n<\/p>\n<p style=\"line-height: normal; margin: 0in 0in 0pt\" class=\"MsoNormal\">\n<span><font face=\"Consolas\"><span><font style=\"font-size: 9.5pt\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/font><\/span><font style=\"font-size: 9.5pt\"><span><font color=\"#008080\">writes<\/font><\/span><\/font><span><font color=\"#808080\" style=\"font-size: 9.5pt\">,<\/font><\/span><\/font><\/span>\n<\/p>\n<p style=\"line-height: normal; margin: 0in 0in 0pt\" class=\"MsoNormal\">\n<span><font face=\"Consolas\"><span><font style=\"font-size: 9.5pt\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/font><\/span><span><font color=\"#008080\" style=\"font-size: 9.5pt\">logical_reads<\/font><\/span><\/font><\/span>\n<\/p>\n<p style=\"line-height: normal; margin: 0in 0in 0pt\" class=\"MsoNormal\">\n<font face=\"Consolas\"><span><font color=\"#0000ff\"><font style=\"font-size: 9.5pt\">FROM<\/font><\/font><\/span><span><font style=\"font-size: 9.5pt\"> <span><font color=\"#008000\">sys<\/font><\/span><span><font color=\"#808080\">.<\/font><\/span><\/font><span><font color=\"#008000\" style=\"font-size: 9.5pt\">dm_exec_sessions<\/font><\/span><\/span><\/font>\n<\/p>\n<p style=\"line-height: normal; margin: 0in 0in 0pt\" class=\"MsoNormal\">\n<font face=\"Consolas\"><span><font color=\"#0000ff\"><font style=\"font-size: 9.5pt\">WHERE<\/font><\/font><\/span><span><font style=\"font-size: 9.5pt\"> <span><font color=\"#008080\">original_login_name<\/font><\/span> <span><font color=\"#808080\">=<\/font><\/span> <\/font><\/span><\/font>\n<\/p>\n<p style=\"line-height: normal; margin: 0in 0in 0pt\" class=\"MsoNormal\">\n<span><font face=\"Consolas\"><span><font style=\"font-size: 9.5pt\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/font><\/span><font style=\"font-size: 9.5pt\"><span><font color=\"#ff0000\">&#39;SQLSKILLS\\SQLskillsLogReaderAG&#39;<\/font><\/span><\/font><span><font color=\"#808080\" style=\"font-size: 9.5pt\">;<\/font><\/span><\/font><\/span>\n<\/p>\n<p style=\"line-height: normal; margin: 0in 0in 0pt\" class=\"MsoNormal\">\n<span><font face=\"Consolas\"><font style=\"font-size: 9.5pt\"><\/font><\/font><\/span>\n<\/p>\n<p style=\"line-height: normal; margin: 0in 0in 0pt\" class=\"MsoNormal\">\n<span><font face=\"Consolas\"><font color=\"#008000\" style=\"font-size: 9.5pt\">&#8212; Distribution Agent<\/font><\/font><\/span><span><\/span>\n<\/p>\n<p style=\"line-height: normal; margin: 0in 0in 0pt\" class=\"MsoNormal\">\n<font face=\"Consolas\"><span><font color=\"#0000ff\"><font style=\"font-size: 9.5pt\">SELECT<\/font><\/font><\/span><span><font style=\"font-size: 9.5pt\"><span> <\/span><span><font color=\"#008080\">session_id<\/font><\/span><span><font color=\"#808080\">,<\/font><\/span> <span><font color=\"#ff00ff\">program_name<\/font><\/span><\/font><span><font color=\"#808080\" style=\"font-size: 9.5pt\">,<\/font><\/span><\/span><\/font>\n<\/p>\n<p style=\"line-height: normal; margin: 0in 0in 0pt\" class=\"MsoNormal\">\n<span><font face=\"Consolas\"><span><font style=\"font-size: 9.5pt\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/font><\/span><font style=\"font-size: 9.5pt\"><span><font color=\"#008080\">reads<\/font><\/span><\/font><span><font color=\"#808080\" style=\"font-size: 9.5pt\">,<\/font><\/span><\/font><\/span>\n<\/p>\n<p style=\"line-height: normal; margin: 0in 0in 0pt\" class=\"MsoNormal\">\n<span><font face=\"Consolas\"><span><font style=\"font-size: 9.5pt\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/font><\/span><font style=\"font-size: 9.5pt\"><span><font color=\"#008080\">writes<\/font><\/span><\/font><span><font color=\"#808080\" style=\"font-size: 9.5pt\">,<\/font><\/span><\/font><\/span>\n<\/p>\n<p style=\"line-height: normal; margin: 0in 0in 0pt\" class=\"MsoNormal\">\n<span><font face=\"Consolas\"><span><font style=\"font-size: 9.5pt\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/font><\/span><span><font color=\"#008080\" style=\"font-size: 9.5pt\">logical_reads<\/font><\/span><\/font><\/span>\n<\/p>\n<p style=\"line-height: normal; margin: 0in 0in 0pt\" class=\"MsoNormal\">\n<font face=\"Consolas\"><span><font color=\"#0000ff\"><font style=\"font-size: 9.5pt\">FROM<\/font><\/font><\/span><span><font style=\"font-size: 9.5pt\"> <span><font color=\"#008000\">sys<\/font><\/span><span><font color=\"#808080\">.<\/font><\/span><\/font><span><font color=\"#008000\" style=\"font-size: 9.5pt\">dm_exec_sessions<\/font><\/span><\/span><\/font>\n<\/p>\n<p style=\"line-height: normal; margin: 0in 0in 0pt\" class=\"MsoNormal\">\n<font face=\"Consolas\"><span><font color=\"#0000ff\"><font style=\"font-size: 9.5pt\">WHERE<\/font><\/font><\/span><span><font style=\"font-size: 9.5pt\"> <span><font color=\"#008080\">original_login_name<\/font><\/span> <span><font color=\"#808080\">=<\/font><\/span> <\/font><\/span><\/font>\n<\/p>\n<p style=\"line-height: normal; margin: 0in 0in 0pt\" class=\"MsoNormal\">\n<span><font face=\"Consolas\"><span><font style=\"font-size: 9.5pt\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/font><\/span><font style=\"font-size: 9.5pt\"><span><font color=\"#ff0000\">&#39;SQLSKILLS\\SQLskillsDistAGT&#39;<\/font><\/span><\/font><span><font color=\"#808080\" style=\"font-size: 9.5pt\">;<\/font><\/span><\/font><\/span>\n<\/p>\n<p style=\"line-height: 13pt; margin: 0in 0in 10pt\" class=\"MsoNormal\">\n<font face=\"Calibri\"><font style=\"font-size: 11pt\"><\/font><\/font>\n<\/p>\n<p style=\"line-height: 13pt; margin: 0in 0in 10pt\" class=\"MsoNormal\">\n<font face=\"Calibri\"><font style=\"font-size: 11pt\">In this example I&rsquo;m using separate accounts to run the agent executables, however I could have also added a predicate on program_name based on the publication I was interested in evaluating. <span>&nbsp;<\/span>For example, I could have said for the Log Reader agent &ndash; <em>program_name = &lsquo;Repl-LogReader-0-AdventureWorks2008R2-6&rsquo;<\/em> and for the Distribution agent &ndash; that&rsquo;s more interesting, as we have <em>program_name = &lsquo;CAESAR-AdventureWorks2008R2-Pub_AW_2008R2-AUGUSTUS-1&rsquo;<\/em> (subscriber is AUGUSTUS, publisher is CAESAR).<span>&nbsp; <\/span>But if you just used that program name, you won&rsquo;t get Replication Distribution History session, which would be <em>program_name = &lsquo;Replication Distribution History&rsquo;<\/em> and may also be interesting.<\/font><\/font>\n<\/p>\n<p style=\"line-height: 13pt; margin: 0in 0in 10pt\" class=\"MsoNormal\">\n<font face=\"Calibri\"><font style=\"font-size: 11pt\">So in my example, I have 5 different sessions I&rsquo;m interested in (and yours will vary based on the number of published databases, independent agents, server role, etc):<\/font><\/font>\n<\/p>\n<p style=\"line-height: 13pt; text-indent: -0.25in; margin: 0in 0in 0pt 0.5in\" class=\"MsoListParagraphCxSpFirst\">\n<span><span><font face=\"Symbol\"><font style=\"font-size: 11pt\">&middot;<\/font><\/font><span style=\"line-height: normal\"><font face=\"Times New Roman\"><font style=\"font-size: 7pt\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/font><\/font><\/span><\/span><\/span><font face=\"Calibri\"><font style=\"font-size: 11pt\">The log reader agent was using sessions 55, 57, 59<\/font><\/font>\n<\/p>\n<p style=\"line-height: 13pt; text-indent: -0.25in; margin: 0in 0in 10pt 0.5in\" class=\"MsoListParagraphCxSpLast\">\n<span><span><font face=\"Symbol\"><font style=\"font-size: 11pt\">&middot;<\/font><\/font><span style=\"line-height: normal\"><font face=\"Times New Roman\"><font style=\"font-size: 7pt\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/font><\/font><\/span><\/span><\/span><font face=\"Calibri\"><font style=\"font-size: 11pt\">The distribution agent had two sessions (61 for history and 62 for the executable)<\/font><\/font>\n<\/p>\n<p style=\"line-height: 13pt; margin: 0in 0in 10pt\" class=\"MsoNormal\">\n<font face=\"Calibri\"><font style=\"font-size: 11pt\">Now that I have my session ids, I&rsquo;m going to create an extended events session that I can run during the &ldquo;slow performing&rdquo; period to help illuminate where to investigate next (and for more general discussion on this technique, see Paul Randal&rsquo;s post &ldquo;<\/font><\/font><font style=\"font-size: 11pt\"><a href=\"https:\/\/www.sqlskills.com\/blogs\/paul\/capturing-wait-stats-for-a-single-operation\/\" target=\"_blank\">Capturing wait stats for a single operation<\/a><font face=\"Calibri\" color=\"#0000ff\"><\/font><\/font><font face=\"Calibri\"><font style=\"font-size: 11pt\">&rdquo;):<\/font><\/font>\n<\/p>\n<p style=\"line-height: normal; margin: 0in 0in 0pt\" class=\"MsoNormal\">\n<font face=\"Consolas\"><span><font color=\"#0000ff\"><font style=\"font-size: 9.5pt\">CREATE<\/font><\/font><\/span><span><font style=\"font-size: 9.5pt\"> <span><font color=\"#0000ff\">EVENT<\/font><\/span> <span><font color=\"#0000ff\">SESSION<\/font><\/span> <span><font color=\"#008080\">Replication_AGT_Waits<\/font><\/span> <\/font><\/span><\/font>\n<\/p>\n<p style=\"line-height: normal; margin: 0in 0in 0pt\" class=\"MsoNormal\">\n<font face=\"Consolas\"><span><font color=\"#0000ff\"><font style=\"font-size: 9.5pt\">ON<\/font><\/font><\/span><span><font style=\"font-size: 9.5pt\"> <span><font color=\"#0000ff\">SERVER<\/font><\/span> <\/font><\/span><\/font>\n<\/p>\n<p style=\"line-height: normal; margin: 0in 0in 0pt\" class=\"MsoNormal\">\n<font face=\"Consolas\"><span><font color=\"#0000ff\"><font style=\"font-size: 9.5pt\">ADD<\/font><\/font><\/span><span><font style=\"font-size: 9.5pt\"> <span><font color=\"#0000ff\">EVENT<\/font><\/span> <span><font color=\"#008080\">sqlos<\/font><\/span><span><font color=\"#808080\">.<\/font><\/span><span><font color=\"#008080\">wait_info<\/font><\/span><\/font><span><font color=\"#808080\" style=\"font-size: 9.5pt\">(<\/font><\/span><\/span><\/font>\n<\/p>\n<p style=\"line-height: normal; margin: 0in 0in 0pt\" class=\"MsoNormal\">\n<span><font face=\"Consolas\"><span><font style=\"font-size: 9.5pt\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/font><\/span><font style=\"font-size: 9.5pt\"><span><font color=\"#0000ff\">ACTION <\/font><\/span><span><font color=\"#808080\">(<\/font><\/span><span><font color=\"#008080\">sqlserver<\/font><\/span><span><font color=\"#808080\">.<\/font><\/span><span><font color=\"#008080\">session_id<\/font><\/span><\/font><span><font color=\"#808080\" style=\"font-size: 9.5pt\">)<\/font><\/span><\/font><\/span>\n<\/p>\n<p style=\"line-height: normal; margin: 0in 0in 0pt\" class=\"MsoNormal\">\n<span><font face=\"Consolas\"><span><font style=\"font-size: 9.5pt\">&nbsp;&nbsp;&nbsp; <\/font><\/span><font style=\"font-size: 9.5pt\"><span><font color=\"#0000ff\">WHERE <\/font><\/span><span><font color=\"#808080\">(<\/font><\/span><span><font color=\"#008080\">[package0]<\/font><\/span><span><font color=\"#808080\">.<\/font><\/span><span><font color=\"#008080\">[equal_uint64]<\/font><\/span><span><font color=\"#808080\">(<\/font><\/span><span><font color=\"#008080\">[sqlserver]<\/font><\/span><span><font color=\"#808080\">.<\/font><\/span><span><font color=\"#008080\">[session_id]<\/font><\/span><span><font color=\"#808080\">,(<\/font><\/span>55<span><font color=\"#808080\">))<\/font><\/span> <span><font color=\"#808080\">OR<\/font><\/span> <span><font color=\"#008080\">[package0]<\/font><\/span><span><font color=\"#808080\">.<\/font><\/span><span><font color=\"#008080\">[equal_uint64]<\/font><\/span><span><font color=\"#808080\">(<\/font><\/span><span><font color=\"#008080\">[sqlserver]<\/font><\/span><span><font color=\"#808080\">.<\/font><\/span><span><font color=\"#008080\">[session_id]<\/font><\/span><span><font color=\"#808080\">,(<\/font><\/span>57<span><font color=\"#808080\">))<\/font><\/span> <span><font color=\"#808080\">OR<\/font><\/span> <span><font color=\"#008080\">[package0]<\/font><\/span><span><font color=\"#808080\">.<\/font><\/span><span><font color=\"#008080\">[equal_uint64]<\/font><\/span><span><font color=\"#808080\">(<\/font><\/span><span><font color=\"#008080\">[sqlserver]<\/font><\/span><span><font color=\"#808080\">.<\/font><\/span><span><font color=\"#008080\">[session_id]<\/font><\/span><span><font color=\"#808080\">,(<\/font><\/span>59<span><font color=\"#808080\">))<\/font><\/span> <span><font color=\"#808080\">OR<\/font><\/span> <span><font color=\"#008080\">[package0]<\/font><\/span><span><font color=\"#808080\">.<\/font><\/span><span><font color=\"#008080\">[equal_uint64]<\/font><\/span><span><font color=\"#808080\">(<\/font><\/span><span><font color=\"#008080\">[sqlserver]<\/font><\/span><span><font color=\"#808080\">.<\/font><\/span><span><font color=\"#008080\">[session_id]<\/font><\/span><span><font color=\"#808080\">,(<\/font><\/span>61<span><font color=\"#808080\">))<\/font><\/span> <span><font color=\"#808080\">OR<\/font><\/span> <span><font color=\"#008080\">[package0]<\/font><\/span><span><font color=\"#808080\">.<\/font><\/span><span><font color=\"#008080\">[equal_uint64]<\/font><\/span><span><font color=\"#808080\">(<\/font><\/span><span><font color=\"#008080\">[sqlserver]<\/font><\/span><span><font color=\"#808080\">.<\/font><\/span><span><font color=\"#008080\">[session_id]<\/font><\/span><span><font color=\"#808080\">,(<\/font><\/span>62<\/font><span><font color=\"#808080\" style=\"font-size: 9.5pt\">)))),<\/font><\/span><\/font><\/span>\n<\/p>\n<p style=\"line-height: normal; margin: 0in 0in 0pt\" class=\"MsoNormal\">\n<font face=\"Consolas\"><span><font color=\"#0000ff\"><font style=\"font-size: 9.5pt\">ADD<\/font><\/font><\/span><span><font style=\"font-size: 9.5pt\"> <span><font color=\"#0000ff\">EVENT<\/font><\/span> <span><font color=\"#008080\">sqlos<\/font><\/span><span><font color=\"#808080\">.<\/font><\/span><span><font color=\"#008080\">wait_info_external<\/font><\/span><\/font><span><font color=\"#808080\" style=\"font-size: 9.5pt\">(<\/font><\/span><\/span><\/font>\n<\/p>\n<p style=\"line-height: normal; margin: 0in 0in 0pt\" class=\"MsoNormal\">\n<span><font face=\"Consolas\"><span><font style=\"font-size: 9.5pt\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/font><\/span><font style=\"font-size: 9.5pt\"><span><font color=\"#0000ff\">ACTION <\/font><\/span><span><font color=\"#808080\">(<\/font><\/span><span><font color=\"#008080\">sqlserver<\/font><\/span><span><font color=\"#808080\">.<\/font><\/span><span><font color=\"#008080\">session_id<\/font><\/span><\/font><span><font color=\"#808080\" style=\"font-size: 9.5pt\">)<\/font><\/span><\/font><\/span>\n<\/p>\n<p style=\"line-height: normal; margin: 0in 0in 0pt\" class=\"MsoNormal\">\n<span><font face=\"Consolas\"><span><font style=\"font-size: 9.5pt\">&nbsp;&nbsp;&nbsp; <\/font><\/span><font style=\"font-size: 9.5pt\"><span><font color=\"#0000ff\">WHERE <\/font><\/span><span><font color=\"#808080\">(<\/font><\/span><span><font color=\"#008080\">[package0]<\/font><\/span><span><font color=\"#808080\">.<\/font><\/span><span><font color=\"#008080\">[equal_uint64]<\/font><\/span><span><font color=\"#808080\">(<\/font><\/span><span><font color=\"#008080\">[sqlserver]<\/font><\/span><span><font color=\"#808080\">.<\/font><\/span><span><font color=\"#008080\">[session_id]<\/font><\/span><span><font color=\"#808080\">,(<\/font><\/span>55<span><font color=\"#808080\">))<\/font><\/span> <span><font color=\"#808080\">OR<\/font><\/span> <span><font color=\"#008080\">[package0]<\/font><\/span><span><font color=\"#808080\">.<\/font><\/span><span><font color=\"#008080\">[equal_uint64]<\/font><\/span><span><font color=\"#808080\">(<\/font><\/span><span><font color=\"#008080\">[sqlserver]<\/font><\/span><span><font color=\"#808080\">.<\/font><\/span><span><font color=\"#008080\">[session_id]<\/font><\/span><span><font color=\"#808080\">,(<\/font><\/span>57<span><font color=\"#808080\">))<\/font><\/span> <span><font color=\"#808080\">OR<\/font><\/span> <span><font color=\"#008080\">[package0]<\/font><\/span><span><font color=\"#808080\">.<\/font><\/span><span><font color=\"#008080\">[equal_uint64]<\/font><\/span><span><font color=\"#808080\">(<\/font><\/span><span><font color=\"#008080\">[sqlserver]<\/font><\/span><span><font color=\"#808080\">.<\/font><\/span><span><font color=\"#008080\">[session_id]<\/font><\/span><span><font color=\"#808080\">,(<\/font><\/span>59<span><font color=\"#808080\">))<\/font><\/span> <span><font color=\"#808080\">OR<\/font><\/span> <span><font color=\"#008080\">[package0]<\/font><\/span><span><font color=\"#808080\">.<\/font><\/span><span><font color=\"#008080\">[equal_uint64]<\/font><\/span><span><font color=\"#808080\">(<\/font><\/span><span><font color=\"#008080\">[sqlserver]<\/font><\/span><span><font color=\"#808080\">.<\/font><\/span><span><font color=\"#008080\">[session_id]<\/font><\/span><span><font color=\"#808080\">,(<\/font><\/span>61<span><font color=\"#808080\">))<\/font><\/span> <span><font color=\"#808080\">OR<\/font><\/span> <span><font color=\"#008080\">[package0]<\/font><\/span><span><font color=\"#808080\">.<\/font><\/span><span><font color=\"#008080\">[equal_uint64]<\/font><\/span><span><font color=\"#808080\">(<\/font><\/span><span><font color=\"#008080\">[sqlserver]<\/font><\/span><span><font color=\"#808080\">.<\/font><\/span><span><font color=\"#008080\">[session_id]<\/font><\/span><span><font color=\"#808080\">,(<\/font><\/span>62<\/font><span><font color=\"#808080\" style=\"font-size: 9.5pt\">))))<\/font><\/span><\/font><\/span>\n<\/p>\n<p style=\"line-height: normal; margin: 0in 0in 0pt\" class=\"MsoNormal\">\n<font face=\"Consolas\"><span><font color=\"#0000ff\"><font style=\"font-size: 9.5pt\">ADD<\/font><\/font><\/span><span><font style=\"font-size: 9.5pt\"> <span><font color=\"#0000ff\">TARGET<\/font><\/span> <span><font color=\"#008080\">package0<\/font><\/span><span><font color=\"#808080\">.<\/font><\/span><\/font><span><font color=\"#008080\" style=\"font-size: 9.5pt\">asynchronous_file_target<\/font><\/span><\/span><\/font>\n<\/p>\n<p style=\"line-height: normal; margin: 0in 0in 0pt\" class=\"MsoNormal\">\n<font face=\"Consolas\"><span><span><font color=\"#0000ff\"><font style=\"font-size: 9.5pt\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/font><\/font><\/span><\/span><font style=\"font-size: 9.5pt\"><span><font color=\"#808080\">(<\/font><\/span><span><font color=\"#0000ff\">SET<\/font><\/span><\/font><span><font style=\"font-size: 9.5pt\"> <span><font color=\"#0000ff\">FILENAME<\/font><\/span> <span><font color=\"#808080\">=<\/font><\/span> <span><font color=\"#ff0000\">N&#39;C:\\temp\\ReplAGTStats.xel&#39;<\/font><\/span><\/font><span><font color=\"#808080\" style=\"font-size: 9.5pt\">,<\/font><\/span><\/span><\/font>\n<\/p>\n<p style=\"line-height: normal; margin: 0in 0in 0pt\" class=\"MsoNormal\">\n<span><font face=\"Consolas\"><span><font style=\"font-size: 9.5pt\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/font><\/span><font style=\"font-size: 9.5pt\"><span>&nbsp;<\/span><span><font color=\"#008080\">METADATAFILE<\/font><\/span> <span><font color=\"#808080\">=<\/font><\/span> <span><font color=\"#ff0000\">N&#39;C:\\temp\\ReplAGTStats.xem&#39;<\/font><\/span><\/font><span><font color=\"#808080\" style=\"font-size: 9.5pt\">)<\/font><\/span><\/font><\/span>\n<\/p>\n<p style=\"line-height: normal; margin: 0in 0in 0pt\" class=\"MsoNormal\">\n<span><font face=\"Consolas\"><font color=\"#0000ff\" style=\"font-size: 9.5pt\">GO<\/font><\/font><\/span>\n<\/p>\n<p style=\"line-height: 13pt; margin: 0in 0in 10pt\" class=\"MsoNormal\">\n<font face=\"Calibri\"><font style=\"font-size: 11pt\"><\/font><\/font>\n<\/p>\n<p style=\"line-height: 13pt; margin: 0in 0in 10pt\" class=\"MsoNormal\">\n<font face=\"Calibri\"><font style=\"font-size: 11pt\">After creating the session, I&rsquo;ll start.<span>&nbsp; <\/span>In my test, I just ran the slow performing workload against one of the published tables, launched Replication Monitor, waited for the rows to arrive at the subscriber and then stopped the event session:<\/font><\/font>\n<\/p>\n<p style=\"line-height: normal; margin: 0in 0in 0pt\" class=\"MsoNormal\">\n<font face=\"Consolas\"><span><font color=\"#0000ff\"><font style=\"font-size: 9.5pt\">ALTER<\/font><\/font><\/span><span><font style=\"font-size: 9.5pt\"> <span><font color=\"#0000ff\">EVENT<\/font><\/span> <span><font color=\"#0000ff\">SESSION<\/font><\/span> <span><font color=\"#008080\">Replication_AGT_Waits<\/font><\/span> <\/font><\/span><\/font>\n<\/p>\n<p style=\"line-height: normal; margin: 0in 0in 0pt\" class=\"MsoNormal\">\n<font face=\"Consolas\"><span><font color=\"#0000ff\"><font style=\"font-size: 9.5pt\">ON<\/font><\/font><\/span><span><font style=\"font-size: 9.5pt\"> <span><font color=\"#0000ff\">SERVER<\/font><\/span> <span><font color=\"#0000ff\">STATE<\/font><\/span> <span><font color=\"#808080\">=<\/font><\/span> <span><font color=\"#008080\">START<\/font><\/span><\/font><span><font color=\"#808080\" style=\"font-size: 9.5pt\">;<\/font><\/span><\/span><\/font>\n<\/p>\n<p style=\"line-height: normal; margin: 0in 0in 0pt\" class=\"MsoNormal\">\n<span><font face=\"Consolas\"><font style=\"font-size: 9.5pt\"><\/font><\/font><\/span>\n<\/p>\n<p style=\"line-height: normal; margin: 0in 0in 0pt\" class=\"MsoNormal\">\n<span><font face=\"Consolas\"><font color=\"#008000\" style=\"font-size: 9.5pt\">&#8212; Run representative replication workload against publisher<\/font><\/font><\/span>\n<\/p>\n<p style=\"line-height: normal; margin: 0in 0in 0pt\" class=\"MsoNormal\">\n<span><font face=\"Consolas\"><font style=\"font-size: 9.5pt\"><\/font><\/font><\/span>\n<\/p>\n<p style=\"line-height: normal; margin: 0in 0in 0pt\" class=\"MsoNormal\">\n<span><font face=\"Consolas\"><font color=\"#008000\" style=\"font-size: 9.5pt\">&#8212; Launch Monitor and wait for all trans to be fully distributed<\/font><\/font><\/span><span><\/span>\n<\/p>\n<p style=\"line-height: normal; margin: 0in 0in 0pt\" class=\"MsoNormal\">\n<span><font face=\"Consolas\"><font style=\"font-size: 9.5pt\"><\/font><\/font><\/span>\n<\/p>\n<p style=\"line-height: normal; margin: 0in 0in 0pt\" class=\"MsoNormal\">\n<font face=\"Consolas\"><span><font color=\"#0000ff\"><font style=\"font-size: 9.5pt\">ALTER<\/font><\/font><\/span><span><font style=\"font-size: 9.5pt\"> <span><font color=\"#0000ff\">EVENT<\/font><\/span> <span><font color=\"#0000ff\">SESSION<\/font><\/span> <span><font color=\"#008080\">Replication_AGT_Waits<\/font><\/span> <\/font><\/span><\/font>\n<\/p>\n<p style=\"line-height: normal; margin: 0in 0in 0pt\" class=\"MsoNormal\">\n<font face=\"Consolas\"><span><font color=\"#0000ff\"><font style=\"font-size: 9.5pt\">ON<\/font><\/font><\/span><span><font style=\"font-size: 9.5pt\"> <span><font color=\"#0000ff\">SERVER<\/font><\/span> <span><font color=\"#0000ff\">STATE<\/font><\/span> <span><font color=\"#808080\">=<\/font><\/span> <span><font color=\"#0000ff\">STOP<\/font><\/span><\/font><span><font color=\"#808080\" style=\"font-size: 9.5pt\">;<\/font><\/span><\/span><\/font>\n<\/p>\n<p style=\"line-height: 13pt; margin: 0in 0in 10pt\" class=\"MsoNormal\">\n<font face=\"Calibri\"><font style=\"font-size: 11pt\"><\/font><\/font>\n<\/p>\n<p style=\"line-height: 13pt; margin: 0in 0in 10pt\" class=\"MsoNormal\">\n<font face=\"Calibri\"><font style=\"font-size: 11pt\">Next, I created two intermediate temp tables to start going through the collected data:<\/font><\/font>\n<\/p>\n<p style=\"line-height: normal; margin: 0in 0in 0pt\" class=\"MsoNormal\">\n<span><font face=\"Consolas\"><font color=\"#008000\" style=\"font-size: 9.5pt\">&#8212; Raw data into intermediate table<\/font><\/font><\/span><span><\/span>\n<\/p>\n<p style=\"line-height: normal; margin: 0in 0in 0pt\" class=\"MsoNormal\">\n<font face=\"Consolas\"><span><font color=\"#0000ff\"><font style=\"font-size: 9.5pt\">SELECT<\/font><\/font><\/span><span><font style=\"font-size: 9.5pt\"> <span><font color=\"#ff00ff\">CAST<\/font><\/span><span><font color=\"#808080\">(<\/font><\/span><span><font color=\"#008080\">event_data<\/font><\/span> <span><font color=\"#0000ff\">as<\/font><\/span> <span><font color=\"#0000ff\">XML<\/font><\/span><span><font color=\"#808080\">)<\/font><\/span> <\/font><span><font color=\"#008080\" style=\"font-size: 9.5pt\">event_data<\/font><\/span><\/span><\/font>\n<\/p>\n<p style=\"line-height: normal; margin: 0in 0in 0pt\" class=\"MsoNormal\">\n<font face=\"Consolas\"><span><font color=\"#0000ff\"><font style=\"font-size: 9.5pt\">INTO<\/font><\/font><\/span><span><font style=\"font-size: 9.5pt\"> <\/font><span><font color=\"#008080\" style=\"font-size: 9.5pt\">#ReplicationAgentWaits_Stage_1<\/font><\/span><\/span><\/font>\n<\/p>\n<p style=\"line-height: normal; margin: 0in 0in 0pt\" class=\"MsoNormal\">\n<font face=\"Consolas\"><span><font color=\"#0000ff\"><font style=\"font-size: 9.5pt\">FROM<\/font><\/font><\/span><span><font style=\"font-size: 9.5pt\"> <span><font color=\"#008000\">sys<\/font><\/span><span><font color=\"#808080\">.<\/font><\/span><\/font><span><font color=\"#008080\" style=\"font-size: 9.5pt\">fn_xe_file_target_read_file<\/font><\/span><\/span><\/font>\n<\/p>\n<p style=\"line-height: normal; margin: 0in 0in 0pt\" class=\"MsoNormal\">\n<font face=\"Consolas\"><span><span><font color=\"#0000ff\"><font style=\"font-size: 9.5pt\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/font><\/font><\/span><\/span><font style=\"font-size: 9.5pt\"><span><font color=\"#808080\">(<\/font><\/span><span><font color=\"#ff0000\">&#39;C:\\temp\\ReplAGTStats*.xel&#39;<\/font><\/span><\/font><span><font color=\"#808080\" style=\"font-size: 9.5pt\">,<\/font><\/span><\/font><span><\/span>\n<\/p>\n<p style=\"line-height: normal; margin: 0in 0in 0pt\" class=\"MsoNormal\">\n<span><font face=\"Consolas\"><span><font style=\"font-size: 9.5pt\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/font><\/span><font style=\"font-size: 9.5pt\"><span>&nbsp;<\/span><span><font color=\"#ff0000\">&#39;C:\\temp\\ReplAGTStats*.xem&#39;<\/font><\/span><\/font><span><font color=\"#808080\" style=\"font-size: 9.5pt\">,<\/font><\/span><\/font><\/span>\n<\/p>\n<p style=\"line-height: normal; margin: 0in 0in 0pt\" class=\"MsoNormal\">\n<span><font face=\"Consolas\"><span><font style=\"font-size: 9.5pt\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/font><\/span><font style=\"font-size: 9.5pt\"><span>&nbsp;<\/span><span><font color=\"#808080\">NULL,<\/font><\/span> <\/font><span><font color=\"#808080\" style=\"font-size: 9.5pt\">NULL)<\/font><\/span><\/font><\/span>\n<\/p>\n<p style=\"line-height: normal; margin: 0in 0in 0pt\" class=\"MsoNormal\">\n<span><font face=\"Consolas\"><font style=\"font-size: 9.5pt\"><\/font><\/font><\/span>\n<\/p>\n<p style=\"line-height: normal; margin: 0in 0in 0pt\" class=\"MsoNormal\">\n<span><font face=\"Consolas\"><font color=\"#008000\" style=\"font-size: 9.5pt\">&#8212; Aggregated data into intermediate table<\/font><\/font><\/span><span><\/span>\n<\/p>\n<p style=\"line-height: normal; margin: 0in 0in 0pt\" class=\"MsoNormal\">\n<span><font face=\"Consolas\"><font color=\"#008000\"><font style=\"font-size: 9.5pt\">&#8212; #ReplicationAgentWaits<\/font><span><font style=\"font-size: 9.5pt\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/font><\/span><\/font><\/font><\/span><span><\/span>\n<\/p>\n<p style=\"line-height: normal; margin: 0in 0in 0pt\" class=\"MsoNormal\">\n<font face=\"Consolas\"><span><font color=\"#0000ff\"><font style=\"font-size: 9.5pt\">SELECT<\/font><\/font><\/span><span><font style=\"font-size: 9.5pt\"> <\/font><\/span><\/font>\n<\/p>\n<p style=\"line-height: normal; margin: 0in 0in 0pt\" class=\"MsoNormal\">\n<span><font face=\"Consolas\"><span><font style=\"font-size: 9.5pt\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/font><\/span><font style=\"font-size: 9.5pt\"><span><font color=\"#008080\">event_data<\/font><\/span><span><font color=\"#808080\">.<\/font><\/span><span><font color=\"#008080\">value<\/font><\/span> <\/font><\/font><\/span>\n<\/p>\n<p style=\"line-height: normal; margin: 0in 0in 0pt\" class=\"MsoNormal\">\n<font face=\"Consolas\"><span><span><font color=\"#0000ff\"><font style=\"font-size: 9.5pt\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/font><\/font><\/span><\/span><font style=\"font-size: 9.5pt\"><span><font color=\"#808080\">(<\/font><\/span><span><font color=\"#ff0000\">&#39;(\/event\/action[@name=&#39;&#39;session_id&#39;&#39;]\/value)[1]&#39;<\/font><\/span><span><font color=\"#808080\">,<\/font><\/span><\/font><span><font style=\"font-size: 9.5pt\"> <span><font color=\"#ff0000\">&#39;smallint&#39;<\/font><\/span><span><font color=\"#808080\">)<\/font><\/span> <span><font color=\"#0000ff\">as<\/font><\/span> <span><font color=\"#008080\">session_id<\/font><\/span><\/font><span><font color=\"#808080\" style=\"font-size: 9.5pt\">,<\/font><\/span><\/span><\/font>\n<\/p>\n<p style=\"line-height: normal; margin: 0in 0in 0pt\" class=\"MsoNormal\">\n<span><font face=\"Consolas\"><span><font style=\"font-size: 9.5pt\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/font><\/span><font style=\"font-size: 9.5pt\"><span><font color=\"#008080\">event_data<\/font><\/span><span><font color=\"#808080\">.<\/font><\/span><span><font color=\"#008080\">value<\/font><\/span> <\/font><\/font><\/span>\n<\/p>\n<p style=\"line-height: normal; margin: 0in 0in 0pt\" class=\"MsoNormal\">\n<font face=\"Consolas\"><span><span><font color=\"#0000ff\"><font style=\"font-size: 9.5pt\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/font><\/font><\/span><\/span><font style=\"font-size: 9.5pt\"><span><font color=\"#808080\">(<\/font><\/span><span><font color=\"#ff0000\">&#39;(\/event\/data[@name=&#39;&#39;wait_type&#39;&#39;]\/text)[1]&#39;<\/font><\/span><span><font color=\"#808080\">,<\/font><\/span><\/font><span><font style=\"font-size: 9.5pt\"> <span><font color=\"#ff0000\">&#39;varchar(100)&#39;<\/font><\/span><span><font color=\"#808080\">)<\/font><\/span> <span><font color=\"#0000ff\">as<\/font><\/span> <span><font color=\"#008080\">wait_type<\/font><\/span><\/font><span><font color=\"#808080\" style=\"font-size: 9.5pt\">,<\/font><\/span><\/span><\/font>\n<\/p>\n<p style=\"line-height: normal; margin: 0in 0in 0pt\" class=\"MsoNormal\">\n<span><font face=\"Consolas\"><span><font style=\"font-size: 9.5pt\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/font><\/span><font style=\"font-size: 9.5pt\"><span><font color=\"#008080\">event_data<\/font><\/span><span><font color=\"#808080\">.<\/font><\/span><span><font color=\"#008080\">value<\/font><\/span> <\/font><\/font><\/span>\n<\/p>\n<p style=\"line-height: normal; margin: 0in 0in 0pt\" class=\"MsoNormal\">\n<font face=\"Consolas\"><span><span><font color=\"#0000ff\"><font style=\"font-size: 9.5pt\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/font><\/font><\/span><\/span><font style=\"font-size: 9.5pt\"><span><font color=\"#808080\">(<\/font><\/span><span><font color=\"#ff0000\">&#39;(\/event\/data[@name=&#39;&#39;duration&#39;&#39;]\/value)[1]&#39;<\/font><\/span><span><font color=\"#808080\">,<\/font><\/span><\/font><span><font style=\"font-size: 9.5pt\"> <span><font color=\"#ff0000\">&#39;bigint&#39;<\/font><\/span><span><font color=\"#808080\">)<\/font><\/span> <span><font color=\"#0000ff\">as<\/font><\/span> <span><font color=\"#008080\">duration<\/font><\/span><\/font><span><font color=\"#808080\" style=\"font-size: 9.5pt\">,<\/font><\/span><\/span><\/font>\n<\/p>\n<p style=\"line-height: normal; margin: 0in 0in 0pt\" class=\"MsoNormal\">\n<span><font face=\"Consolas\"><span><font style=\"font-size: 9.5pt\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/font><\/span><font style=\"font-size: 9.5pt\"><span><font color=\"#008080\">event_data<\/font><\/span><span><font color=\"#808080\">.<\/font><\/span><span><font color=\"#008080\">value<\/font><\/span> <\/font><\/font><\/span>\n<\/p>\n<p style=\"line-height: normal; margin: 0in 0in 0pt\" class=\"MsoNormal\">\n<font face=\"Consolas\"><span><span><font color=\"#0000ff\"><font style=\"font-size: 9.5pt\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/font><\/font><\/span><\/span><font style=\"font-size: 9.5pt\"><span><font color=\"#808080\">(<\/font><\/span><span><font color=\"#ff0000\">&#39;(\/event\/data[@name=&#39;&#39;signal_duration&#39;&#39;]\/value)[1]&#39;<\/font><\/span><span><font color=\"#808080\">,<\/font><\/span><\/font><span><font style=\"font-size: 9.5pt\"> <span><font color=\"#ff0000\">&#39;bigint&#39;<\/font><\/span><span><font color=\"#808080\">)<\/font><\/span> <span><font color=\"#0000ff\">as<\/font><\/span> <span><font color=\"#008080\">signal_duration<\/font><\/span><\/font><span><font color=\"#808080\" style=\"font-size: 9.5pt\">,<\/font><\/span><\/span><\/font>\n<\/p>\n<p style=\"line-height: normal; margin: 0in 0in 0pt\" class=\"MsoNormal\">\n<span><font face=\"Consolas\"><span><font style=\"font-size: 9.5pt\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/font><\/span><font style=\"font-size: 9.5pt\"><span><font color=\"#008080\">event_data<\/font><\/span><span><font color=\"#808080\">.<\/font><\/span><span><font color=\"#008080\">value<\/font><\/span> <\/font><\/font><\/span>\n<\/p>\n<p style=\"line-height: normal; margin: 0in 0in 0pt\" class=\"MsoNormal\">\n<font face=\"Consolas\"><span><span><font color=\"#0000ff\"><font style=\"font-size: 9.5pt\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/font><\/font><\/span><\/span><font style=\"font-size: 9.5pt\"><span><font color=\"#808080\">(<\/font><\/span><span><font color=\"#ff0000\">&#39;(\/event\/data[@name=&#39;&#39;completed_count&#39;&#39;]\/value)[1]&#39;<\/font><\/span><span><font color=\"#808080\">,<\/font><\/span><\/font><span><font style=\"font-size: 9.5pt\"> <span><font color=\"#ff0000\">&#39;bigint&#39;<\/font><\/span><span><font color=\"#808080\">)<\/font><\/span> <span><font color=\"#0000ff\">as<\/font><\/span> <\/font><span><font color=\"#008080\" style=\"font-size: 9.5pt\">completed_count<\/font><\/span><\/span><\/font>\n<\/p>\n<p style=\"line-height: normal; margin: 0in 0in 0pt\" class=\"MsoNormal\">\n<font face=\"Consolas\"><span><font color=\"#0000ff\"><font style=\"font-size: 9.5pt\">INTO<\/font><\/font><\/span><span><font style=\"font-size: 9.5pt\"> <\/font><span><font color=\"#008080\" style=\"font-size: 9.5pt\">#ReplicationAgentWaits_Stage_2<\/font><\/span><\/span><\/font>\n<\/p>\n<p style=\"line-height: normal; margin: 0in 0in 0pt\" class=\"MsoNormal\">\n<font face=\"Consolas\"><span><font color=\"#0000ff\"><font style=\"font-size: 9.5pt\">FROM<\/font><\/font><\/span><span><font style=\"font-size: 9.5pt\"> <span><font color=\"#008080\">#ReplicationAgentWaits_Stage_1<\/font><\/span><\/font><span><font color=\"#808080\" style=\"font-size: 9.5pt\">;<\/font><\/span><\/span><\/font>\n<\/p>\n<p style=\"line-height: 13pt; margin: 0in 0in 10pt\" class=\"MsoNormal\">\n<font face=\"Calibri\"><font style=\"font-size: 11pt\"><\/font><\/font>\n<\/p>\n<p style=\"line-height: 13pt; margin: 0in 0in 10pt\" class=\"MsoNormal\">\n<font face=\"Calibri\"><font style=\"font-size: 11pt\">Then I took a look at how things broke out by session_id:<\/font><\/font>\n<\/p>\n<p style=\"line-height: normal; margin: 0in 0in 0pt\" class=\"MsoNormal\">\n<font face=\"Consolas\"><span><font color=\"#0000ff\"><font style=\"font-size: 9.5pt\">SELECT<\/font><\/font><\/span><span><font style=\"font-size: 9.5pt\"><span> <\/span><span><font color=\"#008080\">session_id<\/font><\/span><\/font><span><font color=\"#808080\" style=\"font-size: 9.5pt\">,<\/font><\/span><\/span><\/font>\n<\/p>\n<p style=\"line-height: normal; margin: 0in 0in 0pt\" class=\"MsoNormal\">\n<span><font face=\"Consolas\"><span><font style=\"font-size: 9.5pt\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/font><\/span><font style=\"font-size: 9.5pt\"><span><font color=\"#008080\">wait_type<\/font><\/span><\/font><span><font color=\"#808080\" style=\"font-size: 9.5pt\">,<\/font><\/span><\/font><\/span>\n<\/p>\n<p style=\"line-height: normal; margin: 0in 0in 0pt\" class=\"MsoNormal\">\n<span><font face=\"Consolas\"><span><font style=\"font-size: 9.5pt\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/font><\/span><font style=\"font-size: 9.5pt\"><span><font color=\"#ff00ff\">SUM<\/font><\/span><span><font color=\"#808080\">(<\/font><\/span><span><font color=\"#008080\">duration<\/font><\/span><span><font color=\"#808080\">)<\/font><\/span> <span><font color=\"#008080\">total_duration<\/font><\/span><\/font><span><font color=\"#808080\" style=\"font-size: 9.5pt\">,<\/font><\/span><\/font><\/span>\n<\/p>\n<p style=\"line-height: normal; margin: 0in 0in 0pt\" class=\"MsoNormal\">\n<span><font face=\"Consolas\"><span><font style=\"font-size: 9.5pt\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/font><\/span><font style=\"font-size: 9.5pt\"><span><font color=\"#ff00ff\">SUM<\/font><\/span><span><font color=\"#808080\">(<\/font><\/span><span><font color=\"#008080\">signal_duration<\/font><\/span><span><font color=\"#808080\">)<\/font><\/span> <span><font color=\"#008080\">total_signal_duration<\/font><\/span><\/font><span><font color=\"#808080\" style=\"font-size: 9.5pt\">,<\/font><\/span><\/font><\/span>\n<\/p>\n<p style=\"line-height: normal; margin: 0in 0in 0pt\" class=\"MsoNormal\">\n<span><font face=\"Consolas\"><span><font style=\"font-size: 9.5pt\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/font><\/span><font style=\"font-size: 9.5pt\"><span><font color=\"#ff00ff\">SUM<\/font><\/span><span><font color=\"#808080\">(<\/font><\/span><span><font color=\"#008080\">completed_count<\/font><\/span><span><font color=\"#808080\">)<\/font><\/span> <\/font><span><font color=\"#008080\" style=\"font-size: 9.5pt\">total_wait_count<\/font><\/span><\/font><\/span>\n<\/p>\n<p style=\"line-height: normal; margin: 0in 0in 0pt\" class=\"MsoNormal\">\n<font face=\"Consolas\"><span><font color=\"#0000ff\"><font style=\"font-size: 9.5pt\">FROM<\/font><\/font><\/span><span><font style=\"font-size: 9.5pt\"> <\/font><span><font color=\"#008080\" style=\"font-size: 9.5pt\">#ReplicationAgentWaits_Stage_2<\/font><\/span><\/span><\/font>\n<\/p>\n<p style=\"line-height: normal; margin: 0in 0in 0pt\" class=\"MsoNormal\">\n<font face=\"Consolas\"><span><font color=\"#0000ff\"><font style=\"font-size: 9.5pt\">GROUP<\/font><\/font><\/span><span><font style=\"font-size: 9.5pt\"> <span><font color=\"#0000ff\">BY<\/font><\/span> <span><font color=\"#008080\">session_id<\/font><\/span><\/font><span><font color=\"#808080\" style=\"font-size: 9.5pt\">,<\/font><\/span><\/span><\/font>\n<\/p>\n<p style=\"line-height: normal; margin: 0in 0in 0pt\" class=\"MsoNormal\">\n<span><font face=\"Consolas\"><span><font style=\"font-size: 9.5pt\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/font><\/span><span><font color=\"#008080\" style=\"font-size: 9.5pt\">wait_type<\/font><\/span><\/font><\/span>\n<\/p>\n<p style=\"line-height: normal; margin: 0in 0in 0pt\" class=\"MsoNormal\">\n<font face=\"Consolas\"><span><font color=\"#0000ff\"><font style=\"font-size: 9.5pt\">ORDER<\/font><\/font><\/span><span><font style=\"font-size: 9.5pt\"> <span><font color=\"#0000ff\">BY<\/font><\/span> <span><font color=\"#008080\">session_id<\/font><\/span><\/font><span><font color=\"#808080\" style=\"font-size: 9.5pt\">,<\/font><\/span><\/span><\/font>\n<\/p>\n<p style=\"line-height: normal; margin: 0in 0in 0pt\" class=\"MsoNormal\">\n<span><font face=\"Consolas\"><span><font style=\"font-size: 9.5pt\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/font><\/span><font style=\"font-size: 9.5pt\"><span><font color=\"#ff00ff\">SUM<\/font><\/span><span><font color=\"#808080\">(<\/font><\/span><span><font color=\"#008080\">duration<\/font><\/span><span><font color=\"#808080\">)<\/font><\/span> <span><font color=\"#0000ff\">DESC<\/font><\/span><\/font><span><font color=\"#808080\" style=\"font-size: 9.5pt\">;<\/font><\/span><\/font><\/span>\n<\/p>\n<p style=\"line-height: 13pt; margin: 0in 0in 10pt\" class=\"MsoNormal\">\n<font face=\"Calibri\"><font style=\"font-size: 11pt\"><\/font><\/font>\n<\/p>\n<p style=\"line-height: 13pt; margin: 0in 0in 10pt\" class=\"MsoNormal\">\n<font face=\"Calibri\"><font style=\"font-size: 11pt\">Here were the results:<\/font><\/font>\n<\/p>\n<p style=\"line-height: 13pt; margin: 0in 0in 10pt\" class=\"MsoNormal\">\n<span><a href=\"https:\/\/www.sqlskills.com\/blogs\/joe\/wp-content\/uploads\/windows-live-writer\/what-are-the-replication-agents-waiting-\/5ca6e74b\/clip_image002.jpg\"><img fetchpriority=\"high\" decoding=\"async\" style=\"background-image: none; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border: 0px\" src=\"https:\/\/www.sqlskills.com\/blogs\/joe\/wp-content\/uploads\/windows-live-writer\/what-are-the-replication-agents-waiting-\/209aa596\/clip_image002_thumb.jpg\" border=\"0\" alt=\"clip_image002\" title=\"clip_image002\" width=\"774\" height=\"627\" \/><\/a><\/span>\n<\/p>\n<p style=\"line-height: 13pt; margin: 0in 0in 10pt\" class=\"MsoNormal\">\n<font face=\"Calibri\"><font style=\"font-size: 11pt\">Session 55, 57 and 59 were my log agent sessions.<span>&nbsp; <\/span>Just looking at session 57 (highlighted in purple), we see that IO_COMPLETION had the highest wait duration.<span>&nbsp; <\/span>If I check out the accumulated reads from sys.dm_exec_sessions for that session, I see it is doing <em>all <\/em>reads, whereas session 59 was doing <em>all <\/em>writes (so we can start mapping to the agent thread roles).<\/font><span><font style=\"font-size: 11pt\">&nbsp; <\/font><\/span><\/font>\n<\/p>\n<p style=\"line-height: 13pt; margin: 0in 0in 10pt\" class=\"MsoNormal\">\n<font face=\"Calibri\"><font style=\"font-size: 11pt\">Session id 61 (in yellow) represented the Replication Distribution History process and session id 62 (in green) represented the distribution agent process.<span>&nbsp; <\/span>As we can see for 62 &ndash; the longest duration was due to NETWORK_IO.<span>&nbsp; <\/span>We also see a similar value from PREEMPTIVE_OS_WAITFORSINGLEOBJECT (and if you think that these seem correlated, indeed this preemptive wait type is seen in conjunction with the network waittype wait).<\/font><\/font>\n<\/p>\n<p style=\"line-height: 13pt; margin: 0in 0in 10pt\" class=\"MsoNormal\">\n<font face=\"Calibri\"><font style=\"font-size: 11pt\">So what would we see at the subscriber side?<span>&nbsp; <\/span>For this specific scenario, I saw the following (using the session of my distribution agent account) which was session id 55:<\/font><\/font>\n<\/p>\n<p style=\"line-height: 13pt; margin: 0in 0in 10pt\" class=\"MsoNormal\">\n<span><a href=\"https:\/\/www.sqlskills.com\/blogs\/joe\/wp-content\/uploads\/windows-live-writer\/what-are-the-replication-agents-waiting-\/2a13640c\/clip_image003.png\"><img decoding=\"async\" style=\"background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border: 0px\" src=\"https:\/\/www.sqlskills.com\/blogs\/joe\/wp-content\/uploads\/windows-live-writer\/what-are-the-replication-agents-waiting-\/42a3015c\/clip_image003_thumb.png\" border=\"0\" alt=\"clip_image003\" title=\"clip_image003\" width=\"542\" height=\"126\" \/><\/a><\/span>\n<\/p>\n<p style=\"line-height: 13pt; margin: 0in 0in 10pt\" class=\"MsoNormal\">\n<font face=\"Calibri\"><font style=\"font-size: 11pt\"><\/font><\/font>\n<\/p>\n<p style=\"line-height: 13pt; margin: 0in 0in 10pt\" class=\"MsoNormal\">\n<font face=\"Calibri\"><font style=\"font-size: 11pt\">In this case, the top wait (by duration) was WRITELOG on the subscriber for the CAESAR_AdventureWorks2008R2_Pub_AW_2008R2 distribution agent process &#8211; although the number was not very high.<\/font><\/font>\n<\/p>\n<p style=\"line-height: 13pt; margin: 0in 0in 10pt\" class=\"MsoNormal\">\n<font face=\"Calibri\"><font style=\"font-size: 11pt\">So if you&rsquo;re experiencing slow replication, you may consider this additional technique in order to help further identify where the bottlenecks may be in the topology and also get initial ideas on why this may be.<\/font><span><font style=\"font-size: 11pt\">&nbsp; <\/font><\/span><\/font><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Consider the following scenario: &middot;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; You have Transactional Replication deployed &middot;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Data is flowing, but just not as fast as you would like &middot;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; This scenario could apply to local\/remote distributors and push\/pull subscribers There are several different techniques we can use to narrow down where the replication performance issue is happening.&nbsp; Perhaps you&rsquo;ve already [&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,30],"tags":[],"class_list":["post-508","post","type-post","status-publish","format-standard","hentry","category-performance","category-replication"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v21.9.1 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>What are the Replication Agents waiting on? Accumulating wait stats by agent session - 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\/what-are-the-replication-agents-waiting-on-accumulating-wait-stats-by-agent-session\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"What are the Replication Agents waiting on? Accumulating wait stats by agent session - Joe Sack\" \/>\n<meta property=\"og:description\" content=\"Consider the following scenario: &middot;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; You have Transactional Replication deployed &middot;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Data is flowing, but just not as fast as you would like &middot;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; This scenario could apply to local\/remote distributors and push\/pull subscribers There are several different techniques we can use to narrow down where the replication performance issue is happening.&nbsp; Perhaps you&rsquo;ve already [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.sqlskills.com\/blogs\/joe\/what-are-the-replication-agents-waiting-on-accumulating-wait-stats-by-agent-session\/\" \/>\n<meta property=\"og:site_name\" content=\"Joe Sack\" \/>\n<meta property=\"article:published_time\" content=\"2012-02-15T06:25:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2013-01-03T04:36:29+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.sqlskills.com\/blogs\/joe\/wp-content\/uploads\/windows-live-writer\/what-are-the-replication-agents-waiting-\/209aa596\/clip_image002_thumb.jpg\" \/>\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=\"7 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\/what-are-the-replication-agents-waiting-on-accumulating-wait-stats-by-agent-session\/\",\"url\":\"https:\/\/www.sqlskills.com\/blogs\/joe\/what-are-the-replication-agents-waiting-on-accumulating-wait-stats-by-agent-session\/\",\"name\":\"What are the Replication Agents waiting on? Accumulating wait stats by agent session - Joe Sack\",\"isPartOf\":{\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/joe\/#website\"},\"datePublished\":\"2012-02-15T06:25:00+00:00\",\"dateModified\":\"2013-01-03T04:36:29+00:00\",\"author\":{\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/joe\/#\/schema\/person\/533eb0113a15fb5a6e8067a49e4ae648\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/joe\/what-are-the-replication-agents-waiting-on-accumulating-wait-stats-by-agent-session\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.sqlskills.com\/blogs\/joe\/what-are-the-replication-agents-waiting-on-accumulating-wait-stats-by-agent-session\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/joe\/what-are-the-replication-agents-waiting-on-accumulating-wait-stats-by-agent-session\/#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\":\"What are the Replication Agents waiting on? Accumulating wait stats by agent session\"}]},{\"@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":"What are the Replication Agents waiting on? Accumulating wait stats by agent session - 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\/what-are-the-replication-agents-waiting-on-accumulating-wait-stats-by-agent-session\/","og_locale":"en_US","og_type":"article","og_title":"What are the Replication Agents waiting on? Accumulating wait stats by agent session - Joe Sack","og_description":"Consider the following scenario: &middot;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; You have Transactional Replication deployed &middot;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Data is flowing, but just not as fast as you would like &middot;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; This scenario could apply to local\/remote distributors and push\/pull subscribers There are several different techniques we can use to narrow down where the replication performance issue is happening.&nbsp; Perhaps you&rsquo;ve already [&hellip;]","og_url":"https:\/\/www.sqlskills.com\/blogs\/joe\/what-are-the-replication-agents-waiting-on-accumulating-wait-stats-by-agent-session\/","og_site_name":"Joe Sack","article_published_time":"2012-02-15T06:25:00+00:00","article_modified_time":"2013-01-03T04:36:29+00:00","og_image":[{"url":"https:\/\/www.sqlskills.com\/blogs\/joe\/wp-content\/uploads\/windows-live-writer\/what-are-the-replication-agents-waiting-\/209aa596\/clip_image002_thumb.jpg"}],"author":"Joseph Sack","twitter_misc":{"Written by":"Joseph Sack","Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.sqlskills.com\/blogs\/joe\/what-are-the-replication-agents-waiting-on-accumulating-wait-stats-by-agent-session\/","url":"https:\/\/www.sqlskills.com\/blogs\/joe\/what-are-the-replication-agents-waiting-on-accumulating-wait-stats-by-agent-session\/","name":"What are the Replication Agents waiting on? Accumulating wait stats by agent session - Joe Sack","isPartOf":{"@id":"https:\/\/www.sqlskills.com\/blogs\/joe\/#website"},"datePublished":"2012-02-15T06:25:00+00:00","dateModified":"2013-01-03T04:36:29+00:00","author":{"@id":"https:\/\/www.sqlskills.com\/blogs\/joe\/#\/schema\/person\/533eb0113a15fb5a6e8067a49e4ae648"},"breadcrumb":{"@id":"https:\/\/www.sqlskills.com\/blogs\/joe\/what-are-the-replication-agents-waiting-on-accumulating-wait-stats-by-agent-session\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.sqlskills.com\/blogs\/joe\/what-are-the-replication-agents-waiting-on-accumulating-wait-stats-by-agent-session\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.sqlskills.com\/blogs\/joe\/what-are-the-replication-agents-waiting-on-accumulating-wait-stats-by-agent-session\/#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":"What are the Replication Agents waiting on? Accumulating wait stats by agent session"}]},{"@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\/508","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=508"}],"version-history":[{"count":0,"href":"https:\/\/www.sqlskills.com\/blogs\/joe\/wp-json\/wp\/v2\/posts\/508\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.sqlskills.com\/blogs\/joe\/wp-json\/wp\/v2\/media?parent=508"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.sqlskills.com\/blogs\/joe\/wp-json\/wp\/v2\/categories?post=508"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.sqlskills.com\/blogs\/joe\/wp-json\/wp\/v2\/tags?post=508"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}