Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
van toepassing op:Azure SQL Database
Azure SQL Managed Instance-
Database watcher verzamelt bewakingsgegevens van SQL-systeemweergaven en neemt deze op in het gegevensarchief in de vorm van gegevenssets. Elke gegevensset wordt gevormd met behulp van de gegevens uit een of meer SQL-systeemweergaven. Voor elke gegevensset is er een afzonderlijke tabel in het gegevensarchief.
Dataverzameling
Database watcher verzamelt bewakingsgegevens met periodieke intervallen met behulp van T-SQL-query's. Gegevens die worden verzameld bij elke uitvoering van een query, worden een voorbeeld genoemd. Frequentie van voorbeeldverzameling verschilt per gegevensset. Het is bijvoorbeeld mogelijk dat gegevens zoals SQL-prestatiemeteritems elke 10 seconden worden verzameld, terwijl meestal statische gegevens, zoals databaseconfiguratie, elke vijf minuten worden verzameld. Zie Gegevenssets voor meer informatie.
Database watcher maakt gebruik van streamingopname in Azure Data Explorer en Real-Time Analytics in Microsoft Fabric om bijna realtime bewaking te bieden. Verzamelde SQL-bewakingsgegevens zijn doorgaans beschikbaar voor rapportage en analyse in minder dan 10 seconden. U kunt de latentie van gegevensopname op de dashboards van de database-watcher bewaken met behulp van de koppeling Gegevensopnamestatistieken .
Interactie tussen database-watcher en toepassingsworkloads
Het inschakelen van database watcher heeft waarschijnlijk geen waarneembare invloed op de prestaties van de toepassingsworkload. Meer frequente bewakingsquery's worden doorgaans uitgevoerd in het onder de seconde bereik, terwijl query's waarvoor mogelijk meer tijd nodig is, bijvoorbeeld om grote gegevenssets te retourneren, met infrequente intervallen worden uitgevoerd.
Om het risico op impact op toepassingsworkloads verder te verminderen, worden alle query's van database-watcher in Azure SQL Database beheerd als een interne workload. Wanneer er sprake is van resourceconflicten, is het resourceverbruik door de bewakingsquery's beperkt tot een klein deel van de totale resources die beschikbaar zijn voor de database. Hiermee krijgen toepassingsworkloads voorrang boven het monitoren van query's.
Om gelijktijdigheidsconflicten, zoals blokkeren en deadlocks tussen gegevensverzameling en databaseworkloads die op uw Azure SQL-resources draaien, te voorkomen, gebruiken de bewakingsquery's korte lock timeouts en een lage deadlock prioriteit. Als er een gelijktijdigheidsconflict is, krijgen de toepassingsworkloadquery’s prioriteit.
In de volgende scenario's ziet u mogelijk hiaten in de verzamelde gegevens:
- Als het totale resourcegebruik hoog is of als gelijktijdigheidsconflicten optreden tussen bewakingsquery's en toepassingsworkloads. In deze gevallen worden monitoring queries gedeprioritiseerd ten behoeve van applicatieworkloads.
- Als u een automatiseringssysteem hebt dat langdurige sessies beëindigt. Om hiaten in verzamelde gegevens te voorkomen, sluit u een sessie uit waarin de
program_namekolom in de sys.dm_exec_sessions systeemweergave isSQLExternalMonitoringofx_ms_reserved_sql_external_monitoring.
Gegevensverzameling in elastische pools
Als u een elastische pool wilt bewaken, moet u één database in de pool aanwijzen als ankerdatabase. Een watcher maakt verbinding met de ankerdatabase. Omdat de watcher de machtiging VIEW SERVER PERFORMANCE STATE, bieden systeemweergaven in de ankerdatabase bewakingsgegevens voor de pool als geheel.
Hint
U kunt een lege database toevoegen aan elke elastische pool die u wilt bewaken en deze aanwijzen als de ankerdatabase. Op deze manier kunt u andere databases in en uit de pool verplaatsen, of tussen pools, zonder de bewaking van elastische pools te onderbreken.
Gegevens die worden verzameld uit de ankerdatabase bevatten metrische gegevens op poolniveau en bepaalde metrische gegevens op databaseniveau voor elke database in de pool, zoals resourcegebruik en metrische gegevens voor aanvraagsnelheid voor elke database. Voor sommige scenario's kan het toevoegen van een SQL-doel voor een elastische pool om een elastische pool als geheel te bewaken, het onnodig maken om elke afzonderlijke database in de pool te bewaken.
Bepaalde bewakingsgegevens, zoals CPU op poolniveau, geheugen, opslaggebruik en wachtstatistieken, worden alleen verzameld op het niveau van de elastische pool, omdat deze niet kunnen worden toegeschreven aan een afzonderlijke database in een pool. Daarentegen zijn bepaalde andere gegevens, zoals queryruntimestatistieken, database-eigenschappen, tabel- en indexmetagegevens, alleen beschikbaar als u afzonderlijke databases als SQL-doelen toevoegt.
Als u afzonderlijke databases uit een elastische pool als SQL-doelen toevoegt, moet u de elastische pool ook toevoegen als een SQL-doel. Op deze manier krijgt u een volledigere weergave van de prestaties van de database en de pool.
Dichte elastische pools bewaken
Een dichte elastische pool bevat een groot aantal databases, maar heeft een relatief kleine rekenkracht. Met deze configuratie kunnen klanten aanzienlijke kostenbesparingen realiseren door de toewijzing van rekenresources tot een minimum te beperken.
Belangrijk is dat bij deze benadering wordt ervan uitgegaan dat slechts een klein aantal databases in de pool tegelijkertijd query's uitvoert.
Waarschuwing
Omdat bewakingsquery's continu moeten worden uitgevoerd in elke bewaakte database, is het niet raadzaam om meer dan een paar afzonderlijke databases in een dichte elastische pool te bewaken.
Als u veel databases uit een dichte elastische pool toevoegt als SQL-doelen, kan het cumulatieve resourcegebruik door de bewakingsquery's die in elke database worden uitgevoerd, van invloed zijn op toepassingsworkloads vanwege onvoldoende resources in de pool.
Om dezelfde reden ziet u mogelijk hiaten in de verzamelde gegevens of groter dan verwachte intervallen tussen gegevensvoorbeelden.
Als u een dichte elastische pool wilt bewaken, schakelt u bewaking op poolniveau in door de elastische pool zelf toe te voegen als een SQL-doel. Door het totale aantal bewakingsquery's in de elastische pool te verminderen, voorkomt u het risico dat dit van invloed is op toepassingsworkloads, terwijl u nog steeds bruikbare gegevens op poolniveau in de gegevenssets van de elastische SQL-pool verzamelt.
Gegevensverzameling in serverloze databases
Als een serverloze database automatisch pauzeren is uitgeschakeld, controleert de databasemonitor deze net zoals een ingerichte database.
Als u automatisch onderbreken inschakelt voor een serverloze database, stopt het verzamelen van database-watchergegevens wanneer de database wordt onderbroken. Database watcher-bewakingsqueries verhinderen niet dat een serverloze database gepauzeerd wordt als deze in aanmerking komt om gepauzeerd te worden.
Kort nadat een serverloze database is overgezet naar een onderbroken status, verandert de status op het overzichtsdashboard van de watcher in Niet verzamelen. De eerder verzamelde gegevens voor de database blijven in het watcher-gegevensarchief en zijn toegankelijk via dashboards en query's.
Het verzamelen van gegevens wordt binnen enkele minuten hervat nadat de database is overgegaan van de pausestand naar de online toestand.
Gegevensopslaglocatie
Klanten kunnen ervoor kiezen om verzamelde SQL-bewakingsgegevens op te slaan in een van de drie typen gegevensarchieven:
Een database in een Azure Data Explorer-cluster . Er wordt standaard een nieuw Azure Data Explorer-cluster gemaakt voor elke nieuwe watcher en bevindt zich in dezelfde Azure-regio als de watcher.
Klanten kunnen de specifieke Azure-regio in een Azure-geografie kiezen als de locatie van hun Azure Data Explorer-cluster en de database. Zie het overzicht van bedrijfscontinuïteit en herstel na noodgevallen voor meer informatie over mogelijkheden voor gegevensreplicatie in Azure Data Explorer.
Een database op een gratis Azure Data Explorer-cluster.
Klanten kunnen de specifieke Azure-geografie kiezen, maar niet de specifieke Azure-regio als de locatie van hun gratis Azure Data Explorer-cluster en de database. Gegevensreplicatie naar een andere regio of geografie wordt niet ondersteund.
Een database in Real-Time Analytics in Microsoft Fabric.
Klanten kunnen de geografische locatie van de database niet kiezen.
Om de gegevenslocatie voor verzamelde SQL-bewakingsgegevens volledig te beheren, moeten klanten een database kiezen in een Azure Data Explorer-cluster als het gegevensarchief.
Klanten kunnen de geografie en regio van hun Azure Data Explorer-cluster afstemmen op de geografie en regio van de Azure SQL-resources die worden bewaakt. Wanneer de Azure SQL-resources zich in meerdere regio's bevinden, moeten klanten mogelijk meerdere watchers en meerdere Azure Data Explorer-clusters maken om te voldoen aan hun vereisten voor gegevenslocatie.
Gegevensverzamelingen
In deze sectie worden de gegevenssets beschreven die beschikbaar zijn voor elk SQL-doeltype, inclusief verzamelingsfrequenties en tabelnamen in het gegevensarchief.
Opmerking
Tijdens de preview kunnen gegevenssets worden toegevoegd en verwijderd. Gegevensseteigenschappen, zoals naam, beschrijving, verzamelingsfrequentie en beschikbare kolommen, kunnen worden gewijzigd.
| Naam van de gegevensset | Tabelnaam | Frequentie van verzamelen (uu:mm:ss) | Beschrijving |
|---|---|---|---|
| Actieve sessies | sqldb_database_active_sessions |
00:00:30 |
Elke rij vertegenwoordigt een sessie waarop een aanvraag wordt uitgevoerd, een blokker is of een geopende transactie heeft. |
| Backupgeschiedenis | sqldb_database_sql_backup_history |
00:05:00 |
Elke rij vertegenwoordigt een voltooide databaseback-up. |
| Wijzigingsverwerking | sqldb_database_change_processing |
00:01:00 |
Elke rij vertegenwoordigt een momentopname van statistische logboekscanstatistieken voor een functie voor wijzigingsverwerking, zoals Change Data Capture of Change Feed (Azure Synapse Link). |
| Fouten bij het verwerken van wijzigingen | sqldb_database_change_processing_errors |
00:01:00 |
Elke rij vertegenwoordigt een fout die is opgetreden tijdens het verwerken van wijzigingen, wanneer u een functie voor wijzigingsverwerking gebruikt, zoals Change Data Capture of Change Feed (Azure Synapse Link). |
| Connectiviteit | sqldb_database_connectivity |
00:00:30 |
Elke rij vertegenwoordigt een connectiviteitstest (een aanmelding en een query) voor een database. |
| Geo-replica's | sqldb_database_geo_replicas |
00:00:30 |
Elke rij vertegenwoordigt een primaire of een secundaire geo-replica, inclusief metagegevens en statistieken van geo-replicatie. |
| Indexmetagegevens | sqldb_database_index_metadata |
00:30:00 |
Elke rij vertegenwoordigt een indexpartitie en bevat indexdefinitie, eigenschappen en operationele statistieken. |
| Geheugengebruik | sqldb_database_memory_utilization |
00:00:30 |
Elke rij vertegenwoordigt een geheugenbeheerder en bevat geheugenverbruik door de beheerder in het exemplaar van de database-engine. |
| Ontbrekende indexen | sqldb_database_missing_indexes |
00:15:00 |
Elke rij vertegenwoordigt een index die de queryprestaties kan verbeteren als deze wordt gemaakt. |
| Gebeurtenissen van onvoldoende geheugen | sqldb_database_oom_events |
00:01:00 |
Elke rij vertegenwoordigt een geheugentekort incident in de database-engine. |
| Prestatiemeters (algemeen) | sqldb_database_performance_counters_common |
00:00:10 |
Elke rij vertegenwoordigt een prestatiemeter van het database-engine-exemplaar. Deze gegevensset bevat veelgebruikte tellers. |
| Prestatiemeteritems (gedetailleerd) | sqldb_database_performance_counters_detailed |
00:01:00 |
Elke rij vertegenwoordigt een prestatiemeter van het database-engine-exemplaar. Deze gegevensset bevat tellers die mogelijk nodig zijn voor gedetailleerde bewaking en probleemoplossing. |
| Eigenschappen | sqldb_database_properties |
00:05:00 |
Elke rij vertegenwoordigt een database en bevat databaseopties, resourcebeheerlimieten en andere databasemetagegevens. |
| Statistieken van query-uitvoering | sqldb_database_query_runtime_stats |
00:15:00 |
Elke rij vertegenwoordigt een Query Store-runtime-interval en bevat queryuitvoeringsstatistieken. |
| Querywachtstatistieken | sqldb_database_query_wait_stats |
00:15:00 |
Elke rij vertegenwoordigt een Runtime-interval van Query Store en bevat wachtcategoriestatistieken. |
| Replica's | sqldb_database_replicas |
00:00:30 |
Elke rij vertegenwoordigt een databasereplica, inclusief replicatiemetagegevens en statistieken. Bevat de primaire replica en geo-replica's wanneer deze op de primaire worden verzameld, en secundaire replica's wanneer ze op een secundaire worden verzameld. |
| Resourcegebruik | sqldb_database_resource_utilization |
00:00:15 |
Elke rij vertegenwoordigt cpu-, gegevens-IO-, logboek-IO- en andere statistieken over resourceverbruik voor een database in een tijdsinterval. |
| Sessiestatistieken | sqldb_database_session_stats |
00:01:00 |
Elke rij vertegenwoordigt een samenvatting van sessiestatistieken voor een database, geaggregeerd door niet-additieve sessiekenmerken zoals aanmeldingsnaam, hostnaam, toepassingsnaam, enzovoort. |
| SOS-planners | sqldb_database_sos_schedulers |
00:01:00 |
Elke rij vertegenwoordigt een SOS-planner en bevat statistieken voor de scheduler, het CPU-knooppunt en het geheugenknooppunt. |
| Opslag-IO | sqldb_database_storage_io |
00:00:10 |
Elke rij vertegenwoordigt een databasebestand en bevat cumulatieve IOPS-, doorvoer- en latentiestatistieken voor het bestand. |
| Opslaggebruik | sqldb_database_storage_utilization |
00:01:00 |
Elke rij vertegenwoordigt een database en bevat het opslaggebruik, waaronder tempdbQuery Store en Permanente versieopslag. |
| Metagegevens van tabel | sqldb_database_table_metadata |
00:30:00 |
Elke rij vertegenwoordigt een tabel of een geïndexeerde weergave en bevat metagegevens zoals aantal rijen, ruimtegebruik, gegevenscompressie, kolommen en beperkingen. Wordt verzameld wanneer het aantal tabellen en geïndexeerde weergaven in de database 100 of minder is. |
| Wachtstatistieken | sqldb_database_wait_stats |
00:00:10 |
Elke rij vertegenwoordigt een wachttype en bevat cumulatieve wachtstatistieken van het exemplaar van de database-engine. Voor databases in een elastische pool worden alleen database-specifieke wachtstatistieken verzameld. |
Opmerking
Voor databases in een elastische groep worden de datasets van de SQL-database met gegevens op poolniveau niet verzameld. Dit omvat het geheugengebruik, out-of-memory gebeurtenissen, prestatiecounters (common) en prestatiecounters (gedetailleerd) gegevenssets. De gegevensset Wachtstatistieken wordt verzameld, maar bevat alleen wachttijden binnen het databasebereik. Dit voorkomt het verzamelen van dezelfde gegevens uit elke database in de pool.
Gegevens op poolniveau worden verzameld in de gegevenssets van de elastische SQL-pool . Voor een bepaalde elastische pool bevatten de prestatiemeteritems (common) en prestatiemeteritems (gedetailleerde) gegevenssets metrische gegevens op poolniveau en bepaalde metrische gegevens op databaseniveau, zoals CPU, Gegevens-I/O, Schrijven van logboeken, Aanvragen, Transacties, enzovoort.
Algemene kolommen
Voor elk TYPE SQL-doel hebben gegevenssets gemeenschappelijke kolommen, zoals beschreven in de volgende tabellen.
| Kolomnaam | Beschrijving |
|---|---|
subscription_id |
De Azure-abonnements-id van de SQL-database. |
resource_group_name |
De naam van de resourcegroep van de SQL-database. |
resource_id |
De Azure-resource-id van de SQL-database. |
sample_time_utc |
Het tijdstip waarop de waarden in de rij werden waargenomen, in UTC. |
collection_time_utc |
Het tijdstip waarop de rij is verzameld door de watcher, in UTC. Deze kolom is aanwezig in gegevenssets waarbij de verzamelingstijd mogelijk verschilt van de voorbeeldtijd. |
replica_type |
Een van: primaire, ha secundaire, geo-replicatie-doorstuurserver, benoemd secundair. |
logical_server_name |
De naam van de logische server in Azure SQL Database die de gemonitorde database of de elastische pool omvat. |
database_name |
De naam van de bewaakte database. |
database_id |
Database-id van de bewaakte database, uniek binnen de logische server. |
logical_database_id |
Een unieke database-id die gedurende de levensduur van de gebruikersdatabase ongewijzigd blijft. Als u de naam van de database wijzigt of de servicedoelstelling wijzigt, wordt deze waarde niet gewijzigd. |
physical_database_id |
Een unieke database-id voor de huidige fysieke database die overeenkomt met de gebruikersdatabase. Als u de databaseservicedoelstelling wijzigt, wordt deze waarde gewijzigd. |
replica_id |
Een unieke identificator voor een Hyperscale-rekenreplica. |
Een gegevensset bevat zowel sample_time_utc- als collection_time_utc-kolommen als het voorbeelden bevat die zijn waargenomen voordat de rij door databasewatcher is verzameld. Anders zijn de observatietijd en verzamelingstijd hetzelfde en bevat de gegevensset alleen de sample_time_utc kolom.
De gegevensset wordt bijvoorbeeld sqldb_database_resource_utilization afgeleid van de sys.dm_db_resource_stats dynamische beheerweergave (DMV). De DMV bevat de end_time kolom, die de observatietijd voor elke rij toont, waarbij de verzamelde resource-statistieken gedurende een interval van 15 seconden worden gerapporteerd. Deze tijd wordt gerapporteerd in de sample_time_utc kolom. Wanneer een watcher deze DMV opvraagt, kan de resultatenset meerdere rijen bevatten, elk met een andere end_time. Al deze rijen hebben dezelfde collection_time_utc waarde.
Verwante inhoud
- Azure SQL-workloads bewaken met databasemonitor (voorbeeldversie)
- Quickstart: Een watcher maken om Azure SQL te bewaken (preview)
- Een watcher maken en configureren (preview)
- Bewakingsgegevens van database-watcher analyseren (preview)
- Database Watcher-waarschuwingen (preview)
- Veelgestelde vragen over Database Watcher