sys.dm_os_sys_info (Transact-SQL)

Gilt für:SQL ServerAzure SQL-DatenbankAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

Gibt eine Reihe nützlicher Informationen über den Computer und über die ressourcen zurück, die von SQL Server zur Verfügung stehen und genutzt werden.

Hinweis

Um dies von Azure Synapse Analytics oder Analytics Platform System (PDW) aufzurufen, verwenden Sie den Namen sys.dm_pdw_nodes_os_sys_info. Diese Syntax wird vom serverlosen SQL-Pool in Azure Synapse Analytics nicht unterstützt.

Spaltenname Datentyp Beschreibung und versionsspezifische Hinweise
cpu_ticks bigint Gibt die aktuelle CPU-Prüfanzahl an. Die CPU-Takte stammen vom RDTSC-Leistungsindikator des Prozessors. Es ist eine monoton steigende Zahl. Lässt keine NULL-Werte zu.
ms_ticks bigint Gibt die Anzahl der Millisekunden seit dem Starten des Computers an. Lässt keine NULL-Werte zu.
cpu_count int Gibt die Anzahl der logischen CPUs im System an. Lässt keine NULL-Werte zu.

In Azure SQL-Datenbank gibt diese Spalte möglicherweise die Anzahl der logischen CPUs auf dem Computer zurück, auf dem die Datenbank oder der elastische Pool gehostet wird. Um die Anzahl der logischen CPUs zu ermitteln, die für die Datenbank oder den elastischen Pool verfügbar sind, verwenden Sie die cpu_limit Spalte in sys.dm_user_db_resource_governance.
hyperthread_ratio int Gibt das Verhältnis der Anzahl von logischen oder physischen Kernen an, die von einem physischen Prozessorpaket verfügbar gemacht werden. Lässt keine NULL-Werte zu.
physical_memory_in_bytes bigint Gilt für: SQL Server 2008 (10.0.x) und SQL Server 2008 R2 (10.50.x).

Gibt die Gesamtmenge des physischem Speichers auf dem Computer an. Lässt keine NULL-Werte zu.
physical_memory_kb bigint Gilt für: SQL Server 2012 (11.x) und höhere Versionen.

Gibt die Gesamtmenge des physischem Speichers auf dem Computer an. Lässt keine NULL-Werte zu.

In Azure SQL-Datenbank gibt diese Spalte die Gesamtmenge des physischen Speichers auf dem Computer zurück, auf dem die Datenbank oder der elastische Pool gehostet wird. Verwenden Sie die process_memory_limit_mb Spalte in sys.dm_os_job_object, um den für die Datenbank oder den elastischen Pool verfügbaren physischen Arbeitsspeicher zu ermitteln.
virtual_memory_in_bytes bigint Gilt für: SQL Server 2008 (10.0.x) und SQL Server 2008 R2 (10.50.x).

Umfang des virtuellen Arbeitsspeichers, der dem Prozess im Benutzermodus zur Verfügung steht. Dieser Wert kann verwendet werden, um zu bestimmen, ob SQL Server mit einem 3-GB-Switch gestartet wurde.
virtual_memory_kb bigint Gilt für: SQL Server 2012 (11.x) und höhere Versionen.

Gibt die Gesamtmenge des virtuellem Adressraums für den Prozess im Benutzermodus an. Lässt keine NULL-Werte zu.
bpool_committed int Gilt für: SQL Server 2008 (10.0.x) und SQL Server 2008 R2 (10.50.x).

Stellt den Arbeitsspeicher im Speicher-Manager in Kilobyte (KB) dar, für den ein Commit ausgeführt wurde. Enthält keinen reservierten Speicher im Speicher-Manager. Lässt keine NULL-Werte zu.
committed_kb bigint Gilt für: SQL Server 2012 (11.x) und höhere Versionen.

Stellt den Arbeitsspeicher im Speicher-Manager in Kilobyte (KB) dar, für den ein Commit ausgeführt wurde. Enthält keinen reservierten Speicher im Speicher-Manager. Lässt keine NULL-Werte zu.
bpool_commit_target int Gilt für: SQL Server 2008 (10.0.x) und SQL Server 2008 R2 (10.50.x).

Stellt den Arbeitsspeicher in Kilobytes (KB) dar, der von SQL Server-Speicher-Manager genutzt werden kann.
committed_target_kb bigint Gilt für: SQL Server 2012 (11.x) und höhere Versionen.

Stellt den Arbeitsspeicher in Kilobytes (KB) dar, der von SQL Server-Speicher-Manager genutzt werden kann. Der Zielbetrag wird mit mehreren Eingaben berechnet, z. B.:

- der aktuelle Zustand des Systems einschließlich seiner Last
- der von aktuellen Prozessen angeforderte Speicher
– die Auf dem Computer installierte Arbeitsspeichermenge
- Konfigurationsparameter

Wenn committed_target_kb dieser größer als committed_kbist, versucht der Speicher-Manager, mehr Arbeitsspeicher zu erhalten. Wenn committed_target_kb dieser kleiner als committed_kbist, versucht der Speicher-Manager, die Menge des zugesicherten Arbeitsspeichers zu verkleinern. Das committed_target_kb immer enthält gestohlenen und reservierten Speicher. Lässt keine NULL-Werte zu.
bpool_visible int Gilt für: SQL Server 2008 (10.0.x) und SQL Server 2008 R2 (10.50.x).

Anzahl von 8-KB-Puffern im Pufferpool, die im virtuellen Prozessadressraum direkt adressierbar sind. Wenn Sie die Adressfenstererweiterungen (Address Windowing Extensions, AWE) nicht verwenden, erhält der Pufferpool sein Speicherziel (bpool_committed = bpool_commit_target), ist der Wert gleich dem Wert von bpool_visiblebpool_committed. Bei verwendung von AWE auf einer 32-Bit-Version von SQL Server stellt die Größe des AWE-Zuordnungsfensters dar, das für den Zugriff auf den physischen Speicher verwendet wird, bpool_visible der vom Pufferpool zugewiesen wird. Die Größe dieses Zuordnungsfensters ist an den Prozessadressraum gebunden, sodass der sichtbare Betrag kleiner als der zugesicherte Betrag ist. Dieser Wert kann durch interne Komponenten, die Arbeitsspeicher verbrauchen, für andere Zwecke als Datenbankseiten weiter reduziert werden. Wenn der Wert bpool_visible zu niedrig ist, erhalten Sie möglicherweise nicht genügend Arbeitsspeicherfehler.
visible_target_kb bigint Gilt für: SQL Server 2012 (11.x) und höhere Versionen.

Ist identisch mit committed_target_kb. Lässt keine NULL-Werte zu.
stack_size_in_bytes int Gibt die Größe des Aufrufstapels für jeden thread an, der von SQL Server erstellt wurde. Lässt keine NULL-Werte zu.
os_quantum bigint Stellt das Quantum für einen nicht präemptiven Task dar, gemessen in Millisekunden. Quantum (in Sekunden) = os_quantum / CPU-Taktgeschwindigkeit. Lässt keine NULL-Werte zu.
os_error_mode int Gibt den Fehlermodus für den SQL Server-Prozess an. Lässt keine NULL-Werte zu.
os_priority_class int Gibt die Prioritätsklasse für den SQL Server-Prozess an. NULL-Werte sind zulässig.

32 = Normal. Fehlerprotokoll besagt, dass SQL Server mit der normalen Prioritätsbasis (7) beginnt.
128 = Hoch. Fehlerprotokoll besagt, dass SQL Server mit hoher Priorität13 () ausgeführt wird.

Weitere Informationen finden Sie unter Konfigurieren der Prioritätsverstärkung (Serverkonfigurationsoption).
max_workers_count int Stellt die maximale Anzahl von Arbeitsthreads dar, die erstellt werden können. Lässt keine NULL-Werte zu.
scheduler_count int Stellt die Anzahl der im SQL Server-Prozess konfigurierten Benutzerplaner dar. Lässt keine NULL-Werte zu.
scheduler_total_count int Stellt die Gesamtzahl der Planer in SQL Server dar. Lässt keine NULL-Werte zu.
deadlock_monitor_serial_number int Gibt die ID der aktuellen Deadlocküberwachungssequenz an. Lässt keine NULL-Werte zu.
sqlserver_start_time_ms_ticks bigint Stellt die ms_tick Zahl dar, wenn SQL Server zuletzt gestartet wurde. Mit der aktuellen ms_ticks Spalte vergleichen. Lässt keine NULL-Werte zu.
sqlserver_start_time datetime Gibt das lokale Systemdatum und die Uhrzeit an, zu der SQL Server zuletzt gestartet wurde. Lässt keine NULL-Werte zu.

Informationen in vielen anderen SQL Server-DMVs umfassen nur Aktivitäten seit dem letzten Start des Datenbankmoduls. Verwenden Sie diese Spalte, um die letzte SQL Server-Datenbank-Engine Startzeit zu finden.
affinity_type int Gilt für: SQL Server 2008 R2 (10.50.x) und höhere Versionen.

Gibt den Typ der Server-CPU-Prozessaffinität an, die derzeit verwendet wird. Lässt keine NULL-Werte zu. Weitere Informationen finden Sie unter ALTER SERVER CONFIGURATION (Transact-SQL).

1 = MANUAL
2 = AUTO
affinity_type_desc nvarchar(60) Gilt für: SQL Server 2008 R2 (10.50.x) und höhere Versionen.

Beschreibt die affinity_type Spalte. Lässt keine NULL-Werte zu.

MANUAL = Affinität wurde für mindestens eine CPU festgelegt.
AUTO = SQL Server kann Threads frei zwischen CPUs verschieben.
process_kernel_time_ms bigint Gilt für: SQL Server 2008 R2 (10.50.x) und höhere Versionen.

Gesamtzeit in Millisekunden, die von allen SQL Server-Threads im Kernelmodus aufgewendet wurden. Dieser Wert kann größer als eine einzelne Prozessoruhr sein, da er die Zeit für alle Prozessoren auf dem Server enthält. Lässt keine NULL-Werte zu.
process_user_time_ms bigint Gilt für: SQL Server 2008 R2 (10.50.x) und höhere Versionen.

Gesamtzeit in Millisekunden, die von allen SQL Server-Threads im Benutzermodus aufgewendet wurden. Dieser Wert kann größer als eine einzelne Prozessoruhr sein, da er die Zeit für alle Prozessoren auf dem Server enthält. Lässt keine NULL-Werte zu.
time_source int Gilt für: SQL Server 2008 R2 (10.50.x) und höhere Versionen.

Gibt die API an, die SQL Server zum Abrufen der Wanduhrzeit verwendet. Lässt keine NULL-Werte zu.

0 = QUERY_PERFORMANCE_COUNTER
1 = MULTIMEDIA_TIMER
time_source_desc nvarchar(60) Gilt für: SQL Server 2008 R2 (10.50.x) und höhere Versionen.

Beschreibt die time_source Spalte. Lässt keine NULL-Werte zu.

QUERY_PERFORMANCE_COUNTER = Die QueryPerformanceCounter-API ruft die Wanduhrzeit ab.
MULTIMEDIA_TIMER = Die Multimedia-Timer-API , die die Wanduhrzeit abruft.
virtual_machine_type int Gilt für: SQL Server 2008 R2 (10.50.x) und höhere Versionen.

Gibt an, ob SQL Server in einer virtualisierten Umgebung ausgeführt wird. Lässt keine NULL-Werte zu.

0 = NONE
1 = HYPERVISOR
2 = OTHER
virtual_machine_type_desc nvarchar(60) Gilt für: SQL Server 2008 R2 (10.50.x) und höhere Versionen.

Beschreibt die virtual_machine_type Spalte. Lässt keine NULL-Werte zu.

NONE = SQL Server wird nicht auf einem virtuellen Computer ausgeführt.
HYPERVISOR = SQL Server wird in einem virtuellen Computer ausgeführt, der von einem Betriebssystem gehostet wird, auf dem ein Hypervisor ausgeführt wird (ein Hostbetriebssystem, das hardwaregestützte Virtualisierung verwendet).
OTHER = SQL Server wird in einem virtuellen Computer ausgeführt, der von einem Betriebssystem gehostet wird, das keinen Hardware-Assistenten wie Microsoft Virtual PC verwendet.
softnuma_configuration int Gilt für: SQL Server 2016 (13.x) und höhere Versionen.

Gibt an, wie NUMA-Knoten konfiguriert werden. Lässt keine NULL-Werte zu.

0 = OFF gibt die Hardwarestandardeinstellung an.
1 = Automatisierte Soft-NUMA
2 = Manuelle Soft-NUMA per Registrierung
softnuma_configuration_desc nvarchar(60) Gilt für: SQL Server 2016 (13.x) und höhere Versionen.

OFF = Soft-NUMA-Funktion ist deaktiviert
ON = SQL Server bestimmt automatisch die NUMA-Knotengrößen für Soft-NUMA
MANUAL = Manuell konfigurierte Soft-NUMA
process_physical_affinity nvarchar(3072) Gilt für: Ab SQL Server 2017 (14.x).

Nur für Informationszwecke identifiziert. Wird nicht unterstützt. Zukünftige Kompatibilität wird nicht sichergestellt.
sql_memory_model int Gilt für: SQL Server 2012 (11.x) SP4, SQL Server 2016 (13.x) SP1 und höhere Versionen.

Gibt das Speichermodell an, das von SQL Server zum Zuweisen von Arbeitsspeicher verwendet wird. Lässt keine NULL-Werte zu.

1 = Herkömmliches Speichermodell
2 = Seiten im Arbeitsspeicher sperren
3 = Große Seiten im Arbeitsspeicher
sql_memory_model_desc nvarchar(60) Gilt für: SQL Server 2012 (11.x) SP4, SQL Server 2016 (13.x) SP1 und höhere Versionen.

Gibt das Speichermodell an, das von SQL Server zum Zuweisen von Arbeitsspeicher verwendet wird. Lässt keine NULL-Werte zu.

CONVENTIONAL = SQL Server verwendet das herkömmliche Speichermodell, um Arbeitsspeicher zuzuweisen. Dies ist standardmäßig Datenbank-Engine Speichermodell, wenn das SQL Server-Dienstkonto beim Start keine Sperrseiten in Speicherberechtigungen aufweist.
LOCK_PAGES = SQL Server verwendet Sperrseiten im Arbeitsspeicher, um Arbeitsspeicher zuzuweisen. Dies ist der Standardmäßige Datenbank-Engine Speicher-Manager, wenn das SQL Server-Dienstkonto beim Start von SQL Server über die Berechtigung "Seiten im Arbeitsspeicher sperren" verfügt.
LARGE_PAGES = SQL Server verwendet große Seiten im Arbeitsspeicher, um Arbeitsspeicher zuzuweisen. SQL Server verwendet den Allocator "Große Seiten", um Arbeitsspeicher nur mit Enterprise Edition zuzuweisen, wenn das SQL Server-Dienstkonto beim Starten des Servers über die Berechtigung "Seiten im Arbeitsspeicher sperren" verfügt, und wenn die Ablaufverfolgungskennzeichnung 834 aktiviert ist.
pdw_node_id int Gilt für: Azure Synapse Analytics, Analytics Platform System (PDW)

Der Bezeichner für den Knoten, auf dem sich diese Verteilung befindet.
socket_count int Gilt für: SQL Server 2016 (13.x) SP2 und höhere Versionen.

Gibt die Anzahl der Prozessorsockets an, die auf dem System verfügbar sind.
cores_per_socket int Gilt für: SQL Server 2016 (13.x) SP2 und höhere Versionen.

Gibt die Anzahl der Prozessoren pro Socket an, die auf dem System verfügbar sind.
numa_node_count int Gilt für: SQL Server 2016 (13.x) SP2 und höhere Versionen.

Gibt die Anzahl der im System verfügbaren NUMA-Knoten an. Diese Spalte enthält physische NUMA-Knoten und weiche NUMA-Knoten.
container_type int Gilt für: SQL Server 2017 (14.x) und höhere Versionen.

Gibt den Typ des Containers an, in dem SQL Server ausgeführt wird. Lässt keine NULL-Werte zu.

0 (Standard) = NONE
1 = LINUX CONTAINER
2 = WINDOWS SERVER CONTAINER
3 = HYPER-V CONTAINER
container_type_desc nvarchar(60) Gilt für: SQL Server 2017 (14.x) und höhere Versionen.

Beschreibt die container_type Spalte. Lässt keine NULL-Werte zu.

NONE = SQL Server wird nicht in einem Container ausgeführt.
LINUX CONTAINER = SQL Server wird in einem Linux-Container ausgeführt.
WINDOWS SERVER CONTAINER = SQL Server wird in einem Windows Server-Container ausgeführt.
HYPER-V CONTAINER = SQL Server wird in einem Hyper-V-Container ausgeführt.

Berechtigungen

In SQL Server 2019 (15.x) und früheren Versionen und SQL-verwaltete Instanz benötigen VIEW SERVER STATE Sie eine Berechtigung.

In SQL Server 2022 (16.x) und höheren Versionen benötigen VIEW SERVER PERFORMANCE STATE Sie eine Berechtigung auf dem Server.

Für Azure SQL-Datenbank Standard-, S0- und S1-Dienstziele sowie für Datenbanken in elastischen Pools ist das Serveradministratorkonto, das Microsoft Entra-Administratorkonto oder die Mitgliedschaft in der##MS_ServerStateReader## Serverrolle erforderlich. Für alle anderen SQL-Datenbank-Dienstziele ist entweder die VIEW DATABASE STATE-Berechtigung für die Datenbank oder die Mitgliedschaft in der ##MS_ServerStateReader##-Serverrolle erforderlich.