Değişiklik izleme yönetme
Değişiklik izleme yönetme yöntemi açıklanmıştır. Ayrıca, güvenlik yapılandırma ve izleme kullanıldığında depolama ve performans etkileri belirlemek açıklanır.
Değişiklik izleme yönetme
Katalog görünümleri, izinleri ve değişiklik izleme yönetme için geçerli olan 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ğıdaki katalog görünümler kullanabilirsiniz:
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ştirmek için izleme işlevlerini değiştirmek, anapara aşağıdaki izinlere sahip olmalıdır:
En azından seçin izin sorgulanmakta tablo değişiklik izlenen tabloya birincil anahtar sütunlar.
Hangi değişiklikleri elde edilen tablo GÖRÜNÜMÜNDE değişiklik izleme izni. Aşağıdaki nedenlerle GÖRÜNÜMÜNDE değişiklik izleme izni gereklidir:
Değişiklik izleme kayıtları silinmiş olan satırları silinmiş satırları özellikle birincil anahtar değerleri hakkında bilgi içerir. Bazı hassas veriler silindi sonra asıl adı değişikliği izlenen tablo select izni verilmiş. Bu durumda, eğer bu değişiklik izleme kullanılarak silinen bu bilgilere erişmek için asıl istemem.
Izleme bilgilerini, hangi sütunları güncelleştirme işlemleri tarafından değiştirilmiş bilgilerini depolayabilir. Bir sorumlusunun izni için önemli bilgileri içeren bir sütun. Ancak, izleme bilgilerini mevcut olduğu için bir asıl bir sütun değeri güncelleştirildi, ancak asıl sütun değeri belirlenemiyor belirleyebilirsiniz.
Yükü izleme anlama
Bir tablo için değişiklik izleme etkinleştirildiğinde, bazı yönetim işlemleri etkilenir. Aşağıdaki tabloda işlemleri ve düşünmelisiniz efektlerini listeler.
İşlem |
Değişiklik izleme etkinleştirildiğinde |
---|---|
DROP TABLE |
Tüm değişiklik izleme bilgilerini bırakılan tablo kaldırılır. |
ALTER TABLE DROP CONSTRAINT |
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 sütunu birincil anahtar sütunu bırakarak parçasıysa, değişiklik izleme ne olursa olsun izin verilmez. Bırakılıyor sütunu birincil anahtar bir parçası değilse, sütunu bırakarak başarılı olur. Ancak, bu veri eşitleme herhangi bir uygulama etkisi ilk anlaşılmalıdır. Bırakılan sütun, hala tablo için sütun değişiklik izleme etkinleştirilirse, izleme bilgilerini değişikliğin bir parçası döndü. Bırakılan sütun işlemek için uygulamanın sorumluluğundadır. |
ALTER TABLO BIRAKMA SÜTUNU |
Değişiklik izlenen tabloya eklenen yeni bir sütun varsa, sütun eklenmesi izlenmez. Yalnızca güncelleştirmeleri ve yeni sütuna yapılan değişiklikler izlenir. |
ALTER TABLE ALTER COLUMN |
Birincil olmayan anahtar sütunlarının veri türü değişiklikler izlenmez. |
ALTER TABLE SWITCH |
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 INDEX DISABLE |
Birincil anahtar zorlar dizin bırakılan veya devre dışı. |
TRUNCATE TABLE |
Tablo kesiliyor, değişiklik izleme etkinleştirilmiş olan bir tablo üzerinde gerçekleştirilebilir. Ancak, işlem tarafından silinmiş satırları izlenmez ve en az geçerli sürümü güncelleştirilir. Uygulamanın sürümünü denetler, onay sürümü çok eski olduğundan ve bir reinitialization gerekli olduğunu gösterir. Bu varlık izleme devre dışı ve tablo için reenabled değiştirme aynıdır. |
Değişiklik izleme kullanarak dml işlemleri için değişiklik izleme işleminin bir parçası olarak depolanan bilgileri nedeniyle eklemek bazı ek yük.
dml üzerindeki etkileri
Değişiklik izleme, performans yükü dml işlemleri en aza indirmek için en iyi duruma getirilmiş. Değişiklik izleme tablo üzerinde kullanımıyla ilişkili artımlı performans ek yükünü bir dizin için bir tablo oluşturulduğunda ve saklanması gerekiyor sonucunda yükü benzer.
Bir dml işlemi tarafından değiştirilen her satır için iç değişiklik izleme tablo için bir satır eklenir. Bu etkisi göreceli olarak dml işlemi aşağıdaki gibi çeşitli faktörlere bağlıdır:
Birincil anahtar sütun sayısı
Kullanıcı tabloya satır değiştiriliyor veri miktarı
Bir hareket içinde gerçekleştirilen işlem sayısı
Değişiklik izleme etkin olup olmadığını anlık yalıtım, kullandıysanız, ayrıca tüm dml işlemleri için performans üzerinde bir etkisi vardır.
Depolama üzerindeki etkileri
Değişiklik izleme verilerini aşağıdaki türlerde iç tablolar içinde saklanır:
İç değişim tablosu
Orada bir iç değişikliği tablo için değişiklik izleme etkinleştirilmiş olan her kullanıcı tablo.
İç işlem tablosu
Veritabanı için bir iç işlem tablo yoktur.
Bu iç tablolar depolama gereksinimleri aşağıdaki yollarla etkiler:
Kullanıcı tablosundaki her satır için her değişiklik için bir satır iç değişim tablosuna eklenir. Bu satır, tepegöz artı yük birincil anahtar sütunlarını büyüklüğüne eşit bir değişken sabit küçük vardır. Satır, bir uygulama tarafından ayarlanan isteğe bağlı bağlam bilgileri içerebilir. Ve sütun izleme etkinleştirilmişse, her değişen sütun izleme tablo 4 bayt gerektirir.
Taahhüt edilen her hareket için bir iç işlem tablosuna bir satır eklenir.
İç diğer tablolarla izleme tabloları kullanarak değiştirmek için kullanılan alanı belirlemek için gibi sp_spaceused saklı yordamı. İç tabloların adlarını kullanarak elde edilebilir sys.internal_tables katalog görünümünde, aşağıdaki örnekte gösterildiği gibi.
sp_spaceused 'sys.change_tracking_309576141'
sp_spaceused 'sys.syscommittab'
Ayrıca bkz.
Başvuru
Veritabanı Özellikler (sayfa ChangeTracking)
alter database set seçenekleri (Transact-sql)
sys.change_tracking_databases (Transact-sql)
sys.change_tracking_tables (Transact-sql)