sys.dm_os_memory_clerks (Transact-SQL)

Gilt für: SQL Server Azure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsPlatform System (PDW)

Gibt den Satz aller Speicherbearbeiter zurück, die derzeit in der Instanz von SQL Server aktiv sind.

Hinweis

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

Spaltenname Datentyp BESCHREIBUNG
memory_clerk_address varbinary(8) Gibt die eindeutige Speicheradresse des Arbeitsspeicherclerks an. Dies ist die Primärschlüsselspalte. Lässt keine NULL-Werte zu.
type nvarchar(60) Gibt den Typ des Arbeitsspeicherclerks an. Jeder Clerk entspricht einem bestimmten Typ, wie z. B. dem CLR-Clerk MEMORYCLERK_SQLCLR. Lässt keine NULL-Werte zu.
name nvarchar(256) Gibt den intern zugewiesenen Namen des Arbeitsspeicherclerks an. Eine 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. Lässt keine NULL-Werte zu.
memory_node_id smallint Gibt die ID des Speicherknotens an. Lässt keine NULL-Werte zu.
single_pages_kb bigint Gilt für: SQL Server 2008 (10.0.x) bis SQL Server 2008 R2 (10.50.x). Weitere Informationen finden Sie unter Änderungen an der Speicherverwaltung ab SQL Server 2012 (11.x).
pages_kb bigint Gilt für: SQL Server 2012 (11.x) und höher.

Gibt an, wie viel Arbeitsspeicher für Seiten diesem Arbeitsspeicherclerk (in Kilobyte) zugewiesen wurde. Lässt keine NULL-Werte zu.
multi_pages_kb bigint Gilt für: SQL Server 2008 (10.0.x) bis SQL Server 2008 R2 (10.50.x). Weitere Informationen finden Sie unter Änderungen an der Speicherverwaltung ab SQL Server 2012 (11.x).

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 Arbeitsspeicherknoten. Lässt keine NULL-Werte zu.
virtual_memory_reserved_kb bigint Gibt den Umfang des von einem Arbeitsspeicherclerk reservierten virtuellen Arbeitsspeichers an. Lässt keine NULL-Werte zu.
virtual_memory_committed_kb bigint Gibt den Umfang des virtuellen Arbeitsspeichers an, für den ein Arbeitsspeicherclerk 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. Lässt keine NULL-Werte zu.
awe_allocated_kb bigint Gibt den Arbeitsspeicher in Kilobyte (KB) an, der im physischen Speicher gesperrt und nicht vom Betriebssystem ausgelagert ist. Lässt keine NULL-Werte zu.
shared_memory_reserved_kb bigint Gibt den Umfang des von einem Arbeitsspeicherclerk reservierten gemeinsamen Arbeitsspeichers an. Der Umfang des Arbeitsspeichers, der als freigegebener Speicherbereich und für die Dateizuordnung reserviert ist. Lässt keine NULL-Werte zu.
shared_memory_committed_kb bigint Gibt den Umfang des freigegebenen Speicherbereichs an, für den vom Arbeitsspeicherclerk ein Commit ausgeführt wurde. Lässt keine NULL-Werte zu.
page_size_in_bytes bigint Gibt die Granularität der Seitenzuordnung für diesen Arbeitsspeicherclerk an. Lässt keine NULL-Werte zu.
page_allocator_address varbinary(8) Gibt die Adresse der Seitenzuordnung an. Diese Adresse ist für einen Speicherbearbeiter eindeutig und kann in sys.dm_os_memory_objects verwendet werden, um Speicherobjekte zu suchen, die an diesen Clerk gebunden sind. Lässt keine NULL-Werte zu.
host_address varbinary(8) Gibt die Arbeitsspeicheradresse des Hosts für diesen Arbeitsspeicherclerk an. Weitere Informationen finden Sie unter sys.dm_os_hosts (Transact-SQL). Komponenten wie Microsoft SQL Server Native Client greifen über die Hostschnittstelle auf SQL Server Speicherressourcen zu.

0x00000000 = Memory Clerk gehört zu SQL Server.

