sys.dm_os_memory_clerks (Transact-SQL)

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

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

Hinweis

Um dies von 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 Speicherkaufmann einzigartig und kann in sys.dm_os_memory_objects verwendet werden, um Speicherobjekte zu finden, die an diesen Mitarbeiter 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 = Speicherkaufmann 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.
Für Azure SQL-Datenbank Standard-, S0- und S1-Dienstziele sowie für Datenbanken in elastischen Pools ist das Serveradministratorkonto oder das Microsoft Entra-Administratorkonto erforderlich. Für alle anderen Azure SQL-Datenbank Dienstziele ist die VIEW DATABASE STATE Berechtigung in der Datenbank erforderlich.

Berechtigungen für SQL Server 2022 und höher

Erfordert die VIEW SERVER PERFORMANCE STATE-Berechtigung auf dem Server.

Hinweise

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 Speicher in einer Instanz von SQL Server zuzuweisen.

Speicherknoten stellen die Schnittstelle und die Implementierung für Zuordnungen auf unterer Ebene bereit. Innerhalb von SQL Server haben nur Speicherkaufleute 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 Mitarbeiter zu dem Zeitpunkt, zu dem SQL Server gestartet wird.

CACHESTORE und USERSTORE

CACHESTORE und USERSTORE sind Speicherkaufleute, funktionieren aber als tatsächliche Caches. In der Regel behalten Caches Zuweisungen bei, bis eine Cacheentfernungsrichtlinie diese Zuordnungen freigibt. Um die Neuerstellung zu vermeiden, wird eine zwischengespeicherte Zuordnung so lange wie möglich im Cache aufbewahrt und in der Regel 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 "Aufräumen der Uhr"). Dies ist eines der beiden hauptsteuerelemente für Caches : Lebensdauersteuerelement und Sichtbarkeitssteuerelement.

Der Cachespeicher und der Benutzerspeicher unterscheiden sich in der Art und Weise, wie sie die Lebensdauer von Zuordnungen steuern. Im Falle eines Cachespeichers wird die Lebensdauer von Einträgen vollständig vom Cacheframework von SQLOS gesteuert. Beim Benutzerspeicher wird die Lebensdauer von Einträgen nur teilweise durch einen Speicher gesteuert. Die Implementierung jedes Benutzerspeichers kann spezifisch für die Art der Speicherzuweisungen sein, und daher nehmen Benutzerspeicher an der Lebenslangen Kontrolle seiner Einträge teil.

Das Sichtbarkeitssteuerelement verwaltet die Sichtbarkeit eines Eintrags. Ein Eintrag in einem Cache kann vorhanden sein, ist aber möglicherweise nicht sichtbar. Wenn beispielsweise ein Cacheeintrag nur für die einmalige Verwendung markiert ist, wird der Eintrag nach der Verwendung nicht angezeigt. Darüber hinaus kann der Cacheeintrag als modifiziert markiert werden. Er wird weiterhin im Cache gespeichert, ist aber für Nachschlagevorgänge nicht sichtbar. Für beide Speicher wird die Sichtbarkeit der Eingabe durch das Cacheframework gesteuert.

Weitere Informationen finden Sie unter SQLOS-Zwischenspeichern.

OBJECTSTORE

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-Zwischenspeichern.

Typen

In der folgenden Tabelle sind die Speicherbearbeitertypen aufgeführt:

type Beschreibung
CACHESTORE_BROKERDSH Dieser Cachespeicher wird verwendet, um Zuordnungen vom Sicherheitsheadercache des Service Broker-Dialogfelds zu speichern.
CACHESTORE_BROKERKEK Dieser Cachespeicher wird zum Speichern von Zuordnungen durch den Exchange-Schlüsselcache des Dienstbrokerschlüssels verwendet.
CACHESTORE_BROKERREADONLY Dieser Cachespeicher wird verwendet, um Zuordnungen vom Dienstbroker schreibgeschützten Cache zu speichern.
CACHESTORE_BROKERRSB Dieser Cachespeicher wird verwendet, um Zuordnungen vom Dienstbroker-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 Dienstbroker-Übertragungsobjektcache zu speichern.
CACHESTORE_BROKERUSERCERTLOOKUP Dieser Cachespeicher wird verwendet, um Zuordnungen von Dienstbrokerbenutzerzertifikaten im Nachschlagecache zu speichern.
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 verwendet, um Zuordnungen von Service Broker-Ereignisbenachrichtigungenzu speichern.
CACHESTORE_FULLTEXTSTOPLIST Dieser Speicherkaufmann wird für die Zuordnung durch das Full-Text-Modul für die Stoplist-Funktionalität verwendet.
CACHESTORE_NOTIF Dieser Cachespeicher wird für Zuordnungen durch Abfragebenachrichtigungsfunktionen verwendet.
CACHESTORE_OBJCP Dieser Cachespeicher wird zum Zwischenspeichern von Objekten mit kompilierten Plänen (CP) verwendet: gespeicherte Prozeduren, Funktionen, Trigger. Zur Veranschaulichung wird der Plan nach erstellung eines Abfrageplans für eine gespeicherte Prozedur in diesem Cache gespeichert.
CACHESTORE_PHDR Dieser Cachespeicher wird während der Analyse für Ansichten, Einschränkungen und Standard-Algebrizer-Strukturen während der Kompilierung einer Abfrage für temporäre Speicherzwischenspeicher verwendet. Sobald die Abfrage analysiert wurde, sollte der Speicher 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 für Zuordnungen durch das Volltextmodul für den Eigenschaftenlistencache verwendet.
CACHESTORE_SEHOBTCOLUMNATTRIBUTE Dieser Cachespeicher wird vom Speichermodul 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 häufig Sprachereignis-T-SQL-Anweisungen, die ohne explizite Parameterisierung an den Server übermittelt werden. Vorbereitete Anweisungen verwenden auch diesen Cachespeicher – sie werden von der Anwendung mit API-Aufrufen wie SQLPrepare()/ SQLExecute (ODBC) oder SqlCommand.Prepare/SqlCommand.ExecuteNonQuery (ADO.NET) übermittelt und werden auf dem Server als sp_prepare/sp_execute oder sp_prepexec Systemprozedurausführungen angezeigt. Darüber hinaus würden serverseitige Cursor aus diesem Cachespeicher (sp_cursoropen, sp_cursorfetch, sp_cursorclose) verwendet.
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 zwischenspeichern – Teil des Plancaches.
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 Speicherkaufmann wird für verschiedene Zuordnungen durch Sicherungsfunktionen verwendet.
MEMORYCLERK_BHF Dieser Speicherbearbeiter wird während der Abfrageausführung (Blob Handle-Unterstützung) für Die Zuordnungen für binäre große Objekte (BLOB)-Verwaltung verwendet.
MEMORYCLERK_BITMAP Dieser Speicherbearbeiter wird für die Zuordnung von SQL-Betriebssystemfunktionen für die Bitmapfilterung verwendet.
MEMORYCLERK_CSILOBCOMPRESSION Dieser Speicherbearbeiter wird für Zuordnungen durch die Blob-Komprimierung des Columnstore-Indexes (Binary Large Objects) verwendet.
MEMORYCLERK_DRTLHEAP Dieser Speicherbearbeiter wird für die Zuordnung von SQL-Betriebssystemfunktionen verwendet.

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

