{"id":164,"date":"2026-07-14T06:18:05","date_gmt":"2026-07-14T06:18:05","guid":{"rendered":"https:\/\/blog.vigplanet.com\/?p=164"},"modified":"2026-07-14T06:18:06","modified_gmt":"2026-07-14T06:18:06","slug":"sql-server-tempdb-allocation-contention-complete-guide-to-diagnose-and-fix-pagelatch-waits","status":"publish","type":"post","link":"https:\/\/blog.vigplanet.com\/?p=164","title":{"rendered":"SQL Server TempDB Allocation Contention: Complete Guide to Diagnose and Fix PAGELATCH Waits"},"content":{"rendered":"\n<h1 class=\"wp-block-heading\">SQL Server TempDB Allocation Contention: Complete Guide to Diagnose and Fix PAGELATCH Waits<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">If your SQL Server suddenly becomes slow during peak business hours, reports take longer to complete, and users experience intermittent delays\u2014even though CPU, memory, and disk utilization appear normal\u2014the problem may not be your application or hardware.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">One of the most common yet overlooked SQL Server performance bottlenecks is <strong>TempDB allocation contention<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">TempDB is one of the busiest databases in SQL Server. It is used by almost every workload, including sorting, hashing, temporary tables, table variables, row versioning, index creation, and internal query processing. When multiple sessions attempt to allocate pages simultaneously, SQL Server can experience severe allocation bottlenecks.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The most recognizable symptoms are excessive <strong>PAGELATCH_UP<\/strong> and <strong>PAGELATCH_EX<\/strong> waits, which indicate contention on TempDB allocation pages such as <strong>PFS (Page Free Space)<\/strong>, <strong>GAM (Global Allocation Map)<\/strong>, and <strong>SGAM (Shared Global Allocation Map)<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">These waits can significantly reduce throughput, increase query response times, and impact overall application performance.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In this guide, you&#8217;ll learn how TempDB allocation contention occurs, how to diagnose it using Dynamic Management Views (DMVs), and the best practices to eliminate contention by configuring TempDB correctly.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">What Is TempDB?<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">TempDB is a system database recreated every time SQL Server starts.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Unlike user databases, TempDB stores temporary objects and internal SQL Server operations.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">It is heavily used for:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Temporary tables (<code>#TempTables<\/code>)<\/li>\n\n\n\n<li>Table variables<\/li>\n\n\n\n<li>Sort operations<\/li>\n\n\n\n<li>Hash joins<\/li>\n\n\n\n<li>Row versioning<\/li>\n\n\n\n<li>Snapshot isolation<\/li>\n\n\n\n<li>Online index operations<\/li>\n\n\n\n<li>DBCC commands<\/li>\n\n\n\n<li>Index rebuilds<\/li>\n\n\n\n<li>Query spill operations<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Because every database on the instance shares TempDB, it often becomes a performance bottleneck on busy servers.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">What Is TempDB Allocation Contention?<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Whenever SQL Server creates temporary objects, it must allocate new pages inside TempDB.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">These allocations are managed through special system pages:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>PFS (Page Free Space)<\/strong> \u2013 Tracks free space on data pages.<\/li>\n\n\n\n<li><strong>GAM (Global Allocation Map)<\/strong> \u2013 Tracks allocated extents.<\/li>\n\n\n\n<li><strong>SGAM (Shared Global Allocation Map)<\/strong> \u2013 Tracks mixed extents.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">When hundreds or thousands of concurrent sessions attempt to allocate pages simultaneously, they compete for access to these allocation pages.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This competition is called <strong>TempDB allocation contention<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Instead of processing queries, sessions wait for access to allocation pages, causing performance degradation.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Common Symptoms of TempDB Contention<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">You may be experiencing TempDB contention if you notice:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>High <code>PAGELATCH_UP<\/code> waits<\/li>\n\n\n\n<li>High <code>PAGELATCH_EX<\/code> waits<\/li>\n\n\n\n<li>Slow temporary table creation<\/li>\n\n\n\n<li>Increased query execution times<\/li>\n\n\n\n<li>Blocking without high disk activity<\/li>\n\n\n\n<li>CPU utilization lower than expected while users experience slow performance<\/li>\n\n\n\n<li>Performance degradation during reporting or ETL jobs<\/li>\n\n\n\n<li>Heavy waits on database ID <strong>2<\/strong> (TempDB)<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Understanding PAGELATCH Wait Types<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Unlike PAGEIOLATCH waits, which indicate disk I\/O delays, PAGELATCH waits occur entirely in memory.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This means SQL Server is waiting for access to internal memory structures rather than physical storage.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Common latch waits include:<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">PAGELATCH_UP<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Occurs when multiple sessions request update access to allocation pages.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">PAGELATCH_EX<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Occurs when exclusive access is required for page allocation.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Frequent waits on these types usually indicate TempDB allocation contention.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Identifying TempDB Allocation Waits<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Use the following DMV query to identify the most significant latch waits.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>SELECT\n    wait_type,\n    waiting_tasks_count,\n    wait_time_ms,\n    signal_wait_time_ms\nFROM sys.dm_os_wait_stats\nWHERE wait_type LIKE 'PAGELATCH%'\nORDER BY wait_time_ms DESC;\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">If <code>PAGELATCH_UP<\/code> or <code>PAGELATCH_EX<\/code> appear at the top of the results, investigate TempDB configuration.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Verify That Waits Are Occurring in TempDB<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">The following query displays sessions waiting on TempDB pages.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>SELECT\n    session_id,\n    wait_type,\n    wait_duration_ms,\n    resource_description\nFROM sys.dm_os_waiting_tasks\nWHERE wait_type LIKE 'PAGELATCH%';\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">If the resource description references <strong>database ID 2<\/strong>, the contention is occurring in TempDB.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Check TempDB File Configuration<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">One of the first things every DBA should verify is the number and size of TempDB data files.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>SELECT\n    name,\n    physical_name,\n    size * 8 \/ 1024 AS SizeMB\nFROM tempdb.sys.database_files;\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Review:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Number of data files<\/li>\n\n\n\n<li>File sizes<\/li>\n\n\n\n<li>Growth settings<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Uneven file sizes can create allocation hotspots.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Why a Single TempDB File Causes Problems<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Imagine a server with:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>32 CPU cores<\/li>\n\n\n\n<li>Hundreds of concurrent users<\/li>\n\n\n\n<li>Thousands of temporary objects created every second<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">If TempDB has only one data file, every allocation request targets the same allocation pages.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This creates a bottleneck.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Multiple TempDB files distribute allocations across several allocation maps, reducing contention.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Best Practice: Configure Multiple TempDB Data Files<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Microsoft recommends using multiple TempDB data files of <strong>equal size<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">General guidance:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Logical CPU Cores<\/th><th>Recommended TempDB Data Files<\/th><\/tr><\/thead><tbody><tr><td>1\u20134<\/td><td>1\u20134<\/td><\/tr><tr><td>8<\/td><td>8<\/td><\/tr><tr><td>16<\/td><td>8<\/td><\/tr><tr><td>32<\/td><td>8 (increase only if contention persists)<\/td><\/tr><tr><td>64+<\/td><td>8\u201316 (monitor before adding more)<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\"><strong>Important:<\/strong> More files are not always better. Start with up to <strong>8 equally sized data files<\/strong>, monitor performance, and increase only if contention continues.<\/p>\n<\/blockquote>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Add Additional TempDB Files<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Example:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ALTER DATABASE tempdb\nADD FILE\n(\nNAME = tempdev2,\nFILENAME = 'D:\\SQLData\\tempdb2.ndf',\nSIZE = 1024MB,\nFILEGROWTH = 256MB\n);\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Repeat until the desired number of data files is configured.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ensure all data files have:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Equal initial size<\/li>\n\n\n\n<li>Equal growth settings<\/li>\n\n\n\n<li>Same storage performance characteristics<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Configure Appropriate File Growth<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Avoid percentage-based auto-growth.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Instead, use fixed increments.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Good example:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Initial Size: 4 GB\nGrowth: 512 MB\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Avoid:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Growth: 10%\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Percentage growth can create uneven file sizes over time.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Optimize Temporary Object Usage<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Poor application design can overload TempDB.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Examples include:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Large temporary tables<\/li>\n\n\n\n<li>Excessive table variables<\/li>\n\n\n\n<li>Unnecessary sorting<\/li>\n\n\n\n<li>Repeated cursor operations<\/li>\n\n\n\n<li>Large hash joins<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Review application code to minimize unnecessary TempDB usage.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Monitor Version Store Usage<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Snapshot isolation and Read Committed Snapshot Isolation (RCSI) use TempDB extensively.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Monitor version store space.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>SELECT\n    SUM(version_store_reserved_page_count) * 8 AS VersionStoreKB\nFROM sys.dm_db_file_space_usage;\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Unexpected growth may indicate long-running transactions.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Trace Flags and Modern SQL Server Versions<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Historically, SQL Server administrators enabled trace flags such as:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>1117<\/strong><\/li>\n\n\n\n<li><strong>1118<\/strong><\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">These trace flags reduced allocation contention by changing extent allocation behavior.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>SQL Server 2016 and later<\/strong> include these improvements by default, so manually enabling these trace flags is generally <strong>not required<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For older SQL Server versions, consult Microsoft&#8217;s guidance before enabling trace flags in production.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Monitor TempDB Space Usage<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Use this query to check current TempDB allocation.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>SELECT\n    SUM(user_object_reserved_page_count) * 8 AS UserObjectsKB,\n    SUM(internal_object_reserved_page_count) * 8 AS InternalObjectsKB,\n    SUM(version_store_reserved_page_count) * 8 AS VersionStoreKB,\n    SUM(unallocated_extent_page_count) * 8 AS FreeSpaceKB\nFROM sys.dm_db_file_space_usage;\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">This helps identify excessive TempDB consumption.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Best Practices for Preventing TempDB Contention<\/h1>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Configure multiple equally sized TempDB data files.<\/li>\n\n\n\n<li>Place TempDB on fast storage.<\/li>\n\n\n\n<li>Use fixed auto-growth increments.<\/li>\n\n\n\n<li>Monitor PAGELATCH waits regularly.<\/li>\n\n\n\n<li>Minimize unnecessary temporary object creation.<\/li>\n\n\n\n<li>Keep SQL Server updated with the latest cumulative updates.<\/li>\n\n\n\n<li>Review execution plans for excessive sorts and hash operations.<\/li>\n\n\n\n<li>Monitor version store growth.<\/li>\n\n\n\n<li>Test configuration changes before applying them in production.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Monitoring TempDB Health with DBPulse<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">TempDB allocation contention often develops gradually and is difficult to detect before users experience slow performance. Waiting until applications begin timing out can lead to extended troubleshooting and unnecessary downtime.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>DBPulse<\/strong> continuously monitors SQL Server performance and provides real-time visibility into TempDB health, helping database administrators detect allocation bottlenecks before they become critical.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">With DBPulse, you can:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Monitor TempDB utilization in real time<\/li>\n\n\n\n<li>Track <code>PAGELATCH_UP<\/code> and <code>PAGELATCH_EX<\/code> waits<\/li>\n\n\n\n<li>Identify sessions generating excessive TempDB activity<\/li>\n\n\n\n<li>Monitor query spills, sorts, and hash operations<\/li>\n\n\n\n<li>Track file growth and storage utilization<\/li>\n\n\n\n<li>Receive alerts when wait statistics exceed normal thresholds<\/li>\n\n\n\n<li>Analyze historical performance trends for proactive capacity planning<\/li>\n\n\n\n<li>Correlate TempDB issues with workload spikes and application releases<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Instead of manually checking DMVs during a performance incident, DBPulse provides continuous monitoring and actionable insights, enabling faster diagnosis and long-term optimization of TempDB performance.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Frequently Asked Questions<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\">What causes TempDB allocation contention?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">It occurs when many concurrent sessions compete for TempDB allocation pages such as PFS, GAM, and SGAM while creating temporary objects or performing internal SQL Server operations.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">What is the difference between PAGELATCH and PAGEIOLATCH?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><code>PAGELATCH<\/code> waits occur <strong>in memory<\/strong> and indicate contention for internal pages. <code>PAGEIOLATCH<\/code> waits indicate delays while reading data from disk.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">How many TempDB files should I create?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">A common starting point is up to <strong>8 equally sized data files<\/strong>, depending on CPU count and workload. Add more only if monitoring confirms ongoing contention.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Are trace flags 1117 and 1118 still required?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">For SQL Server 2016 and later, their behavior is largely built into the product. They are primarily relevant to older SQL Server versions.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">How can I tell if TempDB contention is affecting my server?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Look for high <code>PAGELATCH_UP<\/code> or <code>PAGELATCH_EX<\/code> waits on <strong>database ID 2<\/strong>, along with slow query performance and heavy TempDB usage.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Conclusion<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">TempDB allocation contention is one of the most common causes of performance degradation in high-concurrency SQL Server environments. Excessive <code>PAGELATCH_UP<\/code> and <code>PAGELATCH_EX<\/code> waits indicate contention for allocation pages, preventing SQL Server from processing workloads efficiently.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">By configuring multiple equally sized TempDB data files, monitoring latch waits, optimizing application design, and following Microsoft&#8217;s recommended TempDB best practices, organizations can significantly improve throughput and reduce query latency.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For proactive database administration, continuous monitoring is essential. <strong>DBPulse<\/strong> helps database teams monitor TempDB usage, detect allocation contention, analyze wait statistics, and receive real-time alerts\u2014making it easier to resolve performance issues before they impact business-critical applications.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>SQL Server TempDB Allocation Contention: Complete Guide to Diagnose and Fix PAGELATCH Waits If your SQL Server suddenly becomes slow during peak business hours, reports take longer to complete, and users experience intermittent delays\u2014even though CPU, memory, and disk utilization appear normal\u2014the problem may not be your application or hardware. One of the most common<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-164","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/blog.vigplanet.com\/index.php?rest_route=\/wp\/v2\/posts\/164","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.vigplanet.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.vigplanet.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.vigplanet.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.vigplanet.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=164"}],"version-history":[{"count":1,"href":"https:\/\/blog.vigplanet.com\/index.php?rest_route=\/wp\/v2\/posts\/164\/revisions"}],"predecessor-version":[{"id":165,"href":"https:\/\/blog.vigplanet.com\/index.php?rest_route=\/wp\/v2\/posts\/164\/revisions\/165"}],"wp:attachment":[{"href":"https:\/\/blog.vigplanet.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=164"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.vigplanet.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=164"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.vigplanet.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=164"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}