Mengaktifkan dan Menonaktifkan Pelacakan Perubahan (SQL Server)

Berlaku untuk:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

Topik ini menjelaskan cara mengaktifkan dan menonaktifkan pelacakan perubahan untuk database dan tabel.

Mengaktifkan Pelacakan Perubahan untuk Database

Sebelum bisa menggunakan pelacakan perubahan, Anda harus mengaktifkan pelacakan perubahan di tingkat database. Contoh berikut menunjukkan cara mengaktifkan pelacakan perubahan dengan menggunakan ALTER DATABASE.

ALTER DATABASE AdventureWorks2022  
SET CHANGE_TRACKING = ON  
(CHANGE_RETENTION = 2 DAYS, AUTO_CLEANUP = ON)  

Anda juga dapat mengaktifkan pelacakan perubahan di SQL Server Management Studio dengan menggunakan kotak dialog Properti Database (Halaman ChangeTracking). Jika database berisi tabel yang dioptimalkan memori, Anda tidak dapat mengaktifkan pelacakan perubahan dengan SQL Server Management Studio. Untuk mengaktifkannya, gunakan T-SQL.

Anda dapat menentukan CHANGE_RETENTION dan AUTO_CLEANUP saat mengaktifkan pelacakan perubahan, dan Anda dapat mengubah nilai kapan saja setelah pelacakan perubahan diaktifkan.

Nilai retensi perubahan menentukan periode waktu penyimpanan informasi pelacakan perubahan. Informasi pelacakan perubahan yang lebih lama dari periode waktu ini akan dihapus secara berkala. Saat Anda mengatur nilai ini, Anda harus mempertimbangkan seberapa sering aplikasi akan disinkronkan dengan tabel dalam database. Periode retensi yang ditentukan harus setidaknya selama periode waktu maksimum antara sinkronisasi. Jika aplikasi memperoleh perubahan pada interval yang lebih lama, hasil yang ditampilkan mungkin salah karena beberapa informasi perubahan mungkin telah dihapus. Untuk menghindari mendapatkan hasil yang salah, aplikasi dapat menggunakan fungsi sistem CHANGE_TRACKING_MIN_VALID_VERSION untuk menentukan apakah interval antarsinkronisasi telah terlalu lama.

Anda dapat menggunakan opsi AUTO_CLEANUP untuk mengaktifkan atau menonaktifkan tugas pembersihan yang menghapus informasi pelacakan perubahan lama. Hal ini dapat berguna ketika ada masalah sementara yang mencegah aplikasi dari sinkronisasi dan proses untuk menghapus informasi pelacakan perubahan yang lebih lama dari periode retensi harus dijeda hingga masalah teratasi.

Untuk database apa pun yang menggunakan pelacakan perubahan, ketahui hal berikut:

  • Untuk menggunakan pelacakan perubahan, tingkat kompatibilitas database harus diatur ke 90 atau lebih besar. Jika database memiliki tingkat kompatibilitas kurang dari 90, Anda dapat mengonfigurasi pelacakan perubahan. Namun, fungsi CHANGETABLE, yang digunakan untuk mendapatkan informasi pelacakan perubahan, akan mengembalikan kesalahan.

  • Menggunakan isolasi rekam jepret adalah cara termudah untuk membantu memastikan semua informasi pelacakan perubahan konsisten. Untuk alasan ini, kami sangat menyarankan agar isolasi rekam jepret diatur ke AKTIF untuk database. Untuk informasi selengkapnya, lihat Bekerja dengan Pelacakan Perubahan (SQL Server).

Mengaktifkan Pelacakan Perubahan untuk Tabel

Pelacakan perubahan harus diaktifkan untuk setiap tabel yang ingin Anda lacak. Saat pelacakan perubahan diaktifkan, informasi pelacakan perubahan dipertahankan untuk semua baris dalam tabel yang dipengaruhi oleh operasi DML.

Contoh berikut menunjukkan cara mengaktifkan pelacakan perubahan untuk tabel dengan menggunakan ALTER TABLE.

ALTER TABLE Person.Contact  
ENABLE CHANGE_TRACKING  
WITH (TRACK_COLUMNS_UPDATED = ON)  

Anda juga dapat mengaktifkan pelacakan perubahan untuk tabel di SQL Server Management Studio dengan menggunakan kotak dialog Properti Database (Halaman ChangeTracking).

Saat opsi TRACK_COLUMNS_UPDATED diatur ke AKTIF, Mesin Database SQL Server menyimpan informasi tambahan tentang kolom mana yang diperbarui ke tabel pelacakan perubahan internal. Pelacakan kolom dapat mengaktifkan aplikasi untuk menyinkronkan hanya kolom yang diperbarui. Hal ini dapat meningkatkan efisiensi dan performa. Namun, karena mempertahankan informasi pelacakan kolom menambahkan beberapa overhead penyimpanan tambahan, opsi ini diatur ke NONAKTIF secara default.

Menonaktifkan Pelacakan Perubahan untuk Tabel atau Database

Pelacakan perubahan harus terlebih dahulu dinonaktifkan untuk semua tabel yang perubahannya dilacak sebelum pelacakan perubahan dapat diatur ke NONAKTIF untuk database. Untuk menentukan tabel yang mengaktifkan pelacakan perubahan untuk database, gunakan tampilan katalog sys.change_tracking_tables .

Contoh berikut menunjukkan cara menonaktifkan pelacakan perubahan untuk tabel dengan menggunakan ALTER TABLE.

ALTER TABLE Person.Contact  
DISABLE CHANGE_TRACKING;  

Saat tidak ada tabel dalam database yang melacak perubahan, Anda dapat menonaktifkan pelacakan perubahan untuk database. Contoh berikut menunjukkan cara menonaktifkan pelacakan perubahan untuk database dengan menggunakan ALTER DATABASE.

ALTER DATABASE AdventureWorks2022  
SET CHANGE_TRACKING = OFF  

Lihat Juga

Properti Database (Halaman ChangeTracking)
UBAH Opsi SET DATABASE (Transact-SQL)
sys.change_tracking_databases (T-SQL)
sys.change_tracking_tables (T-SQL)
Lacak Perubahan Data (SQL Server)
Tentang Pelacakan Perubahan (SQL Server)
Bekerja dengan Ubah Data (SQL Server)
Mengelola Pelacakan Perubahan (SQL Server)