Gilt für: SQL Server 2019 (15.x) und höher
MEMORYCLERK_EXTERNAL_EXTRACTORS Dieser Speicherbearbeiter wird für Zuordnungen durch das Abfrageausführungsmodul 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 Speicherkaufmann wird für verschiedene Zuordnungen durch FILESTREAM-Funktionalität verwendet.
MEMORYCLERK_FSCHUNKER Dieser Speicherkaufmann wird für verschiedene Zuordnungen von FILESTREAM-Funktionen zum Erstellen von Dateistreamblöcken verwendet.
MEMORYCLERK_FULLTEXT Dieser Speicherkaufmann wird für Zuordnungen durch Full-Text-Modulstrukturen verwendet.
MEMORYCLERK_FULLTEXT_SHMEM Dieser Speicherkaufmann wird für die Zuordnung durch Full-Text-Modulstrukturen im Zusammenhang mit der Verbindung mit dem Volltextdaemonprozess verwendet.
MEMORYCLERK_HADR Dieser Speicherbearbeiter wird für Speicherzuweisungen von AlwaysOn-Funktionen verwendet.
MEMORYCLERK_HOST Dieser Speicherbearbeiter wird für die Zuordnung von SQL OS-Funktionen verwendet.
MEMORYCLERK_LANGSVC Dieser Speicherkaufmann wird für Zuordnungen von SQL T-SQL-Anweisungen und -Befehlen (Parser, Algebrizer usw.) verwendet.
MEMORYCLERK_LWC Dieser Speicherkaufmann wird für Zuordnungen durch die Volltext-Semantik-Suchmaschine verwendet.
MEMORYCLERK_POLYBASE Dieser Speicherkaufmann verfolgt speicherzuordnungen für PolyBase-Funktionen in SQL Server.
MEMORYCLERK_QSRANGEPREFETCH Dieser Speicherkaufmann wird während der Abfrageausführung für den Vorabstart des Abfragescanbereichs für Zuordnungen verwendet.
MEMORYCLERK_QUERYDISKSTORE Dieser Speicherbearbeiter wird von Abfragespeicher Speicherzuordnungen innerhalb von SQL Server verwendet.
MEMORYCLERK_QUERYDISKSTORE_HASHMAP Dieser Speicherbearbeiter wird von Abfragespeicher Speicherzuordnungen innerhalb von SQL Server verwendet.
MEMORYCLERK_QUERYDISKSTORE_STATS Dieser Speicherbearbeiter wird von Abfragespeicher Speicherzuordnungen innerhalb von 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 die Zuordnung von SQL OS-Funktionen verwendet.

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

Gilt für: SQL Server 2019 (15.x) und höher
MEMORYCLERK_SERIALIZATION Nur interne Verwendung.
MEMORYCLERK_SLOG Dieser Speicherbearbeiter wird für die Zuordnung durch sLog (sekundärer Speicherprotokolldatenstrom) in der beschleunigten Datenbankwiederherstellung verwendet.

Gilt für: SQL Server 2019 (15.x) und höher
MEMORYCLERK_SNI Dieser Speicherbearbeiter weist Speicher für die SNI-Komponenten (Server Network Interface) zu. SNI verwaltet Konnektivitäts- und TDS-Pakete für SQL Server
MEMORYCLERK_SOSMEMMANAGER Dieser Speicherbearbeiter weist Strukturen für die SQLOS(SOS)-Threadplanung und -speicher- und E/A-Verwaltung zu.
MEMORYCLERK_SOSNODE Dieser Speicherbearbeiter weist Strukturen für die SQLOS(SOS)-Threadplanung und -speicher- und E/A-Verwaltung zu.
MEMORYCLERK_SOSOS Dieser Speicherbearbeiter weist Strukturen für die SQLOS(SOS)-Threadplanung und -speicher- und E/A-Verwaltung zu.
MEMORYCLERK_SPATIAL Dieser Speicherkaufmann wird von Räumlichen Datenkomponenten für Speicherzuordnungen verwendet.
MEMORYCLERK_SQLBUFFERPOOL Dieser Speicherkaufmann verfolgt häufig den größten Speicherverbraucher in SQL Server – Daten- und Indexseiten. Der Pufferpool oder Der Datencache behält Daten und Indexseiten im Arbeitsspeicher bei, um schnellen Zugriff auf Daten zu ermöglichen. Weitere Informationen finden Sie unter Pufferverwaltung.
MEMORYCLERK_SQLCLR Dieser Speicherbearbeiter wird für Zuordnungen von SQLCLR verwendet.
MEMORYCLERK_SQLCLRASSEMBLY Dieser Speicherbearbeiter wird für Zuordnungen für SQLCLR-Assemblys verwendet.
MEMORYCLERK_SQLCONNECTIONPOOL Dieser Speicherbearbeiter speichert Informationen auf dem Server zwischen, auf dem die Clientanwendung möglicherweise den Server benötigt, um den Überblick zu behalten. Ein Beispiel ist eine Anwendung, die Handles ü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 durch das Extensibility Framework für die Ausführung externer Python- oder R-Skripts auf SQL Server verwendet.

