Condividi tramite


Rilevamento degli extent modificati

SQL Server utilizza due strutture di dati interne per rilevare gli extent modificati mediante operazioni di copia bulk e di quelli modificati successivamente al backup completo più recente. Queste strutture di dati consentono di accelerare in misura significativa le operazioni di backup differenziale. Esse accelerano inoltre la registrazione delle operazioni di copia bulk con database per i quali viene utilizzato il modello di recupero con registrazione minima delle operazioni bulk. Come le pagine mappa di allocazione globale (GAM, Global Allocation Map) e mappa di allocazione globale condivisa (SGAM, Shared Global Allocation Map), queste strutture sono mappe di bit in cui ogni bit rappresenta un singolo extent.

  • Mappa differenziale delle modifiche (DCM, Differential Changed Map)

    Rileva gli extent modificati dopo l'esecuzione dell'ultima istruzione BACKUP DATABASE. Se il bit di un extent è 1, l'extent è stato modificato dopo l'esecuzione dell'ultima istruzione BACKUP DATABASE. Se invece è 0, l'extent non è stato modificato.

    Durante il backup differenziale vengono lette solo le pagine DCM per identificare gli extent modificati. In questo modo, il numero di pagine di cui è necessario eseguire la scansione durante il backup differenziale risulta notevolmente ridotto. La durata dell'esecuzione di un backup differenziale è proporzionale al numero di extent modificati dopo l'esecuzione dell'ultima istruzione BACKUP DATABASE e non alle dimensioni complessive del database.

  • Mappa delle modifiche di copia bulk (BCM, Bulk Changed Map)

    Rileva gli extent modificati mediante operazioni con registrazione minima delle operazioni bulk dall'esecuzione dell'ultima istruzione BACKUP LOG. Se il bit di un extent è 1, l'extent è stato modificato mediante un'operazione con registrazione minima delle operazioni bulk dall'esecuzione dell'ultima istruzione BACKUP LOG. Se invece è 0, l'extent non è stato modificato mediante operazioni con registrazione minima delle operazioni bulk.

    Sebbene le pagine BCM siano presenti in tutti i database, esse risultano utili solo se il database utilizza il modello di recupero con registrazione minima delle operazioni bulk. Grazie a tale modello, quando viene eseguita un'istruzione BACKUP LOG il processo di backup esegue la scansione delle pagine BCM per identificare gli extent che sono stati modificati, quindi li include nel backup del log. In questo modo, se il database viene ripristinato da un backup di database e da una sequenza di backup del log delle transazioni, viene eseguito il recupero delle operazioni con registrazione minima delle operazioni bulk. Le pagine BCM non risultano utili in database che utilizzano il modello di recupero con registrazione minima in quanto non prevede la registrazione delle operazioni con registrazione minima delle operazioni bulk, né in database che utilizzano il modello di recupero con registrazione completa in quanto, con questo modello, le operazioni con registrazione minima delle operazioni bulk vengono considerate come operazioni con registrazione completa delle operazioni bulk.

L'intervallo tra le pagine DCM e BCM corrisponde all'intervallo tra le pagine GAM e SGAM, ovvero 64.000 extent. All'interno di un file fisico le pagine DCM e BCM sono seguite dalle pagine GAM e SGAM:

Pagine DCM (Differential Change Map) e BCM (Bulk Changed Map)