sys.dm_os_memory_clerks (Transact-SQL)
Gibt die Gruppe aller derzeit in der SQL Server-Instanz aktiven Arbeitsspeicherclerks zurück.
Spaltenname |
Datentyp |
Beschreibung |
---|---|---|
memory_clerk_address |
varbinary(8) |
Eindeutige Speicheradresse des Arbeitsspeicherclerks. Dies ist die Primärschlüsselspalte. NULL ist nicht zulässig. |
type |
nvarchar(60) |
Typ des Arbeitsspeicherclerks. Jeder Clerk entspricht einem bestimmten Typ, wie z. B. dem CLR-Clerk MEMORYCLERK_SQLCLR. NULL ist nicht zulässig. |
name |
nvarchar(256) |
Intern zugewiesener Name des Arbeitsspeicherclerks. Jede Komponente kann über mehrere Arbeitsspeicherclerks eines bestimmten Typs verfügen. Eine Komponente hat die Möglichkeit, bestimmte Namen zum Identifizieren von Arbeitsspeicherclerks desselben Typs zu verwenden. NULL ist nicht zulässig. |
memory_node_id |
smallint |
ID des Speicherknotens. NULL ist nicht zulässig. |
single_pages_kb |
bigint |
Umfang des zugeordneten Arbeitsspeichers für Einzelseiten in Kilobytes (KB). Dies entspricht dem Umfang des Arbeitsspeichers, der mithilfe der Einzelseitenzuordnung eines Speicherknotens zugeordnet wurde. Bei der Einzelseitenzuordnung werden Seiten direkt aus dem Pufferpool entnommen. NULL ist nicht zulässig. |
multi_pages_kb |
bigint |
Umfang des zugeordneten Arbeitsspeichers für mehrere Seiten in KB. Dies entspricht dem Umfang des Arbeitsspeichers, der mithilfe der Mehrfachseitenzuordnung der Speicherknoten zugeordnet wurde. Dieser Arbeitsspeicher wird außerhalb des Pufferpools zugeordnet und nutzt die virtuelle Zuordnung der Speicherknoten. NULL ist nicht zulässig. |
virtual_memory_reserved_kb |
bigint |
Umfang des von einem Arbeitsspeicherclerk reservierten virtuellen Arbeitsspeichers. Dies entspricht dem Umfang des Arbeitsspeichers, der direkt von der Komponente, die diesen Clerk verwendet, reserviert wird. In den meisten Fällen reserviert nur der Pufferpool virtuellen Adressraum direkt mithilfe des Arbeitsspeicherclerks. NULL ist nicht zulässig. |
virtual_memory_committed_kb |
bigint |
Umfang des virtuellen Arbeitsspeichers, für den ein Arbeitsspeicherclerk ein Commit ausgeführt hat. Dies entspricht dem Umfang des Arbeitsspeichers, für den der Clerk ein Commit ausgeführt hat. Der Umfang des Arbeitsspeichers, für den ein Commit ausgeführt wurde, sollte immer geringer als der Umfang des reservierten Arbeitsspeichers sein. NULL ist nicht zulässig. |
awe_allocated_kb |
bigint |
Umfang des vom Arbeitsspeicherclerk mithilfe von AWE (Address Windowing Extensions) zugeordneten Arbeitsspeichers. In SQL Server verwenden nur Pufferpoolclerks (MEMORYCLERK_SQLBUFFERPOOL) diesen Mechanismus, und auch nur dann, wenn AWE aktiviert ist. NULL ist nicht zulässig. |
shared_memory_reserved_kb |
bigint |
Umfang des von einem Arbeitsspeicherclerk reservierten freigegebenen Speicherbereichs. Der Umfang des Arbeitsspeichers, der als freigegebener Speicherbereich und für die Dateizuordnung reserviert ist. NULL ist nicht zulässig. |
shared_memory_committed_kb |
bigint |
Umfang des freigegebenen Speicherbereichs, für den vom Arbeitsspeicherclerk ein Commit ausgeführt wurde. NULL ist nicht zulässig. |
page_size_bytes |
bigint |
Größe der Seite, die von einem Arbeitsspeicherclerk zugeordnet werden kann. Es wird nur eine Größe unterstützt (8.192 Bytes). NULL ist nicht zulässig. |
page_allocator_address |
varbinary(8) |
Adresse der Seitenzuordnung. Diese Adresse ist für einen Arbeitsspeicherclerk eindeutig und kann in sys.dm_os_memory_objects verwendet werden, um an diesen Clerk gebundene Arbeitsspeicherobjekte zu suchen. NULL ist nicht zulässig. |
host_address |
varbinary(8) |
Arbeitsspeicheradresse des Hosts für diesen Arbeitsspeicherclerk. Weitere Informationen finden Sie unter sys.dm_os_hosts (Transact-SQL). Komponenten, wie MicrosoftSQL Server Native Client, greifen über die Hostschnittstelle auf die SQL Server-Speicherressourcen zu. 0x00000000 = Arbeitsspeicherclerk gehört zu SQL Server. NULL ist nicht zulässig. |
Berechtigungen
Erfordert die VIEW SERVER STATE-Berechtigung auf dem Server.
Hinweise
Der Speicher-Manager von SQL Server besteht aus einer Hierarchie mit drei Ebenen. Die unterste Ebene der Hierarchie bilden Speicherknoten. Die nächste Ebene besteht aus Arbeitsspeicherclerks, Arbeitsspeichercaches und Arbeitsspeicherpools. Die letzte Ebene besteht aus Speicherobjekten. Diese Objekte werden im Allgemeinen für die Zuordnung von Arbeitsspeicher in einer SQL Server-Instanz verwendet.
Speicherknoten stellen die Schnittstelle und die Implementierung für Zuordnungen auf unterer Ebene bereit. Innerhalb von SQL Server haben nur Arbeitsspeicherclerks Zugriff auf Speicherknoten. Speicherknoten greifen für die Zuordnung von Arbeitsspeicher auf Speicherknotenschnittstellen zu. Zudem können Speicherknoten den mithilfe des Clerks zugeordneten Arbeitsspeicher zu Diagnosezwecken nachverfolgen. Jede Komponente, die eine beträchtliche Speichermenge zuordnet, muss einen eigenen Arbeitsspeicherclerk erstellen und ihren gesamten Arbeitsspeicher mithilfe der Clerkschnittstellen zuordnen. Komponenten erstellen ihre entsprechenden Clerks, wenn SQL Server gestartet wird.
Siehe auch