{"id":7881,"date":"2026-10-30T09:52:56","date_gmt":"2026-10-30T16:52:56","guid":{"rendered":"https:\/\/devblogs.microsoft.com\/azure-sql\/?p=7881"},"modified":"2026-10-30T09:52:56","modified_gmt":"2026-10-30T16:52:56","slug":"is-azure-sql-database-hyperscale-distributed-sql","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/azure-sql\/is-azure-sql-database-hyperscale-distributed-sql\/","title":{"rendered":"Is Azure SQL Database Hyperscale &#8220;distributed SQL&#8221;?"},"content":{"rendered":"<p><span style=\"font-family: arial, helvetica, sans-serif;\">In <a href=\"https:\/\/devblogs.microsoft.com\/azure-sql\/the-paper-that-split-the-database-in-four-inside-azure-sql-database-hyperscale-aka-socrates\/\">my last post, I broke down the Socrates paper,<\/a> the research that became Azure SQL Database Hyperscale. Writing it made me want to tackle a question I think trips a lot of people up when they&#8217;re choosing a database: is Azure SQL Database Hyperscale &#8220;distributed SQL&#8221;?\u00a0<\/span><\/p>\n<p><span style=\"font-family: arial, helvetica, sans-serif;\">It&#8217;s a fair question. &#8220;Distributed SQL&#8221; has become shorthand for &#8220;the relational database that scales in the cloud,&#8221; and anything outside that bucket tends to get filed under &#8220;the relational one my company already has.&#8221; I&#8217;d rather not leave that to assumption, so here&#8217;s how I think about it.\u00a0<\/span><\/p>\n<h2 aria-level=\"2\"><span style=\"font-family: arial, helvetica, sans-serif;\"><b>What people usually mean by &#8220;distributed&#8221;<\/b>\u00a0<\/span><\/h2>\n<p><span style=\"font-family: arial, helvetica, sans-serif;\">When architects say they want distributed SQL, they&#8217;re usually asking for a bundle of things:\u00a0<\/span><\/p>\n<ul>\n<li aria-setsize=\"-1\" data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"1\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;multilevel&quot;}\" data-aria-posinset=\"1\" data-aria-level=\"1\"><span style=\"font-family: arial, helvetica, sans-serif;\">Real transactions, not &#8220;eventually.&#8221;\u00a0<\/span><\/li>\n<\/ul>\n<ul>\n<li aria-setsize=\"-1\" data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"1\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;multilevel&quot;}\" data-aria-posinset=\"2\" data-aria-level=\"1\"><span style=\"font-family: arial, helvetica, sans-serif;\">Consistency you can reason about, even when something fails.\u00a0<\/span><\/li>\n<\/ul>\n<ul>\n<li aria-setsize=\"-1\" data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"1\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;multilevel&quot;}\" data-aria-posinset=\"3\" data-aria-level=\"1\"><span style=\"font-family: arial, helvetica, sans-serif;\">Full SQL, not a subset of it.\u00a0<\/span><\/li>\n<\/ul>\n<ul>\n<li aria-setsize=\"-1\" data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"1\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;multilevel&quot;}\" data-aria-posinset=\"4\" data-aria-level=\"1\"><span style=\"font-family: arial, helvetica, sans-serif;\">Enterprise-grade operations: high availability, backup and restore, security, compliance.\u00a0<\/span><\/li>\n<\/ul>\n<ul>\n<li aria-setsize=\"-1\" data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"1\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;multilevel&quot;}\" data-aria-posinset=\"5\" data-aria-level=\"1\"><span style=\"font-family: arial, helvetica, sans-serif;\">Scale that doesn&#8217;t force a rearchitecture at 10 TB.\u00a0<\/span><\/li>\n<\/ul>\n<ul>\n<li aria-setsize=\"-1\" data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"1\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;multilevel&quot;}\" data-aria-posinset=\"6\" data-aria-level=\"1\"><span style=\"font-family: arial, helvetica, sans-serif;\">For some workloads, more than one node accepting writes.\u00a0<\/span><\/li>\n<\/ul>\n<p><span style=\"font-family: arial, helvetica, sans-serif;\">That last one is where definitions start to split, so I&#8217;ll come back to it.\u00a0<\/span><\/p>\n<h2 aria-level=\"2\"><span style=\"font-family: arial, helvetica, sans-serif;\"><b>What Hyperscale distributes<\/b>\u00a0<\/span><\/h2>\n<p><span style=\"font-family: arial, helvetica, sans-serif;\">Hyperscale takes the four jobs a single SQL Server machine used to do and gives each one its own tier (my Socrates post goes deep on this). Compute replicas run the query processor. A log service owns durability and fans the log out. Page servers each own a slice of the data. Azure Storage holds the long-term copy and takes backups as snapshots.\u00a0<\/span><\/p>\n<p><span style=\"font-family: arial, helvetica, sans-serif;\">The result is that the things that used to scale with data size don&#8217;t anymore:\u00a0<\/span><\/p>\n<ul>\n<li aria-setsize=\"-1\" data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"1\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;multilevel&quot;}\" data-aria-posinset=\"7\" data-aria-level=\"1\"><span style=\"font-family: arial, helvetica, sans-serif;\">Storage grows automatically, up to 128 TB.\u00a0<\/span><\/li>\n<\/ul>\n<ul>\n<li aria-setsize=\"-1\" data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"1\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;multilevel&quot;}\" data-aria-posinset=\"8\" data-aria-level=\"1\"><span style=\"font-family: arial, helvetica, sans-serif;\">Backups are near-instant snapshots that don&#8217;t touch your compute, and restore time is largely independent of database size.\u00a0<\/span><\/li>\n<\/ul>\n<ul>\n<li aria-setsize=\"-1\" data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"1\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;multilevel&quot;}\" data-aria-posinset=\"9\" data-aria-level=\"1\"><span style=\"font-family: arial, helvetica, sans-serif;\">Adding a replica doesn&#8217;t copy data (and it never reads a stale page). You get up to four high-availability replicas, plus up to 30 named replicas, each with its own compute size, for isolating reporting, analytics, or AI workloads.\u00a0<\/span><\/li>\n<\/ul>\n<ul>\n<li aria-setsize=\"-1\" data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"1\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;multilevel&quot;}\" data-aria-posinset=\"10\" data-aria-level=\"1\"><span style=\"font-family: arial, helvetica, sans-serif;\">The log runs at up to 150 MB\/s, and compute goes up to 192 vCores on Premium-series hardware.\u00a0<\/span><\/li>\n<\/ul>\n<h2 aria-level=\"2\"><span style=\"font-family: arial, helvetica, sans-serif;\"><b>What Hyperscale keeps in one place (on purpose)<\/b>\u00a0<\/span><\/h2>\n<p><span style=\"font-family: arial, helvetica, sans-serif;\">Hyperscale has one primary that accepts writes. That&#8217;s a design choice, not an oversight.\u00a0<\/span><\/p>\n<p><span style=\"font-family: arial, helvetica, sans-serif;\">A single writer means there&#8217;s no distributed commit protocol in your write path, no conflict resolution to design your app around, and no surprises when two regions try to update the same row. You get the SQL Server engine&#8217;s transaction semantics and the T-SQL surface your app already uses: temporal tables, JSON, graph, vectors, columnstore, stored procedures, etc. Your existing application and tools keep working without a rewrite.\u00a0<\/span><\/p>\n<p><span style=\"font-family: arial, helvetica, sans-serif;\">My answer, then: <b>Hyperscale is a distributed architecture with a single-writer SQL engine on top.<\/b> That distinction matters more than the label. If your definition of distributed SQL requires multiple writers, Hyperscale is a different trade-off. If your priorities are transactions, consistency, SQL compatibility, enterprise operations, and storage and read scale, evaluate Hyperscale against those requirements, and evaluate write capacity separately.\u00a0<\/span><\/p>\n<h2 aria-level=\"2\"><span style=\"font-family: arial, helvetica, sans-serif;\"><b>OK, but how does it perform?<\/b>\u00a0<\/span><\/h2>\n<p><span style=\"font-family: arial, helvetica, sans-serif;\">Architecture diagrams are nice. Numbers are nicer.\u00a0<\/span><\/p>\n<p><span style=\"font-family: arial, helvetica, sans-serif;\">AWS took a similar architectural path with Aurora, separating compute from a distributed storage layer, which makes it the natural head-to-head. <a href=\"https:\/\/aka.ms\/hyperscalebenchmark\">Principled Technologies recently ran exactly that comparison<\/a> (commissioned by Microsoft, and I want to be upfront about that). They tested Hyperscale Premium-series against Amazon Aurora PostgreSQL I\/O-Optimized using the HammerDB TPROC-C workload on a 2.3 TB database.\u00a0<\/span><\/p>\n<p><span style=\"font-family: arial, helvetica, sans-serif;\"><a href=\"https:\/\/aka.ms\/hyperscalebenchmark\">At 16 vCores, Hyperscale delivered <b>up to 52% higher performance<\/b> and <b>up to 51% better performance per dollar<\/b> than Aurora, and it came out ahead at every concurrency level they tested<\/a>. Your workload is not a benchmark, so test it yourself! The full methodology is public, and it&#8217;s worth a read.\u00a0<\/span><\/p>\n<h2 aria-level=\"2\"><span style=\"font-family: arial, helvetica, sans-serif;\"><b>One price and you can start here, stay here<\/b>\u00a0<\/span><\/h2>\n<p><span style=\"font-family: arial, helvetica, sans-serif;\">Performance is only half the story. Hyperscale is one all-inclusive price: there&#8217;s no separate software to buy and no separate charge for I\/O. It also starts at 10 GB, so this isn&#8217;t just a &#8220;big database&#8221; tier. As Bob Ward says, you can &#8220;start here, stay here.&#8221; And with serverless auto-pause and resume now in preview, a dev\/test database\u2019s compute can scale to zero when nobody&#8217;s using it.\u00a0<\/span><\/p>\n<h3 aria-level=\"2\"><span style=\"font-family: arial, helvetica, sans-serif;\"><b>Learn more<\/b><\/span><\/h3>\n<ul>\n<li aria-setsize=\"-1\" data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"1\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;multilevel&quot;}\" data-aria-posinset=\"11\" data-aria-level=\"1\"><span style=\"font-family: arial, helvetica, sans-serif;\">Read the benchmark report: <a href=\"https:\/\/aka.ms\/hyperscalebenchmark\">https:\/\/aka.ms\/hyperscalebenchmark<\/a> \u00a0<\/span><\/li>\n<\/ul>\n<ul>\n<li aria-setsize=\"-1\" data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"1\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;multilevel&quot;}\" data-aria-posinset=\"12\" data-aria-level=\"1\"><span style=\"font-family: arial, helvetica, sans-serif;\">Go deeper on the architecture: <a href=\"https:\/\/devblogs.microsoft.com\/azure-sql\/the-paper-that-split-the-database-in-four-inside-azure-sql-database-hyperscale-aka-socrates\/\">The paper that split the database in four<\/a>\u00a0<\/span><\/li>\n<\/ul>\n<ul>\n<li aria-setsize=\"-1\" data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"1\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;multilevel&quot;}\" data-aria-posinset=\"13\" data-aria-level=\"1\"><span style=\"font-family: arial, helvetica, sans-serif;\">Watch the Azure SQL Database Foundations series that highlights Hyperscale: <a href=\"https:\/\/aka.ms\/azuresqlfoundationseries\">https:\/\/aka.ms\/azuresqlfoundationseries<\/a> \u00a0<\/span><\/li>\n<\/ul>\n<p><span style=\"font-family: arial, helvetica, sans-serif;\" data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<p><span style=\"font-family: arial, helvetica, sans-serif;\">&#8211;Anna\u00a0<\/span><\/p>\n<p><span style=\"font-family: arial, helvetica, sans-serif;\" data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>In my last post, I broke down the Socrates paper, the research that became Azure SQL Database Hyperscale. Writing it made me want to tackle a question I think trips a lot of people up when they&#8217;re choosing a database: is Azure SQL Database Hyperscale &#8220;distributed SQL&#8221;?\u00a0 It&#8217;s a fair question. &#8220;Distributed SQL&#8221; has become [&hellip;]<\/p>\n","protected":false},"author":12403,"featured_media":7862,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1,619],"tags":[482],"class_list":["post-7881","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-azure-sql","category-t-sql","tag-hyperscale"],"acf":[],"blog_post_summary":"<p>In my last post, I broke down the Socrates paper, the research that became Azure SQL Database Hyperscale. Writing it made me want to tackle a question I think trips a lot of people up when they&#8217;re choosing a database: is Azure SQL Database Hyperscale &#8220;distributed SQL&#8221;?\u00a0 It&#8217;s a fair question. &#8220;Distributed SQL&#8221; has become [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/azure-sql\/wp-json\/wp\/v2\/posts\/7881","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/azure-sql\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/azure-sql\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/azure-sql\/wp-json\/wp\/v2\/users\/12403"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/azure-sql\/wp-json\/wp\/v2\/comments?post=7881"}],"version-history":[{"count":1,"href":"https:\/\/devblogs.microsoft.com\/azure-sql\/wp-json\/wp\/v2\/posts\/7881\/revisions"}],"predecessor-version":[{"id":7885,"href":"https:\/\/devblogs.microsoft.com\/azure-sql\/wp-json\/wp\/v2\/posts\/7881\/revisions\/7885"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/azure-sql\/wp-json\/wp\/v2\/media\/7862"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/azure-sql\/wp-json\/wp\/v2\/media?parent=7881"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/azure-sql\/wp-json\/wp\/v2\/categories?post=7881"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/azure-sql\/wp-json\/wp\/v2\/tags?post=7881"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}