Udostępnij za pomocą


sys.dm_os_sys_info (Transact-SQL)

Dotyczy:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

Zwraca różne zestaw przydatnych informacji o komputerze oraz zasoby dostępne dla programu SQL Server i używane przez program SQL Server.

Uwaga / Notatka

Aby wywołać to z usługi Azure Synapse Analytics lub Analytics Platform System (PDW), użyj nazwy sys.dm_pdw_nodes_os_sys_info. Ta składnia nie jest obsługiwana przez bezserwerową pulę SQL w usłudze Azure Synapse Analytics.

Nazwa kolumny Typ danych Opis i uwagi dotyczące wersji
cpu_ticks bigint Określa bieżącą liczbę kontroli procesora CPU. Znaczniki procesora są uzyskiwane z licznika RDTSC procesora. Jest to monotonicznie rosnąca liczba. Nie może być null.
ms_ticks bigint Określa liczbę milisekund od uruchomienia komputera. Nie może być null.
cpu_count int Określa liczbę procesorów logicznych w systemie. Nie może być null.

W usłudze Azure SQL Database ta kolumna może zwrócić liczbę procesorów logicznych na maszynie obsługującej bazę danych lub pulę elastyczną. Aby określić liczbę procesorów logicznych dostępnych dla bazy danych lub elastycznej puli, użyj cpu_limit kolumny w sys.dm_user_db_resource_governance.
hyperthread_ratio int Określa stosunek liczby rdzeni logicznych lub fizycznych, które są uwidocznione przez jeden fizyczny pakiet procesora. Nie może być null.
physical_memory_in_bytes bigint Dotyczy: SQL Server 2008 (10.0.x) i SQL Server 2008 R2 (10.50.x).

Określa łączną ilość pamięci fizycznej na maszynie. Nie może być null.
physical_memory_kb bigint Dotyczy: SQL Server 2012 (11.x) i nowsze wersje.

Określa łączną ilość pamięci fizycznej na maszynie. Nie może być null.

W usłudze Azure SQL Database ta kolumna zwraca całkowitą ilość pamięci fizycznej na maszynie hostująca bazę danych lub elastyczną pulę. Aby określić ilość pamięci fizycznej dostępnej dla bazy danych lub elastycznej puli, użyj process_memory_limit_mb kolumny w sys.dm_os_job_object.
virtual_memory_in_bytes bigint Dotyczy: SQL Server 2008 (10.0.x) i SQL Server 2008 R2 (10.50.x).

Ilość pamięci wirtualnej dostępnej dla procesu w trybie użytkownika. Tej wartości można użyć do określenia, czy program SQL Server został uruchomiony przy użyciu przełącznika 3 GB.
virtual_memory_kb bigint Dotyczy: SQL Server 2012 (11.x) i nowsze wersje.

Określa łączną ilość wirtualnej przestrzeni adresowej dostępnej dla procesu w trybie użytkownika. Nie może być null.
bpool_committed int Dotyczy: SQL Server 2008 (10.0.x) i SQL Server 2008 R2 (10.50.x).

Reprezentuje zatwierdzoną pamięć w kilobajtach (KB) w menedżerze pamięci. Nie obejmuje pamięci zarezerwowanej w menedżerze pamięci. Nie może być null.
committed_kb bigint Dotyczy: SQL Server 2012 (11.x) i nowsze wersje.

Reprezentuje zatwierdzoną pamięć w kilobajtach (KB) w menedżerze pamięci. Nie obejmuje pamięci zarezerwowanej w menedżerze pamięci. Nie może być null.
bpool_commit_target int Dotyczy: SQL Server 2008 (10.0.x) i SQL Server 2008 R2 (10.50.x).

Reprezentuje ilość pamięci w kilobajtach (KB), które mogą być używane przez menedżera pamięci programu SQL Server.
committed_target_kb bigint Dotyczy: SQL Server 2012 (11.x) i nowsze wersje.

Reprezentuje ilość pamięci w kilobajtach (KB), które mogą być używane przez menedżera pamięci programu SQL Server. Kwota docelowa jest obliczana przy użyciu kilku danych wejściowych, takich jak:

