{"id":2173,"date":"2013-07-25T09:00:00","date_gmt":"2013-07-25T16:00:00","guid":{"rendered":"https:\/\/blogs.technet.microsoft.com\/dataplatforminsider\/2013\/07\/25\/buffer-pool-extension-to-ssds-in-sql-server-2014\/"},"modified":"2024-01-22T22:49:13","modified_gmt":"2024-01-23T06:49:13","slug":"buffer-pool-extension-to-ssds-in-sql-server-2014","status":"publish","type":"post","link":"https:\/\/www.microsoft.com\/en-us\/sql-server\/blog\/2013\/07\/25\/buffer-pool-extension-to-ssds-in-sql-server-2014\/","title":{"rendered":"Buffer Pool Extension to SSDs in SQL Server 2014"},"content":{"rendered":"<p>How many of you have been looking into ways of cost effectively improving the performance of your OLTP workloads, without having to buy new more expensive hardware? Most of you know already that memory is one of the key assets available for the SQL Server and especially buffer pool memory, which plays key role in storing data pages and in turn reducing the I\/O demand. Have many of you seen your servers struggling from the workloads intensity increase that generated memory pressure and in turn exceeded planned capacity?<\/p>\n<p>Did you see the machine level limitations that makes it hard to upgrade memory in those machines and you have been thinking that it would be great if you only could upgrade your memory in the same easy way you can upgrade your storage options?<\/p>\n<p>You are not alone. We have heard similar feedback from many customers, so we tried to address it in the way that would allow you to avoid significant changes in your hardware or create cost-effective mid-size hardware configurations for OLTP workloads from the scratch.<\/p>\n<p>The answer we come up with is Buffer Pool Extension feature (BPE) that targets nonvolatile storage devices, in particular SSD drives, as an extension for SQL Server buffer pool. Those devices have some advantages over direct memory increase: the first one, already mentioned above, is the higher flexibility of storage options over memory options; the second, might be even more important, is the greater price efficiency of available storage vs. memory.<\/p>\n<p>What does Buffer Pool Extension offer?<\/p>\n<p>A few things:<\/p>\n<ul>\n<li>Performance gains on OLTP workloads, mostly on the read-heavy OLTP.<\/li>\n<li>No risk of data loss. BPE only deals with clean pages.<\/li>\n<li>No application modification required. Just enable the feature and you\u2019re ready to go.<\/li>\n<li>Simple feature syntax<\/li>\n<\/ul>\n<p>Let\u2019s start from the last bullet and take a look on the syntax. Assuming you already have SSD drives ready and configured in Windows the only syntax you need to be aware of is<\/p>\n<pre class=\"scroll\"><code class=\"mysql\">ALTER SERVER CONFIGURATION <br><span style=\"color:#ff0000;\">SET BUFFER POOL EXTENSION <\/span><br><span style=\"color:#ff0000;\"> { ON ( FILENAME = 'os_file_path_and_name' , SIZE = &lt;size&gt; [ KB | MB | GB ] ) <\/span><br><span style=\"color:#ff0000;\"> | OFF }<\/span><br><\/code><\/pre>\n<p>Note: ALTER SERVER CONFIGURATION command requires ALTER SERVER STATE privilege from the user executing the command.<\/p>\n<p>Yes, this is it. This is how it translates into an actual example:<\/p>\n<pre class=\"scroll\"><code class=\"mysql\">ALTER SERVER CONFIGURATION<br> SET BUFFER POOL EXTENSION ON<br> SIZE = 50 GB<br> FILENAME = 'F:\\SSDCACHE\\EXAMPLE.BPE'<br><\/code><\/pre>\n<p>Looking at the example and going up by the list you can see that there is no additional database or application level syntax available for the feature. Just keep running your workloads as they are currently.<\/p>\n<p>What does it mean that there is no risk of data loss? BPE only processes clean pages, which ensures that all data in the extension is already committed. Machine crash or power failure? No additional risk compared to the data in memory. What about SSD storage failure? The feature disables itself automatically and can be either re-enabled manually in the same session or attempts to re-enable automatically on instance restart.<\/p>\n<p>Performance gain is always the trickier subject, mostly because in the real world no two workloads are alike and no two configurations are the same. However, there are some basic sweet spot recommendations you can start with:<\/p>\n<ul>\n<li>Extension file sized 4x-10x of the memory size available to SQL Server<\/li>\n<li>High throughput SSD storage on the machine. We also suggest using high endurance storage, despite the endurance being rarely directly related to performance<\/li>\n<\/ul>\n<p>However, we all know that a silver bullet doesn\u2019t always work in the real world, so there are some situations when your expectations should be limited:<\/p>\n<ul>\n<li>Data warehouse workloads.<\/li>\n<li>Write-heavy OLTP workloads.<\/li>\n<li>Machines with more than 64GB of memory available to SQL Server<\/li>\n<\/ul>\n<p>Now let\u2019s take a look on the little more complicated scenario that would also allow us to discuss one more interesting point. Let\u2019s assume you have BPE configured, but you don\u2019t like its configuration. The only option available to you is to turn it OFF and then back ON.<\/p>\n<pre class=\"scroll\"><code class=\"mysql\">ALTER SERVER CONFIGURATION<br> SET BUFFER POOL EXTENSION OFF<br> GO<br> EXEC sp_configure 'max server memory (MB)', 12000<br> GO<br> RECONFIGURE<br> GO<br> ALTER SERVER CONFIGURATION<br> SET BUFFER POOL EXTENSION ON<br> SIZE = 40 GB<br> FILENAME = 'F:\\SSDCACHE\\EXAMPLE.BPE' <\/code><\/pre>\n<p>This is the thing to keep in mind \u2013 when you turn OFF the BPE feature it automatically and most likely significantly reduces the amount of addressable memory in your instance\u2019s buffer pool. This will immediately cause increased memory pressure, then increased I\/O pressure, and then, in turn, performance drop. Make sure you keep this in mind when updating BPE configuration.<\/p>\n<p>Now you are ready to start using the feature. All that you need is the SQL Server Enterprise on x64 architecture.<\/p>\n<p>For those who are interested in the technical details regarding this feature, the buffer pool extension is a &#8220;write-through&#8221; cache which is an extension to the Dual Write (DW) mechanism that is described in the paper by Do et al [1].<\/p>\n<p>I hope you will like the feature and let us know what you think. You can download SQL Server 2014 CTP1 <a href=\"http:\/\/technet.microsoft.com\/evalcenter\/dn205290?WT.mc_id=Blog_SQL_InMem_SQL2014\">here<\/a>.<\/p>\n<p>Evgeny Krivosheev, <br \/> SQL Server Program Manager<\/p>\n<p><strong>Further Reading:<\/strong><\/p>\n<p>[1]\u00a0 &#8220;<a href=\"http:\/\/gsl.azurewebsites.net\/Portals\/0\/Users\/Projects\/SSD\/sigmod2010.pdf\">Turbocharging DBMS Buffer Pool Using SSDs<\/a>&#8220;,\u00a0\u00a0 Do, J., Zhang, D., Patel, J.,\u00a0 DeWitt, D., Naughton, J., and A. Halverson,\u00a0 Proceedings of the 2011 ACM SIGMOD Conference,\u00a0 Athens, Greece,\u00a0\u00a0 June 2011.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>How many of you have been looking into ways of cost effectively improving the performance of your OLTP workloads, without having to buy new more expensive hardware? Most of you know already that memory is one of the key assets available for the SQL Server and especially buffer pool memory, which plays key role in.<\/p>\n","protected":false},"author":1457,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"ep_exclude_from_search":false,"_classifai_error":"","_classifai_text_to_speech_error":"","footnotes":""},"post_tag":[],"product":[],"content-type":[2448],"topic":[],"coauthors":[2487],"class_list":["post-2173","post","type-post","status-publish","format-standard","hentry","content-type-updates"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.2 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Buffer Pool Extension to SSDs in SQL Server 2014 - Microsoft SQL Server Blog<\/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.microsoft.com\/en-us\/sql-server\/blog\/2013\/07\/25\/buffer-pool-extension-to-ssds-in-sql-server-2014\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Buffer Pool Extension to SSDs in SQL Server 2014 - Microsoft SQL Server Blog\" \/>\n<meta property=\"og:description\" content=\"How many of you have been looking into ways of cost effectively improving the performance of your OLTP workloads, without having to buy new more expensive hardware? Most of you know already that memory is one of the key assets available for the SQL Server and especially buffer pool memory, which plays key role in.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.microsoft.com\/en-us\/sql-server\/blog\/2013\/07\/25\/buffer-pool-extension-to-ssds-in-sql-server-2014\/\" \/>\n<meta property=\"og:site_name\" content=\"Microsoft SQL Server Blog\" \/>\n<meta property=\"article:publisher\" content=\"http:\/\/www.facebook.com\/sqlserver\" \/>\n<meta property=\"article:published_time\" content=\"2013-07-25T16:00:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-01-23T06:49:13+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.microsoft.com\/en-us\/sql-server\/blog\/wp-content\/uploads\/2018\/08\/cropped-microsoft_logo_element.png\" \/>\n\t<meta property=\"og:image:width\" content=\"512\" \/>\n\t<meta property=\"og:image:height\" content=\"512\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"SQL Server Team\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@SQLServer\" \/>\n<meta name=\"twitter:site\" content=\"@SQLServer\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"SQL Server Team\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 min read\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.microsoft.com\/en-us\/sql-server\/blog\/2013\/07\/25\/buffer-pool-extension-to-ssds-in-sql-server-2014\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.microsoft.com\/en-us\/sql-server\/blog\/2013\/07\/25\/buffer-pool-extension-to-ssds-in-sql-server-2014\/\"},\"author\":[{\"@id\":\"https:\/\/www.microsoft.com\/en-us\/sql-server\/blog\/author\/sql-server-team\/\",\"@type\":\"Person\",\"@name\":\"SQL Server Team\"}],\"headline\":\"Buffer Pool Extension to SSDs in SQL Server 2014\",\"datePublished\":\"2013-07-25T16:00:00+00:00\",\"dateModified\":\"2024-01-23T06:49:13+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.microsoft.com\/en-us\/sql-server\/blog\/2013\/07\/25\/buffer-pool-extension-to-ssds-in-sql-server-2014\/\"},\"wordCount\":823,\"commentCount\":14,\"publisher\":{\"@id\":\"https:\/\/www.microsoft.com\/en-us\/sql-server\/blog\/#organization\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.microsoft.com\/en-us\/sql-server\/blog\/2013\/07\/25\/buffer-pool-extension-to-ssds-in-sql-server-2014\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.microsoft.com\/en-us\/sql-server\/blog\/2013\/07\/25\/buffer-pool-extension-to-ssds-in-sql-server-2014\/\",\"url\":\"https:\/\/www.microsoft.com\/en-us\/sql-server\/blog\/2013\/07\/25\/buffer-pool-extension-to-ssds-in-sql-server-2014\/\",\"name\":\"Buffer Pool Extension to SSDs in SQL Server 2014 - Microsoft SQL Server Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.microsoft.com\/en-us\/sql-server\/blog\/#website\"},\"datePublished\":\"2013-07-25T16:00:00+00:00\",\"dateModified\":\"2024-01-23T06:49:13+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.microsoft.com\/en-us\/sql-server\/blog\/2013\/07\/25\/buffer-pool-extension-to-ssds-in-sql-server-2014\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.microsoft.com\/en-us\/sql-server\/blog\/2013\/07\/25\/buffer-pool-extension-to-ssds-in-sql-server-2014\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.microsoft.com\/en-us\/sql-server\/blog\/2013\/07\/25\/buffer-pool-extension-to-ssds-in-sql-server-2014\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.microsoft.com\/en-us\/sql-server\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Buffer Pool Extension to SSDs in SQL Server 2014\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.microsoft.com\/en-us\/sql-server\/blog\/#website\",\"url\":\"https:\/\/www.microsoft.com\/en-us\/sql-server\/blog\/\",\"name\":\"Microsoft SQL Server Blog\",\"description\":\"Official News from Microsoft\u2019s Information Platform\",\"publisher\":{\"@id\":\"https:\/\/www.microsoft.com\/en-us\/sql-server\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.microsoft.com\/en-us\/sql-server\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.microsoft.com\/en-us\/sql-server\/blog\/#organization\",\"name\":\"Microsoft SQL Server Blog\",\"url\":\"https:\/\/www.microsoft.com\/en-us\/sql-server\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.microsoft.com\/en-us\/sql-server\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.microsoft.com\/en-us\/sql-server\/blog\/wp-content\/uploads\/2019\/08\/Microsoft-Logo.png\",\"contentUrl\":\"https:\/\/www.microsoft.com\/en-us\/sql-server\/blog\/wp-content\/uploads\/2019\/08\/Microsoft-Logo.png\",\"width\":259,\"height\":194,\"caption\":\"Microsoft SQL Server Blog\"},\"image\":{\"@id\":\"https:\/\/www.microsoft.com\/en-us\/sql-server\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"http:\/\/www.facebook.com\/sqlserver\",\"https:\/\/x.com\/SQLServer\",\"https:\/\/www.youtube.com\/user\/MSCloudOS\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Buffer Pool Extension to SSDs in SQL Server 2014 - Microsoft SQL Server Blog","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.microsoft.com\/en-us\/sql-server\/blog\/2013\/07\/25\/buffer-pool-extension-to-ssds-in-sql-server-2014\/","og_locale":"en_US","og_type":"article","og_title":"Buffer Pool Extension to SSDs in SQL Server 2014 - Microsoft SQL Server Blog","og_description":"How many of you have been looking into ways of cost effectively improving the performance of your OLTP workloads, without having to buy new more expensive hardware? Most of you know already that memory is one of the key assets available for the SQL Server and especially buffer pool memory, which plays key role in.","og_url":"https:\/\/www.microsoft.com\/en-us\/sql-server\/blog\/2013\/07\/25\/buffer-pool-extension-to-ssds-in-sql-server-2014\/","og_site_name":"Microsoft SQL Server Blog","article_publisher":"http:\/\/www.facebook.com\/sqlserver","article_published_time":"2013-07-25T16:00:00+00:00","article_modified_time":"2024-01-23T06:49:13+00:00","og_image":[{"width":512,"height":512,"url":"https:\/\/www.microsoft.com\/en-us\/sql-server\/blog\/wp-content\/uploads\/2018\/08\/cropped-microsoft_logo_element.png","type":"image\/png"}],"author":"SQL Server Team","twitter_card":"summary_large_image","twitter_creator":"@SQLServer","twitter_site":"@SQLServer","twitter_misc":{"Written by":"SQL Server Team","Est. reading time":"4 min read"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.microsoft.com\/en-us\/sql-server\/blog\/2013\/07\/25\/buffer-pool-extension-to-ssds-in-sql-server-2014\/#article","isPartOf":{"@id":"https:\/\/www.microsoft.com\/en-us\/sql-server\/blog\/2013\/07\/25\/buffer-pool-extension-to-ssds-in-sql-server-2014\/"},"author":[{"@id":"https:\/\/www.microsoft.com\/en-us\/sql-server\/blog\/author\/sql-server-team\/","@type":"Person","@name":"SQL Server Team"}],"headline":"Buffer Pool Extension to SSDs in SQL Server 2014","datePublished":"2013-07-25T16:00:00+00:00","dateModified":"2024-01-23T06:49:13+00:00","mainEntityOfPage":{"@id":"https:\/\/www.microsoft.com\/en-us\/sql-server\/blog\/2013\/07\/25\/buffer-pool-extension-to-ssds-in-sql-server-2014\/"},"wordCount":823,"commentCount":14,"publisher":{"@id":"https:\/\/www.microsoft.com\/en-us\/sql-server\/blog\/#organization"},"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.microsoft.com\/en-us\/sql-server\/blog\/2013\/07\/25\/buffer-pool-extension-to-ssds-in-sql-server-2014\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.microsoft.com\/en-us\/sql-server\/blog\/2013\/07\/25\/buffer-pool-extension-to-ssds-in-sql-server-2014\/","url":"https:\/\/www.microsoft.com\/en-us\/sql-server\/blog\/2013\/07\/25\/buffer-pool-extension-to-ssds-in-sql-server-2014\/","name":"Buffer Pool Extension to SSDs in SQL Server 2014 - Microsoft SQL Server Blog","isPartOf":{"@id":"https:\/\/www.microsoft.com\/en-us\/sql-server\/blog\/#website"},"datePublished":"2013-07-25T16:00:00+00:00","dateModified":"2024-01-23T06:49:13+00:00","breadcrumb":{"@id":"https:\/\/www.microsoft.com\/en-us\/sql-server\/blog\/2013\/07\/25\/buffer-pool-extension-to-ssds-in-sql-server-2014\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.microsoft.com\/en-us\/sql-server\/blog\/2013\/07\/25\/buffer-pool-extension-to-ssds-in-sql-server-2014\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.microsoft.com\/en-us\/sql-server\/blog\/2013\/07\/25\/buffer-pool-extension-to-ssds-in-sql-server-2014\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.microsoft.com\/en-us\/sql-server\/blog\/"},{"@type":"ListItem","position":2,"name":"Buffer Pool Extension to SSDs in SQL Server 2014"}]},{"@type":"WebSite","@id":"https:\/\/www.microsoft.com\/en-us\/sql-server\/blog\/#website","url":"https:\/\/www.microsoft.com\/en-us\/sql-server\/blog\/","name":"Microsoft SQL Server Blog","description":"Official News from Microsoft\u2019s Information Platform","publisher":{"@id":"https:\/\/www.microsoft.com\/en-us\/sql-server\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.microsoft.com\/en-us\/sql-server\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.microsoft.com\/en-us\/sql-server\/blog\/#organization","name":"Microsoft SQL Server Blog","url":"https:\/\/www.microsoft.com\/en-us\/sql-server\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.microsoft.com\/en-us\/sql-server\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.microsoft.com\/en-us\/sql-server\/blog\/wp-content\/uploads\/2019\/08\/Microsoft-Logo.png","contentUrl":"https:\/\/www.microsoft.com\/en-us\/sql-server\/blog\/wp-content\/uploads\/2019\/08\/Microsoft-Logo.png","width":259,"height":194,"caption":"Microsoft SQL Server Blog"},"image":{"@id":"https:\/\/www.microsoft.com\/en-us\/sql-server\/blog\/#\/schema\/logo\/image\/"},"sameAs":["http:\/\/www.facebook.com\/sqlserver","https:\/\/x.com\/SQLServer","https:\/\/www.youtube.com\/user\/MSCloudOS"]}]}},"msxcm_display_generated_audio":false,"msxcm_animated_featured_image":null,"_links":{"self":[{"href":"https:\/\/www.microsoft.com\/en-us\/sql-server\/blog\/wp-json\/wp\/v2\/posts\/2173","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.microsoft.com\/en-us\/sql-server\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.microsoft.com\/en-us\/sql-server\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/sql-server\/blog\/wp-json\/wp\/v2\/users\/1457"}],"replies":[{"embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/sql-server\/blog\/wp-json\/wp\/v2\/comments?post=2173"}],"version-history":[{"count":0,"href":"https:\/\/www.microsoft.com\/en-us\/sql-server\/blog\/wp-json\/wp\/v2\/posts\/2173\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.microsoft.com\/en-us\/sql-server\/blog\/wp-json\/wp\/v2\/media?parent=2173"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/sql-server\/blog\/wp-json\/wp\/v2\/post_tag?post=2173"},{"taxonomy":"product","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/sql-server\/blog\/wp-json\/wp\/v2\/product?post=2173"},{"taxonomy":"content-type","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/sql-server\/blog\/wp-json\/wp\/v2\/content-type?post=2173"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/sql-server\/blog\/wp-json\/wp\/v2\/topic?post=2173"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/sql-server\/blog\/wp-json\/wp\/v2\/coauthors?post=2173"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}