Breaking Down Azure SQL Database Hosting Options: Single vs Elastic Pool vs Managed Instances

The Microsoft Azure Cloud is one of the best places to run your SQL Database. Any relational database can benefit from the scalability and performance benefits of working in the cloud, with added cost savings versus an on-premise solution. Currently, Microsoft offers three different instance options:

  • Single
  • Elastic Pool
  • Managed Instances

It’s important to remember that databases have varying requirements depending on the workload, which is why a range of packages are available in Azure. Let’s take a closer look at these offerings, and why they may or may not be suitable for your business IT operations.

Single

This hosting option creates a Single database deployment, with dedicated management via an SQL Database server. With Single, each database is fully isolated and portable across the Azure platform. Single SQL Databases can run on a serverless SQL configuration in Azure, or on a server in the provisioned compute tier, depending on computational requirements. Be aware that serverless options are best used for infrequently accessed datasets, such as archive databases.

The Single option benefits from dynamic scalability on Azure, allowing you to change your compute and service tiers when you need more computational power. This can be done manually in the Azure Portal, or through automation using the Azure AutoScale feature.

Single instances can also be moved in and out of “elastic pools,” allowing for better resource distribution with multiple database instances.

A Single database instance uses the Database Transaction Unit (DTU) purchasing model when generating billing information. A DTU is the convergence of vCores, RAM, and IOPS into a standardized measure for benchmarking and billing database instances. You can use Microsoft’s DTU calculator to figure out the potential costs of a cloud-based SQL server instance.

Single instances are best suited to businesses running applications that require a resource guarantee at the database level. It’s a database-scoped deployment option, with predictable workload performance.

Elastic Pools

An elastic pool offers a convenient, cost-effective option for maintaining multiple databases. With multiple databases, there is some unpredictability with how much computational power is needed. For this reason, pooled resources can offer better performance, and value for money.

An elastic pool uses a simple resource allocation process, based upon your desired budget. The budget dictates how much processing power is available on the host server instance. You can then assign a minimum and a maximum number of vCores or DTU’s to an individual database, which will be taken from the host server resource allocation.

This simplifies database management, as you only have to increase the host server resource allocation, rather than each database instance. An elastic pool also leaves spare processing power available for periods of high demand. If you are running a business-critical database workload, a higher minimum resource allocation for the database instance will ensure uptime and performance, even with a high overall host server resource utilization.

When automating allocation with custom rules, the host server can benefit from dynamic scalability using the Azure Management Libraries for .NET Core.

"Rules": [
    {
        "Name": "ScalingAutomationWeekday",
        "Schedule": {
            "StartTime": "08:00:00",
            "EndTime": "20:00:00",
            "DaysOfWeek": [ "Monday", "Tuesday", "Wednesday", "Thursday", "Friday" ]
        },
        "Trigger": {
            "Metric": "dtu_consumption_percent",
            "Operator": "GreaterThanOrEqual",
            "Aggregation": "Average",
            "Threshold": 70,
            "TimeWindow": "00:05:00"
        },
        "Action": {
            "Capacity": 100

This “ScalingAutomationWeekday” rule dictates that from Monday to Friday between 8:00 and 20:00 if the DTU consumption of your elastic pool meets or exceeds 70% for longer than 5 minutes, the script will increase the DTU capacity to 100. You can also reverse engineer this to scale back down during periods of lower demand.

For those who prefer a graphical interface, this can also be done from a GUI using the Azure AutoScale tool for SQL Server,

SQL Managed Instance

This option is designed for businesses looking to migrate their database to a fully-managed Platform as a Service (PaaS) environment in the cloud. Using the fully automated “lift and shift” Data Migration Service (DMS), you can quickly initialize a highly-compatible cloud SQL database with native VNet support. With Microsoft’s Software Assurance program, you can also get a discounted rate by using the Azure Hybrid Cloud Benefit.

A managed instance is ideal for businesses that require high data security and near 100% surface compatibility with existing on-premise SQL Server versions. Managed is excellent for migrating large numbers of applications to the cloud from an on-premise environment, while still retaining a secure fallback in the instance of failure.

Let Trianz help you decide on the best hosting options

Trianz is a fully accredited Microsoft Azure Managed Service Partner, with decades of experience and a 100% client success rate. We specialize in comprehensive IT consulting to determine your business needs and help you efficiently and effectively implement new IT infrastructure.

Find out more at trianz.com/cloud, or get in touch using the form below!

Contact Us Today

By submitting your information, you agree to our revised  Privacy Policy.

You might also like...

Get in Touch

Let us Help You in
Your Transformation
Journey


Connect with us

x

Status message

We're eager to assist you! Please leave a message and we'll get back to you shortly.

By submitting your information, you agree to our revised  Privacy Policy.