Sdílet prostřednictvím


Shromažďování dat a datové sady sledovacích procesů databáze (Preview)

Platí pro:Azure SQL DatabaseAzure SQL Managed Instance

Sledovací proces databáze shromažďuje data monitorování ze systémových zobrazení SQL a ingestuje je do úložiště dat ve formě datových sad. Každá datová sada se vytvoří pomocí dat z jednoho nebo více systémových zobrazení SQL. Pro každou datovou sadu je v úložišti dat samostatná tabulka.

Shromažďování dat

Sledovací proces databáze shromažďuje data monitorování v pravidelných intervalech pomocí dotazů T-SQL. Data shromážděná při každém spuštění dotazu se nazývají ukázka. Četnost ukázkových kolekcí se liší podle datové sady. Například často se měnící data, jako jsou čítače výkonu SQL, se můžou shromažďovat každých 10 sekund, zatímco se můžou shromažďovat většinou statická data, jako je konfigurace databáze, každých pět minut. Další informace najdete v tématu Datové sady.

Sledovací proces databáze využívá ingestování streamování v Azure Data Exploreru a analýzách v reálném čase v Microsoft Fabric k zajištění monitorování téměř v reálném čase. Shromážděná data monitorování SQL se obvykle zpřístupní pro generování sestav a analýzu za méně než 10 sekund. Latenci příjmu dat můžete monitorovat na řídicích panelech sledovacích procesů databáze pomocí odkazu Statistika příjmu dat.

Interakce mezi sledovacím procesem databáze a úlohami aplikací

Povolení sledovacího nástroje pro databáze pravděpodobně nebude mít pozorovatelný dopad na úlohy aplikace. Častější dotazy monitorování se obvykle spouštějí v podsekundovém rozsahu, zatímco dotazy, které můžou vyžadovat více času, například vrácení velkých datových sad, se spouštějí v občasných intervalech.

Aby se dále snížilo riziko dopadu na úlohy aplikací, všechny dotazy sledovacích procesů databáze ve službě Azure SQL Database se řídí prostředky jako interní úlohy. Pokud kolize prostředků existuje, spotřeba prostředků monitorováním dotazů je omezená na malý zlomek celkových prostředků dostupných pro databázi nebo elastický fond. Tím se upřednostní úlohy aplikací před monitorovacími dotazy.

Ve službě Azure SQL Managed Instance můžete správci prostředků povolit správu spotřeby prostředků pomocí monitorovacích dotazů podobným způsobem, pokud je to potřeba.

Následující příklad nakonfiguruje Správce prostředků ve spravované instanci SQL. Omezuje spotřebu procesoru podle dotazů sledovacího procesu databáze na 30 %, pokud nedojde k kolizí procesoru. V případě kolize procesoru si tato konfigurace vyhrazuje 5 % procesoru pro monitorovací dotazy a omezuje jejich využití procesoru na 10 %. Omezuje také velikost přidělení paměti pro každý dotaz monitorování na 10 % dostupné paměti.

USE master;
GO

CREATE OR ALTER FUNCTION dbo.dbw_classifier()
RETURNS sysname
WITH SCHEMABINDING
AS
BEGIN

DECLARE @WorkloadGroupName sysname = 'default';

IF APP_NAME() IN (N'SQLExternalMonitoring',N'x_ms_reserved_sql_external_monitoring')
    SET @WorkloadGroupName = N'database_watcher_workload_group'

RETURN @WorkloadGroupName;

END;
GO

BEGIN TRY

IF EXISTS (
          SELECT 1
          FROM sys.resource_governor_configuration
          WHERE classifier_function_id <> 0 OR is_enabled <> 0
          )
    THROW 50001, 'Resource Governor is already configured. No changes were made.', 1;

CREATE RESOURCE POOL database_watcher_resource_pool
WITH (MIN_CPU_PERCENT = 5, MAX_CPU_PERCENT = 10, CAP_CPU_PERCENT = 30);

