Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy do:Azure SQL Database
Azure SQL Managed Instance
Baza danych SQL w Microsoft Fabric
Zwraca zestaw ostatnich zdarzeń braku pamięci (OOM).
Aby uzyskać więcej informacji na temat warunków braku pamięci w usłudze Azure SQL Database, zobacz Rozwiązywanie problemów z błędami braku pamięci w usłudze Azure SQL Database.
| Nazwa kolumny | Typ danych | Opis |
|---|---|---|
event_time |
data/godzina | Czas zdarzenia OOM. Nie jest nullowalny. |
oom_cause |
tinyint | Wartość liczbowa wskazująca główną przyczynę OOM. Przyczyna OOM jest określana przez algorytm heurystyczny i zapewnia skończony stopień ufności. Nie jest nullowalny. |
oom_cause_desc |
nvarchar(30) | Opis elementu oom_cause. Nie jest nullowalny.0. UNKNOWN — Nie można ustalić przyczyny OOM1. HEKATON_POOL_MEMORY_LOW — niewystarczająca ilość pamięci w puli zasobów używanej do In-Memory OLTP. Aby uzyskać więcej informacji, zobacz Monitorowanie In-Memory OLTP. 2. MEMORY_LOW — Niewystarczająca ilość pamięci dostępnej dla procesu aparatu bazy danych3. OS_MEMORY_PRESSURE — OOM ze względu na wykorzystanie pamięci zewnętrznej z systemu operacyjnego4. OS_MEMORY_PRESSURE_SQL — OOM ze względu na wykorzystanie pamięci zewnętrznej z innych wystąpień aparatu bazy danych5. NON_SOS_MEMORY_LEAK — OOM spowodowany wyciekiem w pamięci innej niż SOS, na przykład załadowane moduły6. SERVERLESS_MEMORY_RECLAMATION — OOM związane z odzyskiwaniem pamięci w bezserwerowej bazie danych7. MEMORY_LEAK — OOM z powodu przecieku w pamięci SOS8. SLOW_BUFFER_POOL_SHRINK — OOM ze względu na to, że pula nie zwalnia pamięci wystarczająco szybko pod ciśnieniem pamięci9. INTERNAL_POOL — Niewystarczająca ilość pamięci w wewnętrznej puli zasobów10. SYSTEM_POOL — Niewystarczająca ilość pamięci w puli zasobów systemowych11. QUERY_MEMORY_GRANTS — OOM ze względu na duże przydziały pamięci przechowywane przez zapytania12. REPLICAS_AND_AVAILABILITY — OOM ze względu na obciążenia w puli zasobów SloSecSharedPool |
available_physical_memory_mb |
Int | Dostępna pamięć fizyczna w megabajtach. Nie jest nullowalny. |
initial_job_object_memory_limit_mb |
Int | Limit pamięci obiektu zadania podczas uruchamiania aparatu bazy danych w megabajtach. Aby uzyskać więcej informacji na temat obiektów zadań, zobacz Zarządzanie zasobami. Zmienna mogąca przyjmować wartość null. |
current_job_object_memory_limit_mb |
Int | Limit pamięci obiektu zadania w megabajtach. Zmienna mogąca przyjmować wartość null. |
process_memory_usage_mb |
Int | Łączne użycie pamięci procesu w megabajtach przez wystąpienie. Nie jest nullowalny. |
non_sos_memory_usage_mb |
Int | Użycie innych niż SOS w megabajtach, w tym wątki utworzone przez sos, wątki utworzone przez składniki inne niż SOS, załadowane biblioteki DLL itp. Nie może zawierać wartości null. |
committed_memory_target_mb |
Int | Pamięć docelowa SOS w megabajtach. Nie jest nullowalny. |
committed_memory_mb |
Int | Pamięć zatwierdzona przez sos w megabajtach. Nie jest nullowalny. |
allocation_potential_memory_mb |
Int | Pamięć dostępna dla wystąpienia aparatu bazy danych dla nowych alokacji w megabajtach. Nie jest nullowalny. |
oom_factor |
tinyint | Wartość, która udostępnia dodatkowe informacje związane ze zdarzeniem OOM, tylko do użytku wewnętrznego. Nie jest nullowalny. |
oom_factor_desc |
nvarchar(30) | Opis elementu oom_factor. Tylko do użytku wewnętrznego. Nie jest nullowalny.0 - UNDEFINED1 - ALLOCATION_POTENTIAL2 - BLOCK_ALLOCATOR3 - ESCAPE_TIMEOUT4 - FAIL_FAST5 - MEMORY_POOL6 - EMERGENCY_ALLOCATOR7 - VIRTUAL_ALLOC8 - SIMULATED9 - BUF_ALLOCATOR10 - QUERY_MEM_QUEUE11 - FRAGMENT12 - INIT_DESCRIPTOR13 - MEMORY_POOL_PRESSURE14 - DESCRIPTOR_ALLOCATOR15 - DESCRIPTOR_ALLOCATOR_ESCAPE |
oom_resource_pools |
nvarchar(4000) | Pule zasobów, które są poza pamięcią, w tym statystyki użycia pamięci dla każdej puli. Te informacje są dostarczane jako wartość JSON. Zmienna mogąca przyjmować wartość null. |
top_memory_clerks |
nvarchar(4000) | Najważniejsze urzędy pamięci według użycia pamięci, w tym statystyki użycia pamięci dla każdego urzędnika. Te informacje są dostarczane jako wartość JSON. Zmienna mogąca przyjmować wartość null. |
top_resource_pools |
nvarchar(4000) | Najważniejsze pule zasobów według użycia pamięci, w tym statystyki użycia pamięci dla każdej puli zasobów. Te informacje są dostarczane jako wartość JSON. Zmienna mogąca przyjmować wartość null. |
possible_leaked_memory_clerks |
nvarchar(4000) | pamięci, które wyciekły pamięci. Na podstawie heurystyki i zapewnia skończony stopień pewności siebie. Te informacje są dostarczane jako wartość JSON. Zmienna mogąca przyjmować wartość null. |
possible_non_sos_leaked_memory_mb |
Int | Wyciekła pamięć niezwiązana z sosem w megabajtach, jeśli istnieje. Na podstawie heurystyki i zapewnia skończony stopień pewności siebie. Zmienna mogąca przyjmować wartość null. |
Uprawnienia
W usłudze Azure SQL Managed Instance wymagane jest VIEW SERVER PERFORMANCE STATE uprawnienie.
W usłudze SQL Database VIEW DATABASE PERFORMANCE STATE w bazie danych lub członkostwo w roli serwera ##MS_ServerPerformanceStateReader##.
Uwagi
Każdy wiersz w tym widoku reprezentuje zdarzenie braku pamięci (OOM), które wystąpiło w akompacie bazy danych. Nie wszystkie zdarzenia OOM mogą być przechwytywane. Starsze zdarzenia OOM mogą zniknąć z zestawu wyników w miarę występowania najnowszych zdarzeń OOM. Zestaw wyników nie jest utrwalany podczas ponownego uruchamiania aparatu bazy danych.
Obecnie ten DMV jest widoczny, ale nie jest wspierany w SQL Server 2022 (16.x) i SQL Server 2025 (17.x).
zdarzenie rozszerzone summarized_oom_snapshot
Zdarzenie summarized_oom_snapshot rozszerzone jest częścią system_health sesji zdarzeń, aby uprościć wykrywanie zdarzeń braku pamięci. Każde summarized_oom_snapshot zdarzenie rozszerzone odpowiada wierszowi w pliku sys.dm_os_out_of_memory_events. Aby uzyskać więcej informacji, zobacz Blog: nowy sposób rozwiązywania problemów z błędami braku pamięci w a aparatze bazy danych.
Przykłady
Odp. Pobieranie wszystkich dostępnych zdarzeń OOM
Poniższy przykład zwraca wszystkie dane zdarzenia uporządkowane ostatnio dla aparatu bazy danych obsługującego aktualnie połączoną bazę danych.
SELECT *
FROM sys.dm_os_out_of_memory_events
ORDER BY event_time DESC;
B. Pobieranie najwyższych urzędów obsługi pamięci dla każdego zdarzenia OOM
Poniższy przykład zwraca podzbiór danych zdarzenia i rozszerza dane JSON w kolumnie top_memory_clerks . Każdy wiersz w zestawie wyników reprezentuje najwyższy urzędnik pamięci dla określonego zdarzenia OOM.
SELECT event_time,
oom_cause_desc,
oom_factor_desc,
oom_resource_pools,
top_resource_pools,
clerk_type_name,
clerk_page_allocated_mb,
clerk_vm_committed_mb
FROM sys.dm_os_out_of_memory_events
CROSS APPLY OPENJSON(top_memory_clerks)
WITH (
clerk_type_name sysname '$.clerk_type_name',
clerk_page_allocated_mb bigint '$.page_allocated_mb',
clerk_vm_committed_mb bigint '$.vm_committed_mb'
)
ORDER BY event_time DESC, clerk_page_allocated_mb DESC;
C. Pobieranie pul zasobów dla każdego zdarzenia OOM
Poniższy przykład zwraca podzbiór danych zdarzenia i rozszerza dane JSON w kolumnie top_resource_pools . Każdy wiersz w zestawie wyników reprezentuje górną pulę zasobów dla określonego zdarzenia OOM.
SELECT event_time,
oom_cause_desc,
oom_factor_desc,
oom_resource_pools,
top_memory_clerks,
pool_name,
pool_allocations_mb,
pool_target_mb,
pool_is_oom
FROM sys.dm_os_out_of_memory_events
CROSS APPLY OPENJSON(top_resource_pools)
WITH (
pool_name sysname '$.pool_name',
pool_allocations_mb bigint '$.allocations_mb',
pool_target_mb bigint '$.pool_target_mb',
pool_is_oom bit '$.is_oom'
)
ORDER BY event_time DESC, pool_allocations_mb DESC;
Treści powiązane
- sys.resource_stats
- sys.server_resource_stats
- sys.dm_db_resource_stats (Azure SQL Database)
- Optymalizowanie wydajności przy użyciu technologii w pamięci w usłudze Azure SQL Database
- Optymalizowanie wydajności przy użyciu technologii w pamięci w usłudze Azure SQL Managed Instance
- Monitor In-Memory magazynu OLTP w usłudze Azure SQL Database
- Monitor In-Memory MAGAZYNU OLTP w usłudze Azure SQL Managed Instance
- Rozwiązywanie problemów z błędami braku pamięci za pomocą bazy danych Azure SQL Database