Aracılığıyla paylaş


Nasıl mektup birleştirme çoğaltması bölümleri filtre uygulanmış bir yayın olarak değerlendirir.

Bir veya daha fazla tabloyu birleştirmek yayınında filtre kullanırken parametreli süzgeçleri ve birleştirmek süzgeçleri, yayımlanmış tablolarındaki verilere bölümlendirilir.C Bölüm yalnızca alt küme küme küme satır kümesi olan bir tablo.Bir abone bir Publisher ile eşitlerken, yayımcı hangi satırların değerlerine göre abone'nın bölüm sistem işlevleri için abone kaynakları ait belirlemelisiniz suser_sname() and/or host_name().Bu işlem, her bir abone bir süzülmüş veri almak için yayımcı sırasında değişiklikleri bölümü üyeliklerini belirleme için olarak adlandırılır Bölüm değerlendirme.

Yayımlanmış bir tablodaki her satır, yayımlanmış tabloları ve parametreli hale getirilmiş bir süzgeç ve ilişkili birleştirmek süzgeç oluştururken, seçilen ayarların verilere bağlı olarak, şunları yapabilir:

  • Bir bölüme ait olan ve yalnızca bir abone (değeri çoğaltılması 3 for the sp_addmergearticle parametre @ partition_options).Örneğin, AdventureWorks Veritabanı, süzebilirsiniz Çalışan tablo aşağıdaki filtre yan tümce ile: WHERE Employee.LoginID = SUSER_SNAME().The row matching each Login ID is sent to only one Subscriber.

  • Bir bölüme ait olan ve birden fazla abonelik (değeri çoğaltılması 2 for @ partition_options).Örneğin, AdventureWorks Veritabanı, süzebilirsiniz Ürünler tablo aşağıdaki filtre yan tümce ile: WHERE Products.ProductLine = HOST_NAME().The HOST_NAME() value is overridden such that the group of salespeople responsible for mountain bike sales receive all rows with a value of "M" in the ProductLine column; each row with a value of "M" belongs to only one partition, but it is sent to more than one Subscriber.Kullanma hakkında daha fazla bilgi için host_name(), içinde "İle HOST_NAME() filtresi" bölümüne bakın. Parametreli satır süzgeçleri.

  • Birden fazla birime ait ve çoğaltılması için birden fazla abone (değeri 0 or 1 for @ partition_options).Örneğin, AdventureWorks Veritabanı, süzebilirsiniz Ürünler tablo aşağıdaki filtre yan tümce ile: WHERE Products.ProductLine = HOST_NAME() or Products.ListPrice < 100.In this case, sales people responsible for mountain bike sales can also sell products in other categories as long as the sale price is less than $100 dollars.Filtre yan tümce, OR nedeniyle, satır, birden fazla birime ait olabilir.

Bölümleri Değerlendirilmiş

Birleştirme çoğaltma, precomputed bölümleri özelliğinin kullanılıp kullanılmadığını bağlı iki yoldan biriyle bölüm değerlendirme oluşur.Bir dizi gereksinimleri karşılandığında, yeni birleştirme yayımları, varsayılan olarak etkin precomputed bölümleri ile oluşturulmuş olan ve varolan yayınlar özelliğini kullanmak için otomatik olarak yükseltilir.Gereksinimlerinin eksiksiz bir listesi için bkz: Parametreli süzgeç performans Precomputed bölümleri ile en iyi duruma getirme.

Bölüm değerlendirme Precomputed bölümleri'ni kullanma

Precomputed bölümleri tüm değişiklikleri sırasında yayımcı bölümü üyeliklerini precomputed ve adresindeki kalıcı saat tabloları yayımlanmış olan değişiklikler için yapılır.Bir abone bir yayımcı ile eşitlerken, sonuç olarak, hemen bölüm değerlendirme sürecinden geçmesine gerek kalmadan değişiklikleri, bölüm için ilgili karşıdan yükleme başlatabilirsiniz.Bu yayın yayında çok sayıda değişiklik, aboneleri veya makaleleri olduğunda, önemli performans kazançları için yol açabilir.

Sistem tabloları önceden hesaplanan bölüm değerlendirme söz konusu şunlardır:

  • MSmerge_partition_groups

  • MSmerge_current_partition_mappings

  • MSmerge_past_partition_mappings

MSmerge_partition_groups Yayında tanımladığınız her bölüm için bir satır içerir.Bölümler aşağıdaki gibi olabilir:

  • Açık olarak kullanarak, tanımlı sp_addmergepartition or the Veri bölümleri sayfa yayın Özellikleri iletişim kutusunun.

  • Henüz bir girdi yok bölüm abone gerektirmesi durumunda, bir abone eşitlerken, otomatik olarak oluşturuldu MSmerge_partition_groups.

