Aracılığıyla paylaş


Genel çoğaltma performansı geliştirme

Bu konuda açıklanan yönergeleri kullanarak uygulamanızdaki ve ağınızdaki çoğaltma tüm türleri için genel performansını artırabilirsiniz.

Sunucu ve ağ

  • Minimum ve maksimum ayrılan bellek miktarını ayarlamak Microsoft   SQL Server Veritabanı Altyapısı.

    Varsayılan olarak, Veritabanı Altyapısıdinamik olarak kullanılabilir sistem kaynaklara göre bellek gereksinimlerini değiştirir. Düşük bellek kullanılabilirliği çoğaltma etkinlikleri sırasında önlemek için kullanın min sunucu belleği en az kullanılabilir bellek ayarlama seçeneği. Disk belleği için işletim sistemi sayfaya önlemek için de ile bellek miktarı üst sınırını ayarlayabilirsiniz en fazla sunucu belleği seçeneği. Daha fazla bilgi için, bkz. Sunucu bellek sunucu yapılandırma seçenekleri.

  • Günlük dosyalarının ve veritabanı veri dosyalarının uygun ayırma emin olun. Çoğaltmaya katılan tüm veritabanları için işlem günlüğü için ayrı bir disk kullanın.

    İşlemler veritabanında depolamak için kullanılan bir daha farklı bir disk sürücüsünde günlük dosyalarını depolayarak yazmak için gereken süreyi azaltabilirsiniz. Bu sürücü, hataya dayanıklılık gerektiren bir Redundant Array of ucuz diskler (RAID) -1 kullanarak yansıtabilirsiniz. RAID 0 ya da 0 + 1 (güvenmek üstünde senin lüzum hataya dayanıklılık için) diğer veritabanı dosyalarını kullanın. Bu çoğaltma kullanılıyor olup olmadığına bakılmaksızın iyi bir uygulamadır. Daha fazla bilgi için, bkz. RAID Levels and SQL Server.

  • Sunucularına çoğaltması, özellikle dağıtımcı kullanılan bellek eklemeyi düşünün.

  • Çok işlemcili bilgisayarlarda kullanın.

    Çoğaltma aracıları ek işlemciler sunucuda yararlanabilirsiniz. Yüksek cpu kullanımı çalıştırıyorsanız, hızlı bir cpu veya birden çok CPU'yu yüklemeyi göz önünde bulundurun.

  • Hızlı bir ağ kullanın.

    Ağ işlem çoğaltma için özellikle bir önemli performans darboğazı olabilir. Değişiklikler abonelere yayılmasını önemli ölçüde 100 megabit / saniye (Mbps) veya daha hızlı hızlı bir ağ kullanılarak geliştirilebilir. Ağ yavaş ise, uygun ağ ayarlarını ve aracısı parametrelerini belirtin. Daha fazla bilgi için, bkz. A Slow Network is Causing Problems.

