Share via


Toplu alma ve verme işlemleri toplu hakkında

SQL Server Veri dışa aktarma destekler toplu bir SQL Server Tablo ve toplu işlemi için veri alma bir SQL Server Tablo veya nonpartitioned görünüm. Aşağıdaki temel yöntemleri kullanılabilir.

Yöntem

Açıklama

Veri alır.

Verileri verir

Kullanımıbcp yardımcı programı

Dışa aktarır ve toplu toplu BIR komut satırı yardımcı programı (bcp.exe), verileri alır ve biçimindeki dosyaları oluşturur.

Evet

Evet

BULK INSERT deyim

C Transact-SQL verileri bir veritabanına doğrudan veri dosyasından alır deyimi tablo veya nonpartitioned görünümü.

Evet

Hayır

EKLE...SELECT * FROM OPENROWSET(BULK...) statement

C Transact-SQL OPENROWSET toplu satır kümesi sağlayıcı için kullanan deyim toplu alma verileri bir SQL Server bir INSERT deyim verileri seçmek üzere OPENROWSET(BULK…) işlev belirterek tablo'ı tıklatın.

Evet

Hayır

Kısıtlamalar

SQL Server Toplu alma işlemleri dosyaları virgülle ayrılmış değerler (CSV) veri almayı desteklemez.Ancak, açık, 32-bit sistemlerde, CSV verileri almak olanaklıdır bir SQL Server en iyi hale getirme kullanılarak toplu alma işlemlerini tablosuz openrowset with the Jet için OLE DB sağlayıcı.Veri ile aynı dizinde bulunan bir schema.ini dosyası tarafından tanımlanan şema ile Jet metin dosyaları tablolar nitelendirir kaynak.CSV verileri için schema.ini dosyasında parametrelerden olur "FORMAT CSVDelimited =".Bu çözümü kullanmak için , size nasıl Jet Test anlaşılması gerekir IISAMm operasyonlar —, bağlantı dizesi sözdizimi, schema.ini kullanımı, kayıt defteri seçenekleri vb.).Bu bilgileri en iyi kaynakları Microsoft Access Yardım ve Bilgi Bankası (BB) makalelerinin ' dir.Daha fazla bilgi için bkz: Metin veri kaynağı sürücüsüne başlatılıyor, bağlantılı sunucu için güvenli bir Access veritabanları ile SQL Server 7.0 bir dağıtılmış sorgu nasıl kullanılır, and NASIL YAPILIR: ISAM veritabanlarıiçin bağlanmak için OLE DB Sağlayıcı Jet 4. 0'ı kullanınNasıl yapılır: Jet sağlayıcının metin kullanılarak, sınırlandırılmış metin dosyası Aç.

Işlem ve.Işlem dışı işlem

BULK INSERT deyim ve OPENROWSET(BULK) işlev, iþlem içi ile yürütmek SQL Server, aynı bellek adres alanını paylaşmak. Veri dosyaları tarafından açıldığı için bir SQL Server işlem, veriler, istemci işlemi arasında kopyalanmaz ve SQL Server işler. Veri alırken BULK INSERT veya ıNSERT'ı kullanarak güvenlik konuları için...SELECT * OPENROWSET(BULK...), bkz: BULK INSERT veya OPENROWSET(BULK...) kullanarak toplu veri alınıyor.

Buna ek olarak, Kullanımıbcp yardımcı programı, işlem dışı çalışır.Işlemin bellek boşluk arasında veri taşımak için Kullanımıbcp must use veri sıralama inter-process.Inter-process data marshalingis the process of converting parameters of a method call into a stream of bytes.Bu, işlemci için önemli bir yükleme ekleyebilirsiniz.Ancak, çünkü her ikisi de Kullanımıbcp istemci işlemi yerel depolama biçime dönüştürme verilere ve veri ayrıştırdığında, ayrıştırma ve veri dönüştürme boşaltmasıSQL Server İşlem. CPU sınırlama varsa, bu nedenle, toplu alma performansı daha iyi birden çok CPU içeren bir bilgisayarda veya farklı bilgisayarlardaki kullanarak bunu Kullanımıbcp kullanarak yerine INSERT TOPLU veya INSERT... SEÇİN * openrowset(bulk) GELEN.

Biçimi dosyaları