Gilt für: SQL Server 2019 (15.x) und höher
MEMORYCLERK_SQLGENERAL Dieser Speicherkaufmann kann von mehreren Consumern innerhalb des SQL-Moduls verwendet werden. Beispiele sind Replikationsspeicher, internes Debuggen/Diagnose, einige SQL Server-Startfunktionen, einige SQL-Parserfunktionen, Erstellen von Systemindizes, Initialisieren globaler Speicherobjekte, Erstellen einer OLEDB-Verbindung innerhalb des Servers und Linked Server-Abfragen, Serverseitige Profiler-Ablaufverfolgung, Erstellen von Showplandaten, einige Sicherheitsfunktionen, Kompilierung berechneter Spalten, Speicher für Parallelismusstrukturen, Speicher für einige XML-Funktionen
MEMORYCLERK_SQLHTTP Als veraltet markiert
MEMORYCLERK_SQLLOGPOOL Dieser Speicherbearbeiter wird von SQL Server Log Pool verwendet. Der Protokollpool ist ein Cache, der zum Verbessern der Leistung beim Lesen des Transaktionsprotokolls verwendet wird. Insbesondere verbessert sie die Protokollcachenutzung während mehrerer Protokolllesevorgänge, reduziert Lesevorgänge des E/A-Protokolls auf datenträgern und ermöglicht die Freigabe von Protokollüberprüfungen. Primäre Consumer des Protokollpools sind AlwaysOn (Change Capture and Send), Redo Manager, Database Recovery - Analysis/Redo/Undo, Transaction Runtime Rollback, Replication/CDC, Backup/Restore.
MEMORYCLERK_SQLOPTIMIZER Dieser Speicherkaufmann wird während verschiedener Phasen der Kompilierung einer Abfrage für Speicherzuweisungen verwendet. Einige Verwendungen umfassen Abfrageoptimierung, Indexstatistik-Manager, Ansichtsdefinitionskompilierung, Histogrammgenerierung.
MEMORYCLERK_SQLQERESERVATIONS Dieser Speicherbearbeiter wird für Speichererteilungen verwendet, d. h. Speicher, der Abfragen zugeordnet ist, um Sortier- und Hashvorgänge während der Abfrageausführung auszuführen. Weitere Informationen zu Abfrageausführungsreservierungen (Speichererteilungen) finden Sie in diesem Blog.
MEMORYCLERK_SQLQUERYCOMPILE Dieser Speicherbearbeiter wird vom Abfrageoptimierer zum Zuweisen des Speichers 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 Index-Tessellation, Sortier- und Hashvorgänge (Sortiertabellen, Hashtabellen), einige DVM-Verarbeitung, Aktualisierungsstatistikausführung
MEMORYCLERK_SQLQUERYPLAN Dieser Speicherkaufmann wird für Zuordnungen durch Heap-Seitenverwaltung , DBCC CHECKTABLE-Zuordnungen und sp_cursor* gespeicherte Prozedurzuweisungen verwendet.
MEMORYCLERK_SQLSERVICEBROKER Dieser Speicherbearbeiter wird von SQL Server Service Broker Speicherzuordnungen verwendet.
MEMORYCLERK_SQLSERVICEBROKERTRANSPORT Dieser Speicherbearbeiter wird von SQL Server Service Broker-Transportspeicherzuweisungen verwendet.
MEMORYCLERK_SQLSLO_OPERATIONS Dieser Speicherkaufmann 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 Speicherkaufmann wird für Zuordnungen durch mehrere Speichermodulkomponenten verwendet. Beispiele für Komponenten sind Strukturen für Datenbankdateien, Datenbank Momentaufnahme Replikatdatei-Manager, Deadlock-Monitor, DBTABLE-Strukturen, Log-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 Trace-Speicherzuweisungen verwendet.
MEMORYCLERK_SQLUTILITIES Dieser Speicherkaufmann kann von mehreren Allokatoren in SQL Server verwendet werden. Beispiele sind Sicherung und Wiederherstellung, Protokollversand, Datenbankspiegelung, DBCC-Befehle, BCP-Code auf der Serverseite, einige Abfrageparallelität, Protokollscanpuffer.
MEMORYCLERK_SQLXML Dieser Speicherbearbeiter wird beim Ausführen von XML-Vorgängen für Speicherzuweisungen verwendet.
MEMORYCLERK_SQLXP Dieser Speicherbearbeiter wird beim Aufrufen von erweiterten gespeicherten SQL Server-Prozeduren für Speicherzuweisungen verwendet.
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 Speicherkaufmann wird für Zuordnungen durch Write Page Recorder verwendet.
MEMORYCLERK_XE Dieser Speicherbearbeiter wird für Speicherzuweisungen für erweiterte Ereignisse verwendet.
MEMORYCLERK_XE_BUFFER Dieser Speicherbearbeiter wird für Speicherzuweisungen für erweiterte Ereignisse verwendet.
MEMORYCLERK_XLOG_SERVER Dieser Speicherkaufmann wird für Zuordnungen von Xlog verwendet, die für die Protokolldateiverwaltung in der SQL Azure-Datenbank verwendet werden.

