Les pools élastiques vous aident à gérer et à mettre à l’échelle plusieurs bases de données dans Azure SQL DatabaseElastic pools help you manage and scale multiple databases in Azure SQL Database

S’APPLIQUE À : Azure SQL Database

Les pools élastiques Azure SQL Database représentent une solution simple et rentable de gestion et de mise à l’échelle de plusieurs bases de données qui ont des demandes d’utilisation variables et imprévisibles.Azure SQL Database elastic pools are a simple, cost-effective solution for managing and scaling multiple databases that have varying and unpredictable usage demands. Les bases de données d’un pool élastique se trouvent sur un seul serveur et partagent un nombre défini de ressources à prix fixe.The databases in an elastic pool are on a single server and share a set number of resources at a set price. Les pools élastiques dans Azure SQL Database permettent aux développeurs SaaS d’optimiser le rapport performance/prix pour un groupe de bases de données dans un budget prescrit tout en offrant une élasticité des performances pour chaque base de données.Elastic pools in Azure SQL Database enable SaaS developers to optimize the price performance for a group of databases within a prescribed budget while delivering performance elasticity for each database.

Présentation des pools élastiques SQLWhat are SQL elastic pools

Les développeurs SaaS créent des applications qui reposent sur des couches de données à grande échelle composées de plusieurs bases de données.SaaS developers build applications on top of large scale data-tiers consisting of multiple databases. Un modèle d’application courant consiste à approvisionner une base de données pour chaque client.A common application pattern is to provision a single database for each customer. Toutefois, les modèles d’utilisation sont souvent imprévisibles et varient d’un client à l’autre, et il est difficile de prévoir les besoins en ressources de chaque utilisateur de base de données.But different customers often have varying and unpredictable usage patterns, and it's difficult to predict the resource requirements of each individual database user. Vous disposez généralement de deux options :Traditionally, you had two options:

  • Sur-approvisionner les ressources en fonction de l’utilisation maximale et payer trop, ouOver-provision resources based on peak usage and over pay, or
  • Sous-approvisionner pour réduire les coûts, au détriment des performances et de la satisfaction des clients au moment des pics d’utilisation.Under-provision to save cost, at the expense of performance and customer satisfaction during peaks.

Les pools élastiques résolvent ce problème en vous assurant que les bases de données disposent des ressources de performances nécessaires au moment où elles en ont besoin.Elastic pools solve this problem by ensuring that databases get the performance resources they need when they need it. Ils représentent un mécanisme simple d’allocation de ressources avec un budget prévisible.They provide a simple resource allocation mechanism within a predictable budget. Pour en savoir plus sur les modèles de conception pour les applications SaaS avec des pools élastiques, consultez Modèles de conception pour les applications SaaS multilocataires avec Azure SQL Database.To learn more about design patterns for SaaS applications using elastic pools, see Design Patterns for Multi-tenant SaaS Applications with Azure SQL Database.

Importante

Il n’existe pas de facturation par base de données pour les pools élastiques.There is no per-database charge for elastic pools. Vous êtes facturé pour chaque heure d’existence d’un pool selon le nombre d’eDTUs ou de vCores le plus élevé, indépendamment de l’utilisation ou si le pool a été actif de moins d’une heure.You are billed for each hour a pool exists at the highest eDTU or vCores, regardless of usage or whether the pool was active for less than an hour.

Un pool élastique est un pool que partagent plusieurs bases de données, et pour lequel le développeur peut acheter des ressources lorsque les bases de données l’utilisent de manière imprévisible.Elastic pools enable the developer to purchase resources for a pool shared by multiple databases to accommodate unpredictable periods of usage by individual databases. Vous pouvez configurer les ressources du pool avec le modèle d’achat DTU ou le modèle d’achat vCore.You can configure resources for the pool based either on the DTU-based purchasing model or the vCore-based purchasing model. Le besoin en ressources d’un pool est déterminé par l’utilisation globale de ses bases de données.The resource requirement for a pool is determined by the aggregate utilization of its databases. La quantité de ressources disponibles pour le pool dépend du budget du développeur.The amount of resources available to the pool is controlled by the developer budget. Le développeur ajoute des bases de données au pool, définit éventuellement le nombre minimal et maximal de ressources pour les bases de données (le nombre minimal ou maximal de DTU ou de vCore, selon le modèle d’allocation des ressources choisi), puis définit les ressources du pool en fonction du budget.The developer simply adds databases to the pool, optionally sets the minimum and maximum resources for the databases (either minimum and maximum DTUs or minimum or maximum vCores depending on your choice of resourcing model), and then sets the resources of the pool based on their budget. Un développeur peut utiliser des pools pour faire évoluer en toute transparence son service en passant d’une lean startup à une entreprise mature à une vitesse sans cesse croissante.A developer can use pools to seamlessly grow their service from a lean startup to a mature business at ever-increasing scale.

