sys.dm_os_memory_clerks (Transact-SQL)
Gilt für: SQL Server Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Platform 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)