{"id":4501,"date":"2026-10-12T21:32:36","date_gmt":"2026-10-12T21:32:36","guid":{"rendered":"https:\/\/www.examtopics.info\/blog\/?p=4501"},"modified":"2026-10-12T21:32:36","modified_gmt":"2026-10-12T21:32:36","slug":"microsoft-az-305-azure-sql-database-managed-instance-vm-selection","status":"publish","type":"post","link":"https:\/\/www.examtopics.info\/blog\/microsoft-az-305-azure-sql-database-managed-instance-vm-selection\/","title":{"rendered":"Microsoft AZ-305: Azure SQL Database vs Managed Instance vs VMs"},"content":{"rendered":"<p>A logistics company is moving a transactional SQL Server application to Azure. The database uses SQL Agent jobs, linked-server dependencies, a large reporting workload, and business-critical write transactions. The team proposes Azure SQL Database because it is fully managed. Another engineer argues for a virtual machine because it can run the existing installation unchanged. Both are choosing platforms before comparing compatibility, operational ownership, scale, and recovery requirements. The solution architect must select the <em>database execution model<\/em> that preserves the application contract.<\/p>\n<p>For <strong>Microsoft AZ-305<\/strong>, design for relational data includes recommending a relational service, compute and service tier, scalability approach, and protection method. This decision is narrower than the <a href=\"https:\/\/www.examtopics.info\/blog\/microsoft-az-305-storage-design-for-high-scale-azure-applications\/\">existing high-scale storage architecture<\/a>, which compares storage families. Here the goal is an evidence-backed choice between Azure SQL Database, Azure SQL Managed Instance, and SQL Server on Azure Virtual Machines, with engine-specific alternatives where SQL Server compatibility is not required.<\/p>\n<h2>Inventory the application before proposing a managed database<\/h2>\n<p>Gather schema and database size, SQL Server version, compatibility requirements, T-SQL features, linked-server uses, server-level configuration, operating-system dependencies, authentication, maintenance windows, and acceptable downtime. Record read\/write ratio, transaction size, critical queries, peak connections, and the expected geographic footprint. A useful assessment includes a representative workload and a database migration compatibility report rather than a slide declaring the app \u201ccloud ready.\u201d<\/p>\n<p>Classify requirements as hard blockers, remediable code changes, and preferences. An application that depends on unsupported server-level features may need Managed Instance or a VM until it can be refactored. Conversely, an application with conventional relational tables, modern drivers, and no server control requirements may not benefit from operating its own SQL Server VM.<\/p>\n<h2>Choose Azure SQL Database for database-level PaaS fit<\/h2>\n<p>Azure SQL Database is a managed relational service for workloads that fit its supported feature and operational model. It can reduce database server administration and offers purchasing and scale options, backups, and high availability features appropriate to the selected tier. Architecture should evaluate single databases, elastic pools, serverless configurations where supported, and Hyperscale where data growth and workload characteristics justify them.<\/p>\n<p>An elastic pool can be useful when many databases have noncoincident demand. It is not an automatic discount for one consistently busy database. Hyperscale can support particular growth and scale scenarios, but the chosen tier&#8217;s failover, backup, replica, and feature behavior must be checked before migration. Do not treat \u201cPaaS\u201d as one fixed performance or recovery guarantee.<\/p>\n<h2>Choose Managed Instance for greater SQL Server compatibility<\/h2>\n<p>Azure SQL Managed Instance offers a managed environment with broader SQL Server instance-level compatibility than Azure SQL Database for many migration workloads. It may suit legacy apps needing features that are difficult to remove immediately while the team still wants Microsoft to manage much of the database platform. It has distinct VNet integration, networking, deployment, tier, and operational characteristics that affect an enterprise landing zone.<\/p>\n<p>Compatibility is not universal. Test actual SQL Agent workflows, cross-database access, external dependencies, and supported feature differences. A migration from an existing SQL Server cluster to Managed Instance should include driver behavior and job ownership, not only a schema import. The <a href=\"https:\/\/learn.microsoft.com\/en-us\/azure\/azure-sql\/azure-sql-iaas-vs-paas-what-is-overview\">Azure SQL comparison guidance<\/a> helps distinguish control and management boundaries for the Azure SQL family.<\/p>\n<h2>Retain SQL Server on VMs only when control is needed<\/h2>\n<p>SQL Server on an Azure VM provides the highest degree of operating-system and engine control among these options. It can be appropriate for features, agents, patch sequencing, filesystem integration, or vendor requirements that do not fit the managed offerings. But the team then owns more capacity planning, SQL maintenance, patching, security, high availability, and backup operations. Being on Azure does not remove responsibility for a self-managed engine.<\/p>\n<p>Design storage IOPS and throughput, instance-family fit, SQL licensing, Availability Zone placement, backup strategy, and an appropriate availability group or other supported protection architecture. A SQL VM migration that keeps every existing manual practice is a valid transition step only when the operating cost and remaining risks are understood. Document the modernization path rather than presenting it as necessarily permanent.<\/p>\n<h2>Select service tiers from measured behavior<\/h2>\n<p>Measure query latency, CPU, memory, data I\/O, log write pressure, and connection contention under representative load. A database with inefficient queries may not become economical by moving to the largest service tier. Identify the critical resource first, then test scale-up, read-scale mechanisms, pooled capacity, or partitioning as appropriate. Include maintenance, failover and backup behavior in the tier choice, not just peak transactions per second.<\/p>\n<p>For user-facing transactions, distinguish latency sensitivity from batch throughput. A large nightly ETL job that can run off-peak may need a different compute pattern from an always-on order API. A tier with attractive performance at steady state can still fail the business promise if scaling takes longer than a demand spike or if a failover causes the application to hold dead connections.<\/p>\n<h2>Treat read scaling separately from transaction durability<\/h2>\n<p>Read replicas, read scale-out, caching, and partitioning can reduce read pressure but introduce consistency and routing decisions. Application code must know when to read from the authoritative writer and when slightly stale data is acceptable. A customer&#8217;s newly submitted order should not disappear from a confirmation screen because an app routed the follow-up read to an asynchronous replica.<\/p>\n<p>Likewise, backup is distinct from high availability. A resilient database can replicate a mistaken deletion, while point-in-time restore can recover a prior logical state. Map service-specific backup retention, geo-replication, failover groups, and recovery authentication to the stated RTO and RPO. An instance that fails over quickly does not prove a data corruption event can be undone within the retention and recovery targets.<\/p>\n<h2>Consider open-source relational engines only when workload fit supports them<\/h2>\n<p>Azure Database for PostgreSQL and supported MySQL offerings can suit applications whose engine semantics, extensions, operational skills, and ecosystem already align with those databases. Converting a complex SQL Server application to PostgreSQL may require substantial query, stored procedure, driver, and tooling work. Do not claim that an alternative engine is cheaper without pricing the migration and behavioral differences.<\/p>\n<p>If the application is greenfield, engine choice can be broader. Evaluate developer tooling, transaction needs, platform support, data distribution, multi-region writes, and operations. The migration decision should avoid unnecessary licensing while protecting business behavior. Fit beats preference for an engine family.<\/p>\n<h2>Run a migration proof and document rollback<\/h2>\n<p>Create a test copy, migrate representative schema and data, replay critical read\/write transactions, and measure performance plus exceptions. Include login identity, firewall rules, private endpoints, DNS, and application connection strings. Test failover and a point-in-time restore, and ensure the rollback window is realistic after production writes begin. A migration that succeeds only with traffic frozen forever is not a usable operating plan.<\/p>\n<p>An AZ-305 recommendation should finish with a reasoned trade-off: what service-level features the app needs, what compatibility cost it accepts, how data scales, which team owns maintenance, and how data is recovered. Azure SQL Database, Managed Instance, and SQL Server on VMs are not a simple best-to-worst ranking; they are distinct answers to different operational and application constraints.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Select a relational Azure platform from compatibility, scaling, protection and operating constraints.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[11,1],"tags":[],"class_list":["post-4501","post","type-post","status-publish","format-standard","hentry","category-cloud-computing","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/www.examtopics.info\/blog\/wp-json\/wp\/v2\/posts\/4501","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.examtopics.info\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.examtopics.info\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.examtopics.info\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.examtopics.info\/blog\/wp-json\/wp\/v2\/comments?post=4501"}],"version-history":[{"count":1,"href":"https:\/\/www.examtopics.info\/blog\/wp-json\/wp\/v2\/posts\/4501\/revisions"}],"predecessor-version":[{"id":4513,"href":"https:\/\/www.examtopics.info\/blog\/wp-json\/wp\/v2\/posts\/4501\/revisions\/4513"}],"wp:attachment":[{"href":"https:\/\/www.examtopics.info\/blog\/wp-json\/wp\/v2\/media?parent=4501"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.examtopics.info\/blog\/wp-json\/wp\/v2\/categories?post=4501"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.examtopics.info\/blog\/wp-json\/wp\/v2\/tags?post=4501"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}