Au sein du pool, les différentes bases de données peuvent en toute souplesse s’adapter automatiquement en fonction des paramètres définis.Within the pool, individual databases are given the flexibility to auto-scale within set parameters. Si la charge est élevée, une base de données peut consommer plus de ressources pour répondre à la demande.Under heavy load, a database can consume more resources to meet demand. Les bases de données soumises à des charges légères en consomment moins, et celles qui ne sont soumises à aucune charge n’en consomment pas du tout.Databases under light loads consume less, and databases under no load consume no resources. L’approvisionnement des ressources pour l’ensemble du pool plutôt que pour des bases de données uniques simplifie vos tâches de gestion.Provisioning resources for the entire pool rather than for single databases simplifies your management tasks. En outre, vous disposez d’un budget prévisible pour le pool.Plus, you have a predictable budget for the pool. Des ressources supplémentaires peuvent être ajoutées à un pool existant avec un temps d’arrêt minimal.Additional resources can be added to an existing pool with minimum downtime. De même, si les ressources supplémentaires ne sont plus nécessaires, elles peuvent être supprimées du pool existant à tout moment.Similarly, if extra resources are no longer needed they can be removed from an existing pool at any point in time. Vous pouvez ajouter ou supprimer des bases de données dans le pool.And you can add or remove databases from the pool. Si une base de données finit par sous-utiliser les ressources, retirez-la.If a database is predictably under-utilizing resources, move it out.

Nota

Le déplacement de bases de données en direction ou en dehors d’un pool élastique n’entraîne aucun temps d’arrêt, à l’exception d’un bref laps de temps (de l’ordre de quelques secondes) à la fin de l’opération lorsque les connexions de base de données sont abandonnées.When moving databases into or out of an elastic pool, there is no downtime except for a brief period of time (on the order of seconds) at the end of the operation when database connections are dropped.

Quand devez-vous envisager d’utiliser un pool élastique SQL Database ?When should you consider a SQL Database elastic pool

Les pools sont idéaux dans le cas de nombreuses bases de données avec des modèles d’utilisation spécifiques.Pools are well suited for a large number of databases with specific utilization patterns. Pour une base de données indiquée, ce modèle se caractérise par une faible utilisation moyenne avec des pics d'utilisation relativement rares.For a given database, this pattern is characterized by low average utilization with relatively infrequent utilization spikes. À l’inverse, évitez de placer plusieurs bases de données avec une utilisation permanente moyennement élevée dans le même pool élastique.Conversely, multiple databases with persistent medium-high utilization should not be placed in the same elastic pool.

Plus vous ajoutez de bases de données à un pool, plus vous faites d'économies.The more databases you can add to a pool the greater your savings become. En fonction de votre modèle d’utilisation de l’application, il est possible de faire des économies avec seulement deux bases de données S3.Depending on your application utilization pattern, it's possible to see savings with as few as two S3 databases.

Les sections suivantes vous aident à comprendre comment évaluer si votre collection de bases de données spécifique peut tirer profit de l’utilisation d’un pool.The following sections help you understand how to assess if your specific collection of databases can benefit from being in a pool. Les exemples utilisent les pools Standard, mais ces principes s’appliquent également aux pools De base et Premium.The examples use Standard pools but the same principles also apply to Basic and Premium pools.

Évaluation des modèles d'utilisation de base de donnéesAssessing database utilization patterns

La figure suivante montre l’exemple d'une base de données qui est très souvent inactive, mais qui connaît de temps en temps des pics d’activité.The following figure shows an example of a database that spends much time idle, but also periodically spikes with activity. Il s’agit d’un modèle d’utilisation particulièrement adapté à un pool :This is a utilization pattern that is suited for a pool:

une base de données unique adaptée à un pool

