Bezserwerowa usługa Azure SQL Database

DOTYCZY: Azure SQL Database

Warstwa bezserwerowa jest warstwą obliczeniową dla pojedynczych baz danych w usłudze Azure SQL Database, która automatycznie skaluje obliczenia na podstawie zapotrzebowania na obciążenia i rachunków dla ilości używanych obliczeń 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 bezserwerowych usług obliczeniowych

Warstwa obliczeniowa bezserwerowa dla pojedynczych baz danych w 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.

serverless billing

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. W przeciwieństwie do niej aprowizowana warstwa obliczeniowa jest zoptymalizowana pod kątem stosunku ceny do wydajności i jest przeznaczona dla pojedynczych lub wielu baz danych w pulach elastycznych z wyższym średnim użyciem, w przypadku których nie mogą występować żadne opóźnienia w obliczeniach.

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 z aprowizowaną warstwą obliczeniową

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

Bezserwerowa usługa Azure SQL Database jest obecnie obsługiwana tylko w warstwie Ogólnego przeznaczenia na sprzęcie 5. generacji w modelu zakupów opartym na rdzeniach wirtualnych.

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ą

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 rośnie 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ń do maksymalnego limitu pamięci.

Automatyczne wstrzymanie i automatyczne wznawianie

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)

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.

Dołączanie do bezserwerowej warstwy obliczeniowej

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

Tworzenie nowej bazy danych w warstwie obliczeniowej bezserwerowej

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 Azure SQL Database przy użyciu Azure Portal.

Korzystanie z programu PowerShell

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

Interfejs wiersza polecenia platformy Azure

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

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

W przypadku korzystania z SQL T 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).

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

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

Przenoszenie bazy danych z aprowizowanej warstwy obliczeniowej do bezserwerowej warstwy obliczeniowej

W poniższych przykładach baza danych została przeniesiona z aprowizacji warstwy obliczeniowej do warstwy obliczeniowej bezserwerowej.

Korzystanie z 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

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

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

W przypadku korzystania z SQL T 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).

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

Aby uzyskać szczegółowe informacje, zobacz ALTER DATABASE.

Przenoszenie bazy danych z warstwy obliczeniowej bezserwerowej do aprowizowanej warstwy obliczeniowej

Bezserwerowa baza danych może zostać przeniesiona do aprowizowanej warstwy obliczeniowej w taki sam sposób, jak przeniesienie aprowizowanej bazy danych obliczeniowej do bezserwerowej warstwy obliczeniowej.

Modyfikowanie konfiguracji bezserwerowej

Korzystanie z programu PowerShell

Modyfikowanie maksymalnej lub minimalnej liczby rdzeni wirtualnych i opóźnienie autopauzy odbywa się przy użyciu polecenia Set-AzSqlDatabase w programie PowerShell przy użyciu MaxVcoreargumentów , MinVcorei AutoPauseDelayInMinutes .

Interfejs wiersza polecenia platformy Azure

Modyfikowanie maksymalnej lub minimalnej liczby rdzeni wirtualnych i opóźnienie autopauzy odbywa się przy użyciu polecenia az sql db update w interfejsie wiersza polecenia platformy Azure przy użyciu capacityargumentów , min-capacityi auto-pause-delay .

Monitorowanie

Używane i rozliczane zasoby

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

Pakiet aplikacji

Pakiet aplikacji to zewnętrzna granica 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 zawierają 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 określa zakresy procesora CPU i operacji 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 oraz SELECT. Te zapytania zazwyczaj stanowią najbardziej znaczną część wykorzystania w pakiecie aplikacji.

Metryki

Metryki monitorowania użycia zasobów pakietu aplikacji i puli zasobów użytkownika bazy danych bezserwerowej 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. Procent
Pakiet aplikacji app_cpu_billed Ilość zasobów obliczeniowych rozliczanych za aplikację w okresie raportowania. Kwota zapłacona w tym okresie jest produktem tej metryki i ceny jednostkowej rdzeni wirtualnych.