Diğer iki (tablolarMSmerge_current_partition_mappings and MSmerge_past_partition_mappings) yayımlanmış bir tablo için bir değişiklik yapıldıkça doldurulur.Her saat yayımlanmış bir tabloda Yayın veritabanında yapılan bir değişiklik, birleştirme Tetik ateşlendiğinde ve meta veriler kaydeder:

  • MSmerge_current_partition_mappings satırların benzersiz her birleşimi için bir satır içerir.MSmerge_contents and MSmerge_partition_groups.Örneğin, bir kullanıcı bir satır, tablo iki bölüm için ait ve satır güncelleştirildiği için bir satır eklenir MSmerge_contents iki satır ve güncelleştirmeyi yansıtacak şekilde eklenmişMSmerge_current_partition_mappingsgüncelleştirilen satır için iki bölümleri ait olduğunu belirtmek için.

  • MSmerge_past_partition_mappings artık belirli bir bölüme ait olan her satır için bir satır içerir.Bir satır, bir bölüm varsa taşır:

    • Satır silinir.Bir kullanıcının bağlantısını bir satır silinmişse tablo, bir satır eklenir MSmerge_tombstone ve bir veya daha çok satır eklenir MSmerge_past_partition_mappings.

    • Süzmek için kullanılan bir sütun değeri değişti.Parametreli hale getirilmiş bir süzgeç, bir şirket ofisleri ve şirket hareket durumu esas alıyorsa, örneğin şirket için bir satır (ve diğer tablolardaki ilgili satırları) satış bir kişinin veri bölümü dışında bölüm için başka bir satışçının hareket.Artık bir bölüme ait olduğu gibi bir satırı güncelleştirilirse, satır eklendiğinde veya güncelleştirilir MSmerge_contents ve bir veya daha çok satır eklenir MSmerge_past_partition_mappings.

    Not

    Bir abonelik ile örtüşmeyen bölümler (bir değeri partition, 3 for the sp_addmergearticle parametre @ partition_options) olan kullanıldığında, sistem tabloları MSmerge_current_partition_mappings and MSmerge_past_partition_mappings , çünkü her satır tek bir bölüme ait olduğu ve yalnızca bir Abone tarafında değiştirilebilir satırları bölümü eşlemeler, izlemek için kullanılmaz.

Bölüm değerlendirme SetupBelongs işlemin kullandığı

Precomputed, bölümler olarak da bilinen bir işlem SetupBelongs kullanılır.Eşitleme sırasında bu yana geçen yayımcı süzülmüş bir tabloya yapılan her değişiklik için bölüm değerlendirme gerçekleştirilir saat Birleştirme Aracısı için belirli bir abone bitti.Bu işlem, yayımcı ile eşitler her abone için yinelenir.

Birleştirme Aracısı bölüm değerlendirme için bir abonelik gerçekleştirmek için , sistem saklı yordamı çağırır sp_MSsetupbelongs, which:

  1. Süzülmüş bir makale her iki geçici tablolar oluşturur: # belongs_<RandomNumber> ve # notbelongs_<RandomNumber>.

  2. Döndürülen değer kullanan suser_sname() and/or host_name() işlevleri sırasında bir sistem sorgulamak için abone görüntüleyin; sorgu satır olup olmadığını belirlemek için kullanılırMSmerge_contents or MSmerge_tombstone abonenin bölüm için geçerlidir.

  3. Satır abone (örneğin, her bir ekleme için başka bir bölüm) için geçerli değilse, bu satır için meta veriler depolanır. # ait or #notbelongs.Satırın ilgili, iki olası sonuç vardır:

    • Bir satır eklenir # ait if: satırdaMSmerge_contents satır veya bölüm ait bir ekleme olanMSmerge_contents süzmek için kullanılan herhangi bir sütundaki değerleri değiştiren bir güncelleştirmedir.

    • Bir satır eklenir #notbelongs if: satırdaMSmerge_contents süzmek için kullanılan herhangi bir sütunundaki bir değeri değişen bir güncelleştirmedir (diğer bir deyişle, bu satır için yeni bir bölüm taşınır), veya satırdaMSmerge_tombstone bölümündeki bir satır silmeyi temsil eder.

Not

Bölümleri etkin precomputed bile SetupBelongs işlem değişiklikleri alınıyor, diğer abonelikler başlattıktan sonra abonelik oluşturulursa, abonelik eşitler ilk kez kullanılır.