Update: On 12 September 2024 we announced the General Availability for Hyperscale elastic pools. For more details, please read the GA announcement.
We are very excited to announce the preview of elastic pools for Hyperscale service tier for Azure SQL Database!
For many years now, developers have selected the Hyperscale service tier in a “single database” resource model to power a wide variety of traditional and modern applications. Azure SQL Hyperscale is based on a cloud native architecture providing independently scalable compute and storage, and with limits which substantially exceed the resources available in the General Purpose and Business Critical tiers.
An Azure SQL DB elastic pool enables software as a service (SaaS) developers to optimize the price performance ratio for a group of databases, within a prescribed budget, while delivering performance elasticity for each database. Azure SQL Database Hyperscale elastic pools (“Hyperscale elastic pools”) combines the leading-edge architecture for Hyperscale with the cost effectiveness of elastic pools by introducing a shared resource model for Hyperscale databases. Here are the key capabilities with Hyperscale elastic pools:
- Automatic scaling of storage – each database grows as your data grows, up to 100 TB of total storage per pool.
- Compute resources allocated to the elastic pool can be scaled up or down in a predictable amount of time, independent of the amount of allocated storage.
- Compute resources allocated to the elastic pool can be scaled out as needed by adding one or more read-scale / secondary pool replicas.
- Up to 100 MB / sec log rate for each pooled database (up to 125 MB / sec in total per pool), independent of the compute provisioned.
- Each Hyperscale elastic pool can hold up to 25 databases.
Here's a quick video summarizing the value proposition, and the typical scenarios for Hyperscale elastic pools:
Create a Hyperscale elastic pool using the Azure portal
Here is an example of how to create a new Hyperscale elastic pool using the “Create SQL Elastic pool” experience from an existing logical SQL server. We first enter the name of the elastic pool, which is myHyperscaleElasticPool:
In the Configure elastic pool section, we select Hyperscale as the service tier for the pool, and specify the number of vCores for the pool (4 vCores in the below case) and the number of high-availability replicas for the pool (0 secondary replica in the below case):
Finally, review the choices, including the estimated cost, and finally click Create on the below:
And voila, we have a Hyperscale elastic pool created!
Manage a Hyperscale elastic pool using the Azure portal
You can then configure the pool to add DBs to it. In the example below, we are selecting two existing DBs (myGPDB1 and myGPDB2) from another General Purpose elastic pool, to be moved into the new Hyperscale elastic pool:
Similarly, you can use the Configure section to scale the pool up (or down). In the example below, we are scaling the pool up (to use 8 vCores) and simultaneously add 2 secondary pool replicas for high availability:
Add databases to a Hyperscale elastic pool
Other operations, like moving, or copying existing Hyperscale databases into the pool, are simple to use as well. Here’s an example of copying a large existing Hyperscale DB (large-tenant-db-01) into the elastic pool. First, we select the source database, and then select the Copy option; enter the name of the database copy (large-tenant-db-01_Copy in this example), and the name of the elastic pool (myHyperscaleElasticPool):
Here’s the final state of myHyperscaleElasticPool with many multi-terabyte DBs in it:
Monitor the Hyperscale elastic pool using the Azure portal
Monitoring the elastic pool is convenient from the portal’s Metrics section:
As you can see, it is very convenient to work with Hyperscale elastic pools using the Azure portal!
Using command line tools with Hyperscale elastic pools
If you prefer, you can use the same commands to manage your Hyperscale elastic pools and pooled databases as in the other service tiers. Just be sure to specify Hyperscale for the edition when creating your Hyperscale elastic pool. The only addition is the ability to optionally specify the number of high availability (HA) replicas for an existing Hyperscale elastic pool:
- Use the -HighAvailabilityReplicaCount parameter of the Azure PowerShell Set-AzSqlElasticPool command.
- Use the --ha-replicas parameter of the Azure CLI az sql elastic-pool update command.
You can use the following client tools to manage your Hyperscale databases in an elastic pool:
- Azure PowerShell: Az.Sql.3.11.0 or higher.
- The Azure CLI: Az version 2.40.0 or higher.
- Transact-SQL (T-SQL) starting with: SQL Server Management Studio (SSMS) 18.12.1 or Azure Data Studio 1.39.1.
Familiar DMVs can be used to manage Hyperscale elastic pools:
- sys.dm_operation_status to monitor the progress of provisioning, scaling, and other operations.
- sys.elastic_pool_resource_stats to monitor CPU, data and log I/O resource usage over the last 14 days.
- sys.dm_elastic_pool_resource_stats to monitor detailed resource usage including total storage across the DBs in the pool, over the last 40 minutes.
- sys.dm_database_replica_states to monitor the database replicas for pooled DBs.
Limitations
Please refer to the documentation for a list of known limitations.
Pricing
Pricing for Azure SQL Database Hyperscale elastic pools is available on the SQL Database pricing page.
Regional availability
The public preview for Hyperscale elastic pools is available in the Azure public cloud. The public preview is not available for Azure Government, Azure China, and any other Azure national / sovereign cloud.
Resources
- Learn more about the architecture of Hyperscale elastic pools.
- View examples of PowerShell and Azure CLI commands for managing Hyperscale elastic pools.
- Review resource limits for Hyperscale elastic pools.