Bezserwerowa warstwa obliczeniowa dla bazy danych Azure SQL

Dotyczy: baza danych Azure SQL

Bezserwerowa jest warstwą obliczeniową dla pojedynczych baz danych w usłudze Azure SQL Database, która automatycznie skaluje obliczenia na podstawie zapotrzebowania na obciążenie i nalicza opłaty za ilość zasobów obliczeniowych używanych na sekundę. Ponadto warstwa bezserwerowych usług obliczeniowych automatycznie wstrzymuje bazy danych w okresach nieaktywności, gdy są naliczane opłaty tylko za magazyn, oraz automatycznie wznawia bazy danych po ponownym pojawieniu się aktywności. Warstwa obliczeniowa bezserwerowa jest dostępna w warstwie usługi Ogólnego przeznaczenia i obecnie dostępna w wersji zapoznawczej w warstwie usługi Hiperskala.

Uwaga

  • Bezserwerowa w warstwie usługi Hiperskala jest obecnie dostępna w wersji zapoznawczej.
  • Automatyczne wstrzymanie i automatyczne wznawianie jest obecnie obsługiwane tylko w warstwie usługi Ogólnego przeznaczenia.

Omówienie

Warstwa obliczeniowa bezserwerowa dla pojedynczych baz danych w usłudze Azure SQL Database jest sparametryzowana przez zakres skalowania automatycznego obliczeń i opóźnienie automatycznego wstrzymywania. Konfiguracja tych parametrów kształtuje środowisko wydajności bazy danych i koszt obliczeniowy.

rozliczenia bezserwerowe

Konfiguracja wydajności

  • Minimalne rdzenie wirtualne i maksymalne rdzenie wirtualne to konfigurowalne parametry definiujące zakres pojemności obliczeniowej dostępnej dla bazy danych. Limity pamięci i operacji we/wy są proporcjonalne do określonego zakresu rdzeni wirtualnych. 
  • Opóźnienie automatycznego wstrzymywania jest konfigurowalnym parametrem, który definiuje czas, przez który baza danych musi być nieaktywna, zanim zostanie automatycznie wstrzymana. Baza danych jest automatycznie wznawiana po wystąpieniu następnego logowania lub innego działania. Alternatywnie można wyłączyć automatyczne wstrzymanie.

Koszty

  • Koszt bezserwerowej bazy danych to suma kosztów obliczeniowych i kosztów magazynowania.
  • Jeśli użycie zasobów obliczeniowych mieści się między skonfigurowanymi limitami minimalnymi i maksymalnymi, koszt obliczeniowy jest oparty na rdzeniach wirtualnych i używanej pamięci.
  • Gdy użycie zasobów obliczeniowych jest niższe niż minimalne skonfigurowane limity, koszt obliczeniowy jest oparty na minimalnych rdzeniach wirtualnych i minimalnej skonfigurowanej pamięci.
  • Po wstrzymaniu bazy danych koszt obliczeniowy wynosi zero i naliczane są tylko koszty magazynowania.
  • Koszt magazynu jest określany w taki sam sposób, jak w aprowizowanej warstwie obliczeniowej.

Aby uzyskać więcej szczegółów kosztów, zobacz Rozliczenia.

Scenariusze

Opcja bezserwerowa jest zoptymalizowana pod kątem stosunku ceny do wydajności i jest przeznaczona dla pojedynczych baz danych wykorzystywanych sporadycznie i mających nieprzewidywalne wzorce użycia zezwalające na niewielkie opóźnienia wynikające z konieczności przygotowania do obliczeń po okresach bezczynności. Natomiast aprowizowana warstwa obliczeniowa jest zoptymalizowana pod kątem wydajności cenowej dla pojedynczych baz danych lub wielu baz danych w elastycznych pulach z wyższym średnim użyciem, które nie może pozwolić sobie na opóźnienie rozgrzewki obliczeniowej.

Scenariusze odpowiednie dla obliczeń bezserwerowych

  • Pojedyncze bazy danych wykorzystywane sporadycznie i mające nieprzewidywalne wzorce użycia przeplatane okresami braku aktywności i niższym średnim wykorzystaniem obliczeń w czasie.
  • Pojedyncze bazy danych w aprowizowanej warstwie obliczeniowej, które są często przeskalowywane, a ich klienci preferują delegowanie ponownego skalowania obliczeń do usługi.
  • Nowe pojedyncze bazy danych bez historii użycia, w przypadku których trudno jest ustalić rozmiar obliczeniowy lub nie można go oszacować przed wdrożeniem w usłudze SQL Database.

Scenariusze odpowiednie do aprowizowania zasobów obliczeniowych

  • Pojedyncze bazy danych z bardziej regularnymi, przewidywalnymi wzorcami użycia i wyższym średnim wykorzystaniem zasobów obliczeniowych w czasie.
  • Bazy danych, które nie mogą tolerować kompromisów wydajności wynikających z częstszego przycinania pamięci lub opóźnień wznawiania stanu wstrzymania.
  • Wiele baz danych z sporadycznymi, nieprzewidywalnymi wzorcami użycia, które można skonsolidować w elastyczne pule w celu uzyskania lepszej optymalizacji wydajności cen.

Porównanie warstw obliczeniowych

W poniższej tabeli przedstawiono różnice między warstwą obliczeniową bezserwerową a aprowizowaną warstwą obliczeniową:

Bezserwerowe usługi obliczeniowe Aprowizowania zasobów obliczeniowych
Wzorzec użycia bazy danych Sporadyczne, nieprzewidywalne użycie z niższym średnim wykorzystaniem zasobów obliczeniowych w czasie. Bardziej regularne wzorce użycia z wyższym średnim użyciem zasobów obliczeniowych w czasie lub wieloma bazami danych korzystającymi z elastycznych pul.
Nakład pracy związane z zarządzaniem wydajnością Niższa Wyższa
Skalowanie zasobów obliczeniowych Automatyczny Ręcznie
Czas odpowiedzi obliczeń Niższe po nieaktywnych okresach Natychmiastowe
Stopień szczegółowości rozliczeń Sekundę Godzinę

Model zakupów i warstwa usług

W poniższej tabeli opisano obsługę bezserwerową opartą na modelu zakupów, warstwach usług i sprzęcie::

Kategoria Obsługiwane Nieobsługiwany
Model zakupów Rdzenie wirtualne Jednostki DTU
Warstwa usług Ogólnego przeznaczenia
Hiperskala (w wersji zapoznawczej)
Krytyczne dla działania firmy
Sprzęt Seria Standardowa (Gen5) Wszystkie inne sprzęty

Skalowanie automatyczne

Skalowanie czasu odpowiedzi

Ogólnie rzecz biorąc, bezserwerowe bazy danych są uruchamiane na maszynie z wystarczającą pojemnością, aby zaspokoić zapotrzebowanie na zasoby bez zakłóceń dla dowolnej ilości zasobów obliczeniowych żądanych w granicach ustawionych przez maksymalną wartość rdzeni wirtualnych. Czasami równoważenie obciążenia odbywa się automatycznie, jeśli maszyna nie może zaspokoić zapotrzebowania na zasoby w ciągu kilku minut. Jeśli na przykład zapotrzebowanie na zasoby wynosi 4 rdzenie wirtualne, ale dostępne są tylko 2 rdzenie wirtualne, może to potrwać do kilku minut, zanim zostaną udostępnione 4 rdzenie wirtualne. Baza danych pozostaje w trybie online podczas równoważenia obciążenia z wyjątkiem krótkiego okresu na końcu operacji, gdy połączenia zostaną porzucone.

Zarządzanie pamięcią

W warstwach usług Ogólnego przeznaczenia i Hiperskala pamięć dla baz danych bezserwerowych jest odzyskiwane częściej niż w przypadku aprowizowanych baz danych obliczeniowych. To zachowanie jest ważne, aby kontrolować koszty bezserwerowe i może mieć wpływ na wydajność.

Odzyskiwanie pamięci podręcznej

W przeciwieństwie do aprowizowanych baz danych obliczeniowych pamięć z pamięci podręcznej SQL jest odzyskiwane z bezserwerowej bazy danych, gdy użycie procesora CPU lub aktywnej pamięci podręcznej jest niskie.

  • Wykorzystanie aktywnej pamięci podręcznej jest uznawane za niskie, gdy całkowity rozmiar ostatnio używanych wpisów pamięci podręcznej spadnie poniżej progu przez pewien czas.
  • Po wyzwoleniu odzyskiwania pamięci podręcznej docelowy rozmiar pamięci podręcznej jest zmniejszany przyrostowo do ułamka poprzedniego rozmiaru i odzyskiwanie będzie kontynuowane tylko wtedy, gdy użycie pozostanie niskie.
  • W przypadku odzyskiwania pamięci podręcznej zasady wybierania wpisów pamięci podręcznej do eksmisji są takie same, jak w przypadku aprowizowanych baz danych obliczeniowych, gdy wysokie wykorzystanie pamięci jest wysokie.
  • Rozmiar pamięci podręcznej nigdy nie jest zmniejszany poniżej minimalnego limitu pamięci zdefiniowanego przez minimalną liczbę rdzeni wirtualnych, które można skonfigurować.

W bazach danych obliczeniowych bezserwerowych i aprowizowanych można eksmitować wpisy pamięci podręcznej, jeśli jest używana cała dostępna pamięć.

Gdy wykorzystanie procesora CPU jest niskie, wykorzystanie aktywnej pamięci podręcznej może pozostać wysokie w zależności od wzorca użycia i zapobiec odzyskianiu pamięci. Ponadto mogą wystąpić inne opóźnienia po zatrzymaniu aktywności użytkownika przed odzyskaniem pamięci z powodu okresowych procesów w tle odpowiadających na wcześniejsze działanie użytkownika. Na przykład operacje usuwania i zadania oczyszczania magazynu zapytań generują rekordy duchów oznaczone do usunięcia, ale nie są fizycznie usuwane do momentu uruchomienia procesu oczyszczania duchów. Czyszczenie duchów może obejmować odczytywanie dodatkowych stron danych w pamięci podręcznej.

Nawodnienie pamięci podręcznej

Pamięć podręczna SQL zwiększa się w miarę pobierania danych z dysku w taki sam sposób i z taką samą szybkością jak w przypadku aprowizowanych baz danych. Gdy baza danych jest zajęta, pamięć podręczna może rosnąć bez ograniczeń, gdy jest dostępna pamięć.

Zarządzanie pamięcią podręczną dysku

W warstwie usługi Hiperskala dla warstw obliczeniowych bezserwerowych i aprowizowanych każda replika obliczeniowa używa pamięci podręcznej RBPEX (Resilient Buffer Pool Extension), która przechowuje strony danych na lokalnym dysku SSD w celu zwiększenia wydajności operacji we/wy. Jednak w warstwie obliczeniowej bezserwerowej dla hiperskala pamięć podręczna RBPEX dla każdej repliki obliczeniowej automatycznie rośnie i zmniejsza się w odpowiedzi na rosnące i malejące zapotrzebowanie na obciążenie. Maksymalny rozmiar pamięci podręcznej RBPEX może wzrosnąć do trzech razy więcej niż maksymalna ilość pamięci skonfigurowanej dla bazy danych. Aby uzyskać szczegółowe informacje na temat maksymalnej ilości pamięci i limitów automatycznego skalowania RBPEX bezserwerowego, zobacz bezserwerowe limity zasobów w warstwie Hiperskala.

