Aracılığıyla paylaş


Kopyala toplu işlemler gerçekleştirme

SQL ServerToplu kopyalama özelliğini destekleyen büyük miktarda veri aktarımı içine veya dışına bir SQL Servertablo veya görünüm. Verileri de dışarı bir select deyimi belirterek aktarılır. Veriler arasında taşınabilecek SQL Serverve işletim sistemi veri dosyası, bir ASCII dosyası gibi. Veri dosyası, farklı biçimlerde olabilir; Biçim biçim dosyasını kopyasına toplu olarak tanımlanır. Isteğe bağlı olarak, veri program değişkenleri yüklenebilir ve transfer SQL Servertoplu kopyalama işlevleri ve yöntemleri kullanılarak.

Bu özellik gösteren bir örnek uygulama için bkz: IRowsetFastLoad (ole db) kullanarak toplu kopyalama veri.

Bir uygulama genelde toplu kopyalama aşağıdaki yollardan birini kullanır:

  • Bir tablo, görünüm veya tablo veya Görünüm aynı biçimde verilerin nerede saklanacağı bir veri dosyasına Transact-sql deyimini sonuç kümesi kopyasından toplu.

    Bu bir yerel mod veri dosyası adı verilir.

  • Bir tablo, görünüm veya tablo veya görünümü farklı bir biçimde verilerin nerede saklanacağı bir veri dosyasına Transact-sql deyimini sonuç kümesi kopyasından toplu.

    Bu durumda, veri dosyasında depolanan her sütun özellikleri (veri türü, konum, uzunluk, Terminatör vb.) tanımlayan ayrı biçimi dosyası oluşturulur. Tüm sütunlar karakter biçimine dönüştürülür, dosyanın karakter modu veri dosyası denir.

  • Bir tablo veya görünümü bir veri dosyası kopyasından toplu.

    Gerekirse biçimi dosyası veri dosyasını düzenini belirlemek için kullanılır.

  • Program değişkenleri verileri yüklemek, bir tabloya veri alma veya toplu bir kerede bir satır kopyalama toplu kopyalama işlevleri kullanarak görüntüleyin.

Toplu kopyalama işlevleri tarafından kullanılan veri dosyalarını başka bir toplu kopyalama program tarafından oluşturulan gerekmez. Başka bir sistem, bir veri dosyası ve toplu kopya tanımlarına göre biçim dosyasını oluşturabilir; Bu dosyalar daha sonra kullanılabilir bir SQL Serververileri almak için toplu kopyalama program SQL Server. Örneğin, Sekmeyle sınırlandırılmış bir dosyada bir elektronik tablodaki verileri verme, Sekmeyle Sınırlandırılmış dosya açıklayan biçim dosyasını oluşturmak ve sonra verileri hızlı bir şekilde almak için toplu kopyalama program kullanın SQL Server. Toplu kopyalama tarafından oluşturulan veri dosyalarını da diğer uygulamalara aktarılabilir. Örneğin, bir tablo veya görünümü bir elektronik tabloya yüklenemedi sekmeyle ayrılmış bir dosya içine veri aktarmak için toplu kopyalama işlevleri kullanabilirsiniz.

Toplu kopyalama işlevleri kullanmak için uygulamalar kodlama programcılar için iyi toplu kopyalama performansı genel kurallara uymalıdır. Toplu kopyalama işlemleri için destek hakkında daha fazla bilgi için SQL Serverbakın About Bulk Import and Bulk Export Operations.

Sınırlamalar ve Kısıtlamalar

clr kullanıcı tanımlı türü (udt) ikili veri olarak bağlanmalıdır. Bile bir biçim dosyası sqlchar hedef udt sütun veri türünü belirtir, bcp yardımcı programı verileri ikili dosya olarak görür.

set fmtonly off toplu kopyalama işlemleri ile kullanmayın. set fmtonly off, toplu kopyalama işlemi başarısız ya da beklenmeyen sonuçlar vermek neden olabilir.

SQL Server Native Client OLE DB Sağlayıcısı

SQL ServerYerel istemci ole db sağlayıcısı ile toplu kopyalama işlemleri gerçekleştirmek için iki yöntem uygulayan bir SQL Serververitabanı. İlk yöntem karıştırmak istimal IRowsetFastLoad arabirimi için bellek tabanlı toplu kopyalama işlemleri; ve ikinci karıştırmak istimal IBCPSession dosya tabanlı toplu kopyalama işlemleri için arabirim.

