{"id":7127,"date":"2016-02-15T18:44:50","date_gmt":"2016-02-15T17:44:50","guid":{"rendered":"https:\/\/www.dbi-services.com\/blog\/nolock-is-definitely-not-what-you-may-expect\/"},"modified":"2016-02-15T18:44:50","modified_gmt":"2016-02-15T17:44:50","slug":"nolock-is-definitely-not-what-you-may-expect","status":"publish","type":"post","link":"https:\/\/www.dbi-services.com\/blog\/nolock-is-definitely-not-what-you-may-expect\/","title":{"rendered":"NOLOCK is definitely not what you may expect &#8230;"},"content":{"rendered":"<p>For those who still believe that using nolock hint is a lock-free process, keep reading this blog post. I wrote a previous <a href=\"http:\/\/blog.developpez.com\/mikedavem\/p11994\/sql-server-2005\/set-transaction-isolation-level-unreadcommited-et-nolock-pas-de-verrous\" target=\"_blank\" rel=\"noopener noreferrer\">blog post<\/a> 3 years ago, when I was at one of my customer and we had an interesting discussion about the nolock hint with reporting queries. I convinced him that nolock continues to generate locks even if the shared lock was evicted in this case.<\/p>\n<p>So this time, I experienced an interesting another case where we were blocked by a SELECT query that used the nolock hint. I can\u2019t reveal the real scenario but I was able to reproduce this case in my lab environment by using the famous AdventureWorks database.<\/p>\n<p>The SELECT query is pretty basic as follows:<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">SELECT * \nFROM dbo.bigTransactionHistory_stg as T (nolock) \nWHERE Quantity between 1 and 100<\/pre>\n<p>To relate with my customer context, this real query aimed to analyze some data from different staging tables during the load data activity.<\/p>\n<p>Then let\u2019s have a look at query related to the customer\u2019s bulk insert activity into the staging tables. The load activity was performed by scheduled robots.<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">begin tran; \n\ninsert [dbo].[bigTransactionHistory_stg] with (tablock) \n\nselect * \nfrom  [dbo].[bigTransactionHistory]\n\n...\n\ncommit tran<\/pre>\n<p>According to the Microsoft documentation <a href=\"https:\/\/msdn.microsoft.com\/en-us\/library\/ms177445(v=sql.105)\" target=\"_blank\" rel=\"noopener noreferrer\">here<\/a>, my customer wanted to use the tablock hint in order to guarantee the minimally logging behaviour of the INSERT statement. The database recovery model was set to SIMPLE in this context.<\/p>\n<p>Here a picture of the locking situation during the bulk data insert. At the same time the customer tried to get data from the staging tables for troubleshooting purposes but it was blocked even with the nolock hint.<\/p>\n<p><a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/blog-78-1-tran-locks.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-7096\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/blog-78-1-tran-locks.jpg\" alt=\"blog 78- 1 - tran locks\" width=\"1049\" height=\"302\" \/><\/a><\/p>\n<p><em><strong>About the INSERT statement\u00a0<\/strong><\/em><\/p>\n<p>Firstly, you may notice that the lock manager has granted an Sch-S lock to the table itself (issued by the tablelock hint) as well as a special intended exclusive lock with the BULK_OPERATION subtype that concerned the allocation unit id = 72057594059554816). This allocation unit corresponds to the index 0 of the table bigTransactionHistory_stg.\u00a0 Finally there exist other exclusive locks that concern the page itself.<\/p>\n<p><em><strong>About the SELECT statement<\/strong><\/em><\/p>\n<p>At the same time, we may notice a pending session (session id = 56) related to our SELECT statement that is waiting on the same hobtid than the previous INSERT statement with the same BULK_OPERATION lock subtype and an attempt to get a shared locked to the concerned resource. You may also notice an additional granted Sch-S lock as documented in the BOL <a href=\"https:\/\/msdn.microsoft.com\/en-us\/library\/ms187373(v=sql.120).aspx\" target=\"_blank\" rel=\"noopener noreferrer\">here<\/a>.<\/p>\n<p>Well, this surprising behaviour is in fact expected because the both locks are incompatible on the same resource.<\/p>\n<p><span class=\"TextRun SCX16836109\"><span class=\"NormalTextRun SCX16836109\">The bottom line is that we have to remember that adding the <\/span><\/span><span class=\"TextRun SCX16836109\"><span class=\"SpellingError SCX16836109\">nolock<\/span><\/span><span class=\"TextRun SCX16836109\"><span class=\"NormalTextRun SCX16836109\"> hint to a query is not a lock-free operation. <\/span><\/span><span class=\"TextRun SCX16836109\"><span class=\"NormalTextRun SCX16836109\">Reading<\/span><\/span><span class=\"TextRun SCX16836109\"><span class=\"NormalTextRun SCX16836109\"> heap structures<\/span><\/span><span class=\"TextRun SCX16836109\"><span class=\"NormalTextRun SCX16836109\"> (at certain conditions<\/span><\/span><span class=\"TextRun SCX16836109\"><span class=\"NormalTextRun SCX16836109\"> documented <\/span><\/span><a href=\"https:\/\/msdn.microsoft.com\/en-us\/library\/ms177445(v=sql.105)\" target=\"_blank\" rel=\"noopener noreferrer\"><span class=\"TextRun Underlined SCX16836109\"><span class=\"NormalTextRun SCX16836109\">here<\/span><\/span><\/a><span class=\"TextRun SCX16836109\"><span class=\"NormalTextRun SCX16836109\">)<\/span><\/span><span class=\"TextRun SCX16836109\"><span class=\"NormalTextRun SCX16836109\">, could<\/span><\/span> <span class=\"TextRun SCX16836109\"><span class=\"NormalTextRun SCX16836109\">generate<\/span><\/span> <span class=\"TextRun SCX16836109\"><span class=\"NormalTextRun SCX16836109\">both<\/span><\/span> <span class=\"TextRun SCX16836109\"><span class=\"SpellingError SCX16836109\">Sch<\/span><\/span><span class=\"TextRun SCX16836109\"><span class=\"NormalTextRun SCX16836109\">-S<\/span><\/span><span class=\"TextRun SCX16836109\"><span class=\"NormalTextRun SCX16836109\"> locks and<\/span><\/span><span class=\"TextRun SCX16836109\"><span class=\"NormalTextRun SCX16836109\"> special<\/span><\/span><span class=\"TextRun SCX16836109\"><span class=\"NormalTextRun SCX16836109\"> other<\/span><\/span><span class=\"TextRun SCX16836109\"><span class=\"NormalTextRun SCX16836109\"> bulk-operation subtype lock<\/span><\/span><span class=\"TextRun SCX16836109\"><span class=\"NormalTextRun SCX16836109\">s<\/span><\/span><span class=\"TextRun SCX16836109\"><span class=\"NormalTextRun SCX16836109\"> in order to pr<\/span><\/span><span class=\"TextRun SCX16836109\"><span class=\"NormalTextRun SCX16836109\">event reading unformatted pages (referring to Paul Randal&#8217;s Pass summit session in 2011 #Myth 34).<br \/>\n<\/span><\/span><\/p>\n<p>See you!<\/p>\n<p>By David Barbarin<\/p>\n","protected":false},"excerpt":{"rendered":"<p>For those who still believe that using nolock hint is a lock-free process, keep reading this blog post. I wrote a previous blog post 3 years ago, when I was at one of my customer and we had an interesting discussion about the nolock hint with reporting queries. I convinced him that nolock continues to [&hellip;]<\/p>\n","protected":false},"author":26,"featured_media":7129,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[368],"tags":[743,481,744,67,745,51,746],"type_dbi":[],"class_list":["post-7127","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-development-performance","tag-concurrency","tag-lock","tag-nolock","tag-performance","tag-read-uncommitted","tag-sql-server","tag-transaction-isolation-level"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.2 (Yoast SEO v27.2) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>NOLOCK is definitely not what you may expect ...<\/title>\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.dbi-services.com\/blog\/nolock-is-definitely-not-what-you-may-expect\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"NOLOCK is definitely not what you may expect ...\" \/>\n<meta property=\"og:description\" content=\"For those who still believe that using nolock hint is a lock-free process, keep reading this blog post. I wrote a previous blog post 3 years ago, when I was at one of my customer and we had an interesting discussion about the nolock hint with reporting queries. I convinced him that nolock continues to [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dbi-services.com\/blog\/nolock-is-definitely-not-what-you-may-expect\/\" \/>\n<meta property=\"og:site_name\" content=\"dbi Blog\" \/>\n<meta property=\"article:published_time\" content=\"2016-02-15T17:44:50+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/blog-78-1-tran-locks-1.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1049\" \/>\n\t<meta property=\"og:image:height\" content=\"302\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Microsoft Team\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Microsoft Team\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/nolock-is-definitely-not-what-you-may-expect\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/nolock-is-definitely-not-what-you-may-expect\/\"},\"author\":{\"name\":\"Microsoft Team\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/bfab48333280d616e1170e7369df90a4\"},\"headline\":\"NOLOCK is definitely not what you may expect &#8230;\",\"datePublished\":\"2016-02-15T17:44:50+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/nolock-is-definitely-not-what-you-may-expect\/\"},\"wordCount\":474,\"commentCount\":0,\"image\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/nolock-is-definitely-not-what-you-may-expect\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/blog-78-1-tran-locks-1.jpg\",\"keywords\":[\"concurrency\",\"lock\",\"nolock\",\"Performance\",\"read uncommitted\",\"SQL Server\",\"transaction isolation level\"],\"articleSection\":[\"Development &amp; Performance\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/nolock-is-definitely-not-what-you-may-expect\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/nolock-is-definitely-not-what-you-may-expect\/\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/nolock-is-definitely-not-what-you-may-expect\/\",\"name\":\"NOLOCK is definitely not what you may expect ...\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/nolock-is-definitely-not-what-you-may-expect\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/nolock-is-definitely-not-what-you-may-expect\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/blog-78-1-tran-locks-1.jpg\",\"datePublished\":\"2016-02-15T17:44:50+00:00\",\"author\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/bfab48333280d616e1170e7369df90a4\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/nolock-is-definitely-not-what-you-may-expect\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/nolock-is-definitely-not-what-you-may-expect\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/nolock-is-definitely-not-what-you-may-expect\/#primaryimage\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/blog-78-1-tran-locks-1.jpg\",\"contentUrl\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/blog-78-1-tran-locks-1.jpg\",\"width\":1049,\"height\":302},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/nolock-is-definitely-not-what-you-may-expect\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\/\/www.dbi-services.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"NOLOCK is definitely not what you may expect &#8230;\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#website\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/\",\"name\":\"dbi Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.dbi-services.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/bfab48333280d616e1170e7369df90a4\",\"name\":\"Microsoft Team\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/secure.gravatar.com\/avatar\/c44a1a792c059f24055763aa77d80a244467f6eef724a8bd13db8d4a350b7a4c?s=96&d=mm&r=g\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/c44a1a792c059f24055763aa77d80a244467f6eef724a8bd13db8d4a350b7a4c?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/c44a1a792c059f24055763aa77d80a244467f6eef724a8bd13db8d4a350b7a4c?s=96&d=mm&r=g\",\"caption\":\"Microsoft Team\"},\"url\":\"https:\/\/www.dbi-services.com\/blog\/author\/microsoft-team\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"NOLOCK is definitely not what you may expect ...","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.dbi-services.com\/blog\/nolock-is-definitely-not-what-you-may-expect\/","og_locale":"en_US","og_type":"article","og_title":"NOLOCK is definitely not what you may expect ...","og_description":"For those who still believe that using nolock hint is a lock-free process, keep reading this blog post. I wrote a previous blog post 3 years ago, when I was at one of my customer and we had an interesting discussion about the nolock hint with reporting queries. I convinced him that nolock continues to [&hellip;]","og_url":"https:\/\/www.dbi-services.com\/blog\/nolock-is-definitely-not-what-you-may-expect\/","og_site_name":"dbi Blog","article_published_time":"2016-02-15T17:44:50+00:00","og_image":[{"width":1049,"height":302,"url":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/blog-78-1-tran-locks-1.jpg","type":"image\/jpeg"}],"author":"Microsoft Team","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Microsoft Team","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dbi-services.com\/blog\/nolock-is-definitely-not-what-you-may-expect\/#article","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/nolock-is-definitely-not-what-you-may-expect\/"},"author":{"name":"Microsoft Team","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/bfab48333280d616e1170e7369df90a4"},"headline":"NOLOCK is definitely not what you may expect &#8230;","datePublished":"2016-02-15T17:44:50+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/nolock-is-definitely-not-what-you-may-expect\/"},"wordCount":474,"commentCount":0,"image":{"@id":"https:\/\/www.dbi-services.com\/blog\/nolock-is-definitely-not-what-you-may-expect\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/blog-78-1-tran-locks-1.jpg","keywords":["concurrency","lock","nolock","Performance","read uncommitted","SQL Server","transaction isolation level"],"articleSection":["Development &amp; Performance"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dbi-services.com\/blog\/nolock-is-definitely-not-what-you-may-expect\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dbi-services.com\/blog\/nolock-is-definitely-not-what-you-may-expect\/","url":"https:\/\/www.dbi-services.com\/blog\/nolock-is-definitely-not-what-you-may-expect\/","name":"NOLOCK is definitely not what you may expect ...","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/nolock-is-definitely-not-what-you-may-expect\/#primaryimage"},"image":{"@id":"https:\/\/www.dbi-services.com\/blog\/nolock-is-definitely-not-what-you-may-expect\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/blog-78-1-tran-locks-1.jpg","datePublished":"2016-02-15T17:44:50+00:00","author":{"@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/bfab48333280d616e1170e7369df90a4"},"breadcrumb":{"@id":"https:\/\/www.dbi-services.com\/blog\/nolock-is-definitely-not-what-you-may-expect\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dbi-services.com\/blog\/nolock-is-definitely-not-what-you-may-expect\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.dbi-services.com\/blog\/nolock-is-definitely-not-what-you-may-expect\/#primaryimage","url":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/blog-78-1-tran-locks-1.jpg","contentUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/blog-78-1-tran-locks-1.jpg","width":1049,"height":302},{"@type":"BreadcrumbList","@id":"https:\/\/www.dbi-services.com\/blog\/nolock-is-definitely-not-what-you-may-expect\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.dbi-services.com\/blog\/"},{"@type":"ListItem","position":2,"name":"NOLOCK is definitely not what you may expect &#8230;"}]},{"@type":"WebSite","@id":"https:\/\/www.dbi-services.com\/blog\/#website","url":"https:\/\/www.dbi-services.com\/blog\/","name":"dbi Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.dbi-services.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/bfab48333280d616e1170e7369df90a4","name":"Microsoft Team","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/c44a1a792c059f24055763aa77d80a244467f6eef724a8bd13db8d4a350b7a4c?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/c44a1a792c059f24055763aa77d80a244467f6eef724a8bd13db8d4a350b7a4c?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/c44a1a792c059f24055763aa77d80a244467f6eef724a8bd13db8d4a350b7a4c?s=96&d=mm&r=g","caption":"Microsoft Team"},"url":"https:\/\/www.dbi-services.com\/blog\/author\/microsoft-team\/"}]}},"_links":{"self":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/7127","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/users\/26"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/comments?post=7127"}],"version-history":[{"count":0,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/7127\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media\/7129"}],"wp:attachment":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media?parent=7127"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/categories?post=7127"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/tags?post=7127"},{"taxonomy":"type","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/type_dbi?post=7127"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}