sys.dm_os_memory_clerks (Transact-SQL)
Gilt für: SQL Server Azure SQL-Datenbank Azure SQL Managed Instance Azure Synapse Analytics Analytics 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 schmutzig markiert werden; sie 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:
Typ | 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-Ereignisbenachrichtigungen zu 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, Datenbankmomentaufnahme-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 Dokumentation wird der Begriff „B-Struktur“ im Allgemeinen in Bezug auf Indizes verwendet. In Zeilenspeicherindizes implementiert die Datenbank-Engine 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)