Aracılığıyla paylaş


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

Not

This feature will be removed in a future version of Microsoft SQL Server. Avoid using this feature in new development work, and plan to modify applications that currently use this feature.

Birleştirme çoğaltma, varsayılan olarak, veri değişiklikleri satır satır olarak işler.Birçok durumda bu uygundur, ancak bazı uygulamalar, bu ilişkili satırları bir birim olarak işlenen gereklidir.Birleştirme çoğaltma mantıksal kayıtlar özelliği satırları bir birim olarak işlenen, farklı tablolardaki ilişkili satırları arasında bir ilişki tanımlamanızı sağlar.

Not

Mantıksal kayıtlar özelliği birleştirmek filtreleriyle tek başına veya birlikte kullanılabilir.birleştirmek süzgeçleri hakkında daha fazla bilgi için bkz: Süzgeçleri katılın.. Mantıksal kayıtlarını kullanmak için , yayın uyumluluk düzeyini en az olmalı 90RTM.Daha fazla bilgi için "Uyumluluk düzey için birleştirme yayınları" bölümüne bakın... Bir çoğaltma topolojisi SQL Server birden çok sürümünü kullanma.

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

Three table logical record, with column names only

The Customers tablo is the parent tablo in this relationship and has a birincil anahtar sütun CustID.The Orders tablo has a birincil anahtar sütun OrderID, with a yabancı anahtar constraint on the CustID sütun that references the CustID sütun in the Customers tablo.Benzer şekilde, OrderItems bir birincil anahtar sütunu tablo varOrderItemID , yabancı anahtar kısıtlaması ileSipariş Kimliği başvuran sütunSipariş Kimliği sütunSiparişleri tablosudur.

Bu örnekte, mantıksal kayıt tüm satırları oluşur Siparişleri ilişkili için tek bir tablosuCustID ve tüm satırları değeriOrderItems satırları ilişkili tabloSiparişleri tablosudur.Bu diyagram Customer2 için mantıksal kaydındaki olan üç tablodaki tüm satırları gösterir:

Three table logical record with values

Mantıksal kayıt makaleleri arasında ilişki tanımlamak için

Mantıksal kayıtlarının yararları

Mantıksal kayıtlar özelliği, iki birincil yararı vardır:

  • Uygulama verilerinin bir birim olarak değiştirir.

  • Algılama ve üzerinde aynı anda birden fazla satır birden fazla tablodan bir çakışma çözünürlüğü.

Bir birim olarak değişikliklerini uygulama

Birleştirme işlemini kesintiye, bağlantısı kesilen, kısmen tamamlanmış durum böyle ise küme çoğaltılmış ilgili değişiklikleri mantıksal kayıtlar kullanılırsa geri alınıyor.Örneğin, burada bir abone olan yeni bir siparişi ekler. durum göz önünde bulundurun. Sipariş Kimliği 6 ve iki yeni satır =OrderItems tablosuOrderItemID = 10 and OrderItemID = 11 for Sipariş Kimliği = 6.

Three table logical record with values

Çoğaltma işlemi sonra kesilirse Siparişleri row for Sipariş Kimliği = 6 tamamlandı, ancak önce olur.OrderItems 10 ve 11 tamamlanır ve mantıksal kayıtları kullanılır, OrderTotal değeriSipariş Kimliği = 6 toplamı ile tutarlı olacakSiparişMiktarı değerleriOrderItems satır.Mantıksal kayıtlar kullanılırsa, Siparişleri row for Sipariş Kimliği = 6 kabul edilen değil kadar ilgili OrderItems değişiklikler çoğaltılır.

Farklı bir senaryosunda kullanılan mantıksal kayıtlar ve mektup birleştirme işleminde değişiklikler uygulanırken birisinin tabloları sorgulama, tüm kadar kullanıcı Kısmen Çoğaltılmış değişiklikleri göremez tamamlayın.Örneğin, çoğaltma işlemi, sipariş satırı için karşıya Sipariş Kimliği çoğaltma işlemi çoğaltıldıktan önce tabloları = 6, ancak kullanıcı bir sorguOrderItems rows, the OrderTotal değeri toplamı ile aynı olacaktır.SiparişMiktarı değerleri.Mantıksal kayıtlar kullanılırsa, Siparişleri satır kadar görünür olacaktır.OrderItems satırlarının tamamlandı ve hareket için bir birim olarak kaydedilmiş yapıldı.

Uygulama, birden çok tablo olarak işlem çakışması

Yukarıdaki veri kümesi iki aboneleri olduğu durumda göz önünde bulundurun:

  • Bir kullanıcının ilk abone değişiklikleri SiparişMiktarı of OrderItemID 5 100'den 150 için ve OrderTotal of Sipariş Kimliği 3 200'den 250.

  • Ikinci BIR kullanıcının abone değiştirir SiparişMiktarı of OrderItemID 6 25'den 125 için ve OrderTotal of Sipariş Kimliği 3 200'den 300.

