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

Bu konu, etkinleştirmek, devre dışı bırakır ve değişiklik izlemeyi yönetme açıklar.Ayrıca, güvenlik yapılandırma değişiklik izleme özelliği kullanıldığında, depolama ve performans etkilerini belirlemek için açıklanır.

Bir veritabanı için izleme Değiştir'i etkinleştirme

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

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

Ayrıca değişiklik, izleme etkinleştir SQL Server Management Studio kullanarak Veritabanı özellikleri (ChangeTracking sayfa) iletişim kutusu.

Değişiklik izlemeyi etkinleştirmek ve bu değerlerin herhangi bir anda değiştirebilirsiniz CHANGE_RETENTION ve AUTO_CLEANUP seçenekleri belirtebileceğiniz saat değişiklik izleme etkinleştirildikten sonra.

Değişiklik saklama değeri için hangi değişiklik izleme bilgilerinin tutulduğu süreyi belirtir.Bu saat boyunca düzenli aralıklarla silinir daha eski izleme bilgileri değiştirin.Ne kadar sıklıkla düşünmeniz gerekir, bu değer, ayarlamakta olduğunuz zaman uygulamaları ile veritabanındaki tablolar yeniden eşitler.Belirtilen bir saklama dönemi, en az kadar eşitlemeler arasındaki en uzun saat olarak olmalıdır.Bir uygulama, uzun aralıklarla değişiklikleri alırsa, bazı değişiklik bilgisini büyük bir olasılıkla kaldırılmış olduğundan, döndürülen sonuçlar yanlış olabilir.Hatalı sonuçlar alınırken önlemek için , bir uygulama CHANGE_TRACKING_MIN_VALID_VERSION sistem işlev eşitlemeler arasındaki süreyi uzun süredir olup olmadığını belirlemek için kullanabilirsiniz.

AUTO_CLEANUP seçeneği, etkinleştirmek veya izleme bilgilerinin eski kaldırır temizleme görevi devre dışı bırakmak için kullanabilirsiniz.Uygulamalar, eşitlenmesini engelleyen geçici bir sorun var ve sorun giderilinceye kadar izleme bilgilerini tutma süresinden daha eski kaldırma işlemi duraklatıldı gerekir, bu yararlı olabilir.

Değişiklik izleme kullanan herhangi bir veritabanı için aşağıdakileri dikkate alın:

  • Değişiklik izlemeyi kullanmak için , veritabanını uyumluluk düzey olmalıdır küme 90 veya daha büyük.Bir veritabanı 90'den küçük bir uyumluluk düzey varsa, değişiklik izleme yapılandırabilirsiniz.Ancak, izleme bilgilerini almak için kullanılan CHANGETABLE işlev bir hata döndürecektir.

  • Anlık görüntü yalıtım en kolay yolu, tüm değişiklik izleme bilgileri tutarlı olmasını sağlamak için kullanmaktır.Bu nedenle, anlık görüntü yalıtım veritabanı için ON olarak ayarlanması önerilir.Daha fazla bilgi için bkz:Değişiklik izleme kullanma.

Bir tablo için izleme Değiştir'i etkinleştirme

Değişiklik izleme, izlenen istediğiniz her tablo için etkinleştirilmiş olmalıdır.Değişiklik izleme etkinleştirildiğinde, izleme bilgilerini bir DML işlemi tarafından etkilenen tüm satırları tablosunda tutulur.

Aşağıdaki örnek, değişiklik kullanarak bir tablo için izlemeyi etkinleştirme gösterir. TABLO DEĞİŞTİRME:

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

Değişiklik bir tablo için izleme etkinleştirmesini de isteyebilirsiniz SQL Server Management Studio kullanarak Tablo Özellikleri (ChangeTracking sayfa) iletişim kutusu.

TRACK_COLUMNS_UPDATED seçeneği olduğunda küme açık, SQL Server Database Engine sütun için iç değişiklik izleme tablosu güncelleştirildi hakkında ek bilgi depolar. Izleme, sütun, bir uygulama, yalnızca sahibin meşru olarak güncelleştirildiği sütunları eşitlemek etkinleştirebilirsiniz.Bu, verimlilik ve performansı iyileştirebilir.Ancak, bazı ek depolama yükü sütun izleme bilgilerini tutma çünkü, bu seçenek varsayılan olarak KAPALı küme.

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

Devre dışı veritabanı için değişiklik izleme KAPALı ayarlanabilir önce değişiklik izlemeyi önce tüm tabloların izlenen değişiklik için bırakılmış olması gerekir.Değişiklik izleme, bir veritabanı için etkin olan tablolar'ı belirlemek için , sys.change_tracking_tables kataloğunu görüntüleyin.

Aşağıdaki örnekte, nasıl değişiklik kullanarak bir tablo için izleme devre dışı bırakılacağı gösterilmektedir. TABLO DEĞİŞTİRME:

ALTER TABLE Person.Contact
DISABLE CHANGE_TRACKING;

Veritabanındaki tablo değişiklikleri izlemek, değişiklik veritabanı için izleme devre dışı bırakabilirsiniz.Aşağıdaki örnekte, nasıl değişiklik kullanarak bir veritabanı için izleme devre dışı bırakılacağı gösterilmektedir. alter VERİTABANI:

ALTER DATABASE AdventureWorks
SET CHANGE_TRACKING = OFF

Değişiklik izleme yönetme

Katalog görünümleri, izinleri ve değişiklik izleme yönetmek için uygun olan ayarları, aşağıdaki bölümlerde listelenmiştir.