Lässt keine NULL-Werte zu.
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.

Berechtigungen

Auf SQL Server ist die VIEW SERVER STATE-Berechtigung erforderlich.
Bei Azure SQL Dienstzielen "Basic", "S0" und "S1" und für Datenbanken in Pools für elastische Datenbanken ist das Serveradministratorkonto oder das Azure Active Directory-Administratorkonto erforderlich. Bei allen anderen Azure SQL Datenbankdienstzielen ist die VIEW DATABASE STATE Berechtigung in der Datenbank erforderlich.

Bemerkungen

Der SQL Server-Speicher-Manager besteht aus einer dreistufigen Hierarchie. Die unterste Ebene der Hierarchie bilden Speicherknoten. Die mittlere Ebene besteht aus Arbeitsspeicherclerks, Arbeitsspeichercaches und Arbeitsspeicherpools. Die obere Ebene besteht aus Speicherobjekten. Diese Objekte werden verwendet, um Arbeitsspeicher in einer Instanz von SQL Server zuzuweisen.

Speicherknoten stellen die Schnittstelle und die Implementierung für Zuordnungen auf unterer Ebene bereit. Innerhalb SQL Server haben nur Speicherverwaltungen Zugriff auf Speicherknoten. Arbeitsspeicherclerks greifen für die Belegung 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. Häufig erstellen Komponenten ihre entsprechenden Clerks, wenn SQL Server gestartet wird.

CACHESTORE und USERSTORE

CACHESTORE und USERSTORE sind Speicherbearbeiter, fungieren jedoch als tatsächliche Caches. In der Regel behalten Caches Zuordnungen bei, bis eine Richtlinie zum Entfernen des Caches diese Zuordnungen freigibt. Um eine erneute Erstellung zu vermeiden, wird eine zwischengespeicherte Zuordnung so lange wie möglich im Cache aufbewahrt und normalerweise aus dem Cache entfernt, wenn sie zu alt ist, um nützlich zu sein, oder wenn der Speicherplatz für neue Informationen benötigt wird (weitere Informationen finden Sie unter Uhrhandfeger). Dies ist eines der beiden Hauptsteuerelemente für Caches: Lebensdauersteuerung und Sichtbarkeitssteuerung.

Cachespeicher und Benutzerspeicher unterscheiden sich in der Art und Weise, wie sie die Lebensdauer von Zuordnungen steuern. Im Fall eines Cachespeichers wird die Lebensdauer von Einträgen vollständig durch das Zwischenspeicherungsframework von SQLOS gesteuert. Beim Benutzerspeicher wird die Gültigkeitsdauer von Einträgen nur teilweise von einem Speicher gesteuert. Die Implementierung jedes Benutzerspeichers kann spezifisch für die Art der Speicherbelegungen sein, sodass Benutzerspeicher an der Steuerung der Lebensdauer seiner Einträge beteiligt sind.

Die Sichtbarkeitssteuerung verwaltet die Sichtbarkeit eines Eintrags. Ein Eintrag in einem Cache kann vorhanden sein, ist aber möglicherweise nicht sichtbar. Wenn beispielsweise ein Cacheeintrag nur zur einmaligen Verwendung markiert ist, ist der Eintrag nach seiner Verwendung nicht mehr sichtbar. Darüber hinaus kann der Cacheeintrag als "dirty" markiert werden. Sie wird weiterhin im Cache gespeichert, ist aber für keine Nachschlagevorgänge sichtbar. Für beide Speicher wird die Sichtbarkeit der Einträge durch das Cacheframework gesteuert.

Weitere Informationen finden Sie unter SQLOS-Zwischenspeicherung.

OBJECTSTORE

Der Objektspeicher ist ein einfacher Pool. Es wird verwendet, um homogene Daten zwischenzuspeichern. Alle Einträge in den Pools werden als gleichwertig betrachtet. Objektspeicher implementieren eine maximale Obergrenze, um die Größe relativ zu anderen Caches zu steuern.

Weitere Informationen finden Sie unter SQLOS-Zwischenspeicherung.

Typen