Bu değişiklikler, farklı olarak, mantıksal kayıtlar kullanmadan çoğaltılır OrderTotal değerleri, bir çakışma neden olur ve yalnızca biri yinelenmiş.Ancak olmayan çakışan değişiklikleri OrderItems tablo son bırakarak, çakışma çoğaltılmasıOrderTotal göre tutarsız bir duruma değerleriOrderItems satırları.Bu senaryoda, mantıksal kayıtlar kullanılırsa OrderItems ilişkili kaybeden DeğiştirSiparişleri tablo değişiklik de alınması ve son olarak geriOrderTotal değeri doğru bir özetini olabilirOrderItems satırları.

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

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

Mantıksal kayıtlar kullanırken, aşağıdaki konuları göz önünde bulundurun.

Genel konuları

  • Önerilen tablolarda sayısını tutmak bir mantıksal kayıt beş olası; alt tablolar veya daha az önerilir.

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

    • varchar(max) ve nvarchar(max)

    • varbinary(max)

    • text ve ntext

    • image

    • XML

    • UDT

  • Yayımlanmış bir tablodaki yabancı anahtar ilişkileri CASCADE seçeneğiyle yeniden tanımlanamaz.Daha fazla bilgi için bkz: tablo (Transact-SQL) CREATE ve ALTER tablo (Transact-SQL).

  • Mantıksal ilişkisinde kullanılan tüm sütunları güncelleştiremiyor yan tümce.

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

  • Mantıksal kayıtlar kullanılırsa bir yayın parametreli hale getirilmiş bir süzgeç içeren, her abone kendi bölümü için anlık görüntü görüntü ile başlatmalısınız.Birleştirme Aracısı, başka yöntem ile bir abone başlatılamıyor, 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 hale getirilmiş süzgeçleri.

  • Mantıksal bir kayıt içeren bir çakışma, çakışma Görüntüleyicisi'nde görüntülenmez.Bu çakışmalar hakkındaki bilgileri görüntülemek için , çoğaltma depolanmış 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 bir uyumluluk düzey 90RTM veya büyük olmalıdır.Daha fazla bilgi için "Yayın uyumluluk düzey" bölümüne bakın. Çoğaltma geriye uyumluluk.

  • Yayın yerel anlık görüntü modunu kullanmanız gerekir.Çoğaltma sürece varsayılan ayar budur SQL Server Compact 3.5 SP1, mantıksal kayıtlar desteklemiyor.

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

  • Mantıksal kayıtlar üzerinde süzülmüş kullanmak üzere yayın:

  • birleştirmek süzgeçleri, yayın kullanıyorsa, birleştirmek için tekil anahtar olmalı küme içinTRUE mantıksal kayıt ilişkilerde katılan tüm birleştirmek süzgeçlerini.Daha fazla bilgi için bkz: Süzgeçleri katılın..

Tablolar arasındaki ilişkileri

  • Mantıksal bir kayıt ile ilişkili tabloları, birincil anahtara yabancı anahtar ilişkisi olması gerekir.

  • Yabancı anahtar kısıtlamaları IÇIN NOT çoğaltma seçeneği olarak ayarlanamaz.Bu seçenek hakkında daha fazla bilgi için bkz: Sınırlamaları, kimlik ve Tetikleyicileri NOT ile denetlemek IÇIN çoğaltma.

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

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

    Child table with more than one parent table

    mantıksal kayıt, bu ilişkideki tabloların üç temsil etmek üzere kullanamazsınız çünkü satırları ClassMembers tek bir birincil anahtar satırı ile ilişkili değildir.Tabloları Sınıfları and ClassMembers verebilir gibi tabloları hala mantıksal kayıt formuClassMembers and Öğrenciler, ancak tüm üç.

  • yayın döngüsel birleştirmek filtresi ilişkileri bulunamaz.

    Örnek tablolar ile kullanma Müşteriler, Siparişleri, and OrderItems, mantıksal kayıtlar, kullanılamadı Siparişleri tablosu da başvurulan yabancı anahtar kısıtlamasını sahipti.OrderItems tablosudur.

Mantıksal kayıtlarının performans üzerindeki etkileri

Mantıksal kayıt özelliği bir performans maliyet ile birlikte verilmez.Mantıksal kayıtlar kullanılırsa, çoğaltma aracısı tüm değişiklikleri aynı anda belirli bir makaleye işleme saat, ve bu değişiklikler, bir satır olarak şekilde uygulanır için kilitleme ve hareket günlüğü gereksinimleri değişiklikleri uygulamak için gerekli en az olduklarından,.

S mantıksal kayıt kullanılıyorsa, Birleştirme Aracısı her tüm değişikliklerin işlem mantıksal kayıt birlikte.Bu işlem, Birleştirme Aracısı satırları çoğaltmak için geçecek süreyi üzerinde etkili olur.Gereksinimleri Kilitleme Aracı mantıksal her kayıt için ayrı bir hareket açtığından, ayrıca artırabilirsiniz.