Aracılığıyla paylaş


Değiştir veri yakalama işlemi izleme

Değişiklikler doğru ve mantıklı bir gecikme süresi değişiklik tabloları yazılmış, belirlediğiniz değişiklik veri yakalama işlemini sağlar izleme.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

    Sys.dm_cdc_log_scan_sessions yönetim 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.Görünümü de bir oturum kimliği olan bir satır örnek bu yana tüm oturumlar hakkındaki toplu bilgileri 0 içerir,SQL Serveren son başlatılmasından.

  • sys.dm_cdc_errors

    Sys.dm_cdc_errors yönetim görünümü değiştirme veri yakalama günlük tarama sırasında karşılaşılan her hata için bir satır içeren oturum.

Oturumları boş sonuç kümesi tanımlama

Her satırda bir sys.dm_cdc_log_scan_sessions (0 satır kimliği olan) dışında bir günlük tarama oturum temsil eder.Bir günlük tarama oturum eşdeğer bir yürütülmesisp_cdc_scan.oturum sırasında tarama değişiklikleri geri dönmek veya boş bir sonuç döndürür.Sonuç kümesi boş ise, sys.dm_cdc_log_scan_sessions empty_scan_count sütun 1 olarak küme.Varsa birbirini izleyen boş sonuç kümeleri, örneğin yakalama işlemini sürekli olarak çalışıyorsa, varolan son satırdaki empty_scan_count artırılır.Örneğin, sys.dm_cdc_log_scan_sessions, değişiklikleri iade taramaları için 10 satırı zaten varsa ve bir satırda beş boş sonuçlar bulunmaktadır görünüm 11 satırlar içeriyor.Son satırı empty_scan_count değeri 5 olan sütun.Belirlemek için boş bir tarama oturumu 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önetim görünümü gecikme süresi her yakalama oturum için kaydeden sütun içerir.Gecikme saat, kaynak tablo kaydedilmiş bir hareket ve değişiklik tabloyu kaydedilmiş son yakalanan hareketi arasında geçen saat olarak tanımlanır.Etkin oturumları için gecikme süresi sütun doldurulur.Empty_scan_count sütununda 0'dan büyük bir değere sahip oturumlar için gecikme süresi sütun 0 olarak küme.Aşağıdaki sorgu en son oturumlar için ortalama gecikme süresi verir:

SELECT latency FROM sys.dm_cdc_log_scan_sessions WHERE session_id = 0

Gecikme süresi verileri yakalama işlemi ne kadar hızlı veya yavaş hareket işlediğini belirlemek için kullanabilirsiniz.Bu veri yakalama işlemi sürekli olarak çalışırken daha kullanışlıdır.Yakalama işlemi bir zamanlamaya göre çalışır durumda ise gecikme saat kaynak tablo ve çalışan, zamanlanan saatte yakalama işlemi tamamlanmış hareketler arasında gecikme saat nedeniyle yüksek olabilir.

Başka bir önemli yakalama işlemini verimli üretim ölçüsüdür.Bu, her oturum sırasında işlenir komutları saniyede ortalama sayısıdır.İşlem hacmi oturumunun belirlemek için süre sütununda command_count sütunundaki değeri bölün.Aşağıdaki sorgu ortalama işlem hacmi, en son oturumlar için verir:

SELECT command_count/duration AS [Throughput] FROM sys.dm_cdc_log_scan_sessions WHERE session_id = 0

Veri Toplayıcı örnekleme veri toplama için 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ında değişiklik veri yakalama etkin olduğunda, daha sonraki analizler için düzenli aralıklarla anlık sys.dm_cdc_log_scan_sessions görünümü ve sys.dm_cdc_errors görünümü almak kullanışlıdır.Aşağıdaki yordam sys.dm_cdc_log_scan_sessions yönetimi görünümünden örnek verileri toplamak için bir veri toplayıcısı kadar ayarlar.

Veri koleksiyon yapılandırma

  1. Veri Toplayıcı etkinleştirme ve yapılandırma yönetimi veri deposu.Daha fazla bilgi için bkz: SQL Server Management Studio'yu kullanarak veri koleksiyon yönetme.

  2. Değişiklik veri yakalama için özel bir Toplayıcı oluşturmak için şu kodu çalıştırı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
    
  3. InSQL Server Management StudiogenişletinYönetimVeri koleksiyonsonra genişletin.Sağ tıklatmaHDM performans veri toplayıcısıVeri koleksiyon kümesi Başlat'ıtıklatın ve.

  4. 1. Adımda yapılandırılmış veri ambarı, tablo custom_snapshots.cdc_log_scan_data bulun.Bu tablo, verileri günlük tarama oturumlarını geçmiş bir görüntüsünü sağlar.Bu veriler, gecikme saat, performans ve diğer performans ölçüleri zamanla çözümlemek için kullanılabilir.