In der folgenden Tabelle sind die Speicherbearbeitertypen aufgeführt:

type BESCHREIBUNG
CACHESTORE_BROKERDSH Dieser Cachespeicher wird verwendet, um Zuordnungen nach Service Broker Dialog Security Header Cache zu speichern.
CACHESTORE_BROKERKEK Dieser Cachespeicher wird zum Speichern von Zuordnungen durch Service Broker Key Exchange Key Cache verwendet.
CACHESTORE_BROKERREADONLY Dieser Cachespeicher wird verwendet, um Zuordnungen durch den schreibgeschützten Cache von Service Broker zu speichern.
CACHESTORE_BROKERRSB Dieser Cachespeicher wird verwendet, um Zuordnungen vom ServiceBroker-Remotedienstbindungscache zu speichern.
CACHESTORE_BROKERTBLACS Dieser Cachespeicher wird verwendet, um Zuordnungen von Service Broker für Sicherheitszugriffsstrukturen zu speichern.
CACHESTORE_BROKERTO Dieser Cachespeicher wird verwendet, um Zuordnungen vom ServiceBroker-Übertragungsobjektcache zu speichern.
CACHESTORE_BROKERUSERCERTLOOKUP Dieser Cachespeicher wird zum Speichern von Zuordnungen durch den Service Broker-Benutzerzertifikatsuchecache verwendet.
CACHESTORE_COLUMNSTOREOBJECTPOOL Dieser Cachespeicher wird für Zuordnungen von Columnstore-Indizes für Segmente und Wörterbücher verwendet.
CACHESTORE_CONVPRI Dieser Cachespeicher wird verwendet, um Zuordnungen von Service Broker zu speichern, um die Prioritäten von Unterhaltungen nachzuverfolgen.
CACHESTORE_EVENTS Dieser Cachespeicher wird zum Speichern von Zuordnungen durch ServiceBroker-Ereignisbenachrichtigungen verwendet.
CACHESTORE_FULLTEXTSTOPLIST Dieser Speicherspeicher wird von Full-Text Engine für die Stopplistenfunktionalität für Zuordnungen verwendet.
CACHESTORE_NOTIF Dieser Cachespeicher wird für Zuordnungen nach Abfragebenachrichtigungsfunktionen verwendet.
CACHESTORE_OBJCP Dieser Cachespeicher wird zum Zwischenspeichern von Objekten mit kompilierten Plänen (CP) verwendet: gespeicherte Prozeduren, Funktionen, Trigger. Zur Veranschaulichung: Nachdem ein Abfrageplan für eine gespeicherte Prozedur erstellt wurde, wird dessen Plan in diesem Cache gespeichert.
CACHESTORE_PHDR Dieser Cachespeicher wird für die temporäre Speicherzwischenspeicherung während der Analyse von Ansichten, Einschränkungen und Standardalgebrizerstrukturen während der Kompilierung einer Abfrage verwendet. Nachdem die Abfrage analysiert wurde, sollte der Arbeitsspeicher freigegeben werden. Einige Beispiele sind: viele Anweisungen in einem Batch – Tausende von Einfügungen oder Aktualisierungen in einem Batch, ein T-SQL-Batch, der eine große dynamisch generierte Abfrage enthält, eine große Anzahl von Werten in einer IN-Klausel.
CACHESTORE_QDSRUNTIMESTATS Dieser Cachespeicher wird verwendet, um Abfragespeicher Laufzeitstatistiken zwischenzuspeichern.
CACHESTORE_SEARCHPROPERTYLIST Dieser Cachespeicher wird von Full-Text Engine für Eigenschaftenlistencache für Zuordnungen verwendet.
CACHESTORE_SEHOBTCOLUMNATTRIBUTE Dieser Cachespeicher wird von der Speicher-Engine zum Zwischenspeichern von Heap- oder B-Tree-Spaltenmetadatenstrukturen (HoBT) verwendet.
CACHESTORE_SQLCP Dieser Cachespeicher wird zum Zwischenspeichern von Ad-hoc-Abfragen, vorbereiteten Anweisungen und serverseitigen Cursorn im Plancache verwendet. Ad-hoc-Abfragen sind in der Regel Sprachereignis-T-SQL-Anweisungen, die ohne explizite Parametrisierung an den Server übermittelt werden. Vorbereitete Anweisungen verwenden auch diesen Cachespeicher. Sie werden von der Anwendung mithilfe von API-Aufrufen wie SQLPrepare()/ SQLExecute (ODBC) oder SqlCommand.Prepare/SqlCommand.ExecuteNonQuery (ADO.NET) übermittelt und auf dem Server als sp_prepare/sp_execute oder sp_prepexec Systemprozedurausführungen angezeigt. Außerdem würden serverseitige Cursor diesen Cachespeicher nutzen (sp_cursoropen, sp_cursorfetch, sp_cursorclose).
CACHESTORE_STACKFRAMES Dieser Cachespeicher wird für Zuordnungen interner SQL-Betriebssystemstrukturen im Zusammenhang mit Stapelframes verwendet.
CACHESTORE_SYSTEMROWSET Dieser Cachespeicher wird für Zuordnungen interner Strukturen im Zusammenhang mit der Transaktionsprotokollierung und -wiederherstellung verwendet.
CACHESTORE_TEMPTABLES Dieser Cachespeicher wird für Zuordnungen im Zusammenhang mit temporären Tabellen und Tabellenvariablen verwendet, die teil des Plancaches sind.
CACHESTORE_VIEWDEFINITIONS Dieser Cachespeicher wird zum Zwischenspeichern von Ansichtsdefinitionen im Rahmen der Abfrageoptimierung verwendet.
CACHESTORE_XML_SELECTIVE_DG Dieser Cachespeicher wird verwendet, um XML-Strukturen für die XML-Verarbeitung zwischenzuspeichern.
CACHESTORE_XMLDBATTRIBUTE Dieser Cachespeicher wird verwendet, um XML-Attributstrukturen für XML-Aktivitäten wie XQuery zwischenzuspeichern.
CACHESTORE_XMLDBELEMENT Dieser Cachespeicher wird verwendet, um XML-Elementstrukturen für XML-Aktivitäten wie XQuery zwischenzuspeichern.
CACHESTORE_XMLDBTYPE Dieser Cachespeicher wird verwendet, um XML-Strukturen für XML-Aktivitäten wie XQuery zwischenzuspeichern.
CACHESTORE_XPROC Dieser Cachespeicher wird zum Zwischenspeichern von Strukturen für erweiterte gespeicherte Prozeduren (Xprocs) im Plancache verwendet.
MEMORYCLERK_BACKUP Dieser Speichertreser wird für verschiedene Zuordnungen von Sicherungsfunktionen verwendet.
MEMORYCLERK_BHF Dieser Speicherbearbeiter wird für Zuordnungen für die Verwaltung binärer großer Objekte (BLOB) während der Abfrageausführung verwendet (BlobHandle-Unterstützung).
MEMORYCLERK_BITMAP Dieser Speicherbearbeiter wird für Zuordnungen nach SQL-Betriebssystemfunktionen für die Bitmapfilterung verwendet.
MEMORYCLERK_CSILOBCOMPRESSION Dieser Speicherbearbeiter wird für Zuordnungen durch die Blobkomprimierung (Columnstore Index Binary Large Objects) verwendet.
MEMORYCLERK_DRTLHEAP Dieser Speichermitarbeiter wird für Zuordnungen von SQL-Betriebssystemfunktionen verwendet.

