SQL Server, oggetto Buffer Manager

Si applica a:SQL Server

L'oggetto Gestione buffer fornisce contatori per monitorare l'utilizzo di SQL Server:

  • Memoria per archiviare pagine di dati.

  • Contatori per monitorare l'I/O fisico durante la lettura e la scrittura di pagine di database di SQL Server.

  • Estensione del pool di buffer per estendere la cache del buffer utilizzando risorse di archiviazione non volatili veloci quali le unità SSD.

Il monitoraggio della memoria e dei contatori usati da SQL Server consente di determinare:

  • Se vi sono colli di bottiglia dovuti a una quantità di memoria fisica inadeguata. Se non è possibile archiviare i dati a cui si accede di frequente nella cache, SQL Server deve recuperare i dati dal disco.

  • Se le prestazioni delle query possono essere migliorate aggiungendo più memoria o rendendo disponibile più memoria per la cache dei dati o le strutture interne di SQL Server.

  • Frequenza con cui SQL Server deve leggere i dati dal disco. Rispetto agli altri tipi di operazioni, ad esempio l'accesso alla memoria, l'I/O fisico richiede una maggiore quantità di tempo. Riducendo al minimo le operazioni di I/O fisico è possibile migliorare le prestazioni delle query.

Oggetti prestazioni di Gestione buffer

Questa tabella descrive gli oggetti prestazioni di Gestione buffer di SQL Server.

Contatori di Gestione buffer di SQL Server Descrizione
Pagine writer background/sec Numero di pagine scaricate per imporre le impostazioni dell'intervallo di recupero.
Percentuale riscontri cache buffer Indica la percentuale di pagine trovate nella cache del buffer senza dover ricorrere a una lettura dal disco. La percentuale è data dal rapporto tra il totale dei riscontri nella cache e il totale di ricerche nella cache eseguite considerate alcune migliaia dei più recenti accessi alla pagina. La variazione della percentuale su lunghi periodi di tempo è limitata. Poiché la lettura dalla cache richiede una quantità di risorse molto minore rispetto alla lettura dal disco, è auspicabile che il valore della percentuale sia elevato. In genere, è possibile aumentare il rapporto di riscontri nella cache del buffer aumentando la quantità di memoria disponibile per SQL Server o usando la funzionalità di estensione del pool di buffer.
Base percentuale riscontri cache del buffer Solo per uso interno.
Pagine checkpoint/sec Indica il numero di pagine al secondo scaricate nel disco tramite checkpoint o altre operazioni che richiedono lo scaricamento di tutte le pagine dirty.
Pagine di database Indica il numero di pagine con contenuto di database nel pool di buffer.
Pagine di estensione allocate Numero totale di pagine memorizzate nella cache non disponibili nel file di estensione del pool di buffer.
Pagine di estensione disponibili Numero totale di pagine memorizzate nella cache disponibili nel file di estensione del pool di buffer.
Estensione utilizzata in percentuale Percentuale del file di paging dell'estensione del pool di buffer occupato dalle pagine di Gestione buffer.
Contatore IO di estensione in attesa Lunghezza della coda di I/O per il file di estensione del pool di buffer.
Eliminazioni pagine di estensione/sec Numero di pagine eliminate dal file dell'estensione del pool di buffer al secondo.
Letture pagine di estensione/sec Numero di pagine lette dal file dell'estensione del pool di buffer al secondo.
Tempo senza riferimenti pagina di estensione Numero medio di secondi durante i quali una pagina viene mantenuta nell'estensione del pool di buffer senza riferimenti.
Scritture pagine di estensione/sec Numero di pagine scritte nel file dell'estensione del pool di buffer al secondo.
Blocchi elenco di disponibilità/sec Indica il numero di richieste al secondo per cui è stata necessaria l'attesa di una pagina disponibile.
Pendenza controller integrale Ultima pendenza utilizzata dal controller integrale per il pool di buffer, -10 miliardi di volte.
Scritture Lazywriter/sec Indica il numero di buffer scritti al secondo da Lazywriter di Gestione buffer. Lazywriter è un processo di sistema che scarica batch di buffer dirty e obsoleti (buffer contenenti modifiche che devono essere riscritte su disco prima che il buffer possa essere riutilizzato per un'altra pagina) e li rende disponibili per i processi utente. Lazywriter elimina la necessità di eseguire checkpoint frequenti per la creazione di buffer disponibili.
Permanenza presunta delle pagine Indica il numero di secondi durante il quale una pagina viene mantenuta nel pool di buffer senza riferimenti.
Ricerche di pagina/sec Indica il numero di richieste al secondo per la ricerca di una pagina nel pool di buffer.
Letture di pagina/sec Indica il numero di letture fisiche di pagine del database eseguite al secondo. Il valore indica il totale di letture fisiche di pagine eseguite in tutti i database. Poiché l'I/O fisico è costoso, potrebbe essere possibile ridurre al minimo il costo, usando una cache di dati più grande, indici intelligenti e query più efficienti oppure modificando la progettazione del database.
Scritture di pagina/sec Indica il numero di scritture fisiche di pagine del database eseguite al secondo.
Pagine read-ahead/sec Indica il numero di pagine lette al secondo prima di essere utilizzate.
Tempo read-ahead/sec Tempo (in microsecondi) impiegato per eseguire il read-ahead.
Obiettivo numero di pagine Numero ideale di pagine per il pool di buffer.

Esempio

Si inizia a esplorare i contatori delle prestazioni delle query in questo oggetto usando questa query T-SQL nella vista a gestione dinamica sys.dm_os_performance_counters :

SELECT * FROM sys.dm_os_performance_counters
WHERE object_name LIKE '%Buffer Manager%';