Değişiklik izleme yönetme ve yapılandırma

Bu konuda etkinleştirmek, devre dışı bırakır ve değişiklik izleme yönetme yöntemi açıklanmıştır.Ayrıca, güvenlik yapılandırma, değişiklik izleme kullanıldığında, depolama ve performans üzerindeki etkisini belirlemek nasıl da anlatılmaktadır.

Değişiklik izleme için veritabanı'nı etkinleştirme

Değişiklik izlemeyi kullanmak için önce değişiklik izlemeyi konumundaki veritabanını etkinleştirmeniz gerekir düzey.Aşağıdaki örnek, değişiklik izleme kullanarak etkinleştirme gösterir alter database:

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

Değişiklik izleme içinde de etkinleştirebilirsiniz SQL Server Management Studio kullanarak Veritabanı Özellikler (sayfa ChangeTracking) iletişim kutusu.

Değişiklik izlemeyi etkinleştirmek ve herhangi bir anda değerleri değiştirebilirsiniz CHANGE_RETENTION ve auto_cleanup seçenekleri belirtmek saat değişiklik izleme etkinleştirildikten sonra.

Değişiklik saklama değerini belirtir saat dönemi için hangi değişiklik izleme bilgileri tutulur.İzleme bilgilerini bu değerden daha eski saat dönem düzenli olarak kaldırıldı.Bu değer ne kadar sıklıkla düşünmelisiniz belirlenmesi sırasında uygulamalar veritabanındaki tabloları ile eşitler.Belirtilen saklama dönemi en az uzunlukta saat eşitlemeler arasındaki dönem.Bir uygulama daha uzun aralıklarla değişiklikleri alırsa, bazı değişiklik bilgisini büyük olasılıkla kaldırıldı çünkü döndürülen sonuçlar yanlış olabilir.Hatalı sonuçlar almasını önlemek için bir uygulama CHANGE_TRACKING_MIN_VALID_VERSION sistem işlev eşitlemeler arasındaki aralığı çok uzun olup olmadığını belirlemek için kullanabilirsiniz.

Etkinleştirmek veya izleme bilgileri eski kaldırır temizleme görevi devre dışı bırakmak için auto_cleanup seçeneğini kullanabilirsiniz.Bu uygulamalar eşitlenmesini engelleyen geçici bir sorun vardır ve sorun çözülene kadar izleme bilgilerini saklama dönemi eski kaldırma işlemi duraklatıldı gerekir, yararlı olabilir.

Değişiklik izleme kullanan herhangi bir veritabanı için aşağıdakilere dikkat edin:

  • Değişiklik izleme için veritabanı uyumluluk düzey olmalıdır küme 90 veya daha yüksek.Veritabanı uyumluluk düzey 90 günden az ise, değişiklik izleme yapılandırabilirsiniz.Ancak, izleme bilgilerini elde etmek için kullanılan, changetable işlev bir hata döndürecektir.

  • Anlık görüntü yalıtım kullanarak tüm değişiklik izleme bilgileri tutarlı olduğundan emin olmak için en kolay yoludur.Bu nedenle, anlık görüntü yalıtım olmasını öneririz küme veritabanı için açık.Daha fazla bilgi için bkz: Değişiklik izleme kullanarak.

Değişiklik izleme tablo için etkinleştirme

İzlenen istediğiniz her tablo için değişiklik izleme etkinleştirilmiş olması gerekir.Değişiklik izleme etkinleştirildiğinde, izleme bilgilerini tüm satırlar için tutulan tablo dml işlemi tarafından etkilenir.

Aşağıdaki örnek, nasıl değişiklik kullanarak bir tablo için izleme etkinleştirilir gösterir alter table:

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

Değişiklik izleme için bir tablo da etkinleştirebilirsiniz SQL Server Management Studio kullanarak Tablo Özellikler (sayfa ChangeTracking) iletişim kutusu.