Veritabanı tasarımı

  • Veritabanı tasarımı için en iyi uygulamaları izleyin.

    Çoğaltılmış bir veritabanını genellikle sigara çoğaltılan bir veritabanı olarak aynı performans iyileştirmeleri yararları. Ancak, dizinler abone dikkatli kullanılmalıdır: birincil anahtar sütunu, abone sıralanması, ancak ek dizinler etkileyebilir ekleme, güncelleştirme ve silme performansı. Veritabanı en iyi duruma getirme hakkında daha fazla bilgi için bkz: Optimizing Databases.

  • READ_COMMITTED_SNAPSHOT veritabanı seçeneği ayarlama düşünün.

    Kullanıcı etkinliği ve çoğaltma aracısı aktivitesi arasındaki çekişme azaltmaya yardımcı olmak için yayını ve abonelik veritabanları için bu seçeneği ayarlayın:

    ALTER DATABASE AdventureWorks
    SET READ_COMMITTED_SNAPSHOT ON
    
    ALTER DATABASE AdventureWorks
    SET READ_COMMITTED_SNAPSHOT ON
    

    Daha fazla bilgi için, bkz. alter veritabanı (Transact-sql).

  • Tetikleyicileri uygulama mantığı ile dikkatli olun.

    İş mantığını kullanıcı tanımlı Tetikleyiciler abone, abone değişiklikleri çoğaltma yavaşlatabilir:

    Abone adresindeki Tetikleyicileri kullanmak, daha fazla bilgi için aşağıdaki konulara bakın: Controlling Constraints, Identities, and Triggers with NOT FOR REPLICATIONve Considerations for Transactional Replication. Birleştirme çoğaltma için yayımlanan tablolarda bilgi tutarlılığını korumak için Tetikleyicileri kullanma tabloları birleştirme Aracısı gerekli yeniden deneme sayısını azaltmak için işlem sırasını belirleyin. Daha fazla bilgi için, bkz. Birleştirme makale işlem sırasını belirtme.

  • Büyük nesne (lob) veri türlerinin kullanımını sınırlayın.

    LOB'lar daha fazla depolama alanı ve daha başka sütun veri türlerini işleme gerektirir. Bu sütunlar sürece makaleleri içermez, uygulama için gerekli. Veri türleri text, ntext, ve imageonaylanmaz. LOB'lar dahil, veri türlerini kullanmak öneririz varchar(max), nvarchar(max), varbinary(max), sırasıyla.

    Dağıtım Aracısı profili kullanarak adı verilen işlem çoğaltma için dikkate Dağıtım profili oledb akış için. Daha fazla bilgi için, bkz. Çoğaltma aracısı profilleri.

Yayın tasarım

  • Yalnızca gereken verileri yayımlayın.

    Çoğaltma kurmak kolaydır çünkü orada aslında gerekenden daha fazla veri yayımlamak için bir eğilim vardır. Bu dağıtım veritabanları ve anlık görüntü dosyaları içinde ek kaynakları tüketebilir ve üretim için gerekli verileri düşürebilirsiniz. Gereksiz tablolar yayınlamaktan kaçının ve yayınlar daha sık güncelleme düşünün.

  • Yayın tasarım ve uygulama davranışını üzerinden çakışmalarını en aza indirmek.

    Çoğaltma aşağıdaki türde veri aboneleri değiştirilmesine izin: birleştirme çoğaltma, güncelleştirilebilir abonelikleri ile işlem çoğaltma ve eşler arası işlem çoğaltma. Belirli bir satır birden fazla düğüme eşitlemeler arasındaki, güncelleştirilirse, çoğaltma ve işlem çoğaltma ile güncelleştirilebilir abonelikleri destek veri çakışmaları birleştirme. Eşler arası çoğaltma, veri çakışmalarını desteklemez; veri değişiklikleri bölümlenmesi gerekir. Kullanılan çoğaltma türü ne olursa olsun, bu çakışma algılaması ve çözümlemesi için gereken işlem azalttığı değişiklikleri mümkün olduğunca bölümleme öneririz.

    Değişiklikleri, her abone veri yayımlama alt kümeleri veya belirtilen bir düğüm için belirli bir satır için bir uygulama doğrudan değişiklikleri sahip bölümlenmesi:

    • Birleştirme çoğaltması parametreli filtreleri ile tek bir yayın kullanarak veri yayımlama alt kümelerini destekler. Daha fazla bilgi için, bkz. Parametreli satır süzgeçleri.

    • Işlem çoğaltma birden çok yayınları ile statik filtreler kullanarak veri yayımlama alt kümelerini destekler. Daha fazla bilgi için, bkz. Yayımlanmış veri süzme.

  • Satır filtreleri judiciously kullanın.

    İşlem yayınına satır filtrelerini kullanan bir veya daha fazla makaleleri içerdiğinde, günlük Okuma Aracısı işlem günlüğü tarar gibi tablo güncelleştirme etkilenen her satır filtre uygulamanız gerekir. Günlük Okuma Aracısı üretilen bu nedenle etkilenir.

    Benzer şekilde, birleştirme çoğaltması, hangi aboneler-meli almak bu satırları belirlemek için değiştirilen veya silinen satırlar değerlendirmelidir. Satır filtreleri Abone tarafında gerekli veri azaltmak için istihdam edilmektedir, bu işlem daha karmaşıktır ve tüm satırlar tablo yayımladığınızda yavaş olabilir. Tradeoff azaltılmış depolama gereksinimleri her abone adresindeki ve maksimum verimi elde etmek için ihtiyaç dikkatlice düşünün. Filtre uygulama hakkında daha fazla bilgi için bkz: Yayımlanmış veri süzme.

