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:
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:
Mantıksal kayıt makaleleri arasında ilişki tanımlamak için
SQL Server Management Studio: Nasıl Yapılır: Mantıksal bir kaydı birleştirme tablo makaleleri (SQL Server Management Studio'yu) arasında ilişki tanımlama
Çoğaltma Transact-SQL programlama: Nasıl Yapılır: Birleştirme tablo makaleleri (çoğaltma Transact-SQL programlama) arasındaki mantıksal kayıt ilişki tanımlama
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.
Ç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:
Precomputed bölümleri de kullanılmalıdır.Gereksinimleriyle precomputed bölümler, mantıksal kayıtları için de geçerlidir.Daha fazla bilgi için bkz: Parametreli süzgeç performans Precomputed bölümleri ile en iyi duruma getirme.
Örtüşmeyen parametreli süzgeçleri kullanamazsınız.Daha fazla bilgi için "Bölüm Seçenekleri' ayarlama" bölümüne bakın... Parametreli satır süzgeçleri.
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:
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.