Gilt für: Azure SQL-Datenbank
MEMORYCLERK_XTP Dieser Speicherbearbeiter wird für In-Memory OLTP-Speicherzuordnungen verwendet.
OBJECTSTORE_LBSS Dieser Objektspeicher wird verwendet, um temporäre LOBs – Variablen, Parameter und Zwischenergebnisse für Ausdrücke zuzuweisen. Ein Beispiel, das diesen Speicher verwendet, ist tabellenwertige Parameter (TVP). Weitere Informationen zu Fixes in diesem Bereich finden Sie im KB-Artikel 4468102 und KB-Artikel 4051359 .
OBJECTSTORE_LOCK_MANAGER Dieser Speicherkaufmann verfolgt die Vom Sperr-Manager in SQL Server vorgenommenen Zuordnungen.
OBJECTSTORE_SECAUDIT_EVENT_BUFFER Dieser Objektspeicher wird für SQL Server Audit-Speicherzuweisungen verwendet.
OBJECTSTORE_SERVICE_BROKER Dieser Objektspeicher wird vom 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 zum Zwischenspeichern von Transaktionsinformationen verwendet.
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 allgemeiner Benutzer dieses Speichers könnte die tempdb-Datenbank mit Objekten wie Tabellen, temporären Prozeduren, Tabellenvariablen, Tabellenwertparametern, Arbeitstabellen, Arbeitsdateien, Versionsspeicher sein.
USERSTORE_SXC Dieser Benutzerspeicher wird für Zuordnungen verwendet, um alle RPC-Parameter zu speichern.
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 zugewiesen.

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 Entwerfen von SQL Server- und Azure SQL-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)