Abonelik hakkında önemli noktalar

  • Çok sayıda aboneleri olduğunda çekme abonelikleri kullanın.

    Itme abonelikleri dağıtımcı ve aboneleri çekme abonelikleri için Dağıtım Aracısı ve Birleştirme Aracısı çalıştırın. Çekme abonelikleri kullanma aracı dağıtımcı için abone işleme taşıyarak performansı artırabilirsiniz. Daha fazla bilgi için, bkz. Yayınlara abone.

  • Abonelik reinitialization aboneleri çok gerisinde olduğunu düşünün.

    Büyük miktarlardaki değişiklikler abonelere gönderilmesi gerektiğinde, onları yeni bir anlık görüntü ile reinitializing bireysel değişiklikleri taşımak için çoğaltma kullanarak daha hızlı olabilir. Daha fazla bilgi için, bkz. Abonelikleri yeniden başlatmak.

    İşlem çoğaltma için çoğaltma izleyicisi görüntüler Undistributed komutlar ilgili bilgileri sekmesi: sayısı henüz bir abone; dağıtılan değil dağıtım veritabanı ve bu hareketler dağıtmak için tahmin edilen zaman. Daha fazla bilgi için, bkz. Bilgileri görüntülemek ve abonelik (çoğaltma izleyicisi) ilişkilendirilmiş aracıların için görevleri.

