Pule elastyczne ułatwiają zarządzanie wieloma bazami danych w Azure SQL Database i skalowanie ich.Elastic pools help you manage and scale multiple databases in Azure SQL Database

dotyczy: Azure SQL Database

Azure SQL Database pule elastyczne to proste i ekonomiczne rozwiązanie służące do zarządzania i skalowania wielu baz danych, które mają różne i nieprzewidywalne wymagania dotyczące użycia.Azure SQL Database elastic pools are a simple, cost-effective solution for managing and scaling multiple databases that have varying and unpredictable usage demands. Bazy danych w puli elastycznej znajdują się na jednym serwerze i udostępniają określoną liczbę zasobów z ustawioną ceną.The databases in an elastic pool are on a single server and share a set number of resources at a set price. Pule elastyczne pule w usłudze Azure SQL Database umożliwiają deweloperom SaaS optymalizację stosunku ceny do wydajności dla grupy baz danych w ramach określonego budżetu, zapewniając jednocześnie elastyczność wydajności dla każdej bazy danych.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.

Co to są pule elastyczne SQLWhat are SQL elastic pools

Deweloperzy SaaS tworzą aplikacje w oparciu o warstwy danych w dużej skali składające się z wielu baz danych.SaaS developers build applications on top of large scale data-tiers consisting of multiple databases. Typowym wzorcem aplikacji jest udostępnianie jednej bazy danych dla każdego klienta.A common application pattern is to provision a single database for each customer. Jednak różni klienci często mają różne i nieprzewidywalne wzorce użycia i trudno jest przewidzieć wymagania dotyczące zasobów poszczególnych użytkowników poszczególnych baz danych.But different customers often have varying and unpredictable usage patterns, and it's difficult to predict the resource requirements of each individual database user. Tradycyjnie masz dwie opcje:Traditionally, you had two options:

  • Zasoby nadmiernej aprowizacji w oparciu o szczytowe użycie i za pośrednictwem płaceniaOver-provision resources based on peak usage and over pay, or
  • W ramach zastrzegania kosztów, kosztem wydajności i zadowoleniem klientów podczas szczytu.Under-provision to save cost, at the expense of performance and customer satisfaction during peaks.