Automatyczne wstrzymanie i automatyczne wznawianie

Obecnie automatyczne wstrzymanie bezserwerowe i automatyczne wznawianie są obsługiwane tylko w warstwie Ogólnego przeznaczenia.

Automatyczne wstrzymanie

Automatyczne wstrzymywanie jest wyzwalane, jeśli wszystkie następujące warunki są spełnione przez czas trwania opóźnienia automatycznego wstrzymywania:

  • Liczba sesji = 0
  • Procesor CPU = 0 dla obciążenia użytkownika uruchomionego w puli zasobów użytkownika

W razie potrzeby dostępna jest opcja wyłączania automatycznego wstrzymowania.

Poniższe funkcje nie obsługują automatycznego wstrzymowania, ale obsługują skalowanie automatyczne. Jeśli są używane jakiekolwiek z następujących funkcji, automatyczne wstrzymanie musi zostać wyłączone, a baza danych pozostanie w trybie online niezależnie od czasu braku aktywności bazy danych:

Automatyczne wstrzymanie jest tymczasowo blokowane podczas wdrażania niektórych aktualizacji usługi, które wymagają, aby baza danych została w trybie online. W takich przypadkach automatyczne wstrzymanie staje się dozwolone ponownie po zakończeniu aktualizacji usługi.

Rozwiązywanie problemów z automatycznym wstrzymywaniem

Jeśli automatyczne wstrzymywanie jest włączone, ale baza danych nie wstrzymuje się automatycznie po upływie okresu opóźnienia, a funkcje wymienione powyżej nie są używane, sesje aplikacji lub użytkowników mogą uniemożliwiać automatyczne wstrzymywanie. Aby sprawdzić, czy z bazą danych są aktualnie połączone jakiekolwiek sesje aplikacji lub użytkownika, połącz się z bazą danych przy użyciu dowolnego narzędzia klienckiego i wykonaj następujące zapytanie:

SELECT session_id,
       host_name,
       program_name,
       client_interface_name,
       login_name,
       status,
       login_time,
       last_request_start_time,
       last_request_end_time
FROM sys.dm_exec_sessions AS s
INNER JOIN sys.dm_resource_governor_workload_groups AS wg
ON s.group_id = wg.group_id
WHERE s.session_id <> @@SPID
      AND
      (
      (
      wg.name like 'UserPrimaryGroup.DB%'
      AND
      TRY_CAST(RIGHT(wg.name, LEN(wg.name) - LEN('UserPrimaryGroup.DB') - 2) AS int) = DB_ID()
      )
      OR
      wg.name = 'DACGroup'
      );

Porada

Po uruchomieniu zapytania upewnij się, że odłącz się od bazy danych. W przeciwnym razie otwarta sesja używana przez zapytanie uniemożliwi automatyczne wstrzymywanie.

Jeśli zestaw wyników nie jest pusty, istnieją sesje, które uniemożliwiają automatyczne wstrzymanie.

Jeśli zestaw wyników jest pusty, nadal jest możliwe, że w pewnym momencie w trakcie okresu opóźnienia automatycznego wstrzymania sesje były otwarte (być może przez krótki czas). Aby sprawdzić, czy taka aktywność miała miejsce w trakcie okresu opóźnienia, można użyć inspekcji usługi Azure SQL i zbadać dane inspekcji dotyczące odpowiedniego okresu.

Otwarte sesje, ze współbieżnym wykorzystaniem procesora CPU w puli zasobów użytkownika lub bez niego, to najczęstsza przyczyna braku zgodnego z oczekiwaniami automatycznego wstrzymania bezserwerowej bazy danych.

Automatyczne wznawianie

Automatyczne wznawianie jest wyzwalane, jeśli którykolwiek z następujących warunków jest spełniony w dowolnym momencie:

Cecha Wyzwalacz automatycznego wznawiania
Uwierzytelnianie i autoryzacja Zaloguj się
Wykrywanie zagrożeń Włączanie/wyłączanie ustawień wykrywania zagrożeń na poziomie bazy danych lub serwera.
Modyfikowanie ustawień wykrywania zagrożeń na poziomie bazy danych lub serwera.
Odnajdowanie i klasyfikacja danych Dodawanie, modyfikowanie, usuwanie lub wyświetlanie etykiet poufności
Inspekcja Wyświetlanie rekordów inspekcji.
Aktualizowanie lub wyświetlanie zasad inspekcji.
Maskowanie danych Dodawanie, modyfikowanie, usuwanie lub wyświetlanie reguł maskowania danych
Transparent Data Encryption Wyświetlanie stanu lub stanu przezroczystego szyfrowania danych
Ocena luk w zabezpieczeniach Skanowanie ad hoc i okresowe skanowania w przypadku włączenia
Wykonywanie zapytań dotyczących magazynu danych (wydajności) Modyfikowanie lub wyświetlanie ustawień magazynu zapytań
Zalecenia dotyczące wydajności Wyświetlanie lub stosowanie zaleceń dotyczących wydajności
Automatyczne dostrajanie Stosowanie i weryfikacja zaleceń dotyczących automatycznego dostrajania, takich jak automatyczne indeksowanie
Kopiowanie bazy danych Utwórz bazę danych jako kopię.
Eksportuj do pliku BACPAC.
Synchronizacja danych SQL Synchronizacja między bazami danych piasty i składowych, które są uruchamiane zgodnie z konfigurowalnym harmonogramem lub są wykonywane ręcznie
Modyfikowanie niektórych metadanych bazy danych Dodawanie nowych tagów bazy danych.
Zmiana maksymalnej liczby rdzeni wirtualnych, minimalnych rdzeni wirtualnych lub opóźnienia automatycznego wstrzymywania.
SQL Server Management Studio (SSMS) Użycie programu SSMS w wersjach starszych niż 18.1 i otwarcie nowego okna zapytania dla dowolnej bazy danych na serwerze spowoduje wznowienie automatycznej wstrzymanej bazy danych na tym samym serwerze. To zachowanie nie występuje w przypadku korzystania z programu SSMS w wersji 18.1 lub nowszej.