CREATE WORKLOAD GROUP database_watcher_workload_group
WITH (REQUEST_MAX_MEMORY_GRANT_PERCENT = 10)
USING database_watcher_resource_pool;

ALTER RESOURCE GOVERNOR WITH (CLASSIFIER_FUNCTION = dbo.dbw_classifier);

ALTER RESOURCE GOVERNOR RECONFIGURE;

END TRY
BEGIN CATCH
    THROW;
END CATCH;

Poznámka:

Pokud chcete, aby konfigurace správce prostředků okamžitě byla efektivní na sekundární replice spravované instance SQL, připojte se k replice a spusťte ALTER RESOURCE GOVERNOR RECONFIGURE;ji.

Aby nedocházelo ke konfliktům souběžnosti, jako jsou blokování a zablokování mezi úlohami shromažďování dat a databázovými úlohami spuštěnými na prostředcích Azure SQL, monitorování dotazů používá krátké časové limity uzamčení a nízkou prioritu zablokování. Pokud dojde ke konfliktu souběžnosti, priorita se udělí dotazům na úlohy aplikace. V závislosti navzorch

Shromažďování dat v elastických fondech

Pokud chcete monitorovat elastický fond, musíte určit jednu databázi ve fondu jako databázi ukotvení. Sledovací proces databáze se připojí k databázi ukotvení. Vzhledem k tomu, že sledovací proces obsahujeVIEW SERVER PERFORMANCE STATE oprávnění, systémová zobrazení v databázi ukotvení poskytují data monitorování pro fond jako celek.

Tip

Do každého elastického fondu, který chcete monitorovat, můžete přidat prázdnou databázi a určit ji jako ukotvenou databázi. Tímto způsobem můžete přesunout další databáze do fondu nebo mimo fond nebo mezi fondy, aniž byste přerušili monitorování elastického fondu.

Data shromážděná z databáze ukotvení obsahují metriky na úrovni fondu a určité metriky výkonu na úrovni databáze pro každou databázi ve fondu. To například zahrnuje metriky využití prostředků a frekvence požadavků pro každou databázi. V některých scénářích monitorování elastického fondu jako celku znamená, že není nutné monitorovat každou jednotlivou databázi ve fondu.

Určitá data monitorování, jako je využití procesoru, paměti a úložiště na úrovni fondu, a statistiky čekání se shromažďují pouze na úrovni elastického fondu, protože je nelze přiřazovat jednotlivým databázím ve fondu. Naopak určitá další data, jako jsou statistiky modulu runtime dotazu, vlastnosti databáze, metadata tabulky a indexu, jsou k dispozici pouze na úrovni databáze.

Pokud jako cíle sledovacího nástroje pro sledování databáze přidáte jednotlivé databáze z elastického fondu, měli byste také přidat elastický fond jako cíl. Tímto způsobem získáte ucelenější přehled o výkonu databáze a fondu.

Monitorování hustých elastických fondů

Hustý elastický fond obsahuje velký počet databází, ale má relativně malou velikost výpočetních prostředků. Tato konfigurace umožňuje zákazníkům dosáhnout značné úspory nákladů tím, že zajistí minimální alokaci výpočetních prostředků za předpokladu, že je aktivní jenom malý počet databází ve fondu současně.

Výpočetní prostředky dostupné pro dotazy sledovacího modulu databáze v hustě elastickém fondu jsou dále omezené, aby nedošlo k ovlivnění dotazů aplikace. Z tohoto důvodu nemusí sledovací proces databáze shromažďovat data monitorování z každé databáze v hustě elastickém fondu.

Tip

Pokud chcete monitorovat hustý elastický fond, povolte monitorování na úrovni fondu přidáním elastického fondu jako cíle.

Nedoporučuje se monitorovat více než několik jednotlivých databází v hustě elastickém fondu. V shromážděných datech nebo větších než očekávaných intervalech mezi vzorky dat můžete vidět mezery kvůli nedostatečným výpočetním prostředkům dostupným pro dotazy sledovacího modulu databáze.

Datové sady