Bellek kullanarak Kopyala toplu işlemler tabanlı

SQL ServerYerel istemci ole db sağlayıcısı Implements IRowsetFastLoad desteğini duyurmak için arabirim SQL Serverbellek tabanlı toplu kopyalama işlemleri. IRowsetFastLoad arabirim Implements IRowsetFastLoad::Commit ve IRowsetFastLoad::InsertRow yöntemleri.

Bir oturum IRowsetFastLoad için etkinleştirme

Tüketici bildirir SQL Serverayarlayarak toplu kopyalama, gerek yerel istemci ole db sağlayıcısı SQL Serveryerel istemci ole db sağlayıcıya özgü veri kaynağı özelliği varıant_true için ssprop_enablefastload. Veri kaynağı özelliği ile tüketici oluşturur bir SQL Serveryerel istemci ole db sağlayıcısı oturumu. Yeni oturum tüketici erişim sağlar IRowsetFastLoad arabirimi.

[!NOT]

Eğer IDataInitialize arabirimi, veri kaynağı başlatma için kullanılır, daha sonra SSPROP_IRowsetFastLoad için özellik ayarlamak gerekli olan rgPropertySetsparametresi IOpenRowset::OPENROWSET yöntemi; Aksi takdirde, çağrı OpenRowset yöntemi E_NOINTERFACE dönecektir.

Toplu kopyalama kısıtlamalara için oturumu etkinleştirme SQL Serveryerel istemci ole db sağlayıcısı arabirimleri oturum desteği. Toplu kopyalama etkin oturumu yalnızca aşağıdaki arabirimleri sunar:

  • IDBSchemaRowset

  • IGetDataSource

  • IOpenRowset

  • ISupportErrorInfo

  • ITransactionJoin

Toplu kopyalama etkin satır kümeleri oluşturulmasını devre dışı bırakın ve neden SQL ServerStandart işleme dönmek için yerel istemci ole db sağlayıcısı oturumu Sıfırla ssprop_enablefastload VARIANT_FALSE için.

IRowsetFastLoad satır kümeleri

SQL ServerYerel istemci ole db sağlayıcı toplu kopyalama satır kümeleri salt yazılır, ancak onlar tüketici yapısını belirlemeye olanak arabirimler sergilemek bir SQL Servertablosu. Aşağıdaki arabirimleri üzerinde bir toplu kopyalama etkin maruz kalan SQL Serveryerel istemci ole db sağlayıcısı satır kümesi:

  • IAccessor

  • IColumnsInfo

  • IColumnsRowset

  • IConvertType

  • IRowsetFastLoad

  • IRowsetInfo

  • ISupportErrorInfo

Sağlayıcıya özgü özellikleri SSPROP_FASTLOADOPTIONS, ssprop_fastloadkeepnulls ve SSPROP_FASTLOADKEEPIDENTITY davranışlarını denetleyen bir SQL Serveryerel istemci ole db sağlayıcı toplu kopyalama satır kümesi. Özellikleri belirtilen rgProperties üyesi bir Rgpropertysetsdbpropset_sqlservercolumnIOpenRowsetparametre üye.

Özellik kimliği

Açıklama

SSPROP_FASTLOADKEEPIDENTITY

Sütun: Hayır

R/w: okuma/yazma

Türü: vt_bool

Varsayılan: VARIANT_FALSE

Açıklama: tüketici tarafından sağlanan kimlik değerleri saklar.

VARIANT_FALSE: Değerleri için bir kimlik sütunu SQL Servertablo tarafından üretilen SQL Server. Herhangi bir değer ilişkili sütun tarafından göz ardı edilir için SQL Serveryerel istemci ole db sağlayıcısını.

VARIANT_TRUE: Tüketici erişenine için değer sağlama bağlayan bir SQL Serverkimlik sütunu. Kimlik özelliği kullanılabilir sütunlar null, tüketici her benzersiz bir değer sağlar böylece kabul değil IRowsetFastLoad::Insert çağırın.

SSPROP_FASTLOADKEEPNULLS

