SQL Server Veri Değişimi Yakalama, SQL Server işlem kayıtlarından geçmiş verileri okuyan ve bunları özel bir tabloda depolayan bir özelliktir.
Özel tablo değeri işlevlerinin (TVF) kullanılması sayesinde, kullanıcının bu verileri sorgulamasını sağlar, böylece belirli bir tablodaki tüm değişiklikleri veya yalnızca belirli bir süre içindeki değişikliklerden kaynaklanan net değişiklikleri elde etmeyi mümkün kılar.
CDC'nin bazı avantajları var
- Yalnızca belirli tabloları veya sütunları izlemek için yapılandırılabilir.
- Model değişikliklerini belli bir dereceye kadar idare edebiliyor.
- İşlem günlükleriyle çalıştığı için performansı tetikleyiciler kadar yoğun şekilde etkilemez.
- Kolayca etkinleştirilir / devre dışı bırakılır ve izlenmesi gereken masada ek sütunlar gerektirmez.
Aynı zamanda bazı dezavantajlara sahiptir:
- Geçmiş veri miktarı çok hızlı olabilir.
- Değişiklikleri kimin yaptığını izleyemezsiniz (en azından silmek için değil).
- Geçmiş verilerinin yakalanması biraz zaman alıyor, çünkü işlem günlüklerine dayanıyor.
- SQL Server Agent'a bağlıdır. Aracı çalışmıyorsa veya çöküyorsa, geçmiş izlenmiyor.
CDC hakkında epeyce okudum ve şimdi nasıl kullanılacağını bilmeme rağmen, bunun benim için doğru araç olup olmadığından hala emin değilim.
- Hangi görevler / senaryolar için CDC doğru araç? (örn. Kullanıcıların bir veri nesnesini belirli bir zamana geri yüklemelerine izin verme? Denetleme? Verilerin tarihinin tamamı gösteriliyor mu?)
- Ne zaman CDC'yi kullanmamayı tercih edersiniz, ancak özel bir tetikleyici tabanlı çözüme başvurmalısınız?
- CDC'yi operasyonel bir veritabanında kullanmak ve CDC verilerini operasyonel bir uygulamada kullanmak uygun mudur? (örneğin, bunu son kullanıcıya gösterme) Ya da bu açıkça bu özelliği yanlış mı kullanıyor?
Genelde CDC'nin bir denetim aracı olduğunu duyuyorum ama bu ne SQL Server Denetimi değil ne için olduğu değil mi? Her ikisi de aynı görev için farklı araçlar mı? Veya CDC başka şeyler için kullanılabilir mi?
Mevcut senaryom, gelecekteki çoklu uygulamaların temeli olması beklenen güvenilir bir veri çerçevesi oluşturmam isteniyor. Kesin gereksinimler bulanık, ancak bunlardan biri veri geçmişini izleyebilmesi ve daha eski girdileri diğer tüm tablolardaki ilgili verilerle birlikte geri yükleyebilmesidir. Şu anda CDC'yi bir seçenek olarak değerlendiriyorum, ancak böyle bir yol olup olmadığından emin değilim çünkü önerilen kullanım durumlarını gerçekten bulamıyorum.
Özel senaryom için tavsiyelerimi takdir etsem de, cevaplar Veri Toplama Değişikliğini ne zaman veya ne zaman kullanmama konusunda genel tavsiye vermelidir.