Grup değişiklikleri'mantıksal kayıtları ile ilgili satırları

[!NOT]

Bu özellik Microsoft SQL Server'ın ilerideki bir sürümünde kaldırılacaktır. Yeni geliştirme işlerinde bu özelliği kullanmaktan kaçının ve bu özelliği kullanmakta olan uygulamalarda değişiklik yapmayı planlayın.

Varsayılan olarak, birleştirme çoğaltması veri değişikliklerini satır tarafından olarak işler. Çoğu durumlarda bu uygundur, ancak bazı uygulamalar için bu ilişkili satırları bir birim olarak işlenen esastır. Birleştirme çoğaltma mantıksal kayıtlarını özelliği satırları bir birim gibi işlenen böylece farklı tablolardaki ilgili satırlar arasında bir ilişki tanımlamanızı sağlar.

[!NOT]

Mantıksal kayıtlarını özelliği birleştirme filtreleri ile tek başına veya birlikte kullanılabilir. Birleşim filtreleri hakkında daha fazla bilgi için bkz: Filtreler katılın. Mantıksal kayıtları kullanmak için yayın uyumluluk düzeyi en az olmalıdır 90RTM.

Bu üç ilgili tabloları göz önünde bulundurun:

Yalnızca sütun adlarını içeren üç tablo mantıksal kaydı

Müşterilerin tablo bu ilişkisinde üst tablo ve birincil anahtar sütunu CustId. Siparişleri tablo bir birincil anahtar sütunu vardır OrderID, üzerinde yabancı anahtar kısıtlaması ile CustId başvuran sütun CustId sütununda müşterilerin tablo. Benzer şekilde, OrderItems tablo bir birincil anahtar sütunu vardır OrderItemID, üzerinde yabancı anahtar kısıtlaması ile OrderID başvuran sütun OrderID sütununda siparişleri tablo.

Bu örnekte, tüm satırlar mantıksal bir kayıt oluşan siparişleri tek bir ilişkili tablo CustId değeri ve tüm satırları OrderItems bu satırların ilişkili tabloda siparişleri tablo. Bu diyagram tüm satırlar mantıksal kayıt için Customer2 olan üç tablo gösterir:

Değerler içeren üç tablo mantıksal kaydı

Makaleleri arasında mantıksal kaydı ilişki tanımlamak için bkz: Birleştir tablo makaleleri arasındaki mantıksal kayıt ilişki tanımla.

Mantıksal kayıtları yararları

Mantıksal kayıtlarını özelliği iki birincil faydaları vardır:

  • Uygulama verileri, bir birim olarak değiştirir.

  • Algılama ve aynı anda birden çok tablodan birden çok satır çakışmaları çözümleme.

Değişiklikleri uygulama bir birim olarak

Birleştirme işlemi kesintiye uğrarsa, geri mantıksal kayıtlar kullanılırsa gibi bırakılan bağlantı durumunda ilgili çoğaltılmış değişiklikleri kısmen tamamlanmış bir dizi döndürülür. Örneğin, burada abone ekler ile yeni bir sipariş durumda düşünün OrderID 6 ve iki yeni satır = OrderItems ile tablo OrderItemID = 10 ve OrderItemID = 11 için OrderID = 6.

Değerler içeren üç tablo mantıksal kaydı

Çoğaltma işlemi sonra kesilirse siparişleri için satır SiparişNo = 6 tam, ama önce OrderItems 10 ve 11 tamamlanan ve mantıksal kayıtları kullanılmaz, yordamlarından sipariş toplamı için değer OrderID = 6 toplamı ile tutarlı olmayacak SiparişMiktarı için değer OrderItems satırlar. Mantıksal kayıtları kullanıldığında, siparişleri için satır OrderID = 6 değil taahhüt ilgili kadar OrderItems değişiklikler çoğaltılır.

Farklı bir senaryo tam mantıksal kayıtları kullanılır ve birisi sorgulama tabloları değişiklikleri birleştirme işlemi uygularken, kadar tüm kullanıcı kısmen çoğaltılmış değişiklikleri göremez. Örneğin, çoğaltma işlemi has uploaded sipariş satırını OrderID = 6, ancak bir kullanıcı sorguları Tablolar has replicated çoğaltma işlemi önce OrderItems satır yordamlarından sipariş toplamı değer toplamı ile aynı olmaz SiparişMiktarı değerleri. Mantıksal kayıtları kullanıldığında, siparişleri satır görünür kadar olmaz OrderItems satırlarının tamamlandı ve bir birim olarak işlem tamamlandı.

Çakışma birden fazla tabloya işleme uygulaması

İki aboneler yukarıda veri kümesi olduğu durumda düşünün:

  • İlk abone değişiklikleri kullanıcı SiparişMiktarı , OrderItemID 5 100 150 ve yordamlarından sipariş toplamı , OrderID 3 200-250.

  • İkinci bir kullanıcı abone değiştirir SiparişMiktarı , OrderItemID 6-25-125 ve yordamlarından sipariş toplamı , OrderID 3 200-300.

Bu değişiklikler çoğaltılır mantıksal kayıtları, farklı kullanmadan yordamlarından sipariş toplamı değerleri bir çakışma neden ve sadece bir tanesi çoğaltılır. Ama çakışmayan değişiklikleri OrderItems tablo bırakarak son çatışma, çoğaltılmış yordamlarından sipariş toplamı değerler bakımından tutarsız bir durumda OrderItems satırlar. Mantıksal kayıtları bu senaryoda kullanılan OrderItems kaybetme ile ilgili değişiklik siparişleri tablo Değiştir-da haddelenmiş geri ve son yordamlarından sipariş toplamı değer-cekti var olmak doğru bir özetini OrderItems satır.

