Share via


Değişiklikleri'mantıksal kayıtları ile ilgili satırları gruplandırma

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ğaltma satır satır bazında veri değişikliklerini işler.Çoğu durumda bu uygundur, ancak bazı uygulamalar için ilişkili satırların bir birim olarak işlenen gereklidir.Birleştirme mantıksal kayıtlarını özelliği çoğaltma bir birim olarak işlenen satırların ilişkili satırları farklı tablolar arasında bir ilişki tanımlamanızı sağlar.

Not

Mantıksal kayıtlarını özelliği birleştirmek filtreleri ile tek başına veya birlikte kullanılabilir.birleştirmek filtreleri hakkında daha fazla bilgi için bkz: Filtreler katılın.Mantıksal kayıtlarını kullanmak için yayın uyumluluk düzey en az olmalıdır 90RTM.Daha fazla bilgi için "Uyumluluk düzeyi için birleştirme yayınları" konusuna bakın. Bölüm'de sql Server birden çok sürümünü kullanarak bir çoğaltma topolojisi içinde.

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

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

The Customers table is the parent table in this relationship and has a primary key column CustID.The Orders table has a primary key column OrderID, with a foreign key constraint on the CustID column that references the CustID column in the Customers table.Benzer şekilde, OrderItems tablo bir birincil anahtar sütunu olan OrderItemID, üzerinde yabancı anahtar kısıtlaması ile SiparişNo başvurular sütun SiparişNo sütununda siparişleri tablosu.

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

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

Makaleleri arasında mantıksal kayıt ilişki tanımlamak için

Mantıksal kayıtları yararları

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

  • Uygulama veri birimi olarak değiştirir.

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

Değişiklikleri uygulama bir birim olarak

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

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

Sonra çoğaltma işlemi kesintiye uğrarsa, siparişleri için satır SiparişNo = 6 tamamlandı, ancak önce OrderItems 10 ve 11 getirilir ve mantıksal kayıtları kullanılır, BirimFiyat için değer SiparişNo = 6 toplamı ile tutarlı olmayacak SiparişMiktarı için değer OrderItems satır.Mantıksal kayıtları kullandıysanız, siparişleri için satır SiparişNo = 6 değil kabul edilen ilgili kadar OrderItems değişiklikler yinelenir.

Farklı bir senaryo tam mantıksal kayıtları kullanılır ve değişiklikleri birleştirme işlemini uygularken birisi tabloları sorgulamakta, kullanıcı tüm kadar kısmen çoğaltılmış değişiklikleri göremez.Örneğin, sipariş satırındaki Çoğaltma işlemi yüklenmiþ SiparişNo çoğaltma işlemi çoğaltıldıktan önce 6, ancak kullanıcı sorguları tablolar = OrderItems satır BirimFiyat değeri yok olacak toplamı ile aynı SiparişMiktarı değerleri.Mantıksal kayıtları kullandıysanız, siparişleri satır görülebilir değildir kadar OrderItems satırlarının tamamlandı ve bir birim olarak işlem tamamlandı.

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

Sahip olduğu iki aboneleri durum göz önünde veri küme üstüne:

  • İlk abone değişiklikleri kullanıcı SiparişMiktarı , OrderItemID 5 100 150 ve BirimFiyat , SiparişNo 200'den 250 3.

  • İkinci bir kullanıcı abone değiştirir SiparişMiktarı , OrderItemID 25 arasında 6 125 ve BirimFiyat , SiparişNo 3 200-300.

Bu değişikliklerin mantıksal kayıtlar, farklı kullanmadan çoğaltılır BirimFiyat değerleri bir çakışma neden ve yalnızca biri çoğaltılır.Ancak çakışmayan değişiklikleri OrderItems tablo çoğaltılan final bırakarak çakışma BirimFiyat tutarsız bir duruma göre değerleri OrderItems satır.Bu senaryoda, mantıksal kayıtları kullandıysanız OrderItems losing ile ilişkili değişiklik siparişleri tablo değişiklik da toplu geri ve en son BirimFiyat değeri doğru bir özetini olacak OrderItems satır.