Monitorowanie, zarządzanie lub inne rozwiązania wykonujące dowolne z wymienionych powyżej operacji spowoduje wyzwolenie automatycznego wznawiania.

Automatyczne wznawianie jest również wyzwalane podczas wdrażania niektórych aktualizacji usługi, które wymagają, aby baza danych był w trybie online.

Łączność

Jeśli bezserwerowa baza danych jest wstrzymana, pierwsze logowanie spowoduje wznowienie bazy danych i zwrócenie błędu o kodzie 40613 wskazującego, że baza danych jest niedostępna. Po wznowieniu bazy danych należy ponowić próbę zalogowania, aby nawiązać połączenie. Modyfikowanie klientów baz danych z logiką ponawiania połączenia nie powinno być konieczne. Aby uzyskać opcje logiki ponawiania połączeń wbudowane w sterownik SqlClient, zobacz konfigurowanie logiki ponawiania prób w programie SqlClient.

Opóźnienie

Opóźnienie automatycznego wznawiania i automatycznego wstrzymywania bezserwerowej bazy danych jest zwykle uporządkowane w kolejności od 1 minuty do automatycznego wznawiania i 1–10 minut po wygaśnięciu okresu opóźnienia do automatycznego wstrzymania.

Zarządzane przez klienta szyfrowanie Transparent Data Encryption (BYOK)

Usuwanie lub odwoływanie kluczy

W przypadku korzystania z funkcji Transparent Data Encryption (BYOK) zarządzanego przez klienta, a bezserwerowa baza danych jest automatycznie wstrzymana po usunięciu lub odwołaniu klucza, baza danych pozostaje w stanie automatycznego wstrzymania. W takim przypadku po następnym wznowieniu bazy danych baza danych stanie się niedostępna w ciągu około 10 minut. Gdy baza danych stanie się niedostępna, proces odzyskiwania jest taki sam jak w przypadku aprowizowanych baz danych obliczeniowych. Jeśli bezserwerowa baza danych jest w trybie online w przypadku usunięcia lub odwołania klucza, baza danych stanie się również niedostępna w ciągu około 10 minut w taki sam sposób, jak w przypadku aprowizowania baz danych obliczeniowych.

Wymiana kluczy

Jeśli korzystasz z funkcji Transparent Data Encryption (BYOK) zarządzanego przez klienta , a bezserwerowa baza danych jest automatycznie wstrzymana, automatyczna rotacja kluczy zostanie odroczona do momentu automatycznego wznowienia bazy danych.

Tworzenie nowej bezserwerowej bazy danych

Utworzenie nowej bazy danych lub przeniesienie istniejącej bazy danych do bezserwerowej warstwy obliczeniowej jest zgodne z tym samym wzorcem co tworzenie nowej bazy danych w aprowizowanej warstwie obliczeniowej i obejmuje następujące dwa kroki:

  1. Określ cel usługi. Cel usługi określa warstwę usługi, konfigurację sprzętu i maksymalne rdzenie wirtualne. Aby uzyskać informacje o opcjach celu usługi, zobacz Limity zasobów bezserwerowych

  2. Opcjonalnie określ minimalną liczbę rdzeni wirtualnych i opóźnienie automatycznego wstrzymywania, aby zmienić ich wartości domyślne. W poniższej tabeli przedstawiono dostępne wartości dla tych parametrów.

    Parametr Opcje wartości Wartość domyślna
    Minimalna liczba rdzeni wirtualnych Zależy od maksymalnej liczby skonfigurowanych rdzeni wirtualnych — zobacz limity zasobów. 0,5 rdzeni wirtualnych
    Opóźnienie autopauzu Minimum: 60 minut (1 godzina)
    Maksymalna: 10080 minut (7 dni)
    Przyrosty: 10 minut
    Wyłącz automatyczne zapisywanie: -1
    60 minut

W poniższych przykładach utworzono nową bazę danych w warstwie obliczeniowej bezserwerowej.

Korzystanie z witryny Azure Portal

Zobacz Szybki start: tworzenie pojedynczej bazy danych w usłudze Azure SQL Database przy użyciu Azure Portal.

Korzystanie z programu PowerShell

Utwórz nową bezserwerową bazę danych Ogólnego przeznaczenia przy użyciu następującego przykładu programu PowerShell:

New-AzSqlDatabase -ResourceGroupName $resourceGroupName -ServerName $serverName -DatabaseName $databaseName `
  -Edition GeneralPurpose -ComputeModel Serverless -ComputeGeneration Gen5 `
  -MinVcore 0.5 -MaxVcore 2 -AutoPauseDelayInMinutes 720

Interfejs wiersza polecenia platformy Azure

