INF: Utilizzo di DBCC MEMORYSTATUS per monitorare l'utilizzo di memoria SQL Server

Traduzione articoli Traduzione articoli
Identificativo articolo: 271624 - Visualizza i prodotti a cui si riferisce l?articolo.
Espandi tutto | Chiudi tutto

In questa pagina

Sommario

Il comando DBCC MEMORYSTATUS fornisce un'istantanea dello stato corrente di memoria di SQL Server. L'output di questo comando Ŕ utile per la risoluzione dei problemi relativi al consumo di memoria di SQL Server o a errori specifici di esaurimento della memoria (molti dei quali stampare automaticamente l'output nel log degli errori). Servizio supporto tecnico clienti Microsoft potrebbe richiedere inoltre si esegue questo comando nel corso di un incidente di supporto specifico se si Ŕ verificato un errore che pu˛ essere associato a una condizione di memoria insufficiente.

Questo comando Ŕ destinato a essere uno strumento di diagnostico per il servizio supporto tecnico clienti Microsoft. Il formato dell'output e il livello di dettaglio fornito sono soggette a variazione tra il service pack e prodotto Release. La funzionalitÓ fornita dal comando DBCC MEMORYSTATUS probabilmente verrÓ sostituita da un diverso meccanismo nelle future versioni del prodotto e questo comando non potrebbe non funzionare pi¨. Non verranno effettuati ulteriori avvisi prima di modificare o rimuovere questo comando. Di conseguenza, le applicazioni che dipendono comportamento potrebbero interrompersi senza alcun avviso.

L'output di DBCC MEMORYSTATUS contiene sette sezioni. In questo articolo vengono descritti alcuni dei dati di chiavi che possono essere ricavati dall'output nelle prime quattro sezioni. Nelle rimanenti sezioni prevedono dettagli di implementazione proprietaria e non sono illustrati in questo articolo. Servizio supporto tecnico clienti Microsoft non verrÓ di rispondere a eventuali domande o fornire informazioni aggiuntive sul significato di contatori specifici oltre a ci˛ che viene fornito in questo articolo.

Informazioni

Prima di sezione

La prima sezione descrive la distribuzione dei buffer di 8 KB nel pool di buffer. ╚ presente una struttura di buffer per ogni pagina da 8 KB potenziali nel pool di buffer. Questo include pagine fisiche se Address Windowing Extensions (AWE) Ŕ attivata. Questa struttura contiene un numero di bit che indicano lo stato della pagina sottostante (vale a dire se la pagina Ŕ stata modificata, Ŕ bloccato, Ŕ in I/O e altro ancora). Questa sezione vengono descritti il numero di buffer che abbiano bit dello stato specifico.
Buffer Distribution              Buffers     
------------------------------   ----------- 
Stolen                           241
Free                             95
Procedures                       89
Inram                            0
Dirty                            16
Kept                             0
I/O                              0
Latched                          18
Other                            880

(9 row(s) affected)
				
Stolen. memoria Stolen descrive il buffer in uso per l'ordinamento o per l'hash operazioni (query di memoria dell'area di lavoro) o per i buffer che vengono utilizzati come archivio per le allocazioni di memoria generico per memorizzare strutture di dati interno, ad esempio i blocchi, contesto di transazione e le informazioni di connessione. Il processo lazywriter non Ŕ consentito lo svuotamento del buffer Stolen esaurito il pool di buffer.

libero . disponibile fa riferimento a cui Ŕ stato eseguito il commit buffer che non sono attualmente in uso. Questi sono disponibili per la memorizzazione dei dati, o potrebbe essere richiesto da altri componenti e contrassegnati come Stolen .

le procedure . procedure fa riferimento al buffer che dispongono di memoria di stored procedure nella cache. I buffer di contengono i piani compilati ed eseguibili per procedure e memorizzati nella cache i piani ad hoc.

Inram . Inram fa riferimento a pagine per le tabelle bloccate che non possono essere rimosso dalla memoria (bloccato mediante il comando l'istruzione DBCC PINTABLE o mediante la sp_tableoption stored procedure).

dirty . Dirty fa riferimento a pagine di dati che contengono le modifiche che non sono ancora state svuotate su disco.

mantenere . kept fa riferimento a pagine che sono temporaneamente bloccate in memoria per impedire che vengano scaricati. Questo valore non viene utilizzato in SQL Server 2000.

I/O. I/O fa riferimento al buffer che sono in attesa di un'operazione di I/O in sospeso. In SQL Server 2000, incluse mapping o unmapping un buffer tramite AWE.

latch . I buffer latched registrare il numero di buffer in cui una connessione Ŕ di lettura o modifica una riga dalla pagina. Un latch Ŕ utilizzato per assicurare la consistenza fisica dei dati nella pagina durante la lettura o la modifica, mentre un blocco viene utilizzato per garantire la coerenza logica e transazionale.

altri . Sono pagine di cui Ŕ stato eseguito il commit, che non soddisfano i criteri menzionati in precedenza. In genere, la maggior parte dei buffer che soddisfano i criteri sono i dati di cui Ŕ stato eseguito l'hashing e pagine di indice nella cache del buffer.

Seconda sezione

Nella sezione seconda sono elencati alcuni totali in base alle dimensioni complessive e la struttura del pool di buffer.
Buffer Counts                  Buffers     
------------------------------ ----------- 
Committed                      1339
Target                         6318
Hashed                         914
InternalReservation            120
ExternalReservation            0
Min Free                       16

(6 row(s) affected)
				
eseguito il commit. Numero totale di buffer che vengono applicate in Windows NT. Il valore di approvata Ŕ "dimensione" del pool di buffer corrente. Questo valore include la memoria fisica viene allocata se AWE Ŕ attivata.

destinazione . La destinazione impegnata count o dimensioni pool di buffer desidera. Se il conteggio destinazione Ŕ maggiore del valore approvata , Ŕ in crescita il pool di buffer. Se il numero di destinazione Ŕ inferiore rispetto al valore approvata , il pool di buffer Ŕ compattazione. Il processo lazywriter utilizza questo valore per determinare se si desidera aumentare o ridurre il pool di buffer.

generare un hash . Il numero di pagine di dati e indice memorizzate nel pool di buffer.

InternalReservation . Il numero di pagine che il pool di buffer mantiene per se stessa. Il valore di InternalReservation Ŕ il numero minimo di pagine necessarie per soddisfare le richieste di dati semplice per il numero corrente di utenti.

ExternalReservation . Il numero di pagine che sono state impegnate per le query che verrÓ eseguire un ordinamento o di un'operazione hash ma che sono non ancora stati rubati. Viene utilizzato come suggerimento per il lazywriter che sarÓ un requisito di scadenza per una grande quantitÓ di memoria.

min disponibile . Il numero di pagine che il pool di buffer tenta di mantenere nell'elenco disponibile. Se l'elenco di disponibilitÓ scende di sotto il valore Min disponibile , il pool di buffer tenta di compilare l'elenco libero eliminando precedente pagine dalla cache di dati o le procedure precedenti dalla cache delle procedure.

Terza sezione

Nella sezione terza viene descritta la struttura della cache delle procedure.
Procedure Cache                Value       
------------------------------ ----------- 
TotalProcs                     17
TotalPages                     89
InUsePages                     40

(3 row(s) affected)
				
TotalProcs . Il numero totale di oggetti memorizzati nella cache attualmente nella cache delle procedure. Questo valore confronta il numero di voci nella tabella syscacheobjects virtuale. ╚ possibile utilizzare Performance Monitor per monitorare l'oggetto di gestione di SQL Server: cache per una spiegazione dettagliata del tipo di oggetti memorizzati nella cache, per ad hoc di esempio, i trigger, procedure e ad.

TotalPages . Numero totale di pagine che Ŕ necessario memorizzare tutti gli oggetti memorizzati nella cache.

InUsePages . Il numero di pagine nella cache delle procedure che appartengono a procedure che sono in esecuzione. Questi non pu˛ essere eliminati.

Quarta sezione

La quarta sezione descrive la distribuzione di relativa dei buffer prelevate tra gruppi di componenti pi¨ importanti nel server. SQL Server implementa propri gestori di memoria che utilizzano le pagine del pool di buffer per piccole allocazioni e che passare alla routine del sistema operativo solo per le allocazioni di dimensioni superiori a circa 8 KB. Queste allocazioni pi¨ grandi sono di fuori del pool di buffer e vengano generalmente indicate come allocazioni dall'area MemToLeave . Le dimensioni di questa area possono essere controllata da utilizzando il -g opzione della riga di comando.

La maggior parte delle allocazioni di memoria da MemToLeave sono in genere dai consumatori di memoria non di SQL Server che sono in esecuzione in-process ad esempio oggetti COM, le stored procedure estese e i server collegati. I valori delle relative al sistema operativo segnalati in DBCC MEMORYSTATUS riflettono solo le allocazioni di MemToLeave eseguite direttamente da SQL Server. Altre allocazioni che si verificano in MemToLeave da questi altri componenti non sono inclusi in quanto SQL Server non dispone di alcuna conoscenza di queste richieste di memoria.
Dynamic Memory Manager         Buffers     
------------------------------ ----------- 
Stolen                         330
OS Reserved                    152
OS Committed                   138
OS In Use                      129
General                        322
QueryPlan                      87
Optimizer                      0
Utilities                      10
Connection                     40

(9 row(s) affected)
				
furto . Numero totale di buffer che sono rubate dal pool di buffer dai gestori di cinque memoria (generale, piano di query, Query Optimizer, utilitÓ, connessione). Queste pagine vengono utilizzate per servizio allocazioni di memoria inferiori a 8 KB.

riservato del sistema operativo . Il numero di pagine che sono riservati dal sistema operativo, per gestire richieste di allocazione sono maggiori di circa 8 KB.

commit del sistema operativo . La quantitÓ di memoria nelle aree riservate che Ŕ stato eseguito il commit. Il valore di Commit del sistema operativo deve essere minore o uguale al valore Riservato del sistema operativo poichÚ buffer sono riservati prima e quindi eseguito il commit. Parte della memoria Ŕ liberata non Ŕ pi¨ utilizzato.

Nota ╚ presente un bug in SQL Server 2000 (che Ŕ stato risolto in SQL Server 2000 Service Pack 3) che causa questo valore non per essere gestiti con precisione e pertanto potrebbe non rientrano nell'intervallo valido.

sistema operativo in uso . Buffer Commit del sistema operativo che si sta attualmente eseguendo il backup allocazioni di memoria in sospeso.

Generale . Memoria utilizzata dai consumer generale di memoria nel server, tra cui l'analisi o normalizzazione, blocchi, il contesto di transazione, strutture dati interne che descrive i metadati in memoria per tabelle e indici e ad altri utenti. Questo valore Ŕ il numero totale di buffer di 8 KB. Alcune di queste potrebbero essere buffer prelevate dal pool di buffer, e ad altri utenti potrebbe essere da MemToLeave .

QueryPlan . Memoria utilizzata per archiviare i piani di query, transiently o nella cache. Questo valore Ŕ il numero totale di buffer di 8 KB. Alcune di queste potrebbero essere buffer prelevate dal pool di buffer, e ad altri utenti potrebbe essere da MemToLeave .

query optimizer . Memoria che Ŕ in uso da query optimizer. Questo valore Ŕ il numero totale di buffer di 8 KB. Alcune di queste potrebbero essere buffer prelevate dal pool di buffer, e ad altri utenti potrebbe essere da MemToLeave .

utilitÓ . Memoria utilizzata dalle routine di utilitÓ varie, ad esempio BCP, gestore del registro, le query parallele, :: fn_trace_gettable e altri. Questo valore Ŕ il numero totale di buffer di 8 KB. Alcune di queste potrebbero essere buffer prelevate dal pool di buffer, e ad altri utenti potrebbe essere da MemToLeave .

connessione . Memoria che viene utilizzato per memorizzare le strutture di dati che contiene il contesto di connessione per ogni connessione utente. Inoltre, questo include la memoria per l'invio di rete e buffer associati a una connessione di ricezione. Questo valore Ŕ il numero totale di buffer di 8 KB. Alcune di queste potrebbero essere rubato buffer da pool di buffer e altri utenti che possono essere da MemToLeave .

Riferimenti

Documentazione in linea di SQL Server
Gagliardi, Kalen. Interno Microsoft SQL Server 2000, Microsoft Press, consente di 2000.

ProprietÓ

Identificativo articolo: 271624 - Ultima modifica: mercoledý 12 novembre 2003 - Revisione: 4.3
Le informazioni in questo articolo si applicano a:
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 7.0 Standard Edition
Chiavi:á
kbmt kbinfo KB271624 KbMtit
Traduzione automatica articoli
Il presente articolo Ŕ stato tradotto tramite il software di traduzione automatica di Microsoft e non da una persona. Microsoft offre sia articoli tradotti da persone fisiche sia articoli tradotti automaticamente da un software, in modo da rendere disponibili tutti gli articoli presenti nella nostra Knowledge Base nella lingua madre dell?utente. Tuttavia, un articolo tradotto in modo automatico non Ŕ sempre perfetto. Potrebbe contenere errori di sintassi, di grammatica o di utilizzo dei vocaboli, pi¨ o meno allo stesso modo di come una persona straniera potrebbe commettere degli errori parlando una lingua che non Ŕ la sua. Microsoft non Ŕ responsabile di alcuna imprecisione, errore o danno cagionato da qualsiasi traduzione non corretta dei contenuti o dell?utilizzo degli stessi fatto dai propri clienti. Microsoft, inoltre, aggiorna frequentemente il software di traduzione automatica.
Clicca qui per visualizzare la versione originale in inglese dell?articolo: 271624
LE INFORMAZIONI CONTENUTE NELLA MICROSOFT KNOWLEDGE BASE SONO FORNITE SENZA GARANZIA DI ALCUN TIPO, IMPLICITA OD ESPLICITA, COMPRESA QUELLA RIGUARDO ALLA COMMERCIALIZZAZIONE E/O COMPATIBILITA' IN IMPIEGHI PARTICOLARI. L'UTENTE SI ASSUME L'INTERA RESPONSABILITA' PER L'UTILIZZO DI QUESTE INFORMAZIONI. IN NESSUN CASO MICROSOFT CORPORATION E I SUOI FORNITORI SI RENDONO RESPONSABILI PER DANNI DIRETTI, INDIRETTI O ACCIDENTALI CHE POSSANO PROVOCARE PERDITA DI DENARO O DI DATI, ANCHE SE MICROSOFT O I SUOI FORNITORI FOSSERO STATI AVVISATI. IL DOCUMENTO PUO' ESSERE COPIATO E DISTRIBUITO ALLE SEGUENTI CONDIZIONI: 1) IL TESTO DEVE ESSERE COPIATO INTEGRALMENTE E TUTTE LE PAGINE DEVONO ESSERE INCLUSE. 2) I PROGRAMMI SE PRESENTI, DEVONO ESSERE COPIATI SENZA MODIFICHE, 3) IL DOCUMENTO DEVE ESSERE DISTRIBUITO INTERAMENTE IN OGNI SUA PARTE. 4) IL DOCUMENTO NON PUO' ESSERE DISTRIBUITO A SCOPO DI LUCRO.

Invia suggerimenti

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com