Le graphique illustre l’utilisation de DTU sur une période de 1 heure entre 12h00 et 13h00, où chaque point de données a une granularité de 1 minute.The chart illustrates DTU usage over a 1 hour time period from 12:00 to 1:00 where each data point has 1 minute granularity. À 12h10, DB1 culmine à 90 DTU, mais son utilisation moyenne totale est inférieure à cinq DTU.At 12:10 DB1 peaks up to 90 DTUs, but its overall average usage is less than five DTUs. Une taille de calcul S3 est requise pour exécuter cette charge de travail dans une base de données unique. Cependant, cela laisse la plupart des ressources inutilisées pendant les périodes de faible activité.An S3 compute size is required to run this workload in a single database, but this leaves most of the resources unused during periods of low activity.

Un pool permet de partager ces DTU inutilisées entre plusieurs bases de données, ce qui réduit la quantité totale de DTU nécessaires et le coût global.A pool allows these unused DTUs to be shared across multiple databases, and so reduces the DTUs needed and overall cost.

En s'appuyant sur l'exemple précédent, supposons qu'il y ait des bases de données supplémentaires avec des modèles d'utilisation similaires comme DB1.Building on the previous example, suppose there are additional databases with similar utilization patterns as DB1. Dans les deux figures ci-dessous, l’utilisation de quatre bases de données et celle de 20 bases de données sont représentées sur le même graphe pour montrer qu’avec le modèle d’achat DTU, leur utilisation ne se chevauche pas dans le temps :In the next two figures below, the utilization of four databases and 20 databases are layered onto the same graph to illustrate the non-overlapping nature of their utilization over time using the DTU-based purchasing model:

quatre bases de données avec un modèle d’utilisation adapté à un pool

vingt bases de données avec un modèle d’utilisation adapté à un pool

L’utilisation globale des DTU pour les 20 bases de données est illustrée par la ligne noire dans la figure ci-dessus.The aggregate DTU utilization across all 20 databases is illustrated by the black line in the preceding figure. Cela montre que l'utilisation globale des DTU ne dépasse jamais 100 DTU et que les 20 bases de données peuvent partager 100 eDTU sur cette période.This shows that the aggregate DTU utilization never exceeds 100 DTUs, and indicates that the 20 databases can share 100 eDTUs over this time period. Le nombre de DTU est diminué par 20 et le prix par 13 par rapport au placement de chacune des bases de données dans des tailles de calcul S3 pour les bases de données uniques.This results in a 20x reduction in DTUs and a 13x price reduction compared to placing each of the databases in S3 compute sizes for single databases.

Cet exemple est idéal pour les raisons suivantes :This example is ideal for the following reasons:

  • Il existe de grandes différences entre les pics d’utilisation et l'utilisation moyenne par base de données.There are large differences between peak utilization and average utilization per database.
  • Les pics d’utilisation de chaque base de données se produisent à différents moments dans le temps.The peak utilization for each database occurs at different points in time.
  • Les eDTU sont partagées entre plusieurs bases de données.eDTUs are shared between many databases.

Dans le modèle d’achat DTU, le prix d’un pool dépend de ses unités eDTU.In the DTU purchasing model, the price of a pool is a function of the pool eDTUs. Alors que le prix unitaire d’une eDTU pour un pool est 1,5 fois supérieur au prix unitaire d’une DTU pour une base de données unique, les eDTU de pool peuvent être partagées avec de nombreuses bases de données ; un nombre moins important d’eDTU est donc requis au total.While the eDTU unit price for a pool is 1.5x greater than the DTU unit price for a single database, pool eDTUs can be shared by many databases and fewer total eDTUs are needed. Ces différences en matière de prix et de partage des eDTU constituent la base du potentiel d'économies que les pools peuvent présenter.These distinctions in pricing and eDTU sharing are the basis of the price savings potential that pools can provide.

Dans le modèle d’achat vCore, le prix unitaire vCore pour les pools élastiques est le même que pour les bases de données uniques.In the vCore purchasing model, the vCore unit price for elastic pools is the same as the vCore unit price for single databases.

Comment choisir la bonne taille de pool ?How do I choose the correct pool size

Pour un pool, la taille optimale dépend du nombre global de ressources nécessaires pour toutes les bases de données du pool.The best size for a pool depends on the aggregate resources needed for all databases in the pool. Cela implique de déterminer ce qui suit :This involves determining the following:

  • Quantité maximale de ressources de calcul utilisées par toutes les bases de données du pool.Maximum compute resources utilized by all databases in the pool. Les ressources de calcul sont indexées par eDTU ou vCore selon le modèle d’achat choisi.Compute resources are indexed by either eDTUs or vCores depending on your choice of purchasing model.
  • Nombre maximal d’octets de stockage que se partagent toutes les bases de données du pool.Maximum storage bytes utilized by all databases in the pool.