Tato část popisuje datové sady dostupné pro každý cílový typ, včetně četností shromažďování a názvů tabulek v úložišti dat.

Poznámka:

Během období Preview můžou být datové sady přidány a odebrány. Vlastnosti datové sady, jako je název, popis, frekvence shromažďování a dostupné sloupce, se můžou změnit.

Název datové sady Název tabulky Frekvence shromažďování (hh:mm:ss) Popis
Aktivní relace sqldb_database_active_sessions 00:00:30 Každý řádek představuje relaci, která spouští požadavek, je blokátorem nebo má otevřenou transakci.
Historie zálohování sqldb_database_sql_backup_history 00:05:00 Každý řádek představuje úspěšně dokončené zálohování databáze.
Zpracování změn sqldb_database_change_processing 00:01:00 Každý řádek představuje snímek agregované statistiky prohledávání protokolu pro funkci zpracování změn, jako je change data capture nebo kanál změn (Azure Synapse Link).
Chyby zpracování změn sqldb_database_change_processing_errors 00:01:00 Každý řádek představuje chybu, ke které došlo během zpracování změn při použití funkce zpracování změn, jako je záznam dat změn nebo kanál změn (Azure Synapse Link).
Připojení sqldb_database_connectivity 00:00:30 Každý řádek představuje sondu připojení (přihlášení a dotaz) pro databázi.
Geografické repliky sqldb_database_geo_replicas 00:00:30 Každý řádek představuje primární nebo sekundární geografickou repliku, včetně metadat geografické replikace a statistiky.
Metadata indexu sqldb_database_index_metadata 00:30:00 Každý řádek představuje oddíl indexu a zahrnuje definici indexu, vlastnosti a provozní statistiky.
Využití paměti sqldb_database_memory_utilization 00:00:10 Každý řádek představuje úředníka paměti a zahrnuje spotřebu paměti úředníkem v instanci databázového stroje.
Chybějící indexy sqldb_database_missing_indexes 00:15:00 Každý řádek představuje index, který může zvýšit výkon dotazů při vytváření.
Události mimo paměť sqldb_database_oom_events 00:01:00 Každý řádek představuje událost mimo paměť v databázovém stroji.
Čítače výkonu (běžné) sqldb_database_performance_counters_common 00:00:10 Každý řádek představuje čítač výkonu instance databázového stroje. Tato datová sada obsahuje běžně používané čítače.
Čítače výkonu (podrobné) sqldb_database_performance_counters_detailed 00:01:00 Každý řádek představuje čítač výkonu instance databázového stroje. Tato datová sada obsahuje čítače, které můžou být potřeba k podrobnému monitorování a řešení potíží.
Vlastnosti sqldb_database_properties 00:05:00 Každý řádek představuje databázi a zahrnuje možnosti databáze, omezení zásad správného řízení prostředků a další metadata databáze.
Statistika modulu runtime dotazu sqldb_database_query_runtime_stats 00:15:00 Každý řádek představuje interval modulu runtime úložiště dotazů a zahrnuje statistiky spouštění dotazů.
Statistika čekání dotazu sqldb_database_query_wait_stats 00:15:00 Každý řádek představuje interval modulu runtime úložiště dotazů a zahrnuje statistiky kategorií čekání.
Repliky sqldb_database_replicas 00:00:10 Každý řádek představuje repliku databáze, včetně metadat replikace a statistiky. Zahrnuje primární repliku a geografické repliky při shromažďování na primární a sekundární repliky, když jsou shromážděny na sekundárním serveru.
Využití zdroje sqldb_database_resource_utilization 00:00:15 Každý řádek představuje statistiku využití procesoru, vstupně-výstupních operací protokolů, vstupně-výstupních operací protokolu a dalších prostředků pro databázi v časovém intervalu.
Statistika relace sqldb_database_session_stats 00:01:00 Každý řádek představuje souhrn statistik relací pro databázi agregované atributy relace, jako jsou přihlašovací jméno, název hostitele, název aplikace atd.
Plánovače SOS sqldb_database_sos_schedulers 00:01:00 Každý řádek představuje plánovač SOS a obsahuje statistiky pro plánovač, uzel procesoru a paměťový uzel.
Vstupně-výstupní operace úložiště sqldb_database_storage_io 00:00:10 Každý řádek představuje databázový soubor a obsahuje kumulativní statistiky IOPS, propustnosti a latence souboru.
Využití úložiště sqldb_database_storage_utilization 00:01:00 Každý řádek představuje databázi a zahrnuje její využití úložiště, včetně tempdbúložiště dotazů a úložiště trvalých verzí.
Metadata tabulky sqldb_database_table_metadata 00:30:00 Každý řádek představuje tabulku nebo indexované zobrazení a obsahuje metadata, jako je počet řádků, využití místa, komprese dat, sloupce a omezení.
Statistika čekání sqldb_database_wait_stats 00:00:10 Každý řádek představuje typ čekání a obsahuje kumulativní statistiky čekání instance databázového stroje. Pro databáze v elastickém fondu se shromažďují pouze statistiky čekání v oboru databáze.