Gilt für: SQL Server 2019 (15.x) und höher
MEMORYCLERK_EXPOOL Dieser Speichermitarbeiter wird für Zuordnungen von SQL-Betriebssystemfunktionen verwendet.

Gilt für: SQL Server 2019 (15.x) und höher
MEMORYCLERK_EXTERNAL_EXTRACTORS Dieser Speichermitarbeiter wird für Zuordnungen von der Abfrageausführungs-Engine für Batchmodusvorgänge verwendet.

Gilt für: SQL Server 2019 (15.x) und höher
MEMORYCLERK_FILETABLE Dieser Speicherbearbeiter wird für verschiedene Zuordnungen von FileTables-Funktionen verwendet.
MEMORYCLERK_FSAGENT Dieser Speicherbearbeiter wird für verschiedene Zuordnungen von FILESTREAM-Funktionen verwendet.
MEMORYCLERK_FSCHUNKER Dieser Speicherbearbeiter wird für verschiedene Zuordnungen von FILESTREAM-Funktionen zum Erstellen von Dateistromblöcken verwendet.
MEMORYCLERK_FULLTEXT Dieser Speicherbearbeiter wird für Zuordnungen von Full-Text Engine-Strukturen verwendet.
MEMORYCLERK_FULLTEXT_SHMEM Dieser Speicherbearbeiter wird für Zuordnungen von Full-Text Engine-Strukturen verwendet, die sich auf die Konnektivität des freigegebenen Arbeitsspeichers mit dem Volltext-Daemon beziehen.
MEMORYCLERK_HADR Dieser Speicherbearbeiter wird für Speicherzuordnungen durch Always On Funktionalität verwendet.
MEMORYCLERK_HOST Dieser Speicherbearbeiter wird für Zuordnungen von SQL-Betriebssystemfunktionen verwendet.
MEMORYCLERK_LANGSVC Dieser Speicherbearbeiter wird für Zuordnungen von SQL T-SQL-Anweisungen und -Befehlen (Parser, Algebrizer usw.) verwendet.
MEMORYCLERK_LWC Dieser Speichermitarbeiter wird von Full-Text semantischen Suchmaschine für Zuordnungen verwendet.
MEMORYCLERK_POLYBASE Dieser Speichermitarbeiter verfolgt die Speicherzuordnungen für PolyBase-Funktionen in SQL Server.
MEMORYCLERK_QSRANGEPREFETCH Dieser Speicherbearbeiter wird für Zuordnungen während der Abfrageausführung für den Vorabfetch des Abfragescanbereichs verwendet.
MEMORYCLERK_QUERYDISKSTORE Dieser Speicherbearbeiter wird von Abfragespeicher Speicherzuordnungen in SQL Server verwendet.
MEMORYCLERK_QUERYDISKSTORE_HASHMAP Dieser Speicherbearbeiter wird von Abfragespeicher Speicherzuordnungen in SQL Server verwendet.
MEMORYCLERK_QUERYDISKSTORE_STATS Dieser Speicherbearbeiter wird von Abfragespeicher Speicherzuordnungen in SQL Server verwendet.
MEMORYCLERK_QUERYPROFILE Dieser Speicherbearbeiter wird während des Serverstarts verwendet, um die Abfrageprofilerstellung zu aktivieren.