Pour connaître les niveaux de service et les limites de ressources de chacun des modèles d’achat, consultez Modèle d’achat DTU ou Modèle d’achat vCore.For service tiers and resource limits in each purchasing model, see the DTU-based purchasing model or the vCore-based purchasing model.

Les étapes suivantes peuvent vous aider à estimer si un pool est plus économique que les bases de données uniques :The following steps can help you estimate whether a pool is more cost-effective than single databases:

  1. Pour estimer le nombre d’eDTU ou de vCore nécessaires pour le pool, procédez de la manière suivante :Estimate the eDTUs or vCores needed for the pool as follows:

Modèle d’achat DTU :For DTU-based purchasing model:

MAX(<Nombre total de bases de données X Utilisation moyenne de DTU par base de données>, <Nombre de bases de données connaissant un pic simultané X Utilisation maximale de DTU par base de données>)MAX(<Total number of DBs X average DTU utilization per DB>, <Number of concurrently peaking DBs X Peak DTU utilization per DB>)

Pour le modèle d’achat vCore :For vCore-based purchasing model:

MAX(<Nombre total de bases de données X Utilisation moyenne des vCores par base de données>, <Nombre de bases de données connaissant un pic simultané X Utilisation maximale des vCores par base de données>)MAX(<Total number of DBs X average vCore utilization per DB>, <Number of concurrently peaking DBs X Peak vCore utilization per DB>)

  1. Estimez l’espace de stockage total nécessaire au pool en ajoutant la taille des données nécessaires à toutes les bases de données du pool.Estimate the total storage space needed for the pool by adding the data size needed for all the databases in the pool. Pour le modèle d’achat DTU, déterminez ensuite la taille du pool d’eDTU qui fournit cette quantité de stockage.For the DTU purchasing model, then determine the eDTU pool size that provides this amount of storage.
  2. Pour le modèle d’achat DTU, prenez la plus grande des estimations d’eDTU de l’étape 1 et de l’étape 2.For the DTU-based purchasing model, take the larger of the eDTU estimates from Step 1 and Step 2. Pour le modèle d’achat vCore, prenez l’estimation vCore de l’étape 1.For the vCore-based purchasing model, take the vCore estimate from Step 1.
  3. Dans la page des prix de SQL Database, recherchez le plus petit pool dont la taille est supérieure à l’estimation de l’étape 3.See the SQL Database pricing page and find the smallest pool size that is greater than the estimate from Step 3.
  4. Comparez le prix du pool trouvé à l’étape 4 à celui des tailles de calcul appropriées pour les bases de données uniques.Compare the pool price from Step 4 to the price of using the appropriate compute sizes for single databases.

Importante

Si le nombre de bases de données dans un pool approche le maximum pris en charge, veillez à envisager la gestion des ressources dans les pools élastiques denses.If the number of databases in a pool approaches the maximum supported, make sure to consider Resource management in dense elastic pools.

Utilisation d’autres fonctionnalités SQL Database avec des pools élastiquesUsing other SQL Database features with elastic pools

Travaux élastiques et pools élastiquesElastic jobs and elastic pools

Un pool simplifie les tâches de gestion grâce à l’exécution des scripts dans des tâches élastiques .With a pool, management tasks are simplified by running scripts in elastic jobs. Un travail élastique élimine pratiquement le caractère fastidieux d’un nombre élevé de bases de données.An elastic job eliminates most of tedium associated with large numbers of databases.

Pour en savoir plus sur les autres outils de base de données permettant d’utiliser plusieurs bases de données, consultez Scale-out avec Azure SQL Database.For more information about other database tools for working with multiple databases, see Scaling out with Azure SQL Database.

Options de continuité de l’activité pour les bases de données d’un pool élastiqueBusiness continuity options for databases in an elastic pool

Les bases de données mises en pool prennent généralement en charge les mêmes fonctionnalités de continuité d’activité que celles disponibles pour les bases de données uniques.Pooled databases generally support the same business continuity features that are available to single databases.

Création d’un pool élastique SQL Database à l’aide du portail AzureCreating a new SQL Database elastic pool using the Azure portal