track_columns_updated seçeneği olduğunda küme açık, SQL Server Veritabanı Altyapısı hangi sütunların güncelleştirildi dahili izleme tablo Değiştir fazladan bilgi depolar. İzleme sütun yalnızca güncelleştirilmiş sütunları eşitlemek bir uygulama etkinleştirebilirsiniz. Bu verimlilik ve performans. iyileştirebilirAncak, bazı ekstra depolama yükü ekler sütun izleme bilgilerini yönetmek için bu seçenek varsayılan olarak off için küme.

Değişiklik izlemeyi devre dışı bırakma

Değişiklik izleme gerekir ilk devre tüm değişiklik izlenen tablolar için değişiklik izlemeyi önce küme veritabanı için off için.Değişiklik izleme için veritabanı etkin olan tabloları belirlemek için sys.change_tracking_tables Katalog görünümü.

Değişiklik için bir tablo kullanarak izlemeyi devre dışı bırakma aşağıdaki örnekte gösterilmektedir alter table:

ALTER TABLE Person.Person
DISABLE CHANGE_TRACKING;

Herhangi bir veritabanındaki tabloları değişiklikleri izlediğinizde, değişiklik izleme için veritabanı devre dışı bırakabilirsiniz.Değişiklik için bir veritabanı kullanarak izlemeyi devre dışı bırakma aşağıdaki örnekte gösterilmektedir alter database:

ALTER DATABASE AdventureWorks2008R2
SET CHANGE_TRACKING = OFF;

Değişiklik izleme yönetme

Katalog görünümleri, izinleri ve değişiklik izleme yönetmeyle ilgili ayarları aşağıdaki bölümlerde listelenmiştir.

Katalog Görünümleri

Hangi tablolar ve veritabanları değişiklik izleme etkinleştirilmiş olduğunu belirlemek için aşağıdakileri kullanabilirsiniz katalog görünümleri:

Ayrıca, sys.internal_tables Katalog görünümü, kullanıcı tablo için değişiklik izleme etkinleştirildiğinde oluşturulan iç tabloları listeler.

Güvenlik

İzleme bilgilerini kullanarak erişim değişikliği İzleme işlevlerini değiştirmek, patron aşağıdaki izinlere sahip olmalıdır:

  • En az izni'seçilen Sorgulanan tablo için değişiklik izlenen tablosundaki birincil anahtar sütunları.

  • Görünümü Değiştir izleme izni tablo kendisi için değişiklikleri elde.Aşağıdaki nedenlerle görünüm değişiklik izleme izni gereklidir:

    • Değişiklik izleme kayıtları silinmiş, özellikle birincil anahtar değerleri silinmiş satır satır hakkındaki bilgileri içerir.Bazı gizli veri veriler silindi sonra bir asıl izlenen tablo Değiştir select izni verilmiş.Bu durum, size, silinen bilgileri değişiklik izleme kullanılarak erişebilmeleri için asıl görmesini istemeyebilirsiniz.

    • İzleme bilgilerini, hangi sütunları güncelleştirme işlemleri tarafından değiştirilmiş bilgilerini depolayabilir.Bir asıl önemli bilgiler içeren bir sütun için izni.Ancak, izleme bilgilerini kullanılabilir olduğu için bir asıl bir sütun değeri güncelleştirildi, ancak asıl sütunun değeri belirlenemiyor belirleyebilirsiniz.

Değişiklik izleme ek yükünü anlama

Bir tablo için değişiklik izleme etkinleştirildiğinde, bazı yönetim işlemleri etkilenir.Aşağıdaki tablo işlemleri ve düşündüğünüz efektlerini listeler.

İşlem

Değişiklik izleme etkinleştirildiğinde

TABLO BIRAKMA

Tüm değişiklik izleme bırakılan tablo bilgileri kaldırılır.

ALTER TABLO BIRAKMA KISITLAMASI

PRIMARY key kısıtlaması bırakma girişimi başarısız olur.PRIMARY key kısıtlaması bırakılan önce değişiklik izlemeyi devre dışı bırakılması gerekir.

ALTER TABLO BIRAKMA SÜTUNU

Bırakılıyor bir sütun parçası olup olmadığını birincil anahtar, sütun bırakarak verilmiyor, ne olursa olsun değişiklik izleme.

Bırakılıyor sütunu ise bir parçası birincil anahtar, sütun bırakarak başarılı olur.Ancak, bu veri eşitleme herhangi bir uygulama üzerinde etkisi ilk anlaşılmalıdır.Tablo için sütun değişiklik izleme etkinleştirilmişse, bırakılan sütun hala değişiklik izleme bilgilerinin bir parçası olarak iade edilmesi.Bırakılan sütun işlemek için uygulamanın sorumluluğundadır.

ALTER TABLO SÜTUN EKLE

İzlenen değişiklik için yeni bir sütun eklenirse, tablo, sütun ve buna ek olarak izlenmez.Yalnızca güncelleştirmeleri ve yeni yapılan değişiklikler sütun izlenir.

ALTER TABLO ALTER SÜTUNU

Veri türü değişiklikleri bir olmayan-birincil anahtar sütunları izlenir.

ALTER TABLO ANAHTARI

Bir bölüm geçiş başarısız olduğunda veya değişiklik izleme etkinleştirilmiş tabloların her ikisi de vardır.

drop INDEX veya alter dizin devre dışı bırakma

Birincil anahtar zorlar dizin bırakılan veya devre dışı.

TRUNCATE TABLE

Bir tablo kesiliyor, değişiklik izleme özelliği etkin olan bir tablo üzerinde gerçekleştirilebilir.Ancak, işlem tarafından silinmiş satırlar izlenmez ve geçerli en küçük sürüm güncelleştirilir.Bir uygulama kendi sürüm denetler, onay sürüm çok eski olduğundan ve bir yeniden başlatılması gerekli olduğunu gösterir.Yapılan izleme devre dışı ve sonra tablo için yeniden iler hale değiştirdikçe aynıdır.

Değişiklik izleme kullanarak bazı ek yükü dml işlemleri izleme işleminin bir parçası depolanan bilgileri değişikliği nedeniyle ekleyin.

dml üzerindeki etkileri

Değişiklik izleme, performans yükü dml işlemleri en aza indirmek için iyileştirilmiştir.Değişiklik izleme tablo üzerinde kullanmanın artımlı performans ek yükünü bir dizin için bir tablo oluşturulduğunda ve tutulması gerekir getireceği ek yük için benzer.

dml işlemi tarafından değiştirilen her satır için tablo izleme iç değişikliği için bir satır eklenir.Bunun etkisi göreceli olarak dml işlemi aşağıdaki gibi çeşitli etkenlere bağlıdır:

  • Birincil anahtar sütunlarını sayısı

  • Kullanıcının değiştirilen veri miktarını tablo satır

  • Bir hareket içinde gerçekleştirilen işlem sayısı

Değişiklik izleme etkinleştirilmiş veya anlık görüntü yalıtım kullandıysanız, de tüm dml işlemleri için başarım üzerinde etkisi vardır.

Depolama etkileri

Değişiklik izleme verilerini aşağıdaki türlerde iç tablolar, saklanır:

  • İç Değiştirtablo

    Değişiklik izleme özelliği etkin olan her kullanıcı tablo için bir iç değişikliği tablo vardır.

  • İç işlemtablo

    Bir iç işlem yok tablo veritabanı için.

Bu iç tablolar depolama gereksinimleri aşağıdaki yollarla etkiler:

  • Her bir değişiklik için kullanıcı tablosundaki her satır için iç değişikliği tablo için bir satır eklenir.Bu satır yükü yükü birincil anahtar sütunlarını boyutuna eşit bir değişken artı sabit küçük vardır.İsteğe bağlı içerik bilgisi satır içerebilir küme bir uygulama.Ve değişen her sütun sütun izleme etkinleştirilirse, izleme Tablo 4 bayt gerektirir.

  • Taahhüt edilen her hareket için bir satır için bir iç işlem eklenir tablo.

Diğer iç tablolar ile değişiklik tabloları kullanarak izleme için kullanılan alanı belirlemek gibi bilgilerini sp_spaceused saklı yordam.İç tabloların adlarını kullanarak elde edilebilir sys.internal_tables Katalog görünümü, aşağıdaki örnekte gösterildiği gibi:

sp_spaceused 'sys.change_tracking_309576141';
sp_spaceused 'sys.syscommittab';