Wartości tej metryki są określane przez agregowanie w czasie maksymalnego użycia procesora CPU i pamięci używanej w każdej sekundzie. Jeśli użyta kwota jest mniejsza niż minimalna ilość aprowizowana zgodnie z minimalną liczbie rdzeni wirtualnych i minimalną ilością pamięci, zostanie naliczona minimalna ilość 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.
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. 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ę 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 bazy danych. 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 warstwa obliczeniowa bezserwerowa.

Rozliczenia

Zasoby obliczeniowe są rozliczane w zależności od maksymalnego użycia procesora CPU i pamięci w każdej sekundzie. Jeśli użycie procesora CPU i pamięci jest mniejsze niż minimalna aprowizowana ilość, to opłata jest naliczana za tę minimalną ilość. 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.

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

Cena jednostkowa rdzenia wirtualnego to koszt na rdzeń wirtualny na sekundę. Zobacz stronę cennika usługi Azure SQL Database, aby poznać konkretne ceny jednostkowe w danym regionie.

Zasoby obliczeniowe, za które jest naliczana opłata, są wskazywane przez następującą metrykę:

  • Metryka: app_cpu_billed (sekundy rdzeni wirtualnych)
  • Definicja: maksymalna (minimalna liczba rdzeni wirtualnych, używane rdzenie wirtualne, minimalna ilość pamięci GB * 1/3, używane GB pamięci * 1/3)
  • Częstotliwość raportowania: na minutę

Ilość jest obliczana co sekundę i agregowana dla 1 minuty.

Minimalny rachunek za obliczenia

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

Przykłady:

  • Załóżmy, że baza danych bezserwerowa nie jest wstrzymana i skonfigurowana z 8 maksymalnymi rdzeniami wirtualnymi i 1 minutą rdzeni wirtualnych odpowiadającą 3,0 GB minimalnej pamięci. Następnie minimalny rachunek za obliczenia jest oparty na maksymalnej (1 rdzeń wirtualny, 3,0 GB * 1 rdzeń wirtualny / 3 GB) = 1 rdzeń wirtualny.
  • Załóżmy, że baza danych bezserwerowa nie jest wstrzymana i skonfigurowana z 4 maksymalnymi rdzeniami wirtualnymi i 0,5 minutami 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 rdzeń wirtualny / 3 GB) = 0,7 rdzeni wirtualnych.

Kalkulator cen Azure SQL Database dla bezserwerowych może służyć do określenia minimalną ilość pamięci konfigurowalnej na podstawie liczby skonfigurowanych maksymalnej i minimalnej liczby rdzeni wirtualnych. Jeśli minimalna skonfigurowana liczba rdzeni wirtualnych jest większa niż 0,5 rdzeni wirtualnych, minimalny rachunek za obliczenia jest niezależny od skonfigurowanej minimalnej ilości pamięci i tylko na podstawie liczby skonfigurowanych min rdzeni wirtualnych.

Przykładowy scenariusz

Rozważmy bezserwerową bazę danych skonfigurowaną z 1 min rdzeniami wirtualnymi i 4 maksymalnymi rdzeniami wirtualnymi. Ta konfiguracja odpowiada około 3 GB minimalnej pamięci 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 przeciwnym razie 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 naliczana opłata 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 za obliczenia w tym przykładzie jest obliczany w następujący sposób:

Interwał czasu Rdzenie wirtualne używane w każdej sekundzie Każdą sekundę użyto GB Rozliczany wymiar obliczeniowy Opłaty za 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 jednostki obliczeniowej wynosi 0,000145 USD/rdzeń wirtualny/sekundę. Następnie obliczanie rozliczane za ten okres 24-godzinny jest produktem ceny jednostki obliczeniowej i sekund wirtualnych rozliczanych: $0.000145/vCore/second * 50400 sekund wirtualnych ~ $7.31.

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

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

Dostępne regiony

Warstwa obliczeniowa bezserwerowa 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).

Następne kroki