Vous pouvez créer un pool élastique dans le portail Azure de deux façons.There are two ways you can create an elastic pool in the Azure portal.

  1. Accédez au portail Azure pour créer un pool élastique.Go to the Azure portal to create an elastic pool. Recherchez et sélectionnez Azure SQL.Search for and select Azure SQL.

  2. Sélectionnez +Ajouter pour ouvrir la page Sélectionner l’option de déploiement SQL.Select +Add to open the Select SQL deployment option page. Vous pouvez afficher des informations supplémentaires sur les pools élastiques en sélectionnant Afficher les détails sur la vignette Bases de données.You can view additional information about elastic pools by selecting Show details on the Databases tile.

  3. Sur la vignette Bases de données, sélectionnez Pool élastique dans la liste déroulante Type de ressource, puis sélectionnez Créer :On the Databases tile, select Elastic pool in the Resource type dropdown, then select Create:

    Créer un pool élastique

  4. Vous pouvez également créer un pool élastique en accédant à un serveur existant, puis en cliquant sur + Nouveau pool pour créer un pool directement sur ce serveur.Or you can create an elastic pool by navigating to an existing server and clicking + New pool to create a pool directly into that server.

Nota

Vous pouvez créer plusieurs pools sur un serveur, mais il est impossible d’ajouter des bases de données de différents serveurs dans le même pool.You can create multiple pools on a server, but you can't add databases from different servers into the same pool.

Le niveau de service du pool détermine les fonctionnalités disponibles pour les bases de données élastiques du pool, ainsi que le nombre maximal de ressources pour chaque base de données.The pool's service tier determines the features available to the elastics in the pool, and the maximum amount of resources available to each database. Pour plus d’informations, consultez les limites de ressources des pools élastiques dans le modèle DTU.For details, see Resource limits for elastic pools in the DTU model. Pour les limites de ressource vCore de pools élastiques, consultez vCore-based resource limits - elastic pools (limites de ressource vCore - pools élastiques).For vCore-based resource limits for elastic pools, see vCore-based resource limits - elastic pools.

Pour configurer les ressources et les prix du pool, cliquez sur Configurer le pool.To configure the resources and pricing of the pool, click Configure pool. Ensuite, sélectionnez un niveau de service, ajoutez les bases de données au pool, puis configurez les limites de ressources pour le pool et ses bases de données.Then select a service tier, add databases to the pool, and configure the resource limits for the pool and its databases.

Lorsque vous avez terminé la configuration du pool, vous pouvez cliquer sur Appliquer, nommer le pool, puis cliquer sur OK pour créer le pool.When you have completed configuring the pool, you can click 'Apply', name the pool, and click 'OK' to create the pool.

Surveiller un pool élastique et ses bases de donnéesMonitor an elastic pool and its databases

Dans le portail Azure, vous pouvez surveiller l’utilisation d’un pool élastique et des bases de données que contient ce pool.In the Azure portal, you can monitor the utilization of an elastic pool and the databases within that pool. Vous pouvez également apporter un ensemble de modifications à votre pool élastique et soumettre toutes les modifications en même temps.You can also make a set of changes to your elastic pool and submit all changes at the same time. Ces modifications incluent l’ajout ou la suppression de bases de données, ainsi que le changement des paramètres du pool élastique ou des bases de données.These changes include adding or removing databases, changing your elastic pool settings, or changing your database settings.

Vous utilisez les outils intégrés d’analyse des performances et d’alerte, combinées avec les indices de performance.You can use the built-in performance monitoring and alerting tools, combined with performance ratings. De plus, SQL Database peut émettre des métriques et des journaux de ressources pour faciliter la supervision.Additionally, SQL Database can emit metrics and resource logs for easier monitoring.

Études de cas clientsCustomer case studies

  • SnelStartSnelStart

    SnelStart a utilisé des pools élastiques avec SQL Database pour développer rapidement ses services métier au rythme de 1 000 nouvelles bases de données Azure SQL par mois.SnelStart used elastic pools with Azure SQL Database to rapidly expand its business services at a rate of 1,000 new Azure SQL databases per month.

  • UmbracoUmbraco

    Umbraco utilise des pools élastiques avec Azure SQL Database afin de provisionner rapidement des services et de les mettre à l’échelle pour des milliers de locataires dans le cloud.Umbraco uses elastic pools with Azure SQL Database to quickly provision and scale services for thousands of tenants in the cloud.

  • Daxko/CSIDaxko/CSI

    Daxko/CSI utilise des pools élastiques avec Azure SQL Database pour accélérer son cycle de développement et améliorer ses performances et ses services clients.Daxko/CSI uses elastic pools with Azure SQL Database to accelerate its development cycle and to enhance its customer services and performance.

Étapes suivantesNext steps