Poznámka:

U databází v elastickém fondu se neshromažďují datové sady databáze SQL obsahující data na úrovni fondu. To zahrnuje využití paměti, události mimo paměť, čítače výkonu (běžné) a čítače výkonu (podrobné) datové sady. Datová sada statistik čekání se shromažďuje, ale obsahuje pouze čekání v oboru databáze. Tím se zabrání shromažďování stejných dat z každé databáze ve fondu.

Data na úrovni fondu se shromažďují v datových sadách elastického fondu SQL. U daného elastického fondu obsahují čítače výkonu (běžné) a čítače výkonu (podrobné) metriky na úrovni fondu a určité metriky na úrovni databáze, jako jsou procesor, vstupně-výstupní operace dat, zápis protokolu, požadavky, transakce atd.

Běžné sloupce

Pro každý cílový typ mají datové sady společné sloupce, jak je popsáno v následujících tabulkách.

Název sloupce Popis
sample_time_utc Čas, kdy byly hodnoty v řádku pozorovány, v UTC.
collection_time_utc Čas, kdy byl řádek shromážděn sledovacím procesem, v UTC. Tento sloupec se nachází v datových sadách, kde se čas shromažďování může lišit od ukázkového času.
replica_type Jedna z těchto možností: primární, sekundární, sekundární geografická replikace, pojmenovaná sekundární.
logical_server_name Název logického serveru ve službě Azure SQL Database obsahující monitorovanou databázi nebo elastický fond.
database_name Název monitorované databáze.
database_id ID databáze monitorované databáze, jedinečné v rámci logického serveru.
logical_database_id Jedinečný identifikátor databáze, který po celou dobu životnosti uživatelské databáze zůstává beze změny. Přejmenování databáze nebo změna cíle služby tuto hodnotu nezmění.
physical_database_id Jedinečný identifikátor databáze pro aktuální fyzickou databázi odpovídající uživatelské databázi. Změna cíle databázové služby způsobí, že se tato hodnota změní.
replica_id Jedinečný identifikátor repliky výpočetních prostředků Hyperscale

Datová sada obsahuje sloupce sample_time_utc i collection_time_utc sloupce, pokud obsahuje vzorky pozorované před tím, než byl řádek shromážděn sledovacím procesem databáze. V opačném případě je čas pozorování a čas shromažďování stejný a datová sada obsahuje pouze sample_time_utc sloupec.

Datová sada je například sqldb_database_resource_utilization odvozena z sys.dm_db_resource_stats zobrazení dynamické správy (DMV). Zobrazení dynamické správy obsahuje end_time sloupec, což je čas pozorování pro každý řádek, který hlásí agregované statistiky prostředků pro 15sekundový interval. Tento čas se zobrazí ve sloupci sample_time_utc . Když sledovací proces databáze dotazuje toto zobrazení dynamické správy, sada výsledků může obsahovat více řádků, z nichž každá má jiný end_time. Všechny tyto řádky mají stejnou collection_time_utc hodnotu.