Gilt für: SQL Server 2019 (15.x) und höher
MEMORYCLERK_RTLHEAP Dieser Speicherbearbeiter wird für Zuordnungen von SQL-Betriebssystemfunktionen verwendet.

Gilt für: SQL Server 2019 (15.x) und höher
MEMORYCLERK_SECURITYAPI Dieser Speicherbearbeiter wird für Zuordnungen von SQL-Betriebssystemfunktionen verwendet.

Gilt für: SQL Server 2019 (15.x) und höher
MEMORYCLERK_SERIALIZATION Nur interne Verwendung.
MEMORYCLERK_SLOG Dieser Speichermitarbeiter wird für Zuordnungen durch sLog (sekundärer In-Memory-Protokollstream) in beschleunigter Datenbankwiederherstellung verwendet.

Gilt für: SQL Server 2019 (15.x) und höher
MEMORYCLERK_SNI Dieser Speichermitarbeiter weist Arbeitsspeicher für die SNI-Komponenten (Server Network Interface) zu. SNI verwaltet Konnektivität und TDS-Pakete für SQL Server
MEMORYCLERK_SOSMEMMANAGER Dieser Speichermitarbeiter ordnet Strukturen für die PLANUNG von SQLOS-Threads (SOS) und arbeitsspeicher- und E/A-Verwaltung zu.
MEMORYCLERK_SOSNODE Dieser Speicherbearbeiter ordnet Strukturen für die Planung von SQLOS-Threads (SOS) und arbeitsspeicher- und E/A-Verwaltung zu.
MEMORYCLERK_SOSOS Dieser Speichermitarbeiter ordnet Strukturen für die PLANUNG von SQLOS-Threads (SOS) und arbeitsspeicher- und E/A-Verwaltung zu.
MEMORYCLERK_SPATIAL Dieser Speicherbearbeiter wird von Spatial Data-Komponenten für Speicherzuordnungen verwendet.
MEMORYCLERK_SQLBUFFERPOOL Dieser Speichermitarbeiter verfolgt häufig den größten Speicherverbraucher innerhalb SQL Server - Daten- und Indexseiten. Pufferpool oder Datencache speichert Daten und Indexseiten, die in den Arbeitsspeicher geladen werden, um schnellen Zugriff auf Daten zu ermöglichen. Weitere Informationen finden Sie unter Pufferverwaltung.
MEMORYCLERK_SQLCLR Dieser Speichermitarbeiter wird für Zuordnungen von SQLCLR verwendet.
MEMORYCLERK_SQLCLRASSEMBLY Dieser Speichermitarbeiter wird für Zuordnungen für SQLCLR-Assemblys verwendet.
MEMORYCLERK_SQLCONNECTIONPOOL Dieser Speichermitarbeiter speichert Informationen auf dem Server zwischen, die die Clientanwendung möglicherweise benötigt, um den Server nachzuverfolgen. Ein Beispiel ist eine Anwendung, die Vorbereitungshandles über sp_prepexecrpc erstellt. Die Anwendung sollte diese Handles nach der Ausführung ordnungsgemäß aufheben (schließen).
MEMORYCLERK_SQLEXTENSIBILITY Dieser Speicherbearbeiter wird für Zuordnungen vom Extensibility Framework zum Ausführen externer Python- oder R-Skripts auf SQL Server verwendet.

