{"id":484,"date":"2024-05-07T08:00:00","date_gmt":"2024-05-07T13:00:00","guid":{"rendered":"https:\/\/www.sqltabletalk.com\/?p=484"},"modified":"2024-05-06T21:52:48","modified_gmt":"2024-05-07T02:52:48","slug":"worker-threads-in-sql-server-always-on-availability-groups","status":"publish","type":"post","link":"https:\/\/www.sqltabletalk.com\/?p=484","title":{"rendered":"Worker Threads in SQL Server Always On Availability Groups"},"content":{"rendered":"<h2>Introduction<\/h2>\n<p>SQL Server Always On Availability Groups (AGs) are a powerful technology for ensuring high availability and disaster recovery of your databases. But have you ever wondered how these groups leverage worker threads to keep things running smoothly? This post takes a look into the world of worker threads in Always On and equips you with the knowledge to optimize your AG configuration.<\/p>\n<h2>Worker Threads: The Powerhouse of Always On<\/h2>\n<p>At the core of Always On lies a pool of worker threads, responsible for handling various tasks within the availability group. Here\u2019s a breakdown of the essential worker threads:<\/p>\n<ul>\n<li><strong>Max Worker Threads:<\/strong> This server-wide setting defines the maximum number of threads available for all tasks, including AG operations. By default, SQL Server automatically manages this value based on your system resources.<\/li>\n<li><strong>Primary Replica Threads:<\/strong>\n<ul>\n<li>Log Capture Thread: Captures transaction log changes for replication to secondary replicas.<\/li>\n<li>Log Send Thread (per Secondary Database): Sends captured transaction logs to each secondary database.<\/li>\n<\/ul>\n<\/li>\n<li><strong>Secondary Replica Threads:<\/strong>\n<ul>\n<li>Redo Thread (per Secondary Database): Applies captured transaction logs to the secondary database, keeping it synchronized with the primary.<\/li>\n<li>Backup Thread (Optional): Manages backups on the primary replica.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>Important Note: Always On reserves 40 worker threads for its internal operations, reducing the available pool for other tasks.<\/p>\n<h2>Calculating Minimum Worker Threads for Your AG<\/h2>\n<p>The minimum number of worker threads your AG requires depends on several factors:<\/p>\n<ul>\n<li>Number of Databases: The number of databases within your availability group.<\/li>\n<li>Secondary Replicas: The number of secondary replicas configured for your AG.<\/li>\n<\/ul>\n<p>Here\u2019s a formula to calculate the minimum worker threads for your Always On setup:<\/p>\n<p><code>Min Worker Threads AG = (D * (LCWT + (LSWT * SRC))) + MHWT<\/code><\/p>\n<p>Where:<\/p>\n<ul>\n<li><strong>D:<\/strong> Number of databases in the AG.<\/li>\n<li><strong>LCWT:<\/strong> Local Commit Worker Threads (typically 1).<\/li>\n<li><strong>LSWT:<\/strong> Local Send Worker Threads (typically 1).<\/li>\n<li><strong>SRC:<\/strong> Synchronous Replica Count (number of synchronous replicas).<\/li>\n<li><strong>MHWT:<\/strong> Max Worker Threads for the AG (1 thread reserved by Always On).<\/li>\n<\/ul>\n<p>The formula considers local commit and send threads, the number of synchronous replicas, and the reserved worker threads by Always On.<\/p>\n<h3>Example: Calculating Minimum Worker Threads<\/h3>\n<p>Let\u2019s consider an Always On scenario with:<\/p>\n<ul>\n<li>One Primary Replica<\/li>\n<li>Two Secondary Replicas (One for disaster recovery and one for a local data center)<\/li>\n<li>One Availability Group<\/li>\n<li>Ten Databases<\/li>\n<\/ul>\n<p>Using the formula:<\/p>\n<p><code>Min Worker Threads AG = (10 * (1 + (1 * 2))) + 1<\/code><\/p>\n<p><code>Min Worker Threads AG = 31<\/code><\/p>\n<p>This scenario requires a minimum of 31 worker threads for the Always On group to function effectively.<\/p>\n<p>Let\u2019s increase the database count to 200 and see the number of threads for AG:<\/p>\n<p><code>Min Worker Threads AG = (200 * (1 + (1 * 2))) + 1<\/code><\/p>\n<p><code>Min Worker Threads AG = 601<\/code><\/p>\n<p>Let\u2019s again increase the database count to 500 and see the number of threads for AG:<\/p>\n<p><code>Min Worker Threads AG = (500 * (1 + (1 * 2))) + 1<\/code><\/p>\n<p><code>Min Worker Threads AG = 1501<\/code><\/p>\n<h2>Monitoring the Worker Thread Pool<\/h2>\n<p>Keeping an eye on your worker thread pool helps ensure optimal performance. SQL Server provides tools to monitor thread activity. Here\u2019s an example of creating an event session to track worker thread starts:<\/p>\n<pre><code>CREATE EVENT SESSION HadrThreadPoolWorkerStart\nON SERVER\nADD EVENT sqlserver.hadr_thread_pool_worker_start\nADD TARGET package0.event_file\n(\n    SET filename = N'E:\\\\SQLSERVER\\\\SQL14\\\\backup\\\\HadrThreadPoolWorkerStart.xel'\n)\nWITH\n(\n    max_memory = 4096 KB,\n    event_retention_mode = ALLOW_SINGLE_EVENT_LOSS,\n    max_dispatch_latency = 30 SECONDS,\n    max_event_size = 0 KB,\n    memory_partition_mode = NONE,\n    track_causality = OFF,\n    startup_state = ON\n);\nGO\n<\/code><\/pre>\n<h2>Conclusion<\/h2>\n<p>Understanding how Always On utilizes worker threads empowers you to optimize your AG setup. By calculating minimum thread requirements and monitoring thread activity, you can ensure your availability groups have the resources they need to deliver exceptional performance and maintain high availability for your critical databases.<\/p>\n<p><strong>Bonus Tip:<\/strong> For further exploration, check out our previous blog post on &#8220;<a href=\"https:\/\/www.sqltabletalk.com\/?p=122\">SQL Server 2022: Improving Database Performance with Enhanced Parallel Redo<\/a>&#8221; to learn about advancements related to worker thread utilization in newer SQL Server versions.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Explore the role of worker threads in SQL Server Always On Availability Groups. This post covers how worker threads function, their management, and the impact on database availability and performance, with practical tips on calculating and monitoring thread usage to optimize your SQL Server configurations.<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[36,12,5],"tags":[38,4,52,125],"class_list":["post-484","post","type-post","status-publish","format-standard","hentry","category-availability-groups","category-internals","category-performance","tag-availability-groups","tag-internals","tag-sql-server-performance","tag-worker-threads"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.1.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Understanding Worker Threads in SQL Server Always On Availability Groups<\/title>\n<meta name=\"description\" content=\"Explore the role of worker threads in SQL Server Always On Availability Groups. This post covers how worker threads function, their management, and the impact on database availability and performance, with practical tips on calculating and monitoring thread usage to optimize your SQL Server configurations.\" \/>\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.sqltabletalk.com\/?p=484\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Understanding Worker Threads in SQL Server Always On Availability Groups\" \/>\n<meta property=\"og:description\" content=\"Explore the role of worker threads in SQL Server Always On Availability Groups. This post covers how worker threads function, their management, and the impact on database availability and performance, with practical tips on calculating and monitoring thread usage to optimize your SQL Server configurations.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.sqltabletalk.com\/?p=484\" \/>\n<meta property=\"og:site_name\" content=\"SQL Table Talk\" \/>\n<meta property=\"article:published_time\" content=\"2024-05-07T13:00:00+00:00\" \/>\n<meta name=\"author\" content=\"Yvonne Vanslageren\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Yvonne Vanslageren\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.sqltabletalk.com\/?p=484#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.sqltabletalk.com\/?p=484\"},\"author\":{\"name\":\"Yvonne Vanslageren\",\"@id\":\"https:\/\/www.sqltabletalk.com\/#\/schema\/person\/68bb31b454bafe9e139183ed4f3e9082\"},\"headline\":\"Worker Threads in SQL Server Always On Availability Groups\",\"datePublished\":\"2024-05-07T13:00:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.sqltabletalk.com\/?p=484\"},\"wordCount\":543,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.sqltabletalk.com\/#\/schema\/person\/1947e42a9438bccd91691d8b791888e0\"},\"keywords\":[\"availability groups\",\"Internals\",\"SQL Server performance\",\"worker threads\"],\"articleSection\":[\"Availability Groups\",\"Internals\",\"Performance\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.sqltabletalk.com\/?p=484#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.sqltabletalk.com\/?p=484\",\"url\":\"https:\/\/www.sqltabletalk.com\/?p=484\",\"name\":\"Understanding Worker Threads in SQL Server Always On Availability Groups\",\"isPartOf\":{\"@id\":\"https:\/\/www.sqltabletalk.com\/#website\"},\"datePublished\":\"2024-05-07T13:00:00+00:00\",\"description\":\"Explore the role of worker threads in SQL Server Always On Availability Groups. This post covers how worker threads function, their management, and the impact on database availability and performance, with practical tips on calculating and monitoring thread usage to optimize your SQL Server configurations.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.sqltabletalk.com\/?p=484#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.sqltabletalk.com\/?p=484\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.sqltabletalk.com\/?p=484#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.sqltabletalk.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Worker Threads in SQL Server Always On Availability Groups\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.sqltabletalk.com\/#website\",\"url\":\"https:\/\/www.sqltabletalk.com\/\",\"name\":\"SQL Table Talk\",\"description\":\"Breaking Down SQL Server, One Post at a Time.\",\"publisher\":{\"@id\":\"https:\/\/www.sqltabletalk.com\/#\/schema\/person\/1947e42a9438bccd91691d8b791888e0\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.sqltabletalk.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/www.sqltabletalk.com\/#\/schema\/person\/1947e42a9438bccd91691d8b791888e0\",\"name\":\"Stephen Planck\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.sqltabletalk.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/64181114edc3de3d99072c049bcec024f025c9536dc89fc8ff1bac58976ca81e?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/64181114edc3de3d99072c049bcec024f025c9536dc89fc8ff1bac58976ca81e?s=96&d=mm&r=g\",\"caption\":\"Stephen Planck\"},\"logo\":{\"@id\":\"https:\/\/www.sqltabletalk.com\/#\/schema\/person\/image\/\"},\"sameAs\":[\"https:\/\/dexterwiki.com\",\"https:\/\/www.linkedin.com\/in\/stephen-planck-4611b692?trk=people-guest_people_search-card&challengeId=AQErf8gbBmcVMwAAAYsyIsxO-0UvU8z7cHrBpZoo_n3xt9qEKpRN5B_jd_LmAMu-OfeArkQ7GDjobJ2uRoQQV35EQdh_rR6kxA&submissionId=09de7067-c335-8e17-40b8-8dc32b60ed6c&challengeSource=AgEcUCw35zpPmAAAAYsyI4vAWhJTV7Nt4vZYKc3V1qiDBpCkKgUvtlOBgYXcE84&challegeType=AgE_wZiTT09IAQAAAYsyI4vDmNvbZIYe6XHju5V2bXVvM3IVxnJslgY&memberId=AgESFTkUShzs_gAAAYsyI4vGYk0Gic1uc5kB6cKOABA26Gw&recognizeDevice=AgHdSZyUSI5CEwAAAYsyI4vKd_koF9JgpsCJShT8QfbK1QMiv8SI\",\"https:\/\/www.youtube.com\/linuxmate\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.sqltabletalk.com\/#\/schema\/person\/68bb31b454bafe9e139183ed4f3e9082\",\"name\":\"Yvonne Vanslageren\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.sqltabletalk.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/22c274a7a354b81a0a8dc5b23e8e0be9bdd81a6bc0541474cfb6b954d6bb2089?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/22c274a7a354b81a0a8dc5b23e8e0be9bdd81a6bc0541474cfb6b954d6bb2089?s=96&d=mm&r=g\",\"caption\":\"Yvonne Vanslageren\"},\"url\":\"https:\/\/www.sqltabletalk.com\/?author=2\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Understanding Worker Threads in SQL Server Always On Availability Groups","description":"Explore the role of worker threads in SQL Server Always On Availability Groups. This post covers how worker threads function, their management, and the impact on database availability and performance, with practical tips on calculating and monitoring thread usage to optimize your SQL Server configurations.","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.sqltabletalk.com\/?p=484","og_locale":"en_US","og_type":"article","og_title":"Understanding Worker Threads in SQL Server Always On Availability Groups","og_description":"Explore the role of worker threads in SQL Server Always On Availability Groups. This post covers how worker threads function, their management, and the impact on database availability and performance, with practical tips on calculating and monitoring thread usage to optimize your SQL Server configurations.","og_url":"https:\/\/www.sqltabletalk.com\/?p=484","og_site_name":"SQL Table Talk","article_published_time":"2024-05-07T13:00:00+00:00","author":"Yvonne Vanslageren","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Yvonne Vanslageren","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.sqltabletalk.com\/?p=484#article","isPartOf":{"@id":"https:\/\/www.sqltabletalk.com\/?p=484"},"author":{"name":"Yvonne Vanslageren","@id":"https:\/\/www.sqltabletalk.com\/#\/schema\/person\/68bb31b454bafe9e139183ed4f3e9082"},"headline":"Worker Threads in SQL Server Always On Availability Groups","datePublished":"2024-05-07T13:00:00+00:00","mainEntityOfPage":{"@id":"https:\/\/www.sqltabletalk.com\/?p=484"},"wordCount":543,"commentCount":0,"publisher":{"@id":"https:\/\/www.sqltabletalk.com\/#\/schema\/person\/1947e42a9438bccd91691d8b791888e0"},"keywords":["availability groups","Internals","SQL Server performance","worker threads"],"articleSection":["Availability Groups","Internals","Performance"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.sqltabletalk.com\/?p=484#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.sqltabletalk.com\/?p=484","url":"https:\/\/www.sqltabletalk.com\/?p=484","name":"Understanding Worker Threads in SQL Server Always On Availability Groups","isPartOf":{"@id":"https:\/\/www.sqltabletalk.com\/#website"},"datePublished":"2024-05-07T13:00:00+00:00","description":"Explore the role of worker threads in SQL Server Always On Availability Groups. This post covers how worker threads function, their management, and the impact on database availability and performance, with practical tips on calculating and monitoring thread usage to optimize your SQL Server configurations.","breadcrumb":{"@id":"https:\/\/www.sqltabletalk.com\/?p=484#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.sqltabletalk.com\/?p=484"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.sqltabletalk.com\/?p=484#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.sqltabletalk.com\/"},{"@type":"ListItem","position":2,"name":"Worker Threads in SQL Server Always On Availability Groups"}]},{"@type":"WebSite","@id":"https:\/\/www.sqltabletalk.com\/#website","url":"https:\/\/www.sqltabletalk.com\/","name":"SQL Table Talk","description":"Breaking Down SQL Server, One Post at a Time.","publisher":{"@id":"https:\/\/www.sqltabletalk.com\/#\/schema\/person\/1947e42a9438bccd91691d8b791888e0"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.sqltabletalk.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/www.sqltabletalk.com\/#\/schema\/person\/1947e42a9438bccd91691d8b791888e0","name":"Stephen Planck","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.sqltabletalk.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/64181114edc3de3d99072c049bcec024f025c9536dc89fc8ff1bac58976ca81e?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/64181114edc3de3d99072c049bcec024f025c9536dc89fc8ff1bac58976ca81e?s=96&d=mm&r=g","caption":"Stephen Planck"},"logo":{"@id":"https:\/\/www.sqltabletalk.com\/#\/schema\/person\/image\/"},"sameAs":["https:\/\/dexterwiki.com","https:\/\/www.linkedin.com\/in\/stephen-planck-4611b692?trk=people-guest_people_search-card&challengeId=AQErf8gbBmcVMwAAAYsyIsxO-0UvU8z7cHrBpZoo_n3xt9qEKpRN5B_jd_LmAMu-OfeArkQ7GDjobJ2uRoQQV35EQdh_rR6kxA&submissionId=09de7067-c335-8e17-40b8-8dc32b60ed6c&challengeSource=AgEcUCw35zpPmAAAAYsyI4vAWhJTV7Nt4vZYKc3V1qiDBpCkKgUvtlOBgYXcE84&challegeType=AgE_wZiTT09IAQAAAYsyI4vDmNvbZIYe6XHju5V2bXVvM3IVxnJslgY&memberId=AgESFTkUShzs_gAAAYsyI4vGYk0Gic1uc5kB6cKOABA26Gw&recognizeDevice=AgHdSZyUSI5CEwAAAYsyI4vKd_koF9JgpsCJShT8QfbK1QMiv8SI","https:\/\/www.youtube.com\/linuxmate"]},{"@type":"Person","@id":"https:\/\/www.sqltabletalk.com\/#\/schema\/person\/68bb31b454bafe9e139183ed4f3e9082","name":"Yvonne Vanslageren","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.sqltabletalk.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/22c274a7a354b81a0a8dc5b23e8e0be9bdd81a6bc0541474cfb6b954d6bb2089?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/22c274a7a354b81a0a8dc5b23e8e0be9bdd81a6bc0541474cfb6b954d6bb2089?s=96&d=mm&r=g","caption":"Yvonne Vanslageren"},"url":"https:\/\/www.sqltabletalk.com\/?author=2"}]}},"jetpack_featured_media_url":"","jetpack-related-posts":[],"jetpack_sharing_enabled":true,"jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/www.sqltabletalk.com\/index.php?rest_route=\/wp\/v2\/posts\/484","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.sqltabletalk.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.sqltabletalk.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.sqltabletalk.com\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.sqltabletalk.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=484"}],"version-history":[{"count":4,"href":"https:\/\/www.sqltabletalk.com\/index.php?rest_route=\/wp\/v2\/posts\/484\/revisions"}],"predecessor-version":[{"id":550,"href":"https:\/\/www.sqltabletalk.com\/index.php?rest_route=\/wp\/v2\/posts\/484\/revisions\/550"}],"wp:attachment":[{"href":"https:\/\/www.sqltabletalk.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=484"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.sqltabletalk.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=484"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.sqltabletalk.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=484"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}