çakışma algılama 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 konular

  • Tablo sayısını tutmak tavsiye edilir bir mantıksal kayıt ; mümkün olduğunca düşük 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 bkz: CREATE TABLE (Transact-SQL) ve ALTER TABLE (Transact-SQL).

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

  • iş mantığı işleyicileri veya özel çözümleyiciler ile özel çakışma çözünürlüğü desteklenmez dahil olan makaleler için bir mantıksal kayıt.

  • Parametreli filtreleri içeren yayın mantıksal kayıtları kullandıysanız, her abonenin kendi bölümü için bir anlık görüntü ile başlatmalısınız.Başka yöntem ile 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ı içeren çakışma Çakışma Görüntüleyici'de görüntülenir.Bu çakışmalar hakkındaki bilgileri görüntülemek için çoğaltma depolanan yordamlar kullanın.Daha fazla bilgi için bkz: Nasıl yapılır: 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üzey 90RTM veya daha büyük olması gerekir.Daha fazla bilgi için bkz: "yayın uyumluluk düzeyi" kısmında Çoğaltma geriye dönük uyumluluk.

  • yayın anlık görüntü yerel modunu kullanmanız gerekir.Çoğaltma sürece bu varsayılandır SQL Server Compact 3.5 SP1, desteklemeyen mantıksal kayıtları.

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

  • Mantıksal kayıtları üzerinde süzülen kullanmak için yayın:

  • birleştirmek filtreleri yayın kullanıyorsa, birleştirmek benzersiz anahtar özelliği olmalıdır küme için doğru tüm mantıksal kayıt ilişkileri dahil filtreler katılmak için.Daha fazla bilgi için bkz: Filtreler katılın.

Tablolar arasındaki ilişkileri

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

  • not for REPLICATION seçeneğini olamaz küme için yabancı anahtar kısıtlamaları.Bu seçenek hakkında daha fazla bilgi için bkz: Denetleme sınırlamaları, kimlikleri ve tetikleyiciler not ile çoğaltma.

  • Alt tablos, yalnızca bir üst olabilir tablo.

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

    Birden fazla üst tabloya sahip alt tablo

    Size mantıksal kayıt bu ilişki üç tablolarda göstermek için kullanamazsınız, çünkü satırları ClassMembers tek bir birincil anahtar satır ile ilişkili değil.Tablolar sınıfları ve ClassMembers tabloları gibi yine bir mantıksal kayıt formu ClassMembers ve Öğrenciler, ancak tüm üç.

  • yayın döngüsel içeremez birleşim filtresi ilişkiler.

    Örnek tabloları kullanarak müşterilerin, siparişleri, ve OrderItems, mantıksal kayıtlar, kullanamadı siparişleri tablo başvurulan bir yabancı anahtar kısıtlaması da vardı OrderItems tablosu.

Mantıksal kayıtları performans üzerindeki etkileri

Mantıksal kayıt özelliği, performans maliyetle geliyor.Mantıksal kayıtlar kullanılırsa, çoğaltma aracısı tüm değişiklikleri aynı anda belirli bir makaleye işleyebilir saat, ve değişiklikleri bir satır satır biçimde uygulandığından, kilitleme ve hareket günlüğü değişiklikleri uygulamak için gereken koşulları çok az.

Birleştirme Aracısı mantıksal kayıtları kullandıysanız, her tüm mantıksal kayıt değişikliklerini birlikte işlemeniz gerekiyor.Bu bir miktarına etkisi saat satırları çoğaltmak için Birleştirme Aracısı alır.Her mantıksal kayıt için ayrı bir hareket Aracısı açtığı için Ayrıca, gereksinimleri kilitleme artırabilirsiniz.