Utwórz nową bezserwerową bazę danych Ogólnego przeznaczenia przy użyciu następującego przykładu interfejsu wiersza polecenia platformy Azure:

az sql db create -g $resourceGroupName -s $serverName -n $databaseName `
  -e GeneralPurpose --compute-model Serverless -f Gen5 `
  --min-capacity 0.5 -c 2 --auto-pause-delay 720

Korzystanie z języka Transact-SQL (T-SQL)

W przypadku korzystania z języka T-SQL wartości domyślne są stosowane dla minimalnych rdzeni wirtualnych i opóźnienia automatycznego użycia. Później można je zmienić z poziomu portalu lub za pomocą innych interfejsów API zarządzania (powerShell, interfejsu wiersza polecenia platformy Azure, interfejsu API REST).

Aby uzyskać szczegółowe informacje, zobacz CREATE DATABASE (TWORZENIE BAZY DANYCH).

Utwórz nową bazę danych Ogólnego przeznaczenia bezserwerową przy użyciu następującego przykładu języka T-SQL:

CREATE DATABASE testdb
( EDITION = 'GeneralPurpose', SERVICE_OBJECTIVE = 'GP_S_Gen5_1' ) ;

Przenoszenie bazy danych między warstwami obliczeniowymi

Istnieje możliwość przeniesienia bazy danych z aprowizowanej warstwy obliczeniowej do warstwy obliczeniowej bezserwerowej i z powrotem.

Uwaga

Istnieje również możliwość uaktualnienia bazy danych w warstwie Ogólnego przeznaczenia do warstwy Hiperskala. Aby dowiedzieć się więcej, zobacz Zarządzanie bazami danych w warstwie Hiperskala .

Podczas przenoszenia bazy danych między warstwami obliczeniowymi podaj parametr modelu obliczeniowego jako lub ServerlessProvisioned podczas korzystania z programu PowerShell i interfejsu wiersza polecenia platformy Azure oraz rozmiar obliczeniowy dla SERVICE_OBJECTIVE podczas korzystania z języka T-SQL. Przejrzyj limity zasobów , aby zidentyfikować odpowiedni rozmiar obliczeniowy.

W przykładach w tej sekcji pokazano, jak przenieść aprowizowaną bazę danych do bezserwerowej. Zmodyfikuj cel usługi zgodnie z potrzebami, ponieważ w tych przykładach ustawiono maksymalną liczbę rdzeni wirtualnych na 4.

Korzystanie z programu PowerShell

Przenieś aprowizowaną bazę danych obliczeniowych Ogólnego przeznaczenia do bezserwerowej warstwy obliczeniowej przy użyciu następującego przykładu programu PowerShell:

Set-AzSqlDatabase -ResourceGroupName $resourceGroupName -ServerName $serverName -DatabaseName $databaseName `
  -Edition GeneralPurpose -ComputeModel Serverless -ComputeGeneration Gen5 `
  -MinVcore 1 -MaxVcore 4 -AutoPauseDelayInMinutes 1440

Interfejs wiersza polecenia platformy Azure

Przenieś aprowizowaną bazę danych obliczeniowych Ogólnego przeznaczenia do bezserwerowej warstwy obliczeniowej przy użyciu następującego przykładu interfejsu wiersza polecenia platformy Azure:

az sql db update -g $resourceGroupName -s $serverName -n $databaseName `
  --edition GeneralPurpose --compute-model Serverless --family Gen5 `
  --min-capacity 1 --capacity 4 --auto-pause-delay 1440

Korzystanie z języka Transact-SQL (T-SQL)

W przypadku korzystania z języka T-SQL wartości domyślne są stosowane dla minimalnych rdzeni wirtualnych i opóźnienia automatycznego wstrzymywania. Później można je zmienić z poziomu portalu lub za pomocą innych interfejsów API zarządzania (powerShell, interfejsu wiersza polecenia platformy Azure, interfejsu API REST). Aby uzyskać szczegółowe informacje, zobacz ALTER DATABASE.

Przenieś aprowizowaną bazę danych obliczeniowych Ogólnego przeznaczenia do bezserwerowej warstwy obliczeniowej przy użyciu następującego przykładu języka T-SQL:

ALTER DATABASE testdb 
MODIFY ( SERVICE_OBJECTIVE = 'GP_S_Gen5_1') ;

Modyfikowanie konfiguracji bezserwerowej

Korzystanie z programu PowerShell

Użyj polecenia Set-AzSqlDatabase , aby zmodyfikować maksymalną lub minimalną liczbę rdzeni wirtualnych oraz opóźnienie autopauzu. MaxVcoreUżyj argumentów , MinVcorei AutoPauseDelayInMinutes . Automatyczne wstrzymywanie bezserwerowe nie jest obecnie obsługiwane w warstwie Hiperskala, więc argument opóźnienia automatycznego wstrzymania ma zastosowanie tylko do warstwy Ogólnego przeznaczenia.

Interfejs wiersza polecenia platformy Azure

Użyj polecenia az sql db update , aby zmodyfikować maksymalną lub minimalną liczbę rdzeni wirtualnych oraz opóźnienie autopause. capacityUżyj argumentów , min-capacityi auto-pause-delay . Automatyczne wstrzymywanie bezserwerowe nie jest obecnie obsługiwane w warstwie Hiperskala, więc argument opóźnienia automatycznego wstrzymania ma zastosowanie tylko do warstwy Ogólnego przeznaczenia.

Monitorowanie

Używane i rozliczane zasoby

Zasoby bezserwerowej bazy danych są hermetyzowane przez jednostki pakietu aplikacji, wystąpienia SQL i puli zasobów użytkownika.

