{"id":555,"date":"2013-02-28T11:25:35","date_gmt":"2013-02-28T19:25:35","guid":{"rendered":"http:\/\/3.209.169.194\/blogs\/erin\/?p=555"},"modified":"2017-10-19T18:15:51","modified_gmt":"2017-10-20T01:15:51","slug":"sql-server-maintenance-plans-and-parallelism-checkdb","status":"publish","type":"post","link":"https:\/\/www.sqlskills.com\/blogs\/erin\/sql-server-maintenance-plans-and-parallelism-checkdb\/","title":{"rendered":"SQL Server Maintenance Plans and Parallelism &#8211; CHECKDB"},"content":{"rendered":"<p>Many posts and articles that discuss parallelism and SQL Server revolve around query performance and query optimization. Parallelism can affect performance, and some DBAs and database developers spend a great amount of time trying to find the \u201cright\u201d max degree of parallelism (MAXDOP) setting for an instance. Finding that right value is a science and an art, but understanding what degree of parallelism is used by SQL Server for standard maintenance tasks is straight science.<\/p>\n<p><strong>Parallelism and Instance Configuration<\/strong><\/p>\n<p>To start, I\u2019m working under the assumption that you are familiar with parallelism and understand the implications of leaving max degree of parallelism set to 0, changing it to 1, or setting it to another value. <em>Note: If you\u2019re looking for background reading, I recommend Adam Machanic\u2019s SQL University Parallelism Week posts (<a title=\"SQL University: Parallelism Week - Introduction\" href=\"http:\/\/sqlblog.com\/blogs\/adam_machanic\/archive\/2010\/05\/24\/sql-university-parallelism-week-introduction.aspx\" class=\"broken_link\">Part 1<\/a>, <a title=\"SQL University: Parallelism Week - Part 2, Query Processing\" href=\"http:\/\/sqlblog.com\/blogs\/adam_machanic\/archive\/2010\/05\/26\/sql-university-parallelism-week-part-2-query-processing.aspx\" class=\"broken_link\">Part 2<\/a>, and <a title=\"SQL University: Parallelism Week - Part 3, Settings and Options\" href=\"http:\/\/sqlblog.com\/blogs\/adam_machanic\/archive\/2010\/05\/28\/sql-university-parallelism-week-part-3-settings-and-options.aspx\" class=\"broken_link\">Part 3<\/a>), and Paul White\u2019s article, <a title=\"Understanding and Using Parallelism in SQL Server\" href=\"https:\/\/www.simple-talk.com\/sql\/learn-sql-server\/understanding-and-using-parallelism-in-sql-server\/\">Understanding and Using Parallelism in SQL Server<\/a>.<\/em> To understand what impact max degree of parallelism has on maintenance tasks, we need to know its value for an instance, and the easiest way to find it is via sys.configurations:<\/p>\n<pre class=\"brush: sql; title: ; notranslate\" title=\"\">\r\nSELECT &#x5B;name], &#x5B;value], &#x5B;value_in_use]\r\nFROM &#x5B;sys].&#x5B;configurations]\r\nWHERE &#x5B;name] = 'max degree of parallelism';\r\n<\/pre>\n<p>In my environment, it\u2019s set to 4 for purposes of this demo (I have 8 logical processors on my laptop):<\/p>\n<figure id=\"attachment_551\" aria-describedby=\"caption-attachment-551\" style=\"width: 485px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/www.sqlskills.com\/blogs\/erin\/sql-server-maintenance-plans-and-parallelism-index-rebuild\/maxdop\/\" rel=\"attachment wp-att-551\"><img decoding=\"async\" class=\"size-full wp-image-551\" src=\"https:\/\/www.sqlskills.com\/blogs\/erin\/wp-content\/uploads\/2013\/02\/maxdop.jpg\" alt=\"max degree of parallelism configuration\" width=\"485\" height=\"86\" \/><\/a><figcaption id=\"caption-attachment-551\" class=\"wp-caption-text\">max degree of parallelism configuration<\/figcaption><\/figure>\n<p>The three maintenance tasks I want to cover in this series are database consistency checks, index rebuilds, and statistic updates.\u00a0 As you might have guessed from the title, this first post will cover consistency checks.<\/p>\n<p><strong>Database Consistency Checks<\/strong><\/p>\n<p>In November of last year I blogged about <a title=\"DBCC CHECKDB Parallel Checks and SQL Server Edition\" href=\"https:\/\/www.sqlskills.com\/blogs\/erin\/dbcc-checkdb-parallel-checks-and-sql-server-edition\/\">DBCC CHECKDB and parallel checks<\/a> due to an inconsistency I found in Books Online. The inconsistency has since been fixed in BOL (hooray for Connect items!), and the short story is that any consistency check (CHECKDB, CHECKTABLE, CHECKFILEGROUP, and CHECKCATALOG) is single-threaded in Standard Edition. Regardless of the number of cores in your server and the MAXDOP setting for the instance, any CHECK command will be single-threaded.<\/p>\n<p>In Enterprise Edition, checks can be done in parallel, and the max degree of parallelism is determined by the Query Processor. The Query Processor respects the max degree of parallelism setting for the instance, therefore since I have MAXDOP = 4 for my instance, up to four processors can be used by a CHECK command. There is no MAXDOP option that can be included with a CHECK command; it always respects the value set for the instance.\u00a0 We can prove this using Extended Events and the sp_statement_completed and query_post_execution_showplan events.<\/p>\n<p><em>*EDIT: For versions SQL Server 2014 SP2 and higher there is a MAXDOP option you can specify for CHECKDB.\u00a0 Please see the updated <a href=\"https:\/\/docs.microsoft.com\/en-us\/sql\/t-sql\/database-console-commands\/dbcc-checkdb-transact-sql\">DBCC CHECKDB<\/a> documentation for complete details.<\/em><\/p>\n<p><span style=\"color: #ff0000;\">**Important note here: it is <strong><em>NOT<\/em> <\/strong>recommended to capture the query_post_execution_showplan event against a live, production system. This event generates <strong><em>significant<\/em> <\/strong>performance overhead, and you are warned of this when configuring the session via the GUI. If you repeat any of the demos here, please make sure to execute them against a test environment. I really do not want you to bring down your production environment.**<\/span><\/p>\n<p>Here are the statements to create the event session, start it, run CHECKDB, then stop the event session. I am using a file target to capture the output, and the path is C:\\temp. You may need to modify this path for your environment.<\/p>\n<pre class=\"brush: sql; title: ; notranslate\" title=\"\">\r\nCREATE EVENT SESSION &#x5B;CapturePlans] ON SERVER\r\nADD EVENT sqlserver.query_post_execution_showplan(\r\nACTION(sqlserver.plan_handle,sqlserver.sql_text)),\r\nADD EVENT sqlserver.sp_statement_completed(\r\nACTION(sqlserver.sql_text))\r\nADD TARGET package0.event_file(SET filename=N'C:\\temp\\CapturePlans.xel'),\r\nADD TARGET package0.ring_buffer(SET max_memory=(102400))\r\nWITH (MAX_MEMORY=4096 KB,EVENT_RETENTION_MODE=ALLOW_SINGLE_EVENT_LOSS,MAX_DISPATCH_LATENCY=30 SECONDS,\r\nMAX_EVENT_SIZE=0 KB,MEMORY_PARTITION_MODE=NONE,TRACK_CAUSALITY=OFF,STARTUP_STATE=OFF);\r\nGO\r\n\r\nALTER EVENT SESSION &#x5B;CapturePlans]\r\nON SERVER\r\nSTATE=START;\r\nGO\r\n\r\nDBCC CHECKDB (AdventureWorks2012) WITH NO_INFOMSGS;\r\nGO\r\n\r\nALTER EVENT SESSION &#x5B;CapturePlans]\r\nON SERVER\r\nSTATE=STOP;\r\nGO\r\n<\/pre>\n<p>After stopping the event session, open the .xel file from C:\\temp in Management Studio and add the sql_text column to the display to easily find the CHECKDB statement.\u00a0 In the\u00a0 screen shot below the query_post_execution_showplan event is highlighted, you can see the sql_text, and I hovered over the showplan_xml to show the first part of the xml version of the plan. Note the red box around QueryPlan DegreeofParallelism&#8230;it&#8217;s 4, as expected because it&#8217;s set to that for the instance.\u00a0 The query plan is also included in the screen shot to show the full plan.<\/p>\n<figure id=\"attachment_557\" aria-describedby=\"caption-attachment-557\" style=\"width: 1024px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/www.sqlskills.com\/blogs\/erin\/sql-server-maintenance-plans-and-parallelism-checkdb\/checkdb_isparallel\/\" rel=\"attachment wp-att-557\"><img fetchpriority=\"high\" decoding=\"async\" class=\"size-large wp-image-557\" src=\"https:\/\/www.sqlskills.com\/blogs\/erin\/wp-content\/uploads\/2013\/02\/checkdb_isparallel-1024x420.png\" alt=\"DBCC CHECKDB with parallelism\" width=\"1024\" height=\"420\" srcset=\"https:\/\/www.sqlskills.com\/blogs\/erin\/wp-content\/uploads\/2013\/02\/checkdb_isparallel-1024x420.png 1024w, https:\/\/www.sqlskills.com\/blogs\/erin\/wp-content\/uploads\/2013\/02\/checkdb_isparallel-300x123.png 300w, https:\/\/www.sqlskills.com\/blogs\/erin\/wp-content\/uploads\/2013\/02\/checkdb_isparallel.png 1203w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption id=\"caption-attachment-557\" class=\"wp-caption-text\">DBCC CHECKDB with parallelism<\/figcaption><\/figure>\n<p>To view the full XML for the plan, just double-click the showplan_xml value and it will open in a new window. Just for fun, if we change MAXDOP for the instance to 1 (which I&#8217;ve seen in some OLTP environments) note that CHECKDB now runs single-threaded, regardless of SQL Server version.<\/p>\n<pre class=\"brush: sql; title: ; notranslate\" title=\"\">\r\nsp_configure 'show advanced options', 1;\r\nGO\r\nRECONFIGURE WITH OVERRIDE;\r\nGO\r\nsp_configure 'max degree of parallelism', 1;\r\nGO\r\nRECONFIGURE WITH OVERRIDE;\r\nGO\r\n\r\nALTER EVENT SESSION &#x5B;CapturePlans]\r\nON SERVER\r\nSTATE=START;\r\nGO\r\n\r\nDBCC CHECKDB (AdventureWorks2012) WITH NO_INFOMSGS;\r\nGO\r\n\r\nALTER EVENT SESSION &#x5B;CapturePlans]\r\nON SERVER\r\nSTATE=STOP;\r\nGO\r\n<\/pre>\n<p>Again, if we open the most recent .xel file in C:\\temp and add the\u00a0sql_text column, we can see that CHECKDB runs single-threaded:<\/p>\n<figure id=\"attachment_556\" aria-describedby=\"caption-attachment-556\" style=\"width: 1024px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/www.sqlskills.com\/blogs\/erin\/sql-server-maintenance-plans-and-parallelism-checkdb\/checkdb_noparallel\/\" rel=\"attachment wp-att-556\"><img decoding=\"async\" class=\"size-large wp-image-556\" src=\"https:\/\/www.sqlskills.com\/blogs\/erin\/wp-content\/uploads\/2013\/02\/checkdb_noparallel-1024x420.png\" alt=\"DBCC CHECKDB single-threaded\" width=\"1024\" height=\"420\" srcset=\"https:\/\/www.sqlskills.com\/blogs\/erin\/wp-content\/uploads\/2013\/02\/checkdb_noparallel-1024x420.png 1024w, https:\/\/www.sqlskills.com\/blogs\/erin\/wp-content\/uploads\/2013\/02\/checkdb_noparallel-300x123.png 300w, https:\/\/www.sqlskills.com\/blogs\/erin\/wp-content\/uploads\/2013\/02\/checkdb_noparallel.png 1201w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption id=\"caption-attachment-556\" class=\"wp-caption-text\">DBCC CHECKDB single-threaded<\/figcaption><\/figure>\n<p>Realize that if max degree of parallelism is set to 1 for instance, and you&#8217;re running Enterprise Edition, your consistency checks could be taking longer than necessary.\u00a0 The only way to work around this in Enterprise Edition is to change the max degree of parallelism for the instance, run the check, then change it back.\u00a0 Alternatively, in some enterprise environments that are 24\/7, it may not be desirable to have CHECK commands use a high number of threads.\u00a0 In that case, lowering max degree of parallelism while CHECKs run may not be an option &#8211; you may not want to impact the performance of your regular queries.\u00a0 Instead, you could disable parallel checking for CHECK commands entirely using <a title=\"Trace Flags\" href=\"https:\/\/docs.microsoft.com\/en-us\/sql\/t-sql\/database-console-commands\/dbcc-traceon-trace-flags-transact-sql\">trace flag 2528<\/a>, or you could use Resource Governor to limit CPU use. And one final, interesting note (thanks Paul): CHECKALLOC is always single-threaded, regardless of Edition.<\/p>\n<p>In the next post we&#8217;ll look at parallelism and index maintenance.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Many posts and articles that discuss parallelism and SQL Server revolve around query performance and query optimization. Parallelism can affect performance, and some DBAs and database developers spend a great amount of time trying to find the \u201cright\u201d max degree of parallelism (MAXDOP) setting for an instance. Finding that right value is a science and [&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,13],"tags":[21,22,23],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v21.9.1 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>SQL Server Maintenance Plans and Parallelism - CHECKDB - Erin Stellato<\/title>\n<meta name=\"description\" content=\"SQL Server CHECK commands can use parallelism in Enterprise Edition, but they respect the MAXDOP value set for the instance, which can affect check duration\" \/>\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\/erin\/sql-server-maintenance-plans-and-parallelism-checkdb\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"SQL Server Maintenance Plans and Parallelism - CHECKDB - Erin Stellato\" \/>\n<meta property=\"og:description\" content=\"SQL Server CHECK commands can use parallelism in Enterprise Edition, but they respect the MAXDOP value set for the instance, which can affect check duration\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.sqlskills.com\/blogs\/erin\/sql-server-maintenance-plans-and-parallelism-checkdb\/\" \/>\n<meta property=\"og:site_name\" content=\"Erin Stellato\" \/>\n<meta property=\"article:published_time\" content=\"2013-02-28T19:25:35+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2017-10-20T01:15:51+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.sqlskills.com\/blogs\/erin\/wp-content\/uploads\/2013\/02\/maxdop.jpg\" \/>\n<meta name=\"author\" content=\"Erin Stellato\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Erin Stellato\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/erin\/sql-server-maintenance-plans-and-parallelism-checkdb\/\",\"url\":\"https:\/\/www.sqlskills.com\/blogs\/erin\/sql-server-maintenance-plans-and-parallelism-checkdb\/\",\"name\":\"SQL Server Maintenance Plans and Parallelism - CHECKDB - Erin Stellato\",\"isPartOf\":{\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/erin\/#website\"},\"datePublished\":\"2013-02-28T19:25:35+00:00\",\"dateModified\":\"2017-10-20T01:15:51+00:00\",\"author\":{\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/erin\/#\/schema\/person\/76170223ffffa1df03fd9be5b66cb158\"},\"description\":\"SQL Server CHECK commands can use parallelism in Enterprise Edition, but they respect the MAXDOP value set for the instance, which can affect check duration\",\"breadcrumb\":{\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/erin\/sql-server-maintenance-plans-and-parallelism-checkdb\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.sqlskills.com\/blogs\/erin\/sql-server-maintenance-plans-and-parallelism-checkdb\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/erin\/sql-server-maintenance-plans-and-parallelism-checkdb\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.sqlskills.com\/blogs\/erin\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"SQL Server Maintenance Plans and Parallelism &#8211; CHECKDB\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/erin\/#website\",\"url\":\"https:\/\/www.sqlskills.com\/blogs\/erin\/\",\"name\":\"Erin Stellato\",\"description\":\"The SQL Sequel\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.sqlskills.com\/blogs\/erin\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/erin\/#\/schema\/person\/76170223ffffa1df03fd9be5b66cb158\",\"name\":\"Erin Stellato\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/erin\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/0c8b485bd54ea26b57e99f79b525f409?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/0c8b485bd54ea26b57e99f79b525f409?s=96&d=mm&r=g\",\"caption\":\"Erin Stellato\"},\"sameAs\":[\"http:\/\/3.209.169.194\/blogs\/erin\"],\"url\":\"https:\/\/www.sqlskills.com\/blogs\/erin\/author\/erin\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"SQL Server Maintenance Plans and Parallelism - CHECKDB - Erin Stellato","description":"SQL Server CHECK commands can use parallelism in Enterprise Edition, but they respect the MAXDOP value set for the instance, which can affect check duration","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\/erin\/sql-server-maintenance-plans-and-parallelism-checkdb\/","og_locale":"en_US","og_type":"article","og_title":"SQL Server Maintenance Plans and Parallelism - CHECKDB - Erin Stellato","og_description":"SQL Server CHECK commands can use parallelism in Enterprise Edition, but they respect the MAXDOP value set for the instance, which can affect check duration","og_url":"https:\/\/www.sqlskills.com\/blogs\/erin\/sql-server-maintenance-plans-and-parallelism-checkdb\/","og_site_name":"Erin Stellato","article_published_time":"2013-02-28T19:25:35+00:00","article_modified_time":"2017-10-20T01:15:51+00:00","og_image":[{"url":"https:\/\/www.sqlskills.com\/blogs\/erin\/wp-content\/uploads\/2013\/02\/maxdop.jpg"}],"author":"Erin Stellato","twitter_misc":{"Written by":"Erin Stellato","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.sqlskills.com\/blogs\/erin\/sql-server-maintenance-plans-and-parallelism-checkdb\/","url":"https:\/\/www.sqlskills.com\/blogs\/erin\/sql-server-maintenance-plans-and-parallelism-checkdb\/","name":"SQL Server Maintenance Plans and Parallelism - CHECKDB - Erin Stellato","isPartOf":{"@id":"https:\/\/www.sqlskills.com\/blogs\/erin\/#website"},"datePublished":"2013-02-28T19:25:35+00:00","dateModified":"2017-10-20T01:15:51+00:00","author":{"@id":"https:\/\/www.sqlskills.com\/blogs\/erin\/#\/schema\/person\/76170223ffffa1df03fd9be5b66cb158"},"description":"SQL Server CHECK commands can use parallelism in Enterprise Edition, but they respect the MAXDOP value set for the instance, which can affect check duration","breadcrumb":{"@id":"https:\/\/www.sqlskills.com\/blogs\/erin\/sql-server-maintenance-plans-and-parallelism-checkdb\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.sqlskills.com\/blogs\/erin\/sql-server-maintenance-plans-and-parallelism-checkdb\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.sqlskills.com\/blogs\/erin\/sql-server-maintenance-plans-and-parallelism-checkdb\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.sqlskills.com\/blogs\/erin\/"},{"@type":"ListItem","position":2,"name":"SQL Server Maintenance Plans and Parallelism &#8211; CHECKDB"}]},{"@type":"WebSite","@id":"https:\/\/www.sqlskills.com\/blogs\/erin\/#website","url":"https:\/\/www.sqlskills.com\/blogs\/erin\/","name":"Erin Stellato","description":"The SQL Sequel","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.sqlskills.com\/blogs\/erin\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.sqlskills.com\/blogs\/erin\/#\/schema\/person\/76170223ffffa1df03fd9be5b66cb158","name":"Erin Stellato","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.sqlskills.com\/blogs\/erin\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/0c8b485bd54ea26b57e99f79b525f409?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/0c8b485bd54ea26b57e99f79b525f409?s=96&d=mm&r=g","caption":"Erin Stellato"},"sameAs":["http:\/\/3.209.169.194\/blogs\/erin"],"url":"https:\/\/www.sqlskills.com\/blogs\/erin\/author\/erin\/"}]}},"_links":{"self":[{"href":"https:\/\/www.sqlskills.com\/blogs\/erin\/wp-json\/wp\/v2\/posts\/555"}],"collection":[{"href":"https:\/\/www.sqlskills.com\/blogs\/erin\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.sqlskills.com\/blogs\/erin\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.sqlskills.com\/blogs\/erin\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/www.sqlskills.com\/blogs\/erin\/wp-json\/wp\/v2\/comments?post=555"}],"version-history":[{"count":0,"href":"https:\/\/www.sqlskills.com\/blogs\/erin\/wp-json\/wp\/v2\/posts\/555\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.sqlskills.com\/blogs\/erin\/wp-json\/wp\/v2\/media?parent=555"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.sqlskills.com\/blogs\/erin\/wp-json\/wp\/v2\/categories?post=555"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.sqlskills.com\/blogs\/erin\/wp-json\/wp\/v2\/tags?post=555"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}