{"id":285,"date":"2024-02-06T08:59:00","date_gmt":"2024-02-06T13:59:00","guid":{"rendered":"https:\/\/www.sqltabletalk.com\/?p=285"},"modified":"2024-02-05T17:12:38","modified_gmt":"2024-02-05T22:12:38","slug":"optimizing-sql-server-performance-with-sql-plan-guides","status":"publish","type":"post","link":"https:\/\/www.sqltabletalk.com\/?p=285","title":{"rendered":"Optimizing SQL Server Performance with SQL Plan Guides"},"content":{"rendered":"<h3>Introduction<\/h3>\n<p>In SQL Server performance tuning, the inability to directly modify query text\u2014often due to restrictions in application code or the use of legacy SQL Server versions that lack modern features like Query Store\u2014poses a significant challenge. However, SQL Plan Guides offer a powerful alternative, providing a means to influence query execution plans and optimize performance without altering the queries themselves. This post delves into the concept of SQL Plan Guides, illustrating their utility and guiding through their creation and application.<\/p>\n<h3>Understanding SQL Plan Guides<\/h3>\n<p>SQL Plan Guides are essentially SQL Server&#8217;s solution to optimize query execution in scenarios where direct modification of the query text is not feasible. This situation is common when queries are generated by applications beyond your control or are embedded within compiled stored procedures. By matching executed queries against predefined guides, SQL Server can apply specific hints or execution plans to improve performance without necessitating changes to the query text.<\/p>\n<h3>How to Utilize SQL Plan Guides<\/h3>\n<h4>Identifying Problematic Queries<\/h4>\n<p>The initial step involves pinpointing the queries that degrade performance. Tools such as SQL Server Profiler, Extended Events, or Dynamic Management Views (DMVs) are instrumental in capturing and identifying inefficient queries.<\/p>\n<h4>Creating a SQL Plan Guide<\/h4>\n<p>With the problematic query identified, the next step is to create a SQL Plan Guide using the <code>sp_create_plan_guide<\/code> system stored procedure. This procedure requires details such as the query text, the guide type (OBJECT, SQL, or TEMPLATE), and the desired hints or fixed plan.<\/p>\n<h4>Guide Types Explained<\/h4>\n<ul>\n<li><strong>OBJECT Plan Guides<\/strong>: target queries within stored procedures, functions, or triggers.<\/li>\n<li><strong>SQL Plan Guides<\/strong>: apply to standalone SQL statements.<\/li>\n<li><strong>TEMPLATE Plan Guides<\/strong>: used for a set of similar SQL statements differing only by their literal values, aiming at promoting query parameterization to improve execution plan reuse and performance.<\/li>\n<\/ul>\n<h3>Creating SQL Plan Guides: A Step-by-Step Guide<\/h3>\n<h4>TEMPLATE Plan Guides<\/h4>\n<p>TEMPLATE Plan Guides are designed to optimize a family of similar queries by promoting parameterization. The process involves identifying a common query pattern and creating the guide with the <code>sp_create_plan_guide<\/code> procedure, specifying the TEMPLATE type and desired optimization hints.<\/p>\n<p><strong>Example:<\/strong><\/p>\n<pre><code>EXEC sp_create_plan_guide\n    @name = N'TemplatePlanGuide1',\n    @stmt = N'SELECT * FROM YourTable WHERE YourColumn = ''ConstantValue''',\n    @type = N'TEMPLATE',\n    @module_or_batch = NULL,\n    @params = NULL,\n    @hints = N'OPTION (OPTIMIZE FOR UNKNOWN)';\n<\/code><\/pre>\n<h4>SQL Plan Guides<\/h4>\n<p>SQL Plan Guides are aimed at optimizing specific SQL queries. They require an exact match of the SQL statement and allow for the application of precise optimization hints.<\/p>\n<p><strong>Example:<\/strong><\/p>\n<pre><code>EXEC sp_create_plan_guide\n    @name = N'SQLPlanGuide1',\n    @stmt = N'SELECT * FROM YourTable WHERE YourColumn = @Param1',\n    @type = N'SQL',\n    @module_or_batch = NULL,\n    @params = N'@Param1 int',\n    @hints = N'OPTION (MAXDOP 1)';\n<\/code><\/pre>\n<h4>OBJECT Plan Guides<\/h4>\n<p>OBJECT Plan Guides focus on queries within a database object like a stored procedure. They necessitate the name of the object and the specific hints for optimization.<\/p>\n<p><strong>Example:<\/strong><\/p>\n<pre><code>EXEC sp_create_plan_guide\n    @name = N'ObjectPlanGuide1',\n    @stmt = N'SELECT * FROM YourTable WHERE YourColumn = @Param1',\n    @type = N'OBJECT',\n    @module_or_batch = N'[dbo].[YourStoredProcedure]',\n    @params = N'@Param1 int',\n    @hints = N'OPTION (MAXDOP 1)';\n<\/code><\/pre>\n<h3>Managing and Monitoring Plan Guides<\/h3>\n<p>SQL Server provides functionalities to manage plan guides effectively:<\/p>\n<ul>\n<li><strong>Viewing Plan Guides:<\/strong> Use <code>SELECT * FROM sys.plan_guides<\/code> to view existing guides.<\/li>\n<li><strong>Enabling\/Disabling Guides:<\/strong> Utilize <code>EXEC sp_control_plan_guide<\/code> with the ENABLE or DISABLE option as needed.<\/li>\n<li><strong>Dropping Guides:<\/strong> To remove a plan guide, execute <code>EXEC sp_control_plan_guide N'DROP', N'GuideXXXXXXXX'<\/code>.<\/li>\n<\/ul>\n<p>Additionally, monitoring the application of plan guides can be achieved through configuring and observing Extended Events sessions, which can provide insights into the success or failure of plan guide applications.<\/p>\n<h2>Conclusion<\/h2>\n<p>SQL Plan Guides offer a versatile and effective mechanism for optimizing SQL Server query performance in scenarios where direct query modification is not possible. By understanding and leveraging the different types of plan guides\u2014OBJECT, SQL, and TEMPLATE\u2014developers and DBAs can significantly enhance application performance with strategic query optimization techniques. Through careful identification, creation, and management of plan guides, it&#8217;s possible to achieve marked improvements in SQL Server&#8217;s efficiency, even in the face of unmodifiable application-generated queries or the constraints of legacy SQL Server environments.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In SQL Server performance tuning, the inability to directly modify query text\u2014often due to restrictions in application code or the use of legacy SQL Server versions that lack modern features like Query Store\u2014poses a significant challenge. However, SQL Plan Guides offer a powerful alternative, providing a means to influence query execution plans and optimize performance without altering the queries themselves. This post delves into the concept of SQL Plan Guides, illustrating their utility and guiding through their creation and application.<\/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":[12,5,84],"tags":[10,88,57,52],"class_list":["post-285","post","type-post","status-publish","format-standard","hentry","category-internals","category-performance","category-sql-developer","tag-cache","tag-plan-guides","tag-scripting","tag-sql-server-performance"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.1.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Optimizing SQL Server Performance with SQL Plan Guides - SQL Table Talk<\/title>\n<meta name=\"description\" content=\"In SQL Server performance tuning, the inability to directly modify query text\u2014often due to restrictions in application code or the use of legacy SQL Server versions that lack modern features like Query Store\u2014poses a significant challenge. However, SQL Plan Guides offer a powerful alternative, providing a means to influence query execution plans and optimize performance without altering the queries themselves. This post delves into the concept of SQL Plan Guides, illustrating their utility and guiding through their creation and application.\" \/>\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=285\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Optimizing SQL Server Performance with SQL Plan Guides - SQL Table Talk\" \/>\n<meta property=\"og:description\" content=\"In SQL Server performance tuning, the inability to directly modify query text\u2014often due to restrictions in application code or the use of legacy SQL Server versions that lack modern features like Query Store\u2014poses a significant challenge. However, SQL Plan Guides offer a powerful alternative, providing a means to influence query execution plans and optimize performance without altering the queries themselves. This post delves into the concept of SQL Plan Guides, illustrating their utility and guiding through their creation and application.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.sqltabletalk.com\/?p=285\" \/>\n<meta property=\"og:site_name\" content=\"SQL Table Talk\" \/>\n<meta property=\"article:published_time\" content=\"2024-02-06T13:59: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=285#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.sqltabletalk.com\/?p=285\"},\"author\":{\"name\":\"Yvonne Vanslageren\",\"@id\":\"https:\/\/www.sqltabletalk.com\/#\/schema\/person\/68bb31b454bafe9e139183ed4f3e9082\"},\"headline\":\"Optimizing SQL Server Performance with SQL Plan Guides\",\"datePublished\":\"2024-02-06T13:59:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.sqltabletalk.com\/?p=285\"},\"wordCount\":575,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.sqltabletalk.com\/#\/schema\/person\/1947e42a9438bccd91691d8b791888e0\"},\"keywords\":[\"cache\",\"plan guides\",\"scripting\",\"SQL Server performance\"],\"articleSection\":[\"Internals\",\"Performance\",\"SQL Developer\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.sqltabletalk.com\/?p=285#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.sqltabletalk.com\/?p=285\",\"url\":\"https:\/\/www.sqltabletalk.com\/?p=285\",\"name\":\"Optimizing SQL Server Performance with SQL Plan Guides - SQL Table Talk\",\"isPartOf\":{\"@id\":\"https:\/\/www.sqltabletalk.com\/#website\"},\"datePublished\":\"2024-02-06T13:59:00+00:00\",\"description\":\"In SQL Server performance tuning, the inability to directly modify query text\u2014often due to restrictions in application code or the use of legacy SQL Server versions that lack modern features like Query Store\u2014poses a significant challenge. However, SQL Plan Guides offer a powerful alternative, providing a means to influence query execution plans and optimize performance without altering the queries themselves. This post delves into the concept of SQL Plan Guides, illustrating their utility and guiding through their creation and application.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.sqltabletalk.com\/?p=285#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.sqltabletalk.com\/?p=285\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.sqltabletalk.com\/?p=285#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.sqltabletalk.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Optimizing SQL Server Performance with SQL Plan Guides\"}]},{\"@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":"Optimizing SQL Server Performance with SQL Plan Guides - SQL Table Talk","description":"In SQL Server performance tuning, the inability to directly modify query text\u2014often due to restrictions in application code or the use of legacy SQL Server versions that lack modern features like Query Store\u2014poses a significant challenge. However, SQL Plan Guides offer a powerful alternative, providing a means to influence query execution plans and optimize performance without altering the queries themselves. This post delves into the concept of SQL Plan Guides, illustrating their utility and guiding through their creation and application.","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=285","og_locale":"en_US","og_type":"article","og_title":"Optimizing SQL Server Performance with SQL Plan Guides - SQL Table Talk","og_description":"In SQL Server performance tuning, the inability to directly modify query text\u2014often due to restrictions in application code or the use of legacy SQL Server versions that lack modern features like Query Store\u2014poses a significant challenge. However, SQL Plan Guides offer a powerful alternative, providing a means to influence query execution plans and optimize performance without altering the queries themselves. This post delves into the concept of SQL Plan Guides, illustrating their utility and guiding through their creation and application.","og_url":"https:\/\/www.sqltabletalk.com\/?p=285","og_site_name":"SQL Table Talk","article_published_time":"2024-02-06T13:59: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=285#article","isPartOf":{"@id":"https:\/\/www.sqltabletalk.com\/?p=285"},"author":{"name":"Yvonne Vanslageren","@id":"https:\/\/www.sqltabletalk.com\/#\/schema\/person\/68bb31b454bafe9e139183ed4f3e9082"},"headline":"Optimizing SQL Server Performance with SQL Plan Guides","datePublished":"2024-02-06T13:59:00+00:00","mainEntityOfPage":{"@id":"https:\/\/www.sqltabletalk.com\/?p=285"},"wordCount":575,"commentCount":0,"publisher":{"@id":"https:\/\/www.sqltabletalk.com\/#\/schema\/person\/1947e42a9438bccd91691d8b791888e0"},"keywords":["cache","plan guides","scripting","SQL Server performance"],"articleSection":["Internals","Performance","SQL Developer"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.sqltabletalk.com\/?p=285#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.sqltabletalk.com\/?p=285","url":"https:\/\/www.sqltabletalk.com\/?p=285","name":"Optimizing SQL Server Performance with SQL Plan Guides - SQL Table Talk","isPartOf":{"@id":"https:\/\/www.sqltabletalk.com\/#website"},"datePublished":"2024-02-06T13:59:00+00:00","description":"In SQL Server performance tuning, the inability to directly modify query text\u2014often due to restrictions in application code or the use of legacy SQL Server versions that lack modern features like Query Store\u2014poses a significant challenge. However, SQL Plan Guides offer a powerful alternative, providing a means to influence query execution plans and optimize performance without altering the queries themselves. This post delves into the concept of SQL Plan Guides, illustrating their utility and guiding through their creation and application.","breadcrumb":{"@id":"https:\/\/www.sqltabletalk.com\/?p=285#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.sqltabletalk.com\/?p=285"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.sqltabletalk.com\/?p=285#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.sqltabletalk.com\/"},{"@type":"ListItem","position":2,"name":"Optimizing SQL Server Performance with SQL Plan Guides"}]},{"@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\/285","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=285"}],"version-history":[{"count":3,"href":"https:\/\/www.sqltabletalk.com\/index.php?rest_route=\/wp\/v2\/posts\/285\/revisions"}],"predecessor-version":[{"id":312,"href":"https:\/\/www.sqltabletalk.com\/index.php?rest_route=\/wp\/v2\/posts\/285\/revisions\/312"}],"wp:attachment":[{"href":"https:\/\/www.sqltabletalk.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=285"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.sqltabletalk.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=285"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.sqltabletalk.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=285"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}