Toplu alma performansı en iyi duruma getirme

This topic describes options for optimizing the bulk import of data into a table in Microsoft SQL Server by using a bcp command, BULK INSERT statement, or OPENROWSET(BULK...) function (Transact-SQL).Toplu alma veya veri olarak vermek için mümkün olduğunca hızlı şekilde performans ve performansı yönetmek kullanılabilen komut niteleyicileri etkileyen faktörleri anlamak önemlidir.Mümkün olduğunca kullanmak bir Transact-SQL deyim için toplu alma verileri SQL Server çünkü Transact-SQL daha hızlı olan bcp.

Not

Bu yöntemler karşılaştırma için bkz: Toplu alma ve verme işlemleri toplu hakkında.

Ne için en iyi artış aşağıdaki etkenlere göre belirli toplu alma işleminin performansını etkilediği:

  • Tablo kısıtlamaları veya Tetikleyiciler veya her ikisini birden sahip olup olmadığını belirler.

  • Veritabanı tarafından kullanılan kurtarma modeli.

    Daha fazla bilgi için bkz: Kurtarma modeline genel bakış.

  • Kopyalanan veri Tablo boş olup olmadığı.

  • Tablo dizinleri sahip olup olmadığını belirler.

  • Olup tablock belirtilmiş.

  • Veri tek bir kopyalanan olup istemci veya kopyalanan gelen birden çok paralel istemcis.

  • Verilerin, iki bilgisayar arasında kopyalanacak olup olmadığını SQL Server çalışmaktadır.

Önemli notÖnemli

De SQL Server 2005 ve daha ileri sürümlerinde toplu almayı en iyi duruma getirmeleri tetikleyici etkinleştirildiğinde.Satır sürüm oluşturma satır sürümleri sürüm deposunda saklar ve tetikleyiciler için kullanılan tempdb.Önce toplu iş iş alma büyük bir toplu iş iş tetikleyicileri kullanarak veri kayıtlarının boyutunu genişletmeniz gerekebilir tempdb sürüm deposu üzerinde tetikleyici etkisini dengelemek için.

Bu etkenler nasıl etkiler, bilgi toplu alma senaryoları Bkz: Toplu almayı en iyi duruma getirme yönergeleri.

Toplu almayı en iyi duruma getirme yöntemleri

Veri toplu alma hızlandırmak için SQL Server ile aşağıdaki yöntemleri sağlamaktadır:

  • En az bir günlük kullanarak

    Basit kurtarma modeli, en az çoğu toplu işlemleri günlüğe kaydeder.

    Tam kurtarma modeli altında veritabanı için toplu alma işlemi sırasında gerçekleştirilen tüm satır ekleme işlemleri tam olarak hareket günlüğüne kaydedilir.Büyük veri alma işlemleri için bu hızla doldurmak işlem günlüğü neden olabilir.Toplu alma işlemleri için minimal günlüğü daha tam günlük daha etkilidir ve bir toplu alma işlemi günlük alanı doldurur olasılığını azaltır.En az bir toplu alma işlemi normalde tam kurtarma modeli kullanan bir veritabanına oturum için ilk önce veritabanına geçiş yapabilirsiniz toplu günlük kurtarma modeli.Kurtarma modeli başa dön geçiş veri alma toplu sonra tam kurtarma modeli.Daha fazla bilgi için bkz: Tam veya toplu günlük kurtarma modeli geçiş yapmak için dikkat edilmesi gereken noktalar.

    Not

    Eklenen satır toplu en iyi duruma getirilmiş ise en az kaydediliyor günlük uygulanabilir; Aksi takdirde, eklenen satırlar tam olarak hareket günlüğüne kaydedilir.Toplu alma işlemleri ne zaman kaydedilir ve en az oturum toplu alma işlemleri gerçekleştirme hakkında daha fazla bilgi için bkz: En az oturum işlemleri ve Toplu alma Minimal günlüğü için Önkoşullar.

  • Tek bir tablo birden çok istemcilerinden paralel veri alma

    SQL Server tek bir tablo birden çok istemcilerinden paralel alınması için toplu olarak veri sağlar.Tüm üç toplu alma mekanizmaları paralel veri alma desteği.Bu veri alma işlemlerinin performansını iyileştirebilir.

    Daha fazla bilgi için bkz: Tablo düzeyi kilitlemeyi ile paralel veri alma.

  • Toplu işlemleri kullanma

    Veri içe aktarma sırasında toplu işlemleri kullanımı hakkında bilgi ve komut niteleyicileri toplu işlemleri yönetme hakkında bilgi için bkz: İçin toplu almayı toplu işlemleri yönetme.

    Not

    Toplu iş boyutu denetleme openrowset yan tümce tümce 's bulk seçeneği desteklemez.

  • Tetikleyiciler devre dışı bırakma

    Tetikleyiciler devre dışı bırakma performansını artırabilir.

    Tetikleyici yürütme toplu alma işlemleri ve etkinleştirmek veya tetikleyiciler devre dışı bırakma etkisi hakkında daha fazla bilgi için bkz: Tetikleyici yürütme toplu olduğunda veri alma denetleme.

  • Sınırlamaları devre dışı bırakma

    Toplu alma işlemleri ve onay ve yabancı anahtar kısıtlamalarını devre dışı bırakmak veya etkinleştirmek nasıl üzerinde denetleme kısıtlaması etkisi üzerinde bilgi için bir tablo, bkz: Toplu alma işlemler tarafından denetleme kısıtlaması denetleme.

  • Veri dosyasındaki verileri sıralama

    Varsayılan olarak, bir toplu alma işlemi bir veri dosyası sırasız varsayar.tablo kümelenmiş dizin olan bcp yardımcı programı, bulk INSERT deyim ve openrowset(bulk…) işlev (Transact-SQL), nasıl veriler veri dosyasındaki bir toplu alma işlemi. sırasında sıralanır belirtmenize olanak verirTablo olarak aynı sırada sıralanan veri dosyasındaki veriler için isteğe bağlıdır.Ancak, tablo olarak aynı veri dosyasını sipariş belirtirseniz, toplu alma işleminin performansı artırabilir.

    Daha fazla bilgi için bkz: Toplu olduğunda veri alma, sıralama düzenini denetleme.

  • Controlling kilitleme davranışı

    Toplu alma işlemleri sırasında kilitleme davranışı belirtme hakkında daha fazla bilgi için bkz: İçin toplu almayı kilitleme davranışı denetleme.

  • Veri içe aktarmayerel biçim

    Daha fazla bilgi için bkz: Yerel biçim aldığınızda veya veri vermek için kullanarak ve Unicode yerel biçim aldığınızda veya veri vermek için kullanma.