Çakışma algılaması ve Çözümlemesi mantıksal kayıtları ile ilgili seçenekleri hakkında daha fazla bilgi için bkz: Algılama ve mantıksal kayıtlar içinde çakışmaları çözme.

Mantıksal kayıtları kullanma hakkında önemli noktalar

Mantıksal kayıtları kullanırken, aşağıdaki konuları aklınızda bulundurun.

Genel hususlar

  • Siz tablo sayısı mantıksal bir kayıtta mümkün olduğunca düşük tutmanız önerilir; beş tablodan veya daha az önerilir.

  • Mantıksal kayıtları, aşağıdaki veri türlerini içeren sütunlar başvuru yapamazsınız:

    • varchar(max) ve nvarchar(max)

    • varbinary(max)

    • text ve ntext

    • image

    • XML

    • UDT

  • Yayımlanmış tablolarda yabancı anahtar ilişkileri cascade seçeneği ile tanımlanamaz. Daha fazla bilgi için Tablo (Transact-sql) oluşturve ALTER TABLE (Transact-SQL).

  • Mantıksal ilişkisi yan tümcesinde kullanılan sütunlar güncelleştiremiyor.

  • İş mantığı işleyicileri veya özel çözümleyiciler ile özel çakışma çözünürlüğü mantıksal bir kayıtta bulunan makaleler için desteklenmiyor.

  • Mantıksal kayıtları parametreli filtreleri içeren bir yayını kullanılıyorsa, ile onun bölüm bir anlık her abone başlatmalısınız. Başka bir yöntemle bir abone başlatılamıyor, Birleştirme Aracısı başarısız olur. Daha fazla bilgi için, bkz. Anlık görüntüler için birleştirme yayınları ile parametreli süzgeçleri.

  • Mantıksal kayıtları ile ilgili çakışma, Çakışma Görüntüleyici'de görüntülenmez. Bu çakışmalar hakkındaki bilgileri görüntülemek için çoğaltma depolanan yordamlar kullanın. Daha fazla bilgi için, bkz. Birleştirme yayınları (çoğaltma Transact-sql programlama) için çakışma bilgilerini görüntüleme.

Yayın ayarları

  • Yayını uyumluluk düzeyi 90RTM veya daha büyük olmalıdır. Daha fazla bilgi için bkz: "Yayın uyumluluk düzeyi" bölümünde Çoğaltma geriye dönük uyumluluk.

  • Yayın Yerel anlık görüntü modunu kullanmanız gerekir. Çoğaltılmasına sürece varsayılan budur SQL Server Compact, mantıksal kayıtları desteklemeyen.

  • Yayının Web eşitleme izin veremez. Web eşitleme hakkında daha fazla bilgi için bkz: Birleştirme çoğaltması Web eşitleme.

  • Mantıksal kayıtları filtre uygulanmış bir yayında kullanmak için:

  • Yayın birleştirme filtreleri, kullanıyorsa birleşim benzersiz anahtar özelliği ayarlanmalıdır gerçek tüm mantıksal kaydı ilişkileri içinde yer süzgeçleri katılmak için. Daha fazla bilgi için, bkz. Filtreler katılın.

Tablolar Arasındaki İlişkiler

  • Mantıksal kayıtları ile ilgili tablo bir birincil anahtarı yabancı anahtar ilişkisi olması gerekir.

  • not for REPLICATION seçeneği için yabancı anahtar kısıtlamalarını ayarlanamaz.

  • Alt tablo yalnızca bir üst tablo bulunabilir.

    Örneğin, bir veritabanı izleme sınıfları ve öğrenciler benzer bir tasarıma sahip:

    Birden fazla üst tabloya sahip alt tablo

    Bir mantıksal kaydı bu ilişki üç tablo göstermenin çünkü kullanamazsınız satırları ClassMembers tek bir birincil anahtar satır ile ilişkili değildir. Tablolar sınıfları ve ClassMembers tabloları gibi hala mantıksal bir kayıt formu ClassMembers ve öğrenci, ama tüm üç.

  • Yayını döngüsel birleştirme filtre ilişkileri içeremez.

    Örnek tabloları kullanarak müşterilerin, siparişleri, ve OrderItems, eğer mantıksal kayıtları kullanılamadı siparişleri tablosu, bir yabancı anahtar kısıtlaması başvurulan de vardı OrderItems tablo.

Mantıksal kayıtları performans etkileri

Mantıksal kayıt özelliği ile bir performans mal geliyor. Mantıksal kayıtları kullanılmaz, çoğaltma aracısı belirli bir yazı için tüm değişiklikleri aynı anda işleyebilir ve günlük değişiklikleri bir satır tarafından moda uygulandığından, kilitleme ve hareket gereksinimlerini uygulamak için gerekli minimum değişikliklerdir.

Birleştirme Aracısı mantıksal kayıtlar kullanılırsa, her tüm mantıksal kaydı değişikliklerini birlikte işlemek gerekir. Bu bir Birleştirme Aracısı satırları çoğaltmak için gereken süreyi etkilemez. Her mantıksal bir kayıt için ayrı bir işlem aracı açtığı için Ayrıca gereksinimleri kilitleme artırabilirsiniz.

Ayrıca bkz.

Kavramlar

Çoğaltma için makale seçenekleri Birleştir