Pakiet aplikacji

Pakiet aplikacji jest zewnętrzną granicą zarządzania zasobami dla bazy danych, niezależnie od tego, czy baza danych znajduje się w warstwie obliczeniowej bezserwerowej, czy aprowizowanej. Pakiet aplikacji zawiera wystąpienie SQL i usługi zewnętrzne, takie jak Wyszukiwanie pełnotekstowe, które łącznie mają zakres wszystkich zasobów użytkownika i systemu używanych przez bazę danych w SQL Database. Wystąpienie SQL zazwyczaj dominuje w ogólnym wykorzystaniu zasobów w pakiecie aplikacji.

Pula zasobów użytkownika

Pula zasobów użytkownika to wewnętrzna granica zarządzania zasobami dla bazy danych, niezależnie od tego, czy baza danych znajduje się w warstwie obliczeniowej bezserwerowej, czy aprowizowanej. Pula zasobów użytkownika zakresy procesora CPU i we/wy dla obciążenia użytkownika generowanego przez zapytania DDL, takie jak CREATE i ALTER, zapytania DML, takie jak INSERT, UPDATE, DELETE i MERGE, i SELECT zapytania. Te zapytania zazwyczaj reprezentują najbardziej znaczną część wykorzystania w pakiecie aplikacji.

Metryki

Metryki monitorowania użycia zasobów pakietu aplikacji i puli zasobów użytkownika bezserwerowej bazy danych oraz wszystkich replik geograficznych są wymienione w poniższej tabeli:

Jednostka Metric Opis Lekcji
Pakiet aplikacji app_cpu_percent Procent rdzeni wirtualnych używanych przez aplikację względem maksymalnej liczby rdzeni wirtualnych dozwolonych dla aplikacji. W przypadku bezserwerowej warstwy Hiperskala ta metryka jest uwidoczniona dla wszystkich replik podstawowych, nazwanych replik i replik geograficznych. Procent
Pakiet aplikacji app_cpu_billed Kwota zasobów obliczeniowych rozliczana za aplikację w okresie raportowania. Kwota zapłacona w tym okresie to produkt tej metryki i cena jednostkowa rdzeni wirtualnych.

Wartości tej metryki są określane przez agregowanie w czasie maksymalnej ilości używanego procesora CPU i używanej pamięci w każdej sekundzie. Jeśli użyta kwota jest mniejsza niż minimalna ilość aprowizowana zgodnie z wartością minimalną liczby rdzeni wirtualnych i minimalną ilością pamięci, zostanie naliczona minimalna kwota aprowizowana. Aby porównać użycie procesora CPU i pamięci na potrzeby rozliczeń, pamięć jest normalizowana do jednostek rdzeni wirtualnych przez ponowne skalowanie ilości pamięci (w GB) do wartości 3 GB na rdzeń wirtualny. W przypadku bezserwerowej hiperskala ta metryka jest uwidoczniona dla repliki podstawowej i wszystkich nazwanych replik.
Sekundy rdzeni wirtualnych
Pakiet aplikacji app_cpu_billed_HA_replicas Dotyczy tylko bezserwerowej hiperskala. Suma obliczeń rozliczanych we wszystkich aplikacjach dla replik wysokiej dostępności w okresie raportowania. Ta suma jest ograniczona do replik wysokiej dostępności należących do repliki podstawowej lub replik wysokiej dostępności należących do danej nazwanej repliki. Przed obliczeniem tej sumy między replikami wysokiej dostępności ilość zasobów obliczeniowych rozliczanych dla pojedynczej repliki wysokiej dostępności jest określana w taki sam sposób jak w przypadku repliki podstawowej lub nazwanej repliki. W przypadku bezserwerowej warstwy Hiperskala ta metryka jest uwidoczniona dla wszystkich replik podstawowych, nazwanych replik i replik geograficznych. Kwota zapłacona w okresie raportowania to produkt tej metryki i cena jednostkowa rdzeni wirtualnych. Sekundy rdzeni wirtualnych
Pakiet aplikacji app_memory_percent Procent pamięci używanej przez aplikację względem maksymalnej ilości pamięci dozwolonej dla aplikacji. W przypadku bezserwerowej warstwy Hiperskala ta metryka jest uwidoczniona dla wszystkich replik podstawowych, nazwanych replik i replik geograficznych. Procent
Pula zasobów użytkownika cpu_percent Procent rdzeni wirtualnych używanych przez obciążenie użytkownika względem maksymalnej liczby rdzeni wirtualnych dozwolonych dla obciążenia użytkownika. Procent
Pula zasobów użytkownika data_IO_percent Procent liczby operacji we/wy na sekundę danych używanych przez obciążenie użytkownika względem maksymalnej liczby operacji we/wy na sekundę danych dozwolonych dla obciążenia użytkownika. Procent
Pula zasobów użytkownika log_IO_percent Procent mb/s dziennika używanych przez obciążenie użytkownika względem maksymalnej liczby mb/s dziennika dozwolonych dla obciążenia użytkownika. Procent
Pula zasobów użytkownika workers_percent Procent procesów roboczych używanych przez obciążenie użytkownika względem maksymalnej liczby procesów roboczych dozwolonych dla obciążenia użytkownika. Procent
Pula zasobów użytkownika sessions_percent Procent sesji używanych przez obciążenie użytkownika względem maksymalnej liczby sesji dozwolonych dla obciążenia użytkownika. Procent

Wstrzymywanie i wznawianie stanu