Pule elastyczne rozwiązują ten problem, upewniając się, że bazy danych uzyskują potrzebne im zasoby wydajności, gdy ich potrzebują.Elastic pools solve this problem by ensuring that databases get the performance resources they need when they need it. Udostępniają one prosty mechanizm alokacji zasobów w ramach przewidywalnego budżetu.They provide a simple resource allocation mechanism within a predictable budget. Aby dowiedzieć się więcej na temat wzorców projektowych dla aplikacji SaaS wykorzystujących pule elastyczne, zobacz artykuł Design Patterns for Multi-tenant SaaS Applications with Azure SQL Database (Wzorce projektowe dla wielodostępnych aplikacji SaaS korzystających z usługi 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.

Ważne

Nie jest naliczana opłata za bazę danych dla pul elastycznych.There is no per-database charge for elastic pools. Opłaty są naliczane za każdą godzinę, gdy pula istnieje z największą liczbą jednostek eDTU lub rdzeni wirtualnych, niezależnie od użycia lub od tego, czy pula była aktywna przez czas krótszy niż godzina.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.

Pule elastyczne umożliwiają deweloperom kupowanie zasobów dla puli współdzielonej przez wiele baz danych w celu uwzględnienia nieprzewidywalnych okresów użycia poszczególnych baz danych.Elastic pools enable the developer to purchase resources for a pool shared by multiple databases to accommodate unpredictable periods of usage by individual databases. Zasoby dla puli można skonfigurować na podstawie modelu zakupu opartego na jednostkach DTU lub modelu zakupu opartego na rdzeń wirtualny.You can configure resources for the pool based either on the DTU-based purchasing model or the vCore-based purchasing model. Wymagania dotyczące zasobów dla puli są określane przez zagregowane wykorzystanie jego baz danych.The resource requirement for a pool is determined by the aggregate utilization of its databases. Ilość zasobów dostępnych dla puli jest kontrolowana przez budżet dewelopera.The amount of resources available to the pool is controlled by the developer budget. Deweloper po prostu dodaje bazy danych do puli, opcjonalnie ustawia minimalną i maksymalną ilość zasobów dla baz danych (minimalną i maksymalną DTU lub minimalną lub maksymalną rdzeni wirtualnych w zależności od wybranego modelu odzyskania), a następnie ustawia zasoby puli na podstawie ich budżetu.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. Korzystając z pul, deweloper może bezproblemowo rozwijać swoją usługę od niewielkiego startupu do dojrzałego biznesu w coraz większej skali.A developer can use pools to seamlessly grow their service from a lean startup to a mature business at ever-increasing scale.

Poszczególne bazy danych w ramach puli mają możliwość elastycznego skalowania automatycznego w określonym zakresie parametrów.Within the pool, individual databases are given the flexibility to auto-scale within set parameters. Pod dużym obciążeniem baza danych może zużywać więcej zasobów w celu spełnienia wymagań.Under heavy load, a database can consume more resources to meet demand. Bazy danych w mniejszych obciążeniach zużywają mniej, a bazy danych nie zużywają żadnych zasobów.Databases under light loads consume less, and databases under no load consume no resources. Aprowizacja zasobów dla całej puli zamiast pojedynczych baz danych upraszcza zadania związane z zarządzaniem.Provisioning resources for the entire pool rather than for single databases simplifies your management tasks. Dodatkowo istnieje przewidywalny budżet dla puli.Plus, you have a predictable budget for the pool. Dodatkowe zasoby można dodać do istniejącej puli o minimalnym przestoju.Additional resources can be added to an existing pool with minimum downtime. Podobnie, jeśli dodatkowe zasoby nie są już potrzebne, można je usunąć z istniejącej puli w dowolnym momencie.Similarly, if extra resources are no longer needed they can be removed from an existing pool at any point in time. I można dodawać i usuwać bazy danych z puli.And you can add or remove databases from the pool. Jeśli baza danych przewidywalnie niewystarczająco wykorzystuje zasoby, należy ją przenieść.If a database is predictably under-utilizing resources, move it out.

Uwaga

Podczas przechodzenia baz danych do lub z puli elastycznej nie ma przestojów z wyjątkiem krótkiego czasu (w kolejności sekund) na końcu operacji, gdy połączenia bazy danych są porzucane.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.

Kiedy należy uwzględnić pulę elastyczną SQL DatabaseWhen should you consider a SQL Database elastic pool

Pule są odpowiednio dopasowane do wielu baz danych o określonych wzorcach użycia.Pools are well suited for a large number of databases with specific utilization patterns. Dla danej bazy danych ten wzorzec charakteryzuje się niskim średnim wykorzystaniem oraz stosunkowo rzadkimi okresami zwiększonego użycia.For a given database, this pattern is characterized by low average utilization with relatively infrequent utilization spikes. Z kolei wiele baz danych z trwałym średnim wykorzystaniem nie należy umieszczać w tej samej puli elastycznej.Conversely, multiple databases with persistent medium-high utilization should not be placed in the same elastic pool.

Im więcej baz danych możesz dodać do puli, tym większe uzyskujesz oszczędności.The more databases you can add to a pool the greater your savings become. W zależności od wzorca wykorzystania aplikacji możliwe jest wyświetlanie oszczędności z użyciem co najmniej dwóch baz danych S3.Depending on your application utilization pattern, it's possible to see savings with as few as two S3 databases.

Poniższe sekcje ułatwiają zrozumienie, jak ocenić, czy dodanie konkretnej kolekcji baz danych do puli może być korzystne.The following sections help you understand how to assess if your specific collection of databases can benefit from being in a pool. W przykładach użyto pul warstwy Standardowa, ale te same zasady mają zastosowanie także do pul w warstwach Podstawowa i Premium.The examples use Standard pools but the same principles also apply to Basic and Premium pools.

Ocena wzorców użycia bazy danychAssessing database utilization patterns

Na poniższej ilustracji pokazano przykład bazy danych, która przez większość czasu pozostaje bezczynna, ale okresowo doświadcza dużego wzrostu aktywności.The following figure shows an example of a database that spends much time idle, but also periodically spikes with activity. Jest to wzorzec użycia, który jest odpowiedni dla puli:This is a utilization pattern that is suited for a pool:

pojedyncza baza danych odpowiednia dla puli

Wykres ilustruje użycie jednostek DTU w ciągu 1 godziny od 12:00 do 1:00, gdzie każdy punkt danych ma 1 minutę szczegółowości.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. Na 12:10 DB1 pik do 90 DTU, ale ogólne średnie użycie jest mniejsze niż pięć DTU.At 12:10 DB1 peaks up to 90 DTUs, but its overall average usage is less than five DTUs. Do uruchomienia tego obciążenia w pojedynczej bazie danych jest wymagany rozmiar obliczeń S3, ale nie są one używane w okresach niskiego działania.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.

Pula umożliwia udostępnienie tych nieużywanych jednostek DTU wielu bazom danych, a tym samym zmniejsza liczbę potrzebnych jednostek DTU i obniża koszty ogólne.A pool allows these unused DTUs to be shared across multiple databases, and so reduces the DTUs needed and overall cost.

Rozwijając poprzedni przykład, załóżmy, że istnieją dodatkowe bazy danych o podobnych wzorcach użycia jak baza danych DB1.Building on the previous example, suppose there are additional databases with similar utilization patterns as DB1. W następnych dwóch poniższych ilustracjach użycie czterech baz danych i 20 baz danych odbywa się na tym samym wykresie, aby zilustrować nienakładający się charakter ich użycia w czasie przy użyciu modelu zakupu opartego na jednostkach DTU: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:

cztery bazy danych z wzorcem użycia odpowiednim dla puli

dwadzieścia baz danych z wzorcem użycia odpowiednim dla puli

Zagregowane użycie jednostek DTU we wszystkich 20 bazach danych przedstawia czarna linia na poprzednim rysunku.The aggregate DTU utilization across all 20 databases is illustrated by the black line in the preceding figure. Pokazuje ona, że zagregowane użycie jednostek DTU nigdy nie przekracza 100 DTU i wskazuje, że te 20 baz danych może współużytkować 100 jednostek eDTU w tym okresie.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. Wynikiem tego jest spadek 20x w DTU i obniżka ceny trzynastokrotnie niższą w porównaniu do umieszczania każdej bazy danych w rozmiarach S3 dla pojedynczych baz danych.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.

Ten przykład jest idealny z następujących przyczyn:This example is ideal for the following reasons:

  • Istnieją duże różnice między użyciem szczytowym a średnim użyciem na bazę danych.There are large differences between peak utilization and average utilization per database.
  • Użycie szczytowe dla poszczególnych baz danych występuje w różnych punktach w czasie.The peak utilization for each database occurs at different points in time.
  • Jednostki eDTU są współdzielone przez wiele baz danych.eDTUs are shared between many databases.

W modelu zakupu jednostek DTU cena puli jest funkcją puli jednostek eDTU.In the DTU purchasing model, the price of a pool is a function of the pool eDTUs. Chociaż cena jednostki eDTU dla puli jest 1,5 raza większa niż cena jednostki DTU dla pojedynczej bazy danych, jednostki eDTU puli mogą być współdzielone przez wiele baz danych, a tym samym potrzebna jest mniejsza całkowita liczba jednostek eDTU.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. Te różnice w cenie i współużytkowanie jednostek eDTU są podstawą potencjalnych oszczędności, które mogą zapewnić pule.These distinctions in pricing and eDTU sharing are the basis of the price savings potential that pools can provide.

W modelu zakupów rdzeń wirtualny cena jednostkowa rdzeń wirtualny dla pul elastycznych jest taka sama jak cena jednostkowa rdzeń wirtualny dla pojedynczych baz danych.In the vCore purchasing model, the vCore unit price for elastic pools is the same as the vCore unit price for single databases.

Jak mogę wybrać poprawnego rozmiaru puliHow do I choose the correct pool size

Najlepszy rozmiar puli zależy od zagregowanych zasobów potrzebnych dla wszystkich baz danych w puli.The best size for a pool depends on the aggregate resources needed for all databases in the pool. Obejmuje to określenie następujących czynności:This involves determining the following:

  • Maksymalne zasoby obliczeniowe wykorzystane przez wszystkie bazy danych w puli.Maximum compute resources utilized by all databases in the pool. Zasoby obliczeniowe są indeksowane przez jednostek eDTU lub rdzeni wirtualnych w zależności od wybranego modelu zakupu.Compute resources are indexed by either eDTUs or vCores depending on your choice of purchasing model.
  • Maksymalna liczba bajtów magazynu wykorzystana przez wszystkie bazy danych w puli.Maximum storage bytes utilized by all databases in the pool.

W przypadku warstw usług i limitów zasobów w każdym modelu zakupu zapoznaj się z modelem zakupu opartym na jednostkach DTU lub modelem zakupów opartym na rdzeń wirtualny.For service tiers and resource limits in each purchasing model, see the DTU-based purchasing model or the vCore-based purchasing model.

Poniższe kroki ułatwiają oszacowanie, czy pula jest bardziej opłacalna niż pojedyncze bazy danych:The following steps can help you estimate whether a pool is more cost-effective than single databases:

  1. Oszacuj jednostek eDTU lub rdzeni wirtualnych wymagany dla puli w następujący sposób:Estimate the eDTUs or vCores needed for the pool as follows:
    • W przypadku modelu zakupu opartego na jednostkach DTU:For the DTU-based purchasing model:
      • Maks. (<całkowita liczba baz danych × średnich użycia jednostek DTU na bazę danych>, <liczbę współbieżnie szczytowego × wykorzystania jednostek DTU na bazę danych>).MAX(<Total number of DBs × Average DTU utilization per DB>, <Number of concurrently peaking DBs × Peak DTU utilization per DB>)
    • W przypadku modelu zakupu opartego na rdzeń wirtualny:For the vCore-based purchasing model:
      • Maks. (<całkowita liczba × rdzeń wirtualny wykorzystania baz danych na bazę danych>, <liczbę współbieżnie szczytowego × użycia baz danych rdzeń wirtualny na bazę danych>)MAX(<Total number of DBs × Average vCore utilization per DB>, <Number of concurrently peaking DBs × Peak vCore utilization per DB>)
  2. Oszacowanie całkowitego miejsca do magazynowania wymaganego dla puli przez dodanie rozmiaru danych wymaganego dla wszystkich baz danych w puli.Estimate the total storage space needed for the pool by adding the data size needed for all the databases in the pool. W przypadku modelu zakupu jednostek DTU Określ rozmiar puli jednostek eDTU, który zapewnia tę ilość miejsca w magazynie.For the DTU purchasing model, then determine the eDTU pool size that provides this amount of storage.
  3. W przypadku modelu zakupu opartego na jednostkach DTU należy uzyskać więcej wartości szacunkowych jednostek eDTU z kroku 1 i 2.For the DTU-based purchasing model, take the larger of the eDTU estimates from Step 1 and Step 2. W przypadku modelu zakupu opartego na rdzeń wirtualny należy uzyskać oszacowanie rdzeń wirtualny z kroku 1.For the vCore-based purchasing model, take the vCore estimate from Step 1.
  4. Zapoznaj się z cennikiem SQL Database i Znajdź najmniejszy rozmiar puli większy niż oszacowanie od kroku 3.See the SQL Database pricing page and find the smallest pool size that is greater than the estimate from Step 3.
  5. Porównaj cenę puli z kroku 4 z ceną za korzystanie z odpowiednich rozmiarów obliczeń dla pojedynczych baz danych.Compare the pool price from Step 4 to the price of using the appropriate compute sizes for single databases.

Ważne

Jeśli liczba baz danych w puli zbliża się do maksymalnej obsługiwanej wartości, należy wziąć pod uwagę Zarządzanie zasobami w ramach gęstych pul elastycznych.If the number of databases in a pool approaches the maximum supported, make sure to consider Resource management in dense elastic pools.

Korzystanie z innych funkcji SQL Database z elastycznymi pulamiUsing other SQL Database features with elastic pools

Zadania elastyczne i elastyczne puleElastic jobs and elastic pools

W przypadku puli zadania zarządzania są uproszczone dzięki uruchamianiu skryptów w zadaniach elastycznych.With a pool, management tasks are simplified by running scripts in elastic jobs. Zadanie elastyczne eliminuje większość monotonnych czynności związanych z dużą liczbą baz danych.An elastic job eliminates most of tedium associated with large numbers of databases.

Aby uzyskać więcej informacji na temat innych narzędzi do pracy z wieloma bazami danych, zobacz artykuł dotyczący skalowania w poziomie za pomocą usługi Azure SQL Database.For more information about other database tools for working with multiple databases, see Scaling out with Azure SQL Database.

Opcje ciągłości biznesowej dla baz danych w puli elastycznejBusiness continuity options for databases in an elastic pool

Bazy danych w puli obsługują te same funkcje ciągłości działalności biznesowej, które są dostępne dla pojedynczych baz danych.Pooled databases generally support the same business continuity features that are available to single databases.

Tworzenie nowej SQL Database elastycznej puli przy użyciu Azure PortalCreating a new SQL Database elastic pool using the Azure portal

Istnieją dwa sposoby tworzenia elastycznej puli w Azure Portal.There are two ways you can create an elastic pool in the Azure portal.

  1. Przejdź do Azure Portal , aby utworzyć pulę elastyczną.Go to the Azure portal to create an elastic pool. Wyszukaj i wybierz pozycję Azure SQL.Search for and select Azure SQL.

  2. Wybierz pozycję + Dodaj , aby otworzyć stronę Wybieranie opcji wdrożenia SQL .Select +Add to open the Select SQL deployment option page. Dodatkowe informacje na temat pul elastycznych można wyświetlić, wybierając pozycję Pokaż szczegóły na kafelku bazy danych .You can view additional information about elastic pools by selecting Show details on the Databases tile.

  3. Na kafelku bazy danych wybierz pozycję Pula elastyczna na liście rozwijanej Typ zasobu , a następnie wybierz pozycję Utwórz:On the Databases tile, select Elastic pool in the Resource type dropdown, then select Create:

    Tworzenie elastycznej puli

  4. Lub można utworzyć pulę elastyczną, przechodząc do istniejącego serwera i klikając pozycję + Nowa pula , aby utworzyć pulę bezpośrednio na tym serwerze.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.

Uwaga

Można utworzyć wiele pul na serwerze, ale nie można dodawać baz danych z różnych serwerów do tej samej puli.You can create multiple pools on a server, but you can't add databases from different servers into the same pool.

Warstwa usługi puli określa funkcje dostępne dla elastycznych pul i maksymalną ilość zasobów dostępnych dla każdej bazy danych.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. Aby uzyskać szczegółowe informacje, zobacz limity zasobów dla pul elastycznych w modelu DTU.For details, see Resource limits for elastic pools in the DTU model. W przypadku limitów zasobów opartych na rdzeń wirtualny dla pul elastycznych zobacz limity zasobów opartych na rdzeń wirtualny — pule elastyczne.For vCore-based resource limits for elastic pools, see vCore-based resource limits - elastic pools.

Aby skonfigurować zasoby i Cennik puli, kliknij pozycję Konfiguruj pulę.To configure the resources and pricing of the pool, click Configure pool. Następnie wybierz warstwę usług, Dodaj bazy danych do puli i skonfiguruj limity zasobów dla puli i jej baz danych.Then select a service tier, add databases to the pool, and configure the resource limits for the pool and its databases.

Po zakończeniu konfigurowania puli można kliknąć pozycję "Zastosuj", nazwę puli, a następnie kliknąć przycisk "OK", aby utworzyć pulę.When you have completed configuring the pool, you can click 'Apply', name the pool, and click 'OK' to create the pool.

Monitorowanie puli elastycznej i jej baz danychMonitor an elastic pool and its databases

W Azure Portal można monitorować wykorzystanie puli elastycznej i baz danych w tej puli.In the Azure portal, you can monitor the utilization of an elastic pool and the databases within that pool. Możesz również wprowadzić zestaw zmian w puli elastycznej i przesłać wszystkie zmiany w tym samym czasie.You can also make a set of changes to your elastic pool and submit all changes at the same time. Te zmiany obejmują dodawanie lub usuwanie baz danych, zmienianie ustawień puli elastycznej lub zmienianie ustawień bazy danych.These changes include adding or removing databases, changing your elastic pool settings, or changing your database settings.

Korzystając z wbudowanych narzędzi do monitorowania wydajności i alertów, można łączyć się z ocenami wydajności.You can use the built-in performance monitoring and alerting tools, combined with performance ratings. Ponadto SQL Database mogą emitować metryki i dzienniki zasobów w celu łatwiejszego monitorowania.Additionally, SQL Database can emit metrics and resource logs for easier monitoring.

Analizy przypadków klientówCustomer case studies

  • SnelStartSnelStart

    SnelStart używane pule elastyczne z Azure SQL Database, aby szybko rozwijać swoje usługi biznesowe według stawki 1 000 nowej bazy danych Azure SQL na miesiąc.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 używa pul elastycznych z Azure SQL Database, aby szybko inicjować i skalować usługi dla tysięcy dzierżawców w chmurze.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 korzysta z elastycznych pul z Azure SQL Database, aby przyspieszyć cykl programowania i zwiększyć wydajność usług i klientów.Daxko/CSI uses elastic pools with Azure SQL Database to accelerate its development cycle and to enhance its customer services and performance.

Następne krokiNext steps