Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
gäller för:Azure SQL Database
Azure SQL Managed Instance
Database Watcher samlar in övervakningsdata från SQL-systemvyer och matar in dem i datalagret i form av datauppsättningar. Varje datauppsättning skapas med hjälp av data från en eller flera SQL-systemvyer. För varje datauppsättning finns det en separat tabell i datalagret.
Datainsamling
Database Watcher samlar in övervakningsdata med jämna mellanrum med hjälp av T-SQL-frågor. Data som samlas in vid varje körning av en sökfråga kallas för ett prov. Exempelinsamlingsfrekvensen varierar beroende på datauppsättning. Till exempel kan data som ändras ofta, till exempel SQL-prestandaräknare, samlas in var 10:e sekund, medan mestadels statiska data som databaskonfiguration kan samlas in var femte minut. Mer information finns i Datauppsättningar.
Database watcher drar nytta av streaming-ingestion i Azure Data Explorer och Real-Time Analytics i Microsoft Fabric för att möjliggöra övervakning i nära realtid. Vanligtvis blir insamlade SQL-övervakningsdata tillgängliga för rapportering och analys på mindre än 10 sekunder. Du kan övervaka latensen för datainmatning på databasövervakaren instrumentpaneler, med hjälp av länken Inmatningsstatistik.
Interaktion mellan databasskådare och programarbetsbelastningar
Det är inte troligt att aktivering av databasövervakare har en märkbar inverkan på programmets arbetsbelastningsprestanda. Vanligare övervakningsfrågor körs vanligtvis i intervallet under sekunden, medan frågor som kan kräva mer tid, till exempel för att returnera stora datamängder, körs med sällan förekommande intervall.
För att ytterligare minska risken för påverkan på programarbetsbelastningar styrs alla databasbevakarfrågor i Azure SQL Database som en intern arbetsbelastning. När det finns resurskonkurrering begränsas resursförbrukningen av övervakningsfrågorna till en liten del av de totala resurser som är tillgängliga för databasen. Detta prioriterar programarbetsbelastningar framför övervakningsfrågor.
För att undvika samtidighetskonflikter som blockeringar och dödlägen mellan datainsamling och databasarbetsbelastningar som körs på dina Azure SQL-resurser använder övervakningsfrågorna korta låstidsgränser och låg dödlägesprioritet. Om det finns en samtidighetskonflikt ges prioritet till programarbetsbelastningsfrågorna.
Du kan observera luckor i insamlade data i följande scenarier:
- Om den totala resursanvändningen är hög eller om samtidighetskonflikter uppstår mellan övervakningsfrågor och programarbetsbelastningar. I dessa fall deprioriteras övervakningsfrågor till förmån för programarbetsbelastningar.
- Om du har automatisering som avslutar långvariga sessioner. Undvik luckor i insamlade data genom att exkludera alla sessioner där
program_namekolumnen i sys.dm_exec_sessions systemvyn ärSQLExternalMonitoringellerx_ms_reserved_sql_external_monitoring.
Datainsamling i elastiska pooler
Om du vill övervaka en elastisk pool måste du ange en databas i poolen som den ankardatabasen. En bevakare ansluter till fästpunktsdatabasen. Eftersom bevakaren har behörigheten VIEW SERVER PERFORMANCE STATE ger systemvyer i ankardatabasen övervakningsdata för hela poolen.
Tips
Du kan lägga till en tom databas i varje elastisk pool som du vill övervaka och ange den som fästpunktsdatabas. På så sätt kan du flytta andra databaser till och från poolen, eller mellan pooler, utan att avbryta övervakningen av elastiska pooler.
Data som samlas in från ankardatabasen innehåller mått på poolnivå och vissa prestandamått på databasnivå för varje databas i poolen, till exempel resursanvändning och mått för begärandefrekvens för varje databas. För vissa scenarier kan det göra det onödigt att övervaka varje enskild databas i poolen genom att lägga till ett SQL-mål för elastisk pool för att övervaka en elastisk pool som helhet.
Vissa övervakningsdata som processor på poolnivå, minne, lagringsanvändning och väntestatistik samlas bara in på elastisk poolnivå eftersom de inte kan hänföras till en enskild databas i en pool. Omvänt är vissa andra data, till exempel frågekörningsstatistik, databasegenskaper, tabell- och indexmetadata, endast tillgängliga om du lägger till enskilda databaser som SQL-mål.
Om du lägger till enskilda databaser från en elastisk pool som SQL-mål bör du även lägga till den elastiska poolen som ETT SQL-mål. På så sätt får du en mer fullständig vy över databasens och poolens prestanda.
Övervaka kompakta elastiska pooler
En kompakt elastisk pool innehåller ett stort antal databaser, men har en relativt liten beräkningsstorlek. Med den här konfigurationen kan kunderna uppnå betydande kostnadsbesparingar genom att hålla beräkningsresursallokeringen till ett minimum.
Det är viktigt att den här metoden förutsätter att endast ett litet antal databaser i poolen har frågor som körs samtidigt.
Varning
Eftersom övervakningsfrågor måste köras kontinuerligt i varje övervakad databas rekommenderar vi inte att du övervakar fler än några enskilda databaser i en tät elastisk pool.
Om du lägger till många databaser från en tät elastisk pool som SQL-mål kan den kumulativa resursanvändningen av övervakningsfrågorna som körs i varje databas påverka programarbetsbelastningarna på grund av otillräckliga resurser i poolen.
Av samma anledning kan du se luckor i insamlade data eller större intervall än förväntat mellan dataexempel.
Om du vill övervaka en tät elastisk pool aktiverar du övervakning på poolnivå genom att lägga till den elastiska poolen som ett SQL-mål. Genom att minska det totala antalet övervakningsfrågor i den elastiska poolen undviker du risken för att påverka programarbetsbelastningar, samtidigt som du samlar in åtgärdsbara data på poolnivå i sql-datauppsättningarna för elastiska pooler.
Datainsamling i serverlösa databaser
Om en serverlös databas har automatisk paus inaktiverad, övervakar databasbevakaren den precis som en etablerad databas.
Om du aktiverar automatisk paus på en serverlös databas, stoppas databasövervakningsinsamlingen när databasen pausas. Övervakningsfrågor för databasbevakare förhindrar inte att en serverlös databas pausas om den är berättigad att pausas annars.
Kort efter att en serverlös databas övergår till ett pausat tillstånd ändras dess status på instrumentpanelen för visningssammanfattning till Inte samla in. Tidigare insamlade data för databasen finns kvar i bevakardatalagret och är tillgängliga via instrumentpaneler och frågor.
Datainsamlingen återupptas inom några minuter efter att databasen har övergått från läget Pausad till Online .
Datalagringsplats
Kunder kan välja att lagra insamlade SQL-övervakningsdata i någon av tre typer av datalager:
En databas i ett Azure Data Explorer kluster. Som standard skapas ett nytt Azure Data Explorer-kluster för varje ny bevakare och finns i samma Azure-region som bevakaren.
Kunder kan välja den specifika Azure-regionen i ett Azure-geografiskt område som plats för sitt Azure Data Explorer-kluster och databasen. Mer information om datareplikeringsfunktioner i Azure Data Explorer finns i Översikt över affärskontinuitet och haveriberedskap.
En databas i ett kostnadsfritt Azure Data Explorer-kluster.
Kunder kan välja den specifika Azure-geografin, men inte den specifika Azure-regionen som plats för sitt kostnadsfria Azure Data Explorer-kluster och databasen. Datareplikering till en annan region eller geografi stöds inte.
En databas i Real-Time Analytics i Microsoft Fabric.
Kunder kan inte välja databasens geografiska plats.
För att fullständigt kontrollera datahemvist för insamlade SQL-övervakningsdata måste kunderna välja en databas i ett Azure Data Explorer-kluster som datalager.
Kunder kan anpassa geografin och regionen för sitt Azure Data Explorer-kluster till geografin och regionen för De Azure SQL-resurser som övervakas. När Azure SQL-resurserna finns i flera regioner kan kunderna behöva skapa flera bevakare och flera Azure Data Explorer-kluster för att uppfylla sina krav på datahemvist.
Datauppsättningar
I det här avsnittet beskrivs de datauppsättningar som är tillgängliga för varje SQL-måltyp, inklusive insamlingsfrekvenser och tabellnamn i datalagret.
Anmärkning
Under förhandsversionen kan datauppsättningar läggas till och tas bort. Datamängdsegenskaper som namn, beskrivning, insamlingsfrekvens och tillgängliga kolumner kan komma att ändras.
| Namn på datauppsättning | Tabellnamn | Samlingsfrekvens (hh:mm:ss) | Beskrivning |
|---|---|---|---|
| Aktiva sessioner | sqldb_database_active_sessions |
00:00:30 |
Varje rad representerar en session som kör en begäran, är en blockerare eller har en öppen transaktion. |
| Säkerhetskopieringshistorik | sqldb_database_sql_backup_history |
00:05:00 |
Varje rad representerar en slutförd databassäkerhetskopia. |
| Ändringsbearbetning | sqldb_database_change_processing |
00:01:00 |
Varje rad representerar en ögonblicksbild av sammanställd logggenomsökningsstatistik för en ändringsbearbetningsfunktion, till exempel Ändringsdatainsamling eller Ändringsflöde (Azure Synapse Link). |
| Fel vid ändringsbearbetning | sqldb_database_change_processing_errors |
00:01:00 |
Varje rad representerar ett fel som uppstod under ändringsbearbetningen när en ändringsbearbetningsfunktion används, till exempel Ändringsdatainsamling eller Ändringsflöde (Azure Synapse Link). |
| Uppkoppling | sqldb_database_connectivity |
00:00:30 |
Varje rad representerar en anslutningsavsökning (en inloggning och en fråga) för en databas. |
| Geo-repliker | sqldb_database_geo_replicas |
00:00:30 |
Varje rad representerar en primär eller en sekundär geo-replik, inklusive geo-replikeringsmetadata och statistik. |
| Indexmetadata | sqldb_database_index_metadata |
00:30:00 |
Varje rad representerar en indexpartition och innehåller indexdefinition, egenskaper och driftstatistik. |
| Minnesanvändning | sqldb_database_memory_utilization |
00:00:30 |
Varje rad representerar en minneshanterare och inkluderar minnesförbrukning av hanteraren på instansen av databasmotorn. |
| Index saknas | sqldb_database_missing_indexes |
00:15:00 |
Varje rad representerar ett index som kan förbättra frågeprestanda om den skapas. |
| Minneshanteringshändelser | sqldb_database_oom_events |
00:01:00 |
Varje rad representerar en minnesfri händelse i databasmotorn. |
| Prestandaräknare (vanliga) | sqldb_database_performance_counters_common |
00:00:10 |
Varje rad representerar en prestandaräknare för databasmotorinstansen. Den här datamängden innehåller vanliga räknare. |
| Prestandaräknare (detaljerad) | sqldb_database_performance_counters_detailed |
00:01:00 |
Varje rad representerar en prestandaräknare för databasmotorinstansen. Den här datamängden innehåller räknare som kan behövas för detaljerad övervakning och felsökning. |
| Egenskaper | sqldb_database_properties |
00:05:00 |
Varje rad representerar en databas och innehåller databasalternativ, resursstyrningsgränser och andra databasmetadata. |
| Frågekörningsstatistik | sqldb_database_query_runtime_stats |
00:15:00 |
Varje rad representerar ett Query Store-körningsintervall och innehåller frågekörningsstatistik. |
| Statistik för frågeväntetid | sqldb_database_query_wait_stats |
00:15:00 |
Varje rad representerar ett Query Store-körningsintervall och innehåller statistik för väntekategori. |
| Kopior | sqldb_database_replicas |
00:00:30 |
Varje rad representerar en databasreplik, inklusive replikeringsmetadata och statistik. Inkluderar den primära repliken och geo-replikerna när de samlas in på den primära, och de sekundära replikerna när de samlas in på en sekundär. |
| Resursutnyttjande | sqldb_database_resource_utilization |
00:00:15 |
Varje rad representerar cpu, data-I/O, logg-I/O och annan resursförbrukningsstatistik för en databas i ett tidsintervall. |
| Sessionsstatistik | sqldb_database_session_stats |
00:01:00 |
Varje rad representerar en sammanfattning av sessionsstatistik för en databas, aggregerad efter icke-additiva sessionsattribut, till exempel inloggningsnamn, värdnamn, programnamn osv. |
| SOS-schemaläggare | sqldb_database_sos_schedulers |
00:01:00 |
Varje rad representerar en SOS-schemaläggare och innehåller statistik för schemaläggaren, CPU-noden och minnesnoden. |
| Lagrings-I/O | sqldb_database_storage_io |
00:00:10 |
Varje rad representerar en databasfil och innehåller kumulativ IOPS, dataflöde och svarstidsstatistik för filen. |
| Lagringsanvändning | sqldb_database_storage_utilization |
00:01:00 |
Varje rad representerar en databas och innehåller dess lagringsanvändning, inklusive tempdb, Query Store och Persistent Version Store. |
| Metadata för tabell | sqldb_database_table_metadata |
00:30:00 |
Varje rad representerar en tabell eller en indexerad vy och innehåller metadata som radantal, utrymmesanvändning, datakomprimering, kolumner och begränsningar. Samlas in när antalet tabeller och indexerade vyer i databasen är 100 eller mindre. |
| Väntestatistik | sqldb_database_wait_stats |
00:00:10 |
Varje rad representerar en väntetyp och innehåller kumulativ väntestatistik för databasmotorinstansen. För databaser i en elastisk pool samlas endast väntestatistik med databasomfattning in. |
Anmärkning
För databaser i en elastisk pool samlas inte SQL-databas datauppsättningar som innehåller poolnivådata in. Detta omfattar minnesanvändning, out-of-memory-händelser, prestandaräknare (vanliga)och prestandaräknare (detaljerad) datauppsättningar. Väntestatistik uppsättningen samlas in men innehåller endast väntetider inom databasen. På så sätt undviker du insamling av samma data från varje databas i poolen.
Data på poolnivå samlas in i den elastiska SQL-poolen :s-datauppsättningarna. För en viss elastisk pool innehåller prestandaräknare (vanliga)- och prestandaräknare (detaljerade) datauppsättningar mått på poolnivå och vissa mått på databasnivå, till exempel CPU, Data IO, Log write, Requests, Transactionsosv.
Vanliga kolumner
För varje SQL-måltyp har datauppsättningar vanliga kolumner, enligt beskrivningen i följande tabeller.
| Kolumnnamn | Beskrivning |
|---|---|
subscription_id |
Azure-prenumerations-ID för SQL-databasen. |
resource_group_name |
Resursgruppens namn på SQL-databasen. |
resource_id |
Azure-resurs-ID för SQL-databasen. |
sample_time_utc |
Tiden då värdena på raden observerades i UTC. |
collection_time_utc |
Tiden då raden samlas in av övervakaren i UTC. Den här kolumnen finns i datauppsättningar där insamlingstiden kan skilja sig från exempeltiden. |
replica_type |
En av: Primär, HA sekundär, Geo-replikering vidarebefordrare, Namngiven sekundär. |
logical_server_name |
Namnet på den logiska servern i Azure SQL Database som innehåller den övervakade databasen eller den elastiska poolen. |
database_name |
Namnet på den övervakade databasen. |
database_id |
Databas-ID för den övervakade databasen, unikt inom den logiska servern. |
logical_database_id |
En unik databasidentifierare som förblir oförändrad under användardatabasens livslängd. Att byta namn på databasen eller ändra tjänstmålet ändrar inte det här värdet. |
physical_database_id |
En unik databasidentifierare för den aktuella fysiska databasen som motsvarar användardatabasen. Om du ändrar databastjänstens mål ändras det här värdet. |
replica_id |
En unik identifierare för en beräkningsreplika för Hyperscale . |
En datauppsättning har både sample_time_utc och collection_time_utc kolumner om den innehåller exempel som observerats innan raden samlades in av databasskådaren. Annars är observationstiden och insamlingstiden desamma och datauppsättningen innehåller endast kolumnen sample_time_utc.
Till exempel härrör datauppsättningen sqldb_database_resource_utilization från den dynamiska hanteringsvyn sys.dm_db_resource_stats (DMV). DMV innehåller kolumnen end_time, vilket är observationstiden för varje rad som rapporterar aggregerad resursstatistik för ett intervall på 15 sekunder. Tiden rapporteras i kolumnen sample_time_utc. När en bevakare gör en förfrågan till denna DMV-tabell kan resultaten innehålla flera rader, varje med ett annorlunda end_time. Alla dessa rader har samma collection_time_utc värde.
Relaterat innehåll
- Övervaka Azure SQL-arbetsbelastningar med databasövervakare (förhandsversion)
- Snabbstart: Skapa en bevakare för att övervaka Azure SQL (förhandsversion)
- Skapa och konfigurera en bevakare (förhandsversion)
- Analysera data från databasövervakare (förhandsversion)
- Database Watcher-aviseringar (förhandsversion)
- Vanliga frågor och svar om Database Watcher