INFO: Quando le pagine Dirty Cache vengono scaricate su disco

Dichiarazione di non responsabilità per contenuto KB ritirato

Il contenuto di questo articolo è riferito a prodotti per cui Microsoft non offre più il supporto. Questo articolo viene pertanto offerto "così com'è" e non sarà più aggiornato.

Riepilogo

Per migliorare le prestazioni di SQL Server gestisce una cache di letti in precedenza e/o modificare le pagine ("dirty"). Periodicamente, queste pagine vengono scritte fisicamente sul disco, garantendo che le modifiche a tutte le righe vengono riflesse nel database utente.

Ulteriori informazioni

SQL Server invia le pagine dalla cache su disco le seguenti condizioni:

  1. Quando viene generato un checkpoint.

    Esistono cinque condizioni che possono causare un arresto da emettere:


    1. Il proprietario del database o l'amministratore di sistema (SA) è possibile eseguire un comando CHECKPOINT in qualsiasi momento.
    2. Quando viene emesso un comando DUMP DATABASE o DUMP TRANSACTION, il primo passaggio del processo di DUMP è eseguire un checkpoint nel database.
    3. Un checkpoint in ogni database al termine del processo di ripristino ripristino di tale database. Questa funzionalità può essere disabilitata tramite la procedura di sistema sp_dboption con l'opzione "opzione no chkpt sul recupero" impostata su true.
    4. Verrà emesso automaticamente un checkpoint per il processo di controllo quando determina che si sono verificati di transazioni insufficiente rispetto all'ultimo checkpoint al punto di arresto. Sebbene il processo di verifica dei punti di arresto viene attivato su una volta al minuto per vedere quante attività ha avuto luogo, la frequenza con cui ha effettivamente un checkpoint è determinata dal numero di transazioni e il valore impostato per l'intervallo di ripristino. Si noti che se l'opzione "trunc. opzione log on chkpt."è stata impostata tramite sp_dboption, un punto di arresto si verifica ogni volta che viene attivato il processo di verifica dei punti di arresto (circa una volta al minuto).
    5. Un checkpoint quando la SA esegue il comando di arresto.
  2. Quando una nuova pagina deve essere messo nella cache.


    Quando SQL Server determina che è necessario che non attualmente in cache di una pagina, la ricerca di un buffer liberi nella catena di pagine della cache. Dopo aver terminato di scorrere la catena, la pagina dal più vecchio buffer viene svuotata su disco.
  3. Alla fine di una copia rapida in massa o SELECT INTO.


    Quando si utilizza la veloce BCP (versione non registrato) oppure quando viene creata una tabella utilizzando SELECT INTO, le righe appena inserita non vengono registrate. Inoltre, molti o tutti gli elementi potrebbe essere ancora nella cache. Per ridurre la possibilità di perdita di dati in caso di SQL Server viene arrestato senza un punto di arresto, tutte le pagine dirty vengono trasferite su disco quando il termine BCP o SELECT INTO.
  4. Le pagine di log vengono scaricate quando termina una transazione.


    Al termine di una transazione, con un COMMIT o ABORT, le pagine di log vengono scaricate su disco.
  5. Quando una pagina viene divisa, la pagina appena allocata viene cancellata immediatamente su disco.
  6. Carica DATABASE scrive tutte le pagine sul disco.


    Durante il caricamento di un database con il comando di DATABASE di carico, il dump di tutte le pagine vengono scritte direttamente su disco. Inoltre, tutte le pagine del database che non sono nel dump vengono inizializzate e scaricate su disco. Ad esempio, se si carica un dump di un database di 4 MB in un database di 10 MB, il rimanente 6 MB delle pagine tutti sarà inizializzato e scritte su disco.
  7. Il processo LAZYWRITER Svuota le pagine dirty.


    Un nuovo processo di sistema Lazywriter, è stato aggiunto a Microsoft SQL Server versione 4.21. Il processo Lazywriter viene avviato automaticamente svuotamento buffer quando il numero di buffer liberi disponibili scende sotto una certa soglia e arresta svuotamento buffer quando questo numero viene ~ 5-6% di sopra della soglia. Il valore di soglia è espresso in percentuale del numero totale di buffer nella cache del buffer. La soglia predefinita è impostata su 3% dei buffer nella cache di dati. Per ulteriori informazioni consultare le note sulla versione di Microsoft SQL Server versione 4.21 (\sql\install\readme.txt).
SQL Server richiede sistemi per il supporto di "consegna garantita su un supporto stabile' come indicato nel programma la revisione soluzione di Storage Always-On di Microsoft SQL Server. FoPer ulteriori informazioni sui requisiti di input e outpui per il motore di database di SQL Server, fare clic sul numero riportato di seguito per visualizzare l'articolo della Microsoft Knowledge Base:

Requisiti di Microsoft SQL Server Database Engine Input/Output 967576

Proprietà

ID articolo: 78363 - Ultima revisione: 30 gen 2017 - Revisione: 1

Feedback