Sütun: Hayır

R/w: okuma/yazma

Türü: vt_bool

Varsayılan: VARIANT_FALSE

Açıklama: null varsayılan kısıtlama sütunlar için tutar. Yalnızca etkiler SQL Servernull kabul ve uygulanan varsayılan kısıtlama sütunlar.

VARIANT_FALSE: SQL Serversütun için varsayılan değer ekler zaman SQL Serveryerel istemci ole db sağlayıcısı tüketici null için sütun içeren bir satır ekler.

VARIANT_TRUE: SQL Serverekler sütun null değeri ne zaman SQL Serveryerel istemci ole db sağlayıcısı tüketici null için sütun içeren bir satır ekler.

SSPROP_FASTLOADOPTIONS

Sütun: Hayır

R/w: okuma/yazma

Türü: vt_bool

Varsayılan: hiçbiri

Açıklama: Bu özellik aynıdır h "İpucu,...n"seçeneği bcp yarar. Şu dizelerini seçenekleri toplu verileri bir tabloya kopyalayarak dijital fotoğraf makinesi olarak kullanılabilir.

ORDER(column[ASC | DESC[,... n): sıralama düzeni veri dosyasındaki verileri. Veri dosyasının yüklenmesini tablo kümelenmiş bir dizin göre sıraladıysanız, toplu kopyalama performansı artırıldı.

rows_per_batch = bb: veri toplu iş başına satır sayısı (olarak bb). Sunucu toplu yükleme değerine göre en iyi duruma bb. Varsayılan olarak, rows_per_batch bilinmiyor.

KILOBYTES_PER_BATCH = cc: kilobayt (kb) veri (cc) olarak toplu iş başına. Varsayılan olarak, KILOBYTES_PER_BATCH bilinmiyor.

tablock: bir tablo düzeyi kilitleme toplu kopyalama işlemi süresince kazanılır. Toplu kopyalama işlemi süresince sadece bir kilit tutan kilit çakışması masaya azalttığı Bu seçenek performansı önemli ölçüde geliştirir. Dizin tablo varsa, tablo birden çok istemci tarafından aynı anda yüklenebilir ve tablock belirtilir. Varsayılan olarak, tablo seçeneği ile kilitleme davranışı belirlenir Tablo kilidi toplu yük.

CHECK_CONSTRAINTS: tüm kısıtlamaları table_name kopyalama işlemi sırasında denetlenir. Varsayılan olarak, kısıtlamaları yoksayılır.

FIRE_TRIGGER: SQL Serversatır sürüm oluşturma Tetikleyicileri kullanır ve satır sürümleri sürüm deposunda saklar tempdb. Bu nedenle toplu günlüğü optimizasyonlar bile tetikleyici etkinleştirildiğinde kullanılabilir. Etkin tetikleyiciler ile birlikte çok sayıda satır toplu alma toplu önce boyutu genişletmeniz gerekebilir tempdb.

Dosya kullanarak Kopyala toplu işlemler tabanlı

SQL ServerYerel istemci ole db sağlayıcısı Implements IBCPSession desteğini duyurmak için arabirim SQL ServerDosya tabanlı toplu kopyalama işlemleri. IBCPSession arabirim Implements IBCPSession::BCPColFmt, IBCPSession::BCPColumns, IBCPSession::BCPControl, IBCPSession::BCPDone, IBCPSession::BCPExec, IBCPSession::BCPInit, IBCPSession::BCPReadFmt, ve TheIBCPSession::BCPWriteFmtBCPColFmtyöntemleri.

SQL Server yerel istemci odbc sürücüsü

SQL ServerYerel istemci odbc sürücüsü tutar önceki sürümlerinin bir parçası olan toplu kopyalama işlemleri için aynı destek SQL Serverodbc sürücüsü. Toplu kopyalama işlemleri kullanma hakkında bilgi için SQL Serverbkz: yerel istemci odbc sürücüsü, Toplu Kopyala işlemler (odbc) gerçekleştirme.

Ayrıca bkz.

Kavramlar

Veri kaynağı özellikleri (ole db)

About Bulk Import and Bulk Export Operations

Diğer Kaynaklar

SQL Server yerel istemci özellikleri

IRowsetFastLoad (ole db)

IBCPSession (ole db)