Aracılığıyla paylaş


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).Için toplu alma veya verileri olası, hızla vermek, performansı ve performansı yönetmek kullanılabilen komut niteleyicileri etkileyen etkene anlamak önemlidir.Mümkünse kullanmak bir Transact-SQL ifadesine toplu alma verileri SQL Server çünkü Transact-SQL daha hızlı olur. Kullanımıbcp.

Not

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

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

  • Tablo kısıtlamaları, Tetikleyicileri ya da her ikisi de olup olmadığı.

  • Kurtarma modeli, veritabanı tarafından kullanılır.

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

  • Veri tablosuna kopyalanır boş olur.

  • Tablo dizinleri olup olmadığı.

  • Olup TABLOCK belirtilmiş.

  • Verileri yüklenmekte olan tek bir istemciden kopyalanan veya birden çok istemcilerinden paralel kopyalamıştır.

  • Verilerin olup, iki bilgisayar arasında kopyalanması SQL Server çalışıyor.

Important noteImportant Note:

Içinde SQL Server 2005 ve tetikleyici etkinleştirildiğinde sonraki sürümleri, toplu alma en iyi duruma getirmeleri kullanılabilir. Satır sürümü Tetikleyicileri kullanılır ve satır sürümleri sürüm deposunda saklar tempdb.Yığın önce veri kayıtlarını tetikleyicilerini kullanarak büyük toplu iş iş alma, boyutunu genişletmek olabilir tempdb Tetikleyiciler sürüm deposu üzerindeki etkisini uyması için.

Bu etkenler etkilemesi, bilgi toplu alma senaryoları için bkz: En iyi duruma getirme hakkında yönergeler toplu alma.

Toplu almayı en iyi duruma getirme yöntemleri

Veri, toplu alma hızlandırmak için SQL Server size aşağıdaki yöntemlerle de sağlar:

  • En az bir günlük kullanarak

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

    Tam kurtarma modeli altında bir veritabanı için toplu alma işlemi sırasında gerçekleştirilen tüm satır ekleme işlemi tam olarak hareket günlüğüne kaydedilir.Hızlı bir şekilde doldurmak işlem günlüğü için büyük miktarda veri alır, bu neden olabilir.Toplu alma işlemleri için en az bir günlüğe kaydetme, tam günlük kaydı çok 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 normal olarak, tam kurtarma modeli kullanan bir veritabanı oturumu için , ilk toplu günlük kurtarma modeli için veritabanı geçiş yapabilirsiniz.Veri alma, toplu sonra kurtarma modeli Tam kurtarma modeline geçin.Daha fazla bilgi için bkz:Tam veya toplu günlük kurtarma modeli değiştirme hakkında önemli noktalar.

    Not

    Eklenen satır toplu en iyi, en az oturum günlüğü geçerlidir; aksi halde, hareket günlüğüne eklenen satır tam olarak kaydedilir.Toplu alma işlemlerini günlüğe kaydedilir ve en az oturum açan bir toplu alma işlemleri gerçekleştirme konusunda daha fazla bilgi için bkz: En az oturum işlemleri ve Toplu alma en az günlüğe kaydetme için Önkoşullar.

  • Paralel verilerde birden çok istemcilerinden gelen tek bir alma tablo

    SQL Server tek bir alındı toplu veri sağlayan tablo paralel olarak birden çok istemcilerinden gelen.Tüm üç toplu alma mekanizmaları, veri alma paralel destekler.Bu veri alma işlemlerinin performansını iyileştirebilir.

    Daha fazla bilgi için bkz: Tablo düzey kilitlemeyi ile paralel veri alınıyor.

  • Toplu işlemleri kullanma

    Veri alırken toplu işlemleri kullanımı hakkında bilgi ve komut niteleyicileri, toplu işlemleri yönetme hakkında bilgi için bkz: Toplu işlemleri için Bulk ımport yönetme.

    Not

    OPENROWSET yan tümce 's BULK seçeneği denetleyen bir toplu iş boyutu desteklemiyor demektir.

  • Tetikleyici devre dışı bırakma

    Tetikleyici devre dışı bırakılması, performansı iyileştirebilir.

    Toplu alma işlemleri ve nasıl etkinleştirileceği veya tetikleyiciler devre dışı bırakılacağı tetikleyicisi yürütülmesinin etkileri hakkında daha fazla bilgi için bkz: Harekete geçirici yürütme, veri alma, toplu denetleme.

  • Kısıtlamalarını devre dışı bırakma

    Toplu alma işlemleri ve nasıl etkinleştirileceği veya tablonun CHECK ve yabancı anahtar kısıtlamaları'nı devre dışı bırakılacağı denetleme kısıtlaması etkileri hakkında bilgi için bkz: Toplu alma işlemi tarafından denetimini denetleme kısıtlaması.

  • Bir Veri dosyasındaki verileri sıralama

    Varsayılan olarak, bir toplu alma işlemi, bir veri dosyası sıralanmamış olarak varsayar.Tablo, kümelenmiş dizin varsa, Kullanımıbcp OPENROWSET(BULK…) işlev ( yardımcı programını ve BULK INSERT deyimTransact-SQL), bir toplu alma işlemi sırasında Veri dosyasındaki verileri nasıl sıralanan belirtmenize olanak verir. Tablo ile aynı sırada sıralanan veri dosyasındaki veriler için isteğe bağlıdır.Ancak, aynı veri dosyası için tablo olarak sipariş belirtirseniz, toplu alma işleminin performansı artırabilir.

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

  • Kontrolling kilitleme davranışı

    Toplu alma işlemleri sırasında kilitleme davranışı belirtme hakkında daha fazla bilgi için bkz: Kilitleme davranışı için Bulk ımport denetleme.

  • Özgün biçiminde veri alınıyor

    Daha fazla bilgi için bkz: Yerel biçim kullanarak Al veya veri ver ve Unicode yerel biçim kullanarak Al veya veri ver.