Anlık düşünceleri

  • Yalnızca gerekli ve yoğun olmayan saatlerde Snapshot aracı çalıştırın.

    Anlık görüntü Aracısı toplu veri yayımlanmış tablo yayımcı dağıtımcı anlık klasöründe bir dosya kopyalar. Bir anlık görüntü kaynak yoğun bir süreç olabilir ve en yoğun olmayan saatlerde planlanmıştır.

  • Bir yerel mod anlık karakter modu anlık gerekli değilse kullanın.

    Sigara hariç tüm aboneleri için anlık görüntü varsayılan yerel mod kullanmak- SQL Server aboneleri ve çalıştıran aboneleri SQL Server Compact, karakter modu anlık gerektirir.

  • Bir tek anlık görüntü klasörü bir yayın için kullanın.

    Anlık görüntü konumuyla ilgili yayın özelliklerini belirtirken, anlık görüntü dosyaları varsayılan snapshot klasörü, bir diğer anlık görüntü klasörü veya her ikisine de seçebilirsiniz. Anlık görüntü dosyaları her iki konumda da üreten, ek disk alanı ve daha Snapshot aracı çalıştığında işlem gerektirir.

  • Anlık görüntü klasörü bir sürücüde veritabanını depolamak veya günlük dosyaları için kullanılan dağıtımcı yerel yerleştirin.

    Anlık görüntü Aracısı snapshot klasörü veri sıralı yazma yapar. Herhangi bir veritabanı ya da günlük dosyalarından ayrı bir sürücüde snapshot klasörü yerleştirmek diskler arasında çekişme azaltır ve daha hızlı işlem tam enstantane yardımcı olur.

  • Abone veritabanı Abone tarafında oluşturduğunuzda, basit veya toplu oturum kurtarma modeli belirtme düşünün. Bu anlık görüntü abone uygulaması sırasında en az bir günlük toplu ekler, gerçekleştirilen sağlar. Abonelik veritabanı anlık uygulandıktan sonra gerekirse bir farklı kurtarma modeli için değiştirebilirsiniz (yinelenen veritabanları kullanabilirsiniz herhangi bir kurtarma modelleri). Kurtarma modeli seçme hakkında daha fazla bilgi için bkz: Geri yükleme ve Kurtarma Özet (SQL Server).

  • Diğer anlık görüntü klasörü ve sıkıştırılmış anlık görüntüleri çıkarılabilir medyada düşük bant genişliği ağlar için kullanmayı düşünün.

    Diğer anlık klasöründe anlık görüntü dosyaları sıkıştırmak anlık disk depolama gereksinimlerini azaltmak ve anlık görüntü dosyaları çıkarılabilir medyaya aktarmak kolaylaştırır.

    Sıkıştırılmış anlık görüntüleri bazı durumlarda, ağ üzerinde anlık görüntü dosyaları aktarma performansını artırabilir. Ancak anlık görüntü sıkıştırma ek Snapshot Aracısı tarafından anlık görüntü dosyaları oluştururken ve dağıtım aracısını veya Birleştirme Aracısı tarafından anlık görüntü dosyaları uygularken işleme gerektirir. Bu anlık görüntü üretimi yavaş ve bazı durumlarda bir anlık uygulamak için gereken süreyi artırabilir. Ayrıca, bir ağ hatası oluşursa sıkıştırılmış anlık devam edemez; Bu nedenle güvenilir ağlar için uygun değildir. Bu bileşim, sıkıştırılmış anlık ağ üzerinden kullanırken dikkatle değerlendirin. Daha fazla bilgi için Diğer anlık görüntü klasörü konumlarıve Sıkıştırılmış anlık görüntüleri.

  • Bir abonelik el ile başlatılıyor düşünün.

    Büyük ilk veri, ilgili olanlar gibi bazı senaryolarda anlık dışında bir yöntemi kullanan bir abonelik başlatmak için tercih edilir. Daha fazla bilgi için Anlık görüntü olmadan bir işlemsel abonelik başlatmanızave Initializing a Merge Subscription Without a Snapshot.

Aracısı parametreler

  • İlk test, kontrol veya hata ayıklama sırasında çoğaltma aracıları dışında ayrıntılı düzeylerini azaltın.

    Azaltmak –HistoryVerboseLevelparametre ve –OutputVerboseLevelparametresi dağıtım aracıları veya birleştirme aracıları. Bu Aracısı geçmiş ve çıkış izlemek için eklenen yeni satır sayısını azaltır. Bunun yerine, önceki geçmiş iletileri aynı durumu ile yeni geçmiş bilgileri güncelleştirilir. Test, kontrol ve böylece ajan faaliyeti mümkün olduğunca çok bilgi varsa hata ayıklama için ayrıntılı düzeylerini artırmak.

  • Kullanım –MaxBCPThreadsparametresi dağıtım aracısı (belirtilen iş parçacığı sayısı, bilgisayarın işlemci sayısını geçmemelidir), Birleştirme Aracısı ve anlık görüntü Aracısı. Bu parametre, anlık görüntüsünü oluşturduğunuzda ve uygulanan gerçekleştirilebilecek paralel olarak toplu kopyalama işlemleri sayısını belirtir.

  • Kullanım –UseInprocLoaderparametresi dağıtım aracısı ve Birleştirme Aracısı (Bu parametre kullanılamaz yayımlanmış tabloları xml sütunları eklerseniz). Bu parametre aracı anlık uygulandığında bulk INSERT komutunu kullanmasına neden olur.

Aracısı parametrelerini Aracısı profilleri ve komut satırında belirtilebilir. Daha fazla bilgi için, bkz:

Ayrıca bkz.

Diğer Kaynaklar

Enhancing Replication Performance