Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Si applica a:SQL Server
Database SQL di
AzureIstanza gestita di SQL di
AzureDatabase SQL in Microsoft Fabric
Questo articolo descrive come abilitare e disabilitare il rilevamento delle modifiche per un database e una tabella.
Abilitazione del rilevamento delle modifiche per un database
Prima di utilizzare il rilevamento delle modifiche, è necessario abilitarlo a livello di database. Nell'esempio seguente viene illustrato come abilitare il rilevamento delle modifiche usando le opzioni ALTER DATABASE SET.
ALTER DATABASE AdventureWorks2022
SET CHANGE_TRACKING = ON
(CHANGE_RETENTION = 2 DAYS, AUTO_CLEANUP = ON)
È anche possibile abilitare il rilevamento modifiche in SQL Server Management Studio tramite la finestra di dialogo Proprietà database (pagina ChangeTracking). Se un database contiene tabelle ottimizzate per la memoria, non è possibile abilitare il rilevamento delle modifiche con SQL Server Management Studio. Per abilitarlo, usare T-SQL.
È possibile specificare le CHANGE_RETENTION opzioni e AUTO_CLEANUP quando si abilita il rilevamento delle modifiche ed è possibile modificare i valori in qualsiasi momento dopo l'abilitazione del rilevamento delle modifiche.
Il valore di memorizzazione della modifica specifica il periodo di tempo durante il quale vengono mantenute le informazioni sul rilevamento delle modifiche. Le informazioni sul rilevamento delle modifiche precedenti a tale periodo di tempo vengono rimosse periodicamente. Quando si imposta questo valore, è consigliabile considerare la frequenza con cui le applicazioni verranno sincronizzate con le tabelle nel database. Il periodo di memorizzazione specificato deve durare almeno quanto il periodo di tempo massimo tra le sincronizzazioni. Se un'applicazione ottiene modifiche a intervalli più lunghi, i risultati restituiti potrebbero non essere corretti, poiché alcune delle informazioni sulle modifiche sono state probabilmente rimosse. Per evitare di ottenere risultati non corretti, un'applicazione può utilizzare la funzione di sistema CHANGE_TRACKING_MIN_VALID_VERSION per determinare se l'intervallo tra sincronizzazioni è stato troppo lungo.
È possibile usare l'opzione AUTO_CLEANUP per abilitare o disabilitare l'attività di pulizia che rimuove le informazioni di rilevamento delle modifiche precedenti. Ciò può essere utile quando si verifica un problema temporaneo che impedisce la sincronizzazione delle applicazioni e il processo di rimozione delle informazioni di rilevamento delle modifiche precedenti al periodo di conservazione deve essere sospeso fino a quando il problema non viene risolto.
Per qualsiasi database che utilizza il rilevamento delle modifiche, tenere presente quanto segue:
Per utilizzare il rilevamento delle modifiche, il livello di compatibilità del database deve essere impostato su 90 o su un valore superiore. Se il livello di compatibilità del database è minore di 90, è possibile comunque configurare il rilevamento delle modifiche, ma la funzione CHANGETABLE, utilizzata per ottenere informazioni sul rilevamento delle modifiche, restituirà un errore.
L'utilizzo dell'isolamento dello snapshot rappresenta il modo più semplice per garantire che tutte le informazioni sul rilevamento delle modifiche siano coerenti. Per questo motivo, è consigliabile impostare l'isolamento dello snapshot su
ONper il database. Per altre informazioni, vedere Usare il rilevamento delle modifiche (SQL Server).
Abilitazione del rilevamento delle modifiche per una tabella
Il rilevamento delle modifiche deve essere abilitato per ciascuna tabella per cui si desidera eseguirlo. Quando il rilevamento delle modifiche è abilitato, le relative informazioni vengono gestite per tutte le righe della tabella interessate da un'operazione DML.
Nell'esempio seguente viene illustrato come abilitare il rilevamento delle modifiche per una tabella tramite ALTER TABLE.
ALTER TABLE Person.Contact
ENABLE CHANGE_TRACKING
WITH (TRACK_COLUMNS_UPDATED = ON)
È anche possibile abilitare il rilevamento delle modifiche per una tabella in SQL Server Management Studio tramite la finestra di dialogo Proprietà database (pagina ChangeTracking).
Quando l'opzione TRACK_COLUMNS_UPDATED è impostata su ON, il motore di database di SQL Server archivia informazioni aggiuntive sulle colonne aggiornate alla tabella di rilevamento modifiche interna. Il rilevamento a livello di colonna consente di sincronizzare solo le colonne aggiornate. Ciò può migliorare efficienza e prestazioni. Tuttavia, poiché la gestione delle informazioni di rilevamento delle colonne comporta un sovraccarico di archiviazione aggiuntivo, questa opzione è impostata su per OFF impostazione predefinita.
Disabilitazione del rilevamento modifiche per un database o una tabella
Prima di poter impostare OFF il rilevamento delle modifiche su per il database, è necessario disabilitare il rilevamento delle modifiche per tutte le tabelle con rilevamento delle modifiche. Per determinare le tabelle in cui è abilitato il rilevamento delle modifiche per un database, usare la vista del catalogo sys.change_tracking_tables .
Nell'esempio seguente viene illustrato come disabilitare il rilevamento delle modifiche per una tabella tramite ALTER TABLE.
ALTER TABLE Person.Contact
DISABLE CHANGE_TRACKING;
Quando non vengono rilevate modifiche in nessuna tabella di un database, è possibile disabilitare il rilevamento delle modifiche per il database. Nell'esempio seguente viene illustrato come disabilitare il rilevamento delle modifiche per un database usando le opzioni ALTER DATABASE SET.
ALTER DATABASE AdventureWorks2022
SET CHANGE_TRACKING = OFF
Contenuti correlati
- Proprietà database (pagina Tracciamento delle modifiche)
- Opzioni di ALTER DATABASE SET (Transact-SQL)
- Visualizzazioni del catalogo rilevamento modifiche - sys.change_tracking_databases
- Visualizzazioni del catalogo rilevamento modifiche - sys.change_tracking_tables
- Tenere traccia delle modifiche ai dati (SQL Server)
- Informazioni sul rilevamento delle modifiche (SQL Server)
- Lavorare con i dati delle modifiche
- Gestisci il Monitoraggio delle Modifiche (SQL Server)