The bcp utility, BULK INSERT, and INSERT ...SELECT * FROM tüm OPENROWSET(BULK...) destekleyen özel bir kullanımı Biçim dosyası depoları, veri dosyasındaki her alan için bilgi biçimlendirebilirsiniz.biçim dosyası hakkında ilgili bilgi içeriyor olabilir SQL Server TABLO. biçim dosyası tüm toplu işlemi için gereken biçimi bilgileri verileri verme ve toplu örneğine veri sağlamak için kullanılabilir: SQL Server.

Biçimlendirme dosyaları, alma işlemi sırasında veri dosyasında olduğu gibi verileri yorumlamak ve verme işlemi sırasında Veri dosyasındaki verileri biçimlendirmek için esnek bir şekilde sağlar.Bu esneklik verileri yorumlamak için belirli gereksinimleri için verileri yeniden biçimlendirmek, özel amaçlı kod yazma gereksinimini ortadan kaldırır. SQL Server ya da dış uygulama. Örneğin, toplu olarak siz, yüklenecek veri dışa aktarma virgülle ayrılmış değerler gerektiren bir uygulamaya, dışa aktarılan veri alan sonlandırıcılar gibi virgül eklemek için bir biçim dosyası kullanabilirsiniz.

SQL Server 2005 ve sonraki sürümleri biçimindeki dosyaları iki tür destekler: XML biçimi dosyaları ve olmayan XML dosya biçimi. Non-XML biçimindeki dosyaları daha önceki sürümleri tarafından destekleniyor SQL ServerXML biçimindeki dosyaları daha yeni olan SQL Server 2005.

The bcp utility is the only araç that can generate a biçim dosyası.Daha fazla bilgi için bkz:Bir biçim dosyası oluşturuluyor.Biçimi dosyaları hakkında daha fazla bilgi için bkz: Biçimi dosyaları, alma veya veri vermek için.

Not

Durumlarda biçiminde bir dosyayı sırasında sağlanan bir toplu işlem alabilir veya, kullanıcı, varsayılan komut satırında biçimlendirmesini geçersiz kılmak seçebilirsiniz.

Query işlemci ve toplu alma

Içeri aktarma verilerinin örnek toplu olarak SQL Server, Kullanımıbcp yardımcı programını INSERT deyim TOPLU ve INSERT... SELECT * FROM OPENROWSET(BULK...) deyim tüm sorgu işlemcisi ile çalışır.

Üçünü, OLE DB Satır kümeleri bir Veri dosyasındaki verileri dönüştürme.Ancak bu dönüştürme yöntem, aşağıdaki gibi değişir:

  • The bcp utility reads the data file and sends a TDS stream to the SQL Server toplu kopyalama Program (BCP) API, which converts the data into OLE DB rowsets.

  • BULK INSERT ve OPENROWSET toplu satır kümesi sağlayıcı veri dosyasını doğrudan bir OLE DB satır dönüştürün.

OLE DB Satır kümeleri hedef eklenir tablo sorgu işlemci tarafından planları ve her işlemi en iyi duruma getirir.

Performans konuları

Büyük miktarda veri alındığında performans konuları da önemli olabilir.Bazı durumlarda, bir toplu alma veya toplu verme işlemi bir veya daha fazlasını işleme biçimini değiştirerek performansı artırılabilir:

  • Toplu iş anahtarları

  • CHECK kısıtlamaları denetleme kısıtlaması

  • Toplu işlemleri nasıl günlüğe kaydedilir.Bu, genellikle tam kurtarma modeli kullanan veritabanları için geçerlidir.

  • Dışa aktarılan verileri sıralama

  • Paralel veri alınıyor

  • Tablo kilitleme

  • Tetikleyici yürütme

Daha fazla bilgi için bkz: Toplu alma performansı en iyi duruma getirme.

Not

Hiçbir özel en iyi duruma getirme teknikleri, toplu verme işlemleri için yok.Bu işlem yalnızca verileri kaynak tablosundan bir deyim kullanarak seçin.

Değişiklik Geçmişi

Güncelleştirilmiş içerik

Virgülle ayrılmış değerler (CSV) dosyaları tarafından desteklenmeyen bir belge için "Kısıtlamaları" bölümü eklendi. SQL Server Toplu alma işlemleri.