Görünümler katalog

Hangi tablolar ve veritabanları değişiklik etkin izleme sahip belirlemek için aşağıdaki katalog görünümleri kullanabilirsiniz:

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

Güvenlik

Izleme bilgilerini kullanarak erişim değişikliği izleme işlevlerini değiştirmeanapara aşağıdaki izinlere sahip olmalıdır:

  • En az izni, SELECT değişikliği izlenir, birincil anahtar sütunlarını tablo için tablo, sorgulanan.

  • VIEW, DEĞIŞIKLIK IZLEME izni tablo, değişiklikleri alınır.VIEW, DEĞIŞIKLIK IZLEME izni aşağıdaki nedenlerle gereklidir:

    • Değişiklik izleme kayıtları, silinmiş olan satır silinmiş satırları özellikle birincil anahtar değerleri hakkında bilgi içerir.Bazı gizli veri silindikten sonra BIR güvenlik sorumlusunun izlenen değişiklik tablo SELECT izninin verilmiş.Bu durumda, değişiklik izleme kullanılarak silinen bu bilgilere erişmek için asıl istediğiniz değil.

    • Izleme bilgilerini, hangi sütunların güncelleştirme işlemleri tarafından değiştirilmiş bilgilerini depolayabilir.Bir güvenlik sorumlusunun izni önemli bilgiler içeren bir sütun engellendi.Ancak, izleme bilgilerini kullanılabilir olduğundan, bir güvenlik sorumlusu bir sütun değeri güncelleştirildi, ancak patron, sütunun değeri belirlenemiyor belirleyebilirsiniz.

Tepe izleme Değiştir'i anlama

Bir tablo için değişiklik izleme etkinleştirildiğinde, bazı yönetim işlemleri etkilenir.Aşağıdaki tablo operasyonlar ve etkilerini göz önüne alınması gereken listeler.

Işlem

Değişiklik izleme etkinleştirildiğinde

TABLOYU BIRAK

Izleme bilgilerini atlanan tablo için tüm değişikliği kaldırılır.

alter TABLO BIRAKMA KISITLAMASI

birincil anahtar kısıtlaması bırakma girişimi başarısız olur.Bir birincil anahtar kısıtlaması bırakılan önce değişiklik izlemeyi devre dışı bırakılmalıdır.

BIRAKMA tablo sütun DEĞİŞTİRME

Bırakılıyor bir sütunda birincil anahtar sütun bırakarak bir parçasıysa, değişiklik izleme bağımsız olarak izin verilmez.

Bırakılıyor sütun değilse parçası birincil anahtar, sütuna bırakarak başarılı.Ancak, bu veri eşitlemeyi herhangi bir uygulama etkisi ilk anlaşılabilmesi.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.

tablo EKLEME sütun DEĞİŞTİRME

Izlenen değişiklik için yeni bir sütun eklediyseniz tablo, sütun ve buna ek olarak değil izlenir.Güncelleştirmeleri ve yeni için yapılan değişiklikler yalnızca sütun izlenir.

alter SÜTUNUNU DEĞİŞTİR

Bir birincil olmayan anahtar sütunlarının veri türü değişiklikler izlenmez.

TABLO ANAHTARI DEĞİŞTİR

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

DROP INDEX veya ALTER INDIS DISABLE...

Dizin, birincil anahtar yürüttüğü bırakılan devre dışı veya.

TABLOYU KES

Değişiklik izleme etkinleştirilmiş olan bir tabloda bir tablo kesiliyor gerçekleştirilebilir.Ancak, işlem tarafından silinmiş satır değil izlenir ve en az geçerli sürüm güncelleştirildi.Uygulamanın sürüm denetler, Denetim sürüm çok eski ve bir reinitialization gerekli olduğunu gösterir.Bu aynı olan izleme devre dışı ve sonra tablo için reenabled değiştirirken de geçerlidir.

Değişiklik izleme kullanılarak bazı ek yükü DML operasyonlara nedeniyle, değişiklik izleme işleminin bir parçası olarak depolanan bilgileri ekleme.

DML etkileri

Değişiklik izleme ek yükü DML işlemi performansını en aza indirmek için getirilmiştir.Değişiklik bir tabloda izlemeyi kullanma ile ilgili olan artan performans yükü, dizin, bir tablo için oluşturulan ve saklanması gereken sonucunda oluşan ek yük benzer.

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

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

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

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

Veya değişiklik izlemenin etkinleştirilip etkinleştirilmediğini anlık görüntü görüntü yalıtımı kullandıysanız, aynı zamanda bir üzerinde tüm DML işlemi performans etkisi olmaz.

Depolama etkileri

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

  • Iç değişiklik tablo

    Değişiklik izlemeyi etkin olan her kullanıcı tablo için bir iç değişikliği tablo yok.

  • Iç işlem tablo

    Bir iç işlem yok tablo veritabanı.

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

  • Her satırda bir kullanıcı her değişiklik için tablo, iç değişikliği eklenen satır tablo.Bu satır, ek yükü birincil anahtar sütunlarını boyutuna eşit bir değişken ayrıca sabit küçük vardır.Satır, bir uygulama tarafından ayarlanan isteğe bağlı bilgileri içerebilir.Ve, sütun izleme etkinleştirilmişse, değişen her sütun 4 bayt izleme tablo.

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

Iç diğer tablolarla tabloları kullanarak izleme değiştirmek için kullanılan alan belirleyebilirsiniz gibi sp_spaceused saklı yordamını.Iç tablo adları kullanılarak 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'