Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir:SQL Server
Azure SQL Veritabanı
Azure SQL Yönetilen Örneği
Microsoft Fabric'te SQL veritabanı
Bu makalede değişiklik izlemenin nasıl yönetileceğini açıklanmaktadır. Ayrıca, güvenliği yapılandırmayı ve değişiklik izleme kullanıldığında depolama ve performans üzerindeki etkileri belirlemeyi açıklar.
Değişiklik İzlemeyi Yönet
Aşağıdaki bölümlerde, değişiklik izlemeyi yönetmeyle ilgili katalog görünümleri, izinler ve ayarlar listelenir.
Katalog Görünümleri
Değişiklik izleme özelliğinin etkinleştirildiği tabloları ve veritabanlarını belirlemek için aşağıdaki katalog görünümlerini kullanın:
Ayrıca , sys.internal_tables katalog görünümü, bir kullanıcı tablosu için değişiklik izleme etkinleştirildiğinde oluşturulan iç tabloları listeler.
Security
Değişiklik izleme işlevlerini kullanarak değişiklik izleme bilgilerine erişmek için sorumlunun aşağıdaki izinlere sahip olması gerekir:
SELECTsorgulanan tablo için, değişiklikleri izlenen tablodaki en azından birincil anahtar sütunları üzerinde izin.VIEW CHANGE TRACKINGdeğişikliklerinin alınmakta olduğu tablo üzerindeki izin. İzinVIEW CHANGE TRACKINGaşağıdaki nedenlerle gereklidir:Değişiklik izleme kayıtları, silinen satırlar hakkında bilgi içerir. Kayıtlar, silinen satırların birincil anahtar değerlerini kullanır. Bazı hassas veriler silindikten sonra izlenen bir değişiklik tablosu için sorumluya izin verilebilir
SELECT. Bu durumda, bu sorumlunun değişiklik izleme kullanarak silinen bilgilere erişmesini istemezsiniz.Değişiklik izleme bilgileri, güncelleştirme işlemleri tarafından hangi sütunların değiştirildiğiyle ilgili bilgileri depolayabilir. Hassas bilgiler içeren bir sütuna bir öznenin erişim izni verilmeyebilir. Ancak, değişiklik izleme bilgileri kullanılabilir olduğundan, bir sorumlu bir sütun değerinin güncelleştirildiğini belirleyebilir, ancak sorumlu sütunun değerini belirleyemez.
Değişiklik izleme ek yükünü anlama
Bir tablo için değişiklik izlemeyi etkinleştirdiğinizde, bu bazı yönetim işlemlerini etkiler. Aşağıdaki tabloda, işlemleri ve dikkate almanız gereken etkiler listelemektedir.
| Operation | Değişiklik izleme etkinleştirildiğinde |
|---|---|
DROP TABLE |
Bırakılan tablonun tüm değişiklik izleme bilgileri kaldırılır. |
ALTER TABLE DROP CONSTRAINT |
Kısıtlamayı PRIMARY KEY bırakma girişimi başarısız olur.
PRIMARY KEY kısıtlamayı kaldırmadan önce değişiklik izlemeyi devre dışı bırakmanız gerekir. |
ALTER TABLE DROP COLUMN |
Kaldırdığınız bir sütun birincil anahtarın parçasıysa, değişiklik izleme durumundan bağımsız olarak bu sütunun kaldırılmasına izin verilmez. Silmekte olduğunuz sütun birincil anahtarın parçası değilse, sütun başarıyla silinir. Ancak, önce bu verileri eşitleyen herhangi bir uygulama üzerindeki etkisini anlamanız gerekir. Tabloda sütun değişiklik izleme etkinleştirildiyse, silinen sütun yine de değişiklik izleme bilgilerinin bir parçası olarak döndürülebilir. Bırakılan sütunu işlemek uygulamanın sorumluluğundadır. |
ALTER TABLE ADD COLUMN |
İzlenen değişiklik tablosuna yeni bir sütun eklerseniz, sütunun eklenmesi izlenmez. Yalnızca yeni sütunda yapılan güncelleştirmeler ve değişiklikler izlenir. |
ALTER TABLE ALTER COLUMN |
Birincil olmayan anahtar sütununun veri türü değişiklikleri izlenmez. |
ALTER TABLE SWITCH |
Bir veya iki tabloda değişiklik izleme etkinse bölüm değiştirme işlemi başarısız olur. |
DROP INDEX, or ALTER INDEX DISABLE |
Birincil anahtarı zorlayan dizin bırakılamaz veya devre dışı bırakılamaz. |
TRUNCATE TABLE |
Değişiklik izleme özelliğinin etkinleştirildiği bir tabloyu kesebilirsiniz. Ancak, işlemin sildiği satırlar izlenmez ve en düşük geçerli sürüm güncelleştirilir. Bir uygulama sürümünü denetlediğinde, denetim sürümün çok eski olduğunu ve yeniden başlatma gerektiğini gösterir. Bu koşul, değişiklik izlemenin devre dışı bırakılmasıyla aynıdır ve tablo için yeniden kullanılabilir. |
değişiklik izlemenin kullanılması, işlem değişiklik izleme bilgilerini depoladığı için DML işlemlerine biraz ek yük getirir.
DML üzerindeki etkileri
Değişiklik izleme, DML işlemlerinde performans ek yükünü en aza indirmek için iyileştirilmiştir. Bir tabloda değişiklik izlemenin kullanılmasıyla birlikte gelen artımlı performans ek yükü, bir tablo için dizin oluşturup bakımını yaparken karşılaştığınız ek yüke benzer.
Bir DML işleminin değiştireceği her satır için sistem, iç değişiklik izleme tablosuna bir satır ekler. Bu eylemin DML işlemine göre etkisi, aşağıdakiler gibi çeşitli faktörlere bağlıdır:
Birincil anahtar sütunlarının sayısı
Kullanıcı tablosu satırında değiştirilen veri miktarı
Bir işlemde gerçekleştirilen işlem sayısı
Kullanılırsa anlık görüntü yalıtımı, değişiklik izlemenin etkinleştirilip etkinleştirilmediği fark etmeksizin tüm DML işlemlerinin performansını da etkiler.
Depolama üzerindeki etkiler
Değişiklik izleme verileri aşağıdaki iç tablo türlerinde depolanır:
İç değişiklik tablosu
Değişiklik izleme etkin olan her kullanıcı tablosu kendi iç değişiklik tablosunu alır.
İç işlem tablosu
Veritabanında bir iç işlem tablosu vardır.
Bu iç tablolar depolama gereksinimlerini aşağıdaki yollarla etkiler:
Kullanıcı tablosundaki her satırda yapılan her değişiklik için, değişiklik izleme iç değişiklik tablosuna bir satır ekler. Bu satır küçük bir sabit ek yüke ek olarak birincil anahtar sütunlarının boyutuna eşit bir değişken ek yüküne sahiptir. Satır, bir uygulama tarafından ayarlanan isteğe bağlı bağlam bilgilerini içerebilir. Sütun izlemeyi etkinleştirirseniz, değiştirilen her sütun izleme tablosunda 4 bayt gerektirir.
Kaydedilen her işlem için değişiklik izleme, iç işlem tablosuna bir satır ekler.
Diğer iç tablolarda olduğu gibi, sp_spaceused saklı yordamını kullanarak değişiklik izleme tabloları için kullanılan alanı belirleyebilirsiniz. Aşağıdaki örnekte gösterildiği gibi , sys.internal_tables katalog görünümünü kullanarak iç tabloların adlarını alabilirsiniz.
sp_spaceused 'sys.change_tracking_309576141'
sp_spaceused 'sys.syscommittab'
İlgili içerik
- Veri değişikliklerini izleme (SQL Server)
- ALTER TABLE (Transact-SQL)
- Veritabanı Özellikleri (Değişiklik İzleme Sayfası)
- ALTER DATABASE SET options (Transact-SQL)
- sys.change_tracking_databases (Transact-SQL)
- sys.change_tracking_tables (Transact-SQL) - Değişiklik Takip Tablosu (Transact-SQL)
- SQL Server'da Değişiklik İzleme Hakkında
- Değişiklik Verileri ile Çalışma