W Azure Portal stan bazy danych jest wyświetlany w okienku przeglądu serwera zawierającego listę baz danych, które zawiera. Stan bazy danych jest również wyświetlany w okienku przeglądu bazy danych.

Za pomocą następujących poleceń wykonaj zapytanie dotyczące wstrzymania i wznowienia stanu bazy danych:

Korzystanie z programu PowerShell

Get-AzSqlDatabase -ResourceGroupName $resourcegroupname -ServerName $servername -DatabaseName $databasename `
  | Select -ExpandProperty "Status"

Interfejs wiersza polecenia platformy Azure

az sql db show --name $databasename --resource-group $resourcegroupname --server $servername --query 'status' -o json

Limity zasobów

Aby uzyskać informacje o limitach zasobów, zobacz warstwę obliczeniową bezserwerową.

Rozliczenia

Ilość zasobów obliczeniowych rozliczanych dla bezserwerowej bazy danych jest maksymalną ilością używanego procesora CPU i używanej pamięci w każdej sekundzie. Jeśli ilość używanego procesora CPU i pamięci jest mniejsza niż minimalna ilość aprowizowana dla każdego zasobu, aprowizowana kwota jest naliczana. Aby porównać procesor CPU z pamięcią do celów rozliczeniowych, pamięć jest znormalizowana do jednostek rdzeni wirtualnych przez skalowanie liczby GB o 3 GB na rdzeń wirtualny.

  • Zasób rozliczany: procesor i pamięć
  • Kwota rozliczana: cena jednostkowa rdzeni wirtualnych * maksymalna (minimalna liczba rdzeni wirtualnych, używane rdzenie wirtualne, minimalna ilość pamięci GB * 1/3, używana pamięć GB * 1/3)
  • Częstotliwość rozliczeń: na sekundę

Cena jednostkowa rdzenia wirtualnego to koszt na rdzeń wirtualny na sekundę. W przypadku hiperskala cena jednostkowa rdzeni wirtualnych repliki wysokiej dostępności lub nazwanej repliki jest niższa niż w przypadku repliki podstawowej.

Zobacz stronę cennika usługi Azure SQL Database, aby poznać konkretne ceny jednostkowe w danym regionie.

Ilość zasobów obliczeniowych rozliczanych bezserwerowych dla bazy danych Ogólnego przeznaczenia lub podstawowej lub nazwanej repliki w warstwie Hiperskala jest uwidoczniona przez następującą metrykę:

  • Metryka: app_cpu_billed (sekundy rdzeni wirtualnych)
  • Definicja: maksymalna (minimalna liczba rdzeni wirtualnych, używane rdzenie wirtualne, minimalna pamięć GB * 1/3, używana pamięć GB * 1/3)
  • Częstotliwość raportowania: na minutę na podstawie pomiarów na sekundę zagregowanych przez 1 minutę.

Ilość zasobów obliczeniowych rozliczanych bezserwerowych dla replik wysokiej dostępności hiperskala należących do repliki podstawowej lub dowolnej nazwanej repliki jest uwidoczniona przez następującą metryki:

  • Metryka: app_cpu_billed_HA_replicas (sekundy rdzeni wirtualnych)
  • Definicja: Suma maksymalnej wartości (minimalna liczba rdzeni wirtualnych, używane rdzenie wirtualne, minimalna ilość pamięci GB * 1/3, używana pamięć GB * 1/3) dla wszystkich replik wysokiej dostępności należących do zasobu nadrzędnego.
  • Nadrzędny zasób i punkt końcowy metryki: replika podstawowa i dowolna nazwana replika osobno uwidacznia tę metryki, która mierzy obliczanie rozliczane dla wszystkich skojarzonych replik wysokiej dostępności.
  • Częstotliwość raportowania: na minutę na podstawie pomiarów na sekundę zagregowanych przez 1 minutę.

Minimalny rachunek za obliczenia

Jeśli baza danych bezserwerowa jest wstrzymana, rachunek obliczeniowy wynosi zero. Jeśli baza danych bezserwerowa nie zostanie wstrzymana, minimalna opłata za obliczenia nie jest mniejsza niż maksymalna liczba rdzeni wirtualnych na podstawie maksymalnej (minimalna liczba rdzeni wirtualnych, minimalna ilość pamięci GB * 1/3).

Przykłady:

  • Załóżmy, że bezserwerowa baza danych w warstwie Ogólnego przeznaczenia nie jest wstrzymana i skonfigurowana z maksymalną 8 rdzeniami wirtualnymi i 1 minutą rdzeni wirtualnych odpowiadającą 3,0 GB pamięci minimalnej. Następnie minimalny rachunek za obliczenia jest oparty na maksymalnej (1 rdzeniach wirtualnych, 3,0 GB * 1 rdzeni wirtualnych / 3 GB) = 1 rdzeń wirtualny.
  • Załóżmy, że bezserwerowa baza danych w warstwie Ogólnego przeznaczenia nie jest wstrzymana i skonfigurowana z 4 maksymalnymi rdzeniami wirtualnymi i 0,5 minutowymi rdzeniami wirtualnymi odpowiadającymi 2,1 GB pamięci minimalnej. Następnie minimalny rachunek za obliczenia jest oparty na maksymalnej (0,5 rdzeni wirtualnych, 2,1 GB * 1 rdzeni wirtualnych / 3 GB) = 0,7 rdzeni wirtualnych.
  • Załóżmy, że bezserwerowa baza danych w warstwie Hiperskala ma replikę podstawową z jedną repliką wysokiej dostępności i repliką o nazwie bez replik wysokiej dostępności. Załóżmy, że każda replika jest skonfigurowana z maksymalną 8 rdzeniami wirtualnymi i 1 minutą rdzeni wirtualnych odpowiadającą 3 GB pamięci min. Następnie minimalny rachunek obliczeniowy dla repliki podstawowej, repliki wysokiej dostępności i nazwanej repliki są oparte na maksymalnej (1 rdzeniach wirtualnych, 3 GB * 1 rdzeni wirtualnych / 3 GB) = 1 rdzeń wirtualny.

Kalkulator cen usługi Azure SQL Database dla bezserwerowych może służyć do określenia minimalnej konfigurowalnej pamięci na podstawie liczby skonfigurowanych maksymalnej i minimalnej liczby rdzeni wirtualnych. Zgodnie z regułą, jeśli minimalna skonfigurowana liczba rdzeni wirtualnych jest większa niż 0,5 rdzeni wirtualnych, minimalny rachunek obliczeniowy jest niezależny od minimalnej skonfigurowanej pamięci i oparty tylko na liczbie min rdzeni wirtualnych skonfigurowanych.

Przykłady scenariuszy

Rozważmy bezserwerową bazę danych w warstwie Ogólnego przeznaczenia skonfigurowaną z 1 minutami rdzeni wirtualnych i 4 maksymalnymi rdzeniami wirtualnymi. Ta konfiguracja odpowiada około 3 GB pamięci minimalnej i maksymalnej pamięci 12 GB. Załóżmy, że opóźnienie automatycznego wstrzymywania jest ustawione na 6 godzin, a obciążenie bazy danych jest aktywne w ciągu pierwszych 24 godzin w okresie 24-godzinnym i w inny sposób nieaktywne.

W takim przypadku baza danych jest rozliczana za zasoby obliczeniowe i magazyn w ciągu pierwszych 8 godzin. Mimo że baza danych jest nieaktywna po drugiej godzinie, nadal jest rozliczana za obliczenia w ciągu kolejnych 6 godzin na podstawie minimalnej aprowizacji obliczeniowej, gdy baza danych jest w trybie online. Opłaty za magazyn są naliczane tylko w pozostałej części okresu 24-godzinnego, gdy baza danych jest wstrzymana.

Dokładniej, rachunek obliczeniowy w tym przykładzie jest obliczany w następujący sposób:

Interwał czasu Rdzenie wirtualne używały każdej sekundy Każdą sekundę użyto GB Rozliczany wymiar obliczeniowy Rozliczane sekundy rdzeni wirtualnych w interwale czasu
0:00-1:00 4 9 Używane rdzenie wirtualne 4 rdzenie wirtualne * 3600 sekund = 14400 sekund wirtualnych
1:00-2:00 1 12 Użycie pamięci 12 GB * 1/3 * 3600 sekund = 14400 sekund rdzeni wirtualnych
2:00-8:00 0 0 Minimalna aprowizowana pamięć 3 GB * 1/3 * 21600 sekund = 21600 sekund wirtualnych
8:00-24:00 0 0 Nie są naliczane opłaty za zasoby obliczeniowe podczas wstrzymania 0 sekund wirtualnych
Łączna liczba sekund rdzeni wirtualnych rozliczanych w ciągu 24 godzin 50400 sekund wirtualnych

Załóżmy, że cena jednostkowa obliczeń wynosi 0,000145 USD/rdzeń wirtualny/sekundę. Następnie obliczanie rozliczane za ten 24-godzinny okres jest produktem ceny jednostki obliczeniowej i sekund wirtualnych rozliczanych: 0,000145 USD/rdzenia wirtualnego/sekundy * 50400 sekund wirtualnych ~ 7,31 USD.

Korzyść użycia hybrydowego platformy Azure i pojemność zarezerwowana

Korzyść użycia hybrydowego platformy Azure (AHB) i rabaty na pojemność zarezerwowaną nie mają zastosowania do warstwy obliczeniowej bezserwerowej.

Dostępne regiony

Bezserwerowa warstwa obliczeniowa z obsługą maksymalnie 40 rdzeni wirtualnych jest dostępna na całym świecie z wyjątkiem następujących regionów: Chiny Wschodnie, Chiny Północne, Niemcy Środkowe, Niemcy Północno-Wschodnie i US Gov Central (Iowa).

Regiony obsługujące maksymalnie 80 rdzeni wirtualnych

Obecnie maksymalna liczba rdzeni wirtualnych w trybie bezserwerowym jest obsługiwana w następujących regionach, w których zaplanowano więcej regionów: Australia Wschodnia, Australia Wschodnia, Kanada Środkowa, Środkowe stany USA, Azja Wschodnia, Wschodnie stany USA 2, Francja Środkowa, Francja Południowa, Indie Środkowe, Japonia Wschodnia, Japonia Zachodnia, Północno-środkowe stany USA, Europa Północna, Norwegia Wschodnia, Katar Środkowy, Republika Południowej Afryki, Południowo-środkowe stany USA, Szwajcaria Północna, Południowe Zjednoczone Królestwo, Zachodnie Zjednoczone Królestwo, Europa Zachodnia, Zachodnie stany USA, Zachodnie stany USA 2 i Zachodnie stany USA 3.

Regiony obsługujące strefy dostępności dla maksymalnie 80 rdzeni wirtualnych

Obecnie maksymalna liczba rdzeni wirtualnych w wersji bezserwerowej z obsługą strefy dostępności jest ograniczona do następujących regionów z zaplanowanymi większą liczbą regionów: Wschodnie stany USA, Europa Zachodnia, Zachodnie stany USA 2 i Zachodnie stany USA 3.

Następne kroki