- bieżący stan systemu, w tym jego obciążenie
— pamięć żądana przez bieżące procesy
— ilość pamięci zainstalowanej na komputerze
- parametry konfiguracji

Jeśli committed_target_kb wartość jest większa niż committed_kb, menedżer pamięci próbuje uzyskać więcej pamięci. Jeśli committed_target_kb wartość jest mniejsza niż committed_kb, menedżer pamięci próbuje zmniejszyć ilość pamięci zatwierdzonej. Zawsze committed_target_kb obejmuje skradzioną i zarezerwowaną pamięć. Nie może być null.
bpool_visible int Dotyczy: SQL Server 2008 (10.0.x) i SQL Server 2008 R2 (10.50.x).

Liczba 8 KB w puli, które są bezpośrednio dostępne w wirtualnej przestrzeni adresowej procesu. Jeśli nie używasz rozszerzeń okien adresowych (AWE), gdy pula uzyskuje cel pamięci (bpool_committed = bpool_commit_target), wartość bpool_visible jest równa wartości bpool_committed. W przypadku korzystania z usługi AWE w 32-bitowej wersji programu SQL Server bpool_visible reprezentuje rozmiar okna mapowania AWE używanego do uzyskiwania dostępu do pamięci fizycznej przydzielonej przez pulę. Rozmiar tego okna mapowania jest powiązany z przestrzenią adresową procesu, dlatego widoczna ilość jest mniejsza niż zatwierdzona kwota. Ta wartość może być dodatkowo zmniejszona przez składniki wewnętrzne zużywające pamięć do celów innych niż strony bazy danych. Jeśli wartość bpool_visible jest zbyt niska, mogą wystąpić błędy braku pamięci.
visible_target_kb bigint Dotyczy: SQL Server 2012 (11.x) i nowsze wersje.

Jest taka sama jak committed_target_kb. Nie może być null.
stack_size_in_bytes int Określa rozmiar stosu wywołań dla każdego wątku utworzonego przez program SQL Server. Nie może być null.
os_quantum bigint Reprezentuje kwant dla zadania niewłaściwego mierzonego w milisekundach. Quantum (w sekundach) = os_quantum / szybkość zegara procesora CPU. Nie może być null.
os_error_mode int Określa tryb błędu dla procesu programu SQL Server. Nie może być null.
os_priority_class int Określa klasę priorytetu dla procesu programu SQL Server. Nullable.

32 = Normalny. Dziennik błędów informuje, że program SQL Server zaczyna się od normalnego priorytetu podstawowego (7).
128 = Wysoki. Dziennik błędów informuje, że program SQL Server działa w bazie o wysokim priorytcie (13).

Aby uzyskać więcej informacji, zobacz Konfigurowanie zwiększenia priorytetu (opcja konfiguracji serwera).
max_workers_count int Reprezentuje maksymalną liczbę procesów roboczych, które można utworzyć. Nie może być null.
scheduler_count int Reprezentuje liczbę harmonogramów użytkowników skonfigurowanych w procesie programu SQL Server. Nie może być null.
scheduler_total_count int Reprezentuje łączną liczbę harmonogramów w programie SQL Server. Nie może być null.
deadlock_monitor_serial_number int Określa identyfikator bieżącej sekwencji monitora zakleszczenia. Nie może być null.
sqlserver_start_time_ms_ticks bigint Reprezentuje liczbę po ostatnim uruchomieniu ms_tick programu SQL Server. Porównaj z bieżącą ms_ticks kolumną. Nie może być null.
sqlserver_start_time datetime Określa lokalną datę i godzinę ostatniego uruchomienia programu SQL Server. Nie może być null.

Informacje w wielu innych widokach DMV programu SQL Server obejmują tylko działania od czasu ostatniego uruchomienia aparatu bazy danych. Użyj tej kolumny, aby znaleźć ostatni czas uruchamiania aparatu bazy danych programu SQL Server.
affinity_type int Dotyczy: SQL Server 2008 R2 (10.50.x) i nowsze wersje.

Określa typ koligacji procesu procesora CPU serwera aktualnie używany. Nie może być null. Aby uzyskać więcej informacji, zobacz ALTER SERVER CONFIGURATION (Transact-SQL).

1 = MANUAL
2 = AUTO
affinity_type_desc nvarchar(60) Dotyczy: SQL Server 2008 R2 (10.50.x) i nowsze wersje.

Opisuje kolumnę affinity_type . Nie może być null.

MANUAL = koligacja została ustawiona dla co najmniej jednego procesora CPU.
AUTO = program SQL Server może swobodnie przenosić wątki między procesorami CPU.
process_kernel_time_ms bigint Dotyczy: SQL Server 2008 R2 (10.50.x) i nowsze wersje.

Łączny czas w milisekundach spędzony przez wszystkie wątki programu SQL Server w trybie jądra. Ta wartość może być większa niż jeden zegar procesora, ponieważ obejmuje czas dla wszystkich procesorów na serwerze. Nie może być null.
process_user_time_ms bigint Dotyczy: SQL Server 2008 R2 (10.50.x) i nowsze wersje.

Łączny czas w milisekundach spędzony przez wszystkie wątki programu SQL Server w trybie użytkownika. Ta wartość może być większa niż jeden zegar procesora, ponieważ obejmuje czas dla wszystkich procesorów na serwerze. Nie może być null.
time_source int Dotyczy: SQL Server 2008 R2 (10.50.x) i nowsze wersje.

Wskazuje interfejs API używany przez program SQL Server do pobierania zegara ściany. Nie może być null.

0 = QUERY_PERFORMANCE_COUNTER
1 = MULTIMEDIA_TIMER
time_source_desc nvarchar(60) Dotyczy: SQL Server 2008 R2 (10.50.x) i nowsze wersje.

Opisuje kolumnę time_source . Nie może być null.

QUERY_PERFORMANCE_COUNTER = interfejs API QueryPerformanceCounter pobiera czas zegara ściany.
MULTIMEDIA_TIMER = interfejs API czasomierza multimediów , który pobiera czas zegara ściany.
virtual_machine_type int Dotyczy: SQL Server 2008 R2 (10.50.x) i nowsze wersje.

Wskazuje, czy program SQL Server działa w środowisku zwirtualizowanym. Nie może być null.

0 = NONE
1 = HYPERVISOR
2 = OTHER
virtual_machine_type_desc nvarchar(60) Dotyczy: SQL Server 2008 R2 (10.50.x) i nowsze wersje.

Opisuje kolumnę virtual_machine_type . Nie może być null.

NONE = program SQL Server nie działa na maszynie wirtualnej.
HYPERVISOR = program SQL Server działa na maszynie wirtualnej hostowanej przez system operacyjny z uruchomioną funkcją hypervisor (system operacyjny hosta, który wykorzystuje wirtualizację wspomaganą sprzętowo).
OTHER = program SQL Server działa na maszynie wirtualnej hostowanej przez system operacyjny, który nie korzysta z asystenta sprzętowego, takiego jak Microsoft Virtual PC.
softnuma_configuration int Dotyczy: SQL Server 2016 (13.x) i nowsze wersje.

Określa sposób konfigurowania węzłów NUMA. Nie może być null.

0 = OFF wskazuje wartość domyślną sprzętu
1 = Zautomatyzowane soft-NUMA
2 = Ręczne soft-NUMA za pośrednictwem rejestru
softnuma_configuration_desc nvarchar(60) Dotyczy: SQL Server 2016 (13.x) i nowsze wersje.

OFF = funkcja Soft-NUMA jest wyłączona
ON = program SQL Server automatycznie określa rozmiary węzłów NUMA dla Soft-NUMA
MANUAL = Ręcznie skonfigurowana soft-NUMA
process_physical_affinity nvarchar(3072) Dotyczy: Począwszy od programu SQL Server 2017 (14.x).

Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
sql_memory_model int Dotyczy: SQL Server 2012 (11.x) SP4, SQL Server 2016 (13.x) SP1 i nowsze wersje.

Określa model pamięci używany przez program SQL Server do przydzielania pamięci. Nie może być null.

1 = Konwencjonalny model pamięci
2 = Blokowanie stron w pamięci
3 = duże strony w pamięci
sql_memory_model_desc nvarchar(60) Dotyczy: SQL Server 2012 (11.x) SP4, SQL Server 2016 (13.x) SP1 i nowsze wersje.

Określa model pamięci używany przez program SQL Server do przydzielania pamięci. Nie może być null.

CONVENTIONAL = Program SQL Server używa konwencjonalnego modelu pamięci do przydzielenia pamięci. Jest to domyślny model pamięci aparatu bazy danych, gdy konto usługi programu SQL Server nie ma uprawnień blokady stron w pamięci podczas uruchamiania.
LOCK_PAGES = program SQL Server używa stron blokady w pamięci w celu przydzielenia pamięci. Jest to domyślny menedżer pamięci aparatu bazy danych, gdy konto usługi programu SQL Server ma uprawnienie "Zablokuj strony w pamięci" podczas uruchamiania programu SQL Server.
LARGE_PAGES = program SQL Server używa dużych stron w pamięci do przydzielania pamięci. Program SQL Server używa alokatora dużych stron do przydzielania pamięci tylko w wersji Enterprise, gdy konto usługi programu SQL Server ma uprawnienie "Zablokuj strony w pamięci" podczas uruchamiania serwera, a flaga śledzenia 834 jest włączona.
pdw_node_id int Dotyczy: Azure Synapse Analytics, Analytics Platform System (PDW)

Identyfikator węzła, w ramach którego znajduje się ta dystrybucja.
socket_count int Dotyczy: SQL Server 2016 (13.x) SP2 i nowsze wersje.

Określa liczbę gniazd procesora dostępnych w systemie.
cores_per_socket int Dotyczy: SQL Server 2016 (13.x) SP2 i nowsze wersje.

Określa liczbę procesorów na gniazdo dostępne w systemie.
numa_node_count int Dotyczy: SQL Server 2016 (13.x) SP2 i nowsze wersje.

Określa liczbę węzłów NUMA dostępnych w systemie. Ta kolumna zawiera fizyczne węzły NUMA i miękkie węzły NUMA.
container_type int Dotyczy: SQL Server 2017 (14.x) i nowsze wersje.

Określa typ kontenera, w którym działa program SQL Server. Nie może być null.

0 (wartość domyślna) = NONE
1 = LINUX CONTAINER
2 = WINDOWS SERVER CONTAINER
3 = HYPER-V CONTAINER
container_type_desc nvarchar(60) Dotyczy: SQL Server 2017 (14.x) i nowsze wersje.

Opisuje kolumnę container_type . Nie może być null.

NONE = program SQL Server nie jest uruchomiony w kontenerze.
LINUX CONTAINER = program SQL Server jest uruchomiony w kontenerze systemu Linux.
WINDOWS SERVER CONTAINER = program SQL Server jest uruchomiony w kontenerze systemu Windows Server.
HYPER-V CONTAINER = program SQL Server jest uruchomiony w kontenerze Hyper-V.

Permissions

W programie SQL Server 2019 (15.x) i starszych wersjach oraz w usłudze SQL Managed Instance wymagane są VIEW SERVER STATE uprawnienia.

W programie SQL Server 2022 (16.x) i nowszych wersjach wymagane jest VIEW SERVER PERFORMANCE STATE uprawnienie na serwerze.

W przypadku celów usługi Azure SQL Database Basic, S0 i S1 oraz baz danych w elastycznych pulach wymagane jest konto administratora serwera , konto administratora firmy Microsoft Entra lub członkostwo w ##MS_ServerStateReader##roli serwera . We wszystkich innych celach usługi SQL Database wymagane VIEW DATABASE STATE jest uprawnienie do bazy danych lub członkostwo w ##MS_ServerStateReader## roli serwera.