{"id":990,"date":"2025-02-18T11:25:56","date_gmt":"2025-02-18T16:25:56","guid":{"rendered":"https:\/\/www.sqltabletalk.com\/?p=990"},"modified":"2025-02-18T11:26:45","modified_gmt":"2025-02-18T16:26:45","slug":"lock-escalation-sql-server-detailed-guide","status":"publish","type":"post","link":"https:\/\/www.sqltabletalk.com\/?p=990","title":{"rendered":"Lock Escalation in SQL Server: Understanding and Troubleshooting for Performance"},"content":{"rendered":"<h2>Introduction<\/h2>\n<p>\n  Lock escalation is a built-in mechanism in SQL Server designed to optimize how the database engine manages locks. By reducing thousands of fine-grained locks (such as row or page locks) to a single table-level lock, SQL Server aims to lower overhead in the lock manager. In practice, lock escalation saves system resources but can also introduce challenges in high-concurrency environments. This post explores why lock escalation happens, how it works under the hood, the problems it can cause, and strategies to prevent or mitigate unwanted escalations.\n<\/p>\n<h2>How Lock Escalation Works<\/h2>\n<p>\n  When a single query holds a large number of locks\u2014typically around 5,000 locks on the same table\u2014SQL Server attempts to escalate those locks to a more coarse-grained lock. If lock usage across the entire instance is high, this too can trigger an escalation. Once escalation is triggered, SQL Server requests a table-level lock. If the table lock cannot be granted immediately (due to incompatible locks held by other transactions), SQL Server will retry.\n<\/p>\n<p>\n  Although this mechanism protects the system from running out of lock resources, it has a direct impact on concurrency. When the engine holds a table lock, other sessions might be blocked from reading or updating any part of that table until the lock is released.\n<\/p>\n<h2>Common Triggers for Lock Escalation<\/h2>\n<p>\n  Scenarios that involve large numbers of row-level locks or page-level locks are prime candidates for escalation. For example, a massive DELETE or UPDATE statement that spans a significant portion of a table can accumulate enough locks to trip the escalation threshold. Similarly, long-running transactions that keep locks active for extended periods raise the likelihood of lock escalation. High concurrency environments\u2014where many users simultaneously access the same data\u2014also provide conditions for SQL Server to decide that escalating to a table lock is more efficient overall than continuing to manage thousands of row or page locks.\n<\/p>\n<h2>When Lock Escalation Becomes Problematic<\/h2>\n<p>\n  The main downside to table-level locking is reduced concurrency. In an OLTP system, multiple sessions often need concurrent access to the same tables. When escalation occurs and a table lock is placed, these concurrent sessions must wait until the transaction holding the lock completes or releases its lock. This phenomenon can cause:\n<\/p>\n<ul>\n<li><strong>Blocking:<\/strong> Other transactions, including read queries, may be blocked if they require any access to that table.<\/li>\n<li><strong>Performance Degradation:<\/strong> Users experience slower response times, especially if large or frequent transactions escalate their locks.<\/li>\n<li><strong>Unexpected Behaviors:<\/strong> DBAs or developers might not anticipate that a single large operation could affect unrelated queries that only need access to different rows of the same table.<\/li>\n<\/ul>\n<h2>Techniques to Mitigate or Avoid Unwanted Lock Escalation<\/h2>\n<p>\n  One straightforward way to reduce lock escalation is to design transactions such that they never accumulate enough locks to trigger the escalation threshold. Below are several methods for achieving that:\n<\/p>\n<h3>Batch or Chunk Large Operations<\/h3>\n<p>\n  Breaking large operations into smaller chunks prevents a single query from ever hitting the escalation threshold. For example, instead of deleting millions of rows in a single statement, a script can process tens of thousands of rows at a time in a loop.\n<\/p>\n<h3>Optimize Transaction Design<\/h3>\n<p>\n  Keeping transactions short is generally a good practice. Holding locks for extended periods increases the odds of lock escalation. By committing transactions quickly and moving non-essential tasks (like logging) out of the critical path, you can drastically reduce lock durations.\n<\/p>\n<h3>Ensure Effective Indexing<\/h3>\n<p>\n  Well-designed indexes can reduce the total number of rows touched by a query, which in turn lowers the number of acquired locks. Scans on poorly selective columns or missing indexes often escalate lock counts during large operations.\n<\/p>\n<h3>Use Table Partitioning<\/h3>\n<p>\n  Partitioning large tables can limit the scope of locks to a single partition. In some scenarios, SQL Server may escalate locks at the partition level rather than locking the entire table. This feature can be especially helpful if your data naturally lends itself to partitioning based on date ranges or other logical boundaries.\n<\/p>\n<h3>Careful Use of Locking Hints<\/h3>\n<p>\n  T-SQL locking hints such as <code>ROWLOCK<\/code> or <code>PAGLOCK<\/code> can force SQL Server to lock at a specific granularity. However, they can increase the number of locks your queries acquire, so it\u2019s important to test thoroughly to ensure you don\u2019t inadvertently trigger an escalation.\n<\/p>\n<h3>Monitor Lock Usage Proactively<\/h3>\n<p>\n  Keeping a regular watch on lock usage with Dynamic Management Views (for example, <code>sys.dm_tran_locks<\/code>), Extended Events, or Performance Monitor counters can help you spot emerging lock problems before they escalate. Early detection allows you to tune queries and indexes proactively.\n<\/p>\n<h3>Disable Lock Escalation with Caution<\/h3>\n<p>\n  SQL Server allows disabling lock escalation at the table level through <code>ALTER TABLE ... SET (LOCK_ESCALATION = DISABLE)<\/code>. This can alleviate blocking issues caused by escalations but can also lead to very high memory usage for locks. If you opt for this method, monitor memory and concurrency closely to ensure it doesn\u2019t create a larger issue.\n<\/p>\n<h2>Conclusion<\/h2>\n<p>\n  Lock escalation is an essential feature of SQL Server that ensures the lock manager remains efficient. Yet, for environments that require a high degree of concurrency, abrupt escalations can cause significant blocking and degrade performance. By understanding how lock escalation works and carefully employing strategies such as batching large operations, partitioning tables, optimizing transactions, and monitoring lock usage, database administrators can reduce the likelihood of disruptive escalations. With the right awareness and mitigation techniques, DBAs can maintain both high throughput and efficient resource usage in SQL Server.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Lock escalation is a built-in mechanism in SQL Server designed to optimize how the database engine manages locks. By reducing thousands of fine-grained locks (such as row or page locks) to a single table-level lock, SQL Server aims to lower overhead in the lock manager. In practice, lock escalation saves system resources but can also introduce challenges in high-concurrency environments. This post explores why lock escalation happens, how it works under the hood, the problems it can cause, and strategies to prevent or mitigate unwanted escalations.<\/p>\n","protected":false},"author":1,"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,324,5,91,84],"tags":[228,4,327,39,131,52,418],"class_list":["post-990","post","type-post","status-publish","format-standard","hentry","category-internals","category-locking","category-performance","category-query-optimization","category-sql-developer","tag-high-concurrency","tag-internals","tag-lock-escalation","tag-performance-tuning","tag-sql-server","tag-sql-server-performance","tag-transaction-management"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.1.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Lock Escalation in SQL Server: Understanding and Troubleshooting for Performance - SQL Table Talk<\/title>\n<meta name=\"description\" content=\"Lock escalation is a built-in mechanism in SQL Server designed to optimize how the database engine manages locks. By reducing thousands of fine-grained locks (such as row or page locks) to a single table-level lock, SQL Server aims to lower overhead in the lock manager. In practice, lock escalation saves system resources but can also introduce challenges in high-concurrency environments. This post explores why lock escalation happens, how it works under the hood, the problems it can cause, and strategies to prevent or mitigate unwanted escalations.\" \/>\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=990\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Lock Escalation in SQL Server: Understanding and Troubleshooting for Performance - SQL Table Talk\" \/>\n<meta property=\"og:description\" content=\"Lock escalation is a built-in mechanism in SQL Server designed to optimize how the database engine manages locks. By reducing thousands of fine-grained locks (such as row or page locks) to a single table-level lock, SQL Server aims to lower overhead in the lock manager. In practice, lock escalation saves system resources but can also introduce challenges in high-concurrency environments. This post explores why lock escalation happens, how it works under the hood, the problems it can cause, and strategies to prevent or mitigate unwanted escalations.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.sqltabletalk.com\/?p=990\" \/>\n<meta property=\"og:site_name\" content=\"SQL Table Talk\" \/>\n<meta property=\"article:published_time\" content=\"2025-02-18T16:25:56+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-02-18T16:26:45+00:00\" \/>\n<meta name=\"author\" content=\"Stephen Planck\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Stephen Planck\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.sqltabletalk.com\/?p=990#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.sqltabletalk.com\/?p=990\"},\"author\":{\"name\":\"Stephen Planck\",\"@id\":\"https:\/\/www.sqltabletalk.com\/#\/schema\/person\/1947e42a9438bccd91691d8b791888e0\"},\"headline\":\"Lock Escalation in SQL Server: Understanding and Troubleshooting for Performance\",\"datePublished\":\"2025-02-18T16:25:56+00:00\",\"dateModified\":\"2025-02-18T16:26:45+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.sqltabletalk.com\/?p=990\"},\"wordCount\":898,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.sqltabletalk.com\/#\/schema\/person\/1947e42a9438bccd91691d8b791888e0\"},\"keywords\":[\"High Concurrency\",\"Internals\",\"Lock Escalation\",\"performance tuning\",\"SQL Server\",\"SQL Server performance\",\"Transaction Management\"],\"articleSection\":[\"Internals\",\"Locking\",\"Performance\",\"Query Optimization\",\"SQL Developer\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.sqltabletalk.com\/?p=990#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.sqltabletalk.com\/?p=990\",\"url\":\"https:\/\/www.sqltabletalk.com\/?p=990\",\"name\":\"Lock Escalation in SQL Server: Understanding and Troubleshooting for Performance - SQL Table Talk\",\"isPartOf\":{\"@id\":\"https:\/\/www.sqltabletalk.com\/#website\"},\"datePublished\":\"2025-02-18T16:25:56+00:00\",\"dateModified\":\"2025-02-18T16:26:45+00:00\",\"description\":\"Lock escalation is a built-in mechanism in SQL Server designed to optimize how the database engine manages locks. By reducing thousands of fine-grained locks (such as row or page locks) to a single table-level lock, SQL Server aims to lower overhead in the lock manager. In practice, lock escalation saves system resources but can also introduce challenges in high-concurrency environments. This post explores why lock escalation happens, how it works under the hood, the problems it can cause, and strategies to prevent or mitigate unwanted escalations.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.sqltabletalk.com\/?p=990#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.sqltabletalk.com\/?p=990\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.sqltabletalk.com\/?p=990#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.sqltabletalk.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Lock Escalation in SQL Server: Understanding and Troubleshooting for Performance\"}]},{\"@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\"],\"url\":\"https:\/\/www.sqltabletalk.com\/?author=1\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Lock Escalation in SQL Server: Understanding and Troubleshooting for Performance - SQL Table Talk","description":"Lock escalation is a built-in mechanism in SQL Server designed to optimize how the database engine manages locks. By reducing thousands of fine-grained locks (such as row or page locks) to a single table-level lock, SQL Server aims to lower overhead in the lock manager. In practice, lock escalation saves system resources but can also introduce challenges in high-concurrency environments. This post explores why lock escalation happens, how it works under the hood, the problems it can cause, and strategies to prevent or mitigate unwanted escalations.","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=990","og_locale":"en_US","og_type":"article","og_title":"Lock Escalation in SQL Server: Understanding and Troubleshooting for Performance - SQL Table Talk","og_description":"Lock escalation is a built-in mechanism in SQL Server designed to optimize how the database engine manages locks. By reducing thousands of fine-grained locks (such as row or page locks) to a single table-level lock, SQL Server aims to lower overhead in the lock manager. In practice, lock escalation saves system resources but can also introduce challenges in high-concurrency environments. This post explores why lock escalation happens, how it works under the hood, the problems it can cause, and strategies to prevent or mitigate unwanted escalations.","og_url":"https:\/\/www.sqltabletalk.com\/?p=990","og_site_name":"SQL Table Talk","article_published_time":"2025-02-18T16:25:56+00:00","article_modified_time":"2025-02-18T16:26:45+00:00","author":"Stephen Planck","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Stephen Planck","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.sqltabletalk.com\/?p=990#article","isPartOf":{"@id":"https:\/\/www.sqltabletalk.com\/?p=990"},"author":{"name":"Stephen Planck","@id":"https:\/\/www.sqltabletalk.com\/#\/schema\/person\/1947e42a9438bccd91691d8b791888e0"},"headline":"Lock Escalation in SQL Server: Understanding and Troubleshooting for Performance","datePublished":"2025-02-18T16:25:56+00:00","dateModified":"2025-02-18T16:26:45+00:00","mainEntityOfPage":{"@id":"https:\/\/www.sqltabletalk.com\/?p=990"},"wordCount":898,"commentCount":0,"publisher":{"@id":"https:\/\/www.sqltabletalk.com\/#\/schema\/person\/1947e42a9438bccd91691d8b791888e0"},"keywords":["High Concurrency","Internals","Lock Escalation","performance tuning","SQL Server","SQL Server performance","Transaction Management"],"articleSection":["Internals","Locking","Performance","Query Optimization","SQL Developer"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.sqltabletalk.com\/?p=990#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.sqltabletalk.com\/?p=990","url":"https:\/\/www.sqltabletalk.com\/?p=990","name":"Lock Escalation in SQL Server: Understanding and Troubleshooting for Performance - SQL Table Talk","isPartOf":{"@id":"https:\/\/www.sqltabletalk.com\/#website"},"datePublished":"2025-02-18T16:25:56+00:00","dateModified":"2025-02-18T16:26:45+00:00","description":"Lock escalation is a built-in mechanism in SQL Server designed to optimize how the database engine manages locks. By reducing thousands of fine-grained locks (such as row or page locks) to a single table-level lock, SQL Server aims to lower overhead in the lock manager. In practice, lock escalation saves system resources but can also introduce challenges in high-concurrency environments. This post explores why lock escalation happens, how it works under the hood, the problems it can cause, and strategies to prevent or mitigate unwanted escalations.","breadcrumb":{"@id":"https:\/\/www.sqltabletalk.com\/?p=990#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.sqltabletalk.com\/?p=990"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.sqltabletalk.com\/?p=990#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.sqltabletalk.com\/"},{"@type":"ListItem","position":2,"name":"Lock Escalation in SQL Server: Understanding and Troubleshooting for Performance"}]},{"@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"],"url":"https:\/\/www.sqltabletalk.com\/?author=1"}]}},"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\/990","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\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.sqltabletalk.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=990"}],"version-history":[{"count":2,"href":"https:\/\/www.sqltabletalk.com\/index.php?rest_route=\/wp\/v2\/posts\/990\/revisions"}],"predecessor-version":[{"id":992,"href":"https:\/\/www.sqltabletalk.com\/index.php?rest_route=\/wp\/v2\/posts\/990\/revisions\/992"}],"wp:attachment":[{"href":"https:\/\/www.sqltabletalk.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=990"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.sqltabletalk.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=990"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.sqltabletalk.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=990"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}