Değiştir veri yakalama işlemini izleme
İzleme değişiklikleri doğru ve makul bir gecikme süresi ile Değiştir tablolar yazılmaktadır olup Değiştir veri yakalama işlemi sağlar.Monitoring can also help you to identify any errors that might occur.SQL Server includes two dynamic management views to help you monitor change data capture:
-
Sys.dm_cdc_log_scan_sessions yönetimi görünümü, geçerli veritabanındaki her günlük tarama oturum için bir satır içerir.Son satır, geçerli oturum gösterir.Bir oturum kimliği olan bir satır örnek bu yana tüm oturumlar hakkındaki bilgileri toplu olan 0 görünümü de içeren, SQL Server son başlatılmasından.
-
Sys.dm_cdc_errors yönetimi Görünümü Değiştir veri yakalama günlük tarama oturum sırasında karşılaşılan her hata için bir satır içerir.
Tanımlama boş sonuç kümeleri oturumları
Sys.dm_cdc_log_scan_sessions her satırda (0 satırı kimliği olan) dışında bir günlük tarama oturum temsil eder.Günlük tarama oturum için bir yürütme eşdeğerdir sp_cdc_scan.Bir oturum sırasında tarama değişiklikleri geri dönmek veya boş bir sonuç döndürür.Sonuç küme boş ise, empty_scan_count sütun sys.dm_cdc_log_scan_sessions 1 olarak küme.Birbirini izleyen boş sonuç ise ayarlar, örneğin yakalama iş empty_scan_count sürekli olarak çalıştığı son varolan satır artırılır.Örneğin, sys.dm_cdc_log_scan_sessions zaten değişiklikleri döndürülen taramaları için 10 satır içeriyorsa ve bir satır, beş boş sonuçlar vardır, Görünüm 11 satırlar içeriyor.Son Satır 5 değeri empty_scan_count olan sütun.Belirlemek için boş bir tarama vardı oturumlar aşağıdaki sorguyu çalıştırın:
SELECT * from sys.dm_cdc_log_scan_sessions where empty_scan_count <> 0
Gecikme süresi belirleme
Sys.dm_cdc_log_scan_sessions yönetimi görünümü her yakalama oturum için gecikme süresi kaydeden bir sütun içerir.Gecikme saat, kaynak tablo üzerinde kaydedilmiş bir hareket ve değişim tablosunda kaydedilmiş son yakalanan hareketi arasında geçen süre olarak tanımlanır.Gecikme süresi sütun yalnızca etkin oturumları için doldurulur.Empty_scan_count sütununda 0'dan büyük bir değer ile oturumlar için gecikme süresi sütun 0 olarak küme.Aşağıdaki sorgu ortalama gecikme süresi en son oturumlarının döndürür:
SELECT latency FROM sys.dm_cdc_log_scan_sessions WHERE session_id = 0
Gecikme süresi verileri ne kadar hızlı veya yavaş hareketleri işleme yakalama işlemini belirlemek için kullanabilirsiniz.Bu veri yakalama işlemi sürekli olarak çalışırken, çok yararlıdır.Yakalama işlemi bir zamanlamaya göre çalışır durumda, gecikme saat, kaynak tablo ve çalışan zamanlanmış yakalama işlemi tamamlanmış hareketler arasında gecikme nedeniyle yüksek olabilir.
Başka bir önemli yakalama işlemi verimlilik işlem hacmi ölçü.Her oturum sırasında işlenen komutları saniyedeki ortalama sayısı budur.Oturum işlem hacmi belirlemek için command_count değeri bölmek sütun süresi değeri tarafından sütun.Aşağıdaki sorgu, ortalama işlem hacmi en son oturumlarının döndürür:
SELECT command_count/duration AS [Throughput] FROM sys.dm_cdc_log_scan_sessions WHERE session_id = 0
Örnekleme veri toplamak için veri toplayıcı grubu kullanma
The SQL Server data collector lets you collect snapshots of data from any table or dynamic management view and build a performance data warehouse.Bir veritabanı üzerinde değişiklik veri yakalama etkin olduğunda, daha sonraki analizler için düzenli aralıklarla sys.dm_cdc_log_scan_sessions ve sys.dm_cdc_errors görünümünde, anlık görüntüsünü yararlıdır. Aşağıdaki yordam bir veri toplayıcısı sys.dm_cdc_log_scan_sessions yönetimi görünümden örnek verileri toplamak için ayarlar.
Veri toplama yapılandırma
veri ambarı Toplayıcı etkinleştirmek ve yapılandırmak bir yönetim veri ambarıleri ambarı.Daha fazla bilgi için bkz: sql Server Management Studio'yu kullanarak veri toplama yönetme.
Değişiklik veri yakalama için özel bir toplayıcı oluşturmak için aşağıdaki kod yürütün.
USE msdb; DECLARE @schedule_uid uniqueidentifier; -- Collect and upload data every 5 minutes SELECT @schedule_uid = ( SELECT schedule_uid from sysschedules_localserver_view WHERE name = N'CollectorSchedule_Every_5min') DECLARE @collection_set_id int; EXEC dbo.sp_syscollector_create_collection_set @name = N' CDC Performance Data Collector', @schedule_uid = @schedule_uid, @collection_mode = 0, @days_until_expiration = 30, @description = N'This collection set collects CDC metadata', @collection_set_id = @collection_set_id output; -- Create a collection item using statistics from -- the change data capture dynamic management view. DECLARE @paramters xml; DECLARE @collection_item_id int; SELECT @paramters = CONVERT(xml, N'<TSQLQueryCollector> <Query> <Value>SELECT * FROM sys.dm_cdc_log_scan_sessions</Value> <OutputTable>cdc_log_scan_data</OutputTable> </Query> </TSQLQueryCollector>'); EXEC dbo.sp_syscollector_create_collection_item @collection_set_id = @collection_set_id, @collector_type_uid = N'302E93D1-3424-4BE7-AA8E-84813ECF2419', @name = ' CDC Performance Data Collector', @frequency = 5, @parameters = @paramters, @collection_item_id = @collection_item_id output; GO
De SQL Server Management Studiogenişletin yönetimive sonra Veri toplama.Sağ tıklatın HDM performans veri toplayıcıve i Veri toplama kümesi Başlat.
1. Adımda yapılandırdığınız veri ambarı tablo custom_snapshots.cdc_log_scan_data bulun.Bu tablo, tarihsel bir anlık görüntü veri günlük tarama oturumları sağlar.Bu veriler, gecikme saat, üretilen iş ve diğer performans ölçümü zamanla analiz etmek için kullanılabilir.