Gilt für: SQL Server 2019 (15.x) und höher
MEMORYCLERK_SQLGENERAL Dieser Speicherbearbeiter kann von mehreren Consumern innerhalb der SQL-Engine verwendet werden. Beispiele hierfür sind Replikationsspeicher, internes Debuggen/Diagnosen, einige SQL Server Startfunktionen, einige SQL-Parserfunktionen, das Erstellen von Systemindizes, das Initialisieren globaler Speicherobjekte, das Erstellen einer OLEDB-Verbindung innerhalb des Servers und von Verbindungsserverabfragen, die serverseitige Profiler-Ablaufverfolgung, das Erstellen von Showplandaten, einige Sicherheitsfunktionen, kompilieren von berechneten Spalten, Speicher für Parallelismusstrukturen, Arbeitsspeicher für einige XML-Funktionen
MEMORYCLERK_SQLHTTP Als veraltet markiert
MEMORYCLERK_SQLLOGPOOL Dieser Speicherbearbeiter wird von SQL Server Protokollpool verwendet. Der Protokollpool ist ein Cache, der verwendet wird, um die Leistung beim Lesen des Transaktionsprotokolls zu verbessern. Insbesondere verbessert es die Nutzung des Protokollcaches bei mehreren Protokolllesevorgängen, reduziert E/A-Protokolllesevorgänge von Datenträgern und ermöglicht die Freigabe von Protokollscans. Primäre Verbraucher des Protokollpools sind Always On (Change Capture and Send), Redo Manager, Database Recovery – Analysis/Redo/Undo, Transaction Runtime Rollback, Replication/CDC, Backup/Restore.
MEMORYCLERK_SQLOPTIMIZER Dieser Speicherbearbeiter wird für Speicherzuordnungen in verschiedenen Phasen des Kompilierens einer Abfrage verwendet. Einige Anwendungen umfassen Abfrageoptimierung, Indexstatistik-Manager, Kompilierung von Ansichtsdefinitionen, Histogrammgenerierung.
MEMORYCLERK_SQLQERESERVATIONS Dieser Speicherbearbeiter wird für Speicherzuweisungen verwendet, d. h. Speicher, der Abfragen zugeordnet ist, um Sortier- und Hashvorgänge während der Abfrageausführung auszuführen. Weitere Informationen zu Reservierungen der Abfrageausführung (Speicherzuweisungen) finden Sie in diesem Blog.
MEMORYCLERK_SQLQUERYCOMPILE Dieser Speicherbearbeiter wird vom Abfrageoptimierer für die Zuweisung von Arbeitsspeicher während der Abfragekompilierung verwendet.
MEMORYCLERK_SQLQUERYEXEC Dieser Speicherbearbeiter wird für Zuordnungen in den folgenden Bereichen verwendet: Batchmodusverarbeitung, parallele Abfrageausführung, Abfrageausführungskontext, räumliche Indextessellation, Sortierungs- und Hashvorgänge (Sortiertabellen, Hashtabellen), einige DVM-Verarbeitung, Updatestatistikausführung
MEMORYCLERK_SQLQUERYPLAN Dieser Speicheradministrator wird für Zuordnungen durch die Heap-Seitenverwaltung , DBCC CHECKTABLE-Zuordnungen und sp_cursor* gespeicherte Prozedurzuordnungen verwendet.
MEMORYCLERK_SQLSERVICEBROKER Dieser Speicherbearbeiter wird von SQL Server Service Broker-Speicherzuordnungen verwendet.
MEMORYCLERK_SQLSERVICEBROKERTRANSPORT Dieser Speicherbearbeiter wird von SQL Server Service Broker-Transportspeicherbelegungen verwendet.
MEMORYCLERK_SQLSLO_OPERATIONS Dieser Speicherbearbeiter wird verwendet, um Leistungsstatistiken zu sammeln.

Gilt für: Azure SQL-Datenbank
MEMORYCLERK_SQLSOAP Als veraltet markiert
MEMORYCLERK_SQLSOAPSESSIONSTORE Als veraltet markiert
MEMORYCLERK_SQLSTORENG Dieser Speicherbearbeiter wird für Zuordnungen von mehreren Speichermodulkomponenten verwendet. Beispiele für Komponenten sind Strukturen für Datenbankdateien, Datenbankmomentaufnahme-Replikatdatei-Manager, Deadlockmonitor, DBTABLE-Strukturen, Protokoll-Manager-Strukturen, einige tempdb-Versionsverwaltungsstrukturen, einige Serverstartfunktionen, Ausführungskontext für untergeordnete Threads in parallelen Abfragen.
MEMORYCLERK_SQLTRACE Dieser Speicherbearbeiter wird für serverseitige SQL-Ablaufverfolgungsspeicherbelegungen verwendet.
MEMORYCLERK_SQLUTILITIES Dieser Speicherspeicher kann von mehreren Zuweisungen in SQL Server verwendet werden. Beispiele hierfür sind Sicherung und Wiederherstellung, Protokollversand, Datenbankspiegelung, DBCC-Befehle, BCP-Code auf der Serverseite, einige Abfrageparallelität, Protokollscanpuffer.
MEMORYCLERK_SQLXML Dieser Speicherbearbeiter wird für Speicherbelegungen verwendet, wenn XML-Vorgänge ausgeführt werden.
MEMORYCLERK_SQLXP Dieser Speicherbearbeiter wird für Speicherbelegungen verwendet, wenn SQL Server erweiterte gespeicherte Prozeduren aufgerufen werden.
MEMORYCLERK_SVL Dieser Speicherbearbeiter wird für Zuordnungen interner SQL-Betriebssystemstrukturen verwendet.
MEMORYCLERK_TEST Nur interne Verwendung.
MEMORYCLERK_UNITTEST Nur interne Verwendung.
MEMORYCLERK_WRITEPAGERECORDER Dieser Speicherspeicher wird für Zuordnungen vom Schreibseitenrekorder verwendet.
MEMORYCLERK_XE Dieser Speicherbearbeiter wird für Speicherbelegungen für erweiterte Ereignisse verwendet.
MEMORYCLERK_XE_BUFFER Dieser Speicherbearbeiter wird für Speicherbelegungen für erweiterte Ereignisse verwendet.
MEMORYCLERK_XLOG_SERVER Dieser Speicherbearbeiter wird von Xlog für Zuordnungen verwendet, die für die Protokolldateiverwaltung in SQL Azure-Datenbank verwendet werden.

Gilt für: Azure SQL-Datenbank
MEMORYCLERK_XTP Dieser Speicherbearbeiter wird für In-Memory-OLTP-Speicherbelegungen verwendet.
OBJECTSTORE_LBSS Dieser Objektspeicher wird verwendet, um temporäre LOBs - Variablen, Parameter und Zwischenergebnisse für Ausdrücke zuzuordnen. Ein Beispiel, das diesen Speicher verwendet, ist Tabellenwertparameter (Table-Valued Parameters , TVP). Weitere Informationen zu Fehlerbehebungen in diesem Bereich finden Sie im KB-Artikel 4468102 und KB-Artikel 4051359 .
OBJECTSTORE_LOCK_MANAGER Diese Speicherverwaltung verfolgt die Zuordnungen, die vom Sperr-Manager in SQL Server vorgenommen wurden.
OBJECTSTORE_SECAUDIT_EVENT_BUFFER Dieser Objektspeicher wird für SQL Server Überwachen von Speicherbelegungen verwendet.
OBJECTSTORE_SERVICE_BROKER Dieser Objektspeicher wird von Service Broker verwendet.
OBJECTSTORE_SNI_PACKET Dieser Objektspeicher wird von SNI-Komponenten (Server Network Interface) verwendet, die die Konnektivität verwalten.
OBJECTSTORE_XACT_CACHE Dieser Objektspeicher wird verwendet, um Transaktionsinformationen zwischenzuspeichern.
USERSTORE_DBMETADATA Dieser Objektspeicher wird für Metadatenstrukturen verwendet.
USERSTORE_OBJPERM Dieser Speicher wird für Strukturen verwendet, die die Objektsicherheit/-berechtigung nachverfolgen.
USERSTORE_QDSSTMT Dieser Cachespeicher wird verwendet, um Abfragespeicher-Anweisungen zwischenzuspeichern.
USERSTORE_SCHEMAMGR Der Schema-Manager-Cache speichert verschiedene Arten von Metadateninformationen zu den Datenbankobjekten im Arbeitsspeicher (z. B. Tabellen). Ein häufiger Benutzer dieses Speichers kann die tempdb-Datenbank mit Objekten wie Tabellen, temporären Prozeduren, Tabellenvariablen, Tabellenwertparametern, Arbeitstabellen, Arbeitsdateien und Versionsspeicher sein.
USERSTORE_SXC Dieser Benutzerspeicher wird für Zuordnungen zum Speichern aller RPC-Parameter verwendet.
USERSTORE_TOKENPERM TokenAndPermUserStore ist ein einzelner SOS-Benutzerspeicher, der Sicherheitseinträge für Sicherheitskontext, Anmeldung, Benutzer, Berechtigungen und Überwachung nachverfolgt. Zum Speichern dieser Objekte werden mehrere Hashtabellen zugeordnet.

Hinweis

In der SQL Server-Dokumentation wird der Begriff „B-Struktur“ im Allgemeinen in Bezug auf Indizes verwendet. In Zeilenspeicherindizes implementiert SQL Server eine B+-Struktur. Dies gilt nicht für Columnstore-Indizes oder In-Memory-Datenspeicher. Weitere Informationen finden Sie im Leitfaden zur Architektur und zum Design von SQL Server-Indizes.

Weitere Informationen

Dynamische Verwaltungssichten in Verbindung mit dem SQL Server-Betriebssystem (Transact-SQL)
sys.dm_os_sys_info (Transact-SQL)
sys.dm_exec_query_memory_grants (Transact-SQL)
sys.dm_exec_requests (Transact-SQL)
sys.dm_exec_query_plan (Transact-SQL)
sys.dm_exec_sql_text (Transact-SQL)