Condividi tramite


Attività Inserimento bulk

L'attività Inserimento bulk rappresenta un modo efficiente per copiare grandi quantità di dati in una tabella o in una vista di SQL Server. Si supponga, ad esempio, che nella propria società venga utilizzato un mainframe per archiviare l'elenco prodotti, che include un milione di righe, ma che il sistema e-commerce dell'azienda utilizzi SQL Server per popolare le pagine Web. È necessario aggiornare la tabella di SQL Server dei prodotti durante la notte utilizzando l'elenco master dei prodotti del mainframe. A tale scopo è possibile salvare l'elenco prodotti in un file delimitato da tabulazione e utilizzare l'attività Inserimento bulk per copiare i dati direttamente nella tabella di SQL Server.

Per garantire la massima velocità di copia, non è consentito eseguire trasformazioni durante lo spostamento dei dati dal file di origine alla tabella o alla vista.

Per configurare l'attività Inserimento bulk, procedere nel modo seguente:

  • Specificare la gestione connessione OLE DB da utilizzare per la connessione al database SQL Server di destinazione e la tabella o la vista in cui si desidera inserire i dati. L'attività Inserimento bulk supporta solo le connessioni OLE DB per il database di destinazione.

  • Specificare la gestione connessione file o file flat da utilizzare per accedere al file di origine. L'attività Inserimento bulk utilizza la gestione connessione solo per il percorso del file di origine. L'attività ignora le altre opzioni selezionate nell'editor gestione connessione.

  • Definire il formato utilizzato dall'attività Inserimento bulk, utilizzando un file di formato o definendo i delimitatori di colonna e di riga dei dati di origine. Se si utilizza un file di formato, specificare la gestione connessione file da utilizzare per accedere a tale file.

  • Specificare le azioni da eseguire nella tabella o nella vista di destinazione quando i dati vengono inseriti dall'attività. È possibile specificare se verificare i vincoli, consentire IDENTITY_INSERT, mantenere i valori Null, attivare trigger o bloccare la tabella.

  • Fornire informazioni sul batch di dati da inserire, ad esempio le dimensioni del batch, la prima e l'ultima riga del file da inserire, il numero massimo di errori oltre il quale interrompere l'inserimento delle righe e i nomi delle colonne che verranno ordinate.

Se l'attività Inserimento bulk utilizza una gestione connessione file flat per accedere al file di origine, invece del formato specificato nella gestione connessione file flat utilizza il formato specificato in un file di formato oppure i valori delle proprietà RowDelimiter e ColumnDelimiter dell'attività.

Considerazioni sull'utilizzo

Prima di utilizzare l'attività Inserimento bulk, considerare gli aspetti seguenti:

  • Con l'attività Inserimento bulk i dati possono essere trasferiti solo da un file di testo a una tabella o a una vista di SQL Server. Per utilizzare l'attività Inserimento bulk per trasferire dati da altri sistemi di gestione di database (DBMS, Database Management System), è necessario esportare i dati dall'origine a un file di testo e quindi importarli dal file di testo a una tabella o vista di SQL Server.

  • La destinazione deve essere una tabella o vista di database di SQL Server. Se nella tabella o vista di destinazione sono già presenti dati, durante l'esecuzione dell'attività Inserimento bulk i nuovi dati verranno aggiunti a quelli esistenti. Se si desidera sostituire i dati, prima dell'attività Inserimento bulk avviare un'attività Esegui SQL che esegue un'istruzione DELETE o TRUNCATE. Per ulteriori informazioni, vedere Attività Esegui SQL.

  • Nell'oggetto attività Inserimento bulk è possibile utilizzare un file di formato. Se il file di formato è stato creato dall'utilità bcp, è possibile specificarne il percorso nell'attività Inserimento bulk. L'attività Inserimento bulk supporta file di formato sia XML che non XML. Per ulteriori informazioni sui file di formato, vedere File di formato per l'importazione o l'esportazione di dati.

  • I pacchetti che contengono attività Inserimento bulk possono essere eseguiti solo dai membri del ruolo predefinito del server sysadmin.

Utilizzo dell'attività Inserimento bulk con le transazioni

Se le dimensioni del batch non sono impostate, l'intera operazione di copia bulk verrà considerata come un'unica transazione. Se il valore delle dimensioni del batch è 0, i dati verranno inseriti in un solo batch. Se le dimensioni del batch sono impostate, ogni batch rappresenterà una transazione di cui verrà eseguito il commit alla fine dell'esecuzione. Per ulteriori informazioni, vedere Transazioni implicite.

Il comportamento dell'attività Inserimento bulk in relazione alle transazioni varia a seconda che l'attività partecipi o meno alla transazione del pacchetto. Se l'attività Inserimento bulk non partecipa alla transazione del pacchetto, per ogni batch privo di errori verrà eseguito il commit prima di procedere con il batch successivo. Se l'attività Inserimento bulk partecipa alla transazione, al termine dell'attività i batch privi di errori rimarranno nella transazione e saranno soggetti alle operazioni di commit o di rollback del pacchetto.

In caso di errore nell'attività Inserimento bulk, i batch già caricati non verranno sottoposti automaticamente a rollback. Analogamente l'esito positivo dell'attività non comporta automaticamente l'esecuzione del commit per tali batch. Le operazioni di commit e di rollback vengono eseguite solo se le proprietà del flusso di lavoro o del pacchetto sono state impostate in questo senso.

Impostazione dell'origine e della destinazione

Quando si specifica il percorso del file di testo di origine, prendere in considerazione i fattori seguenti:

  • Il server deve disporre delle autorizzazioni necessarie per accedere sia al file che al database di destinazione.

  • Poiché l'attività Inserimento bulk viene eseguita dal server, tutti i file di formato utilizzati dall'attività devono trovarsi sul server.

  • Il file di origine caricato dall'attività Inserimento bulk può trovarsi sullo stesso server del database di SQL Server in cui vengono inseriti i dati oppure su un server remoto. Se il file si trova su un server remoto, sarà necessario specificarne il percorso in formato UNC (Universal Naming Convention).

Ottimizzazione delle prestazioni

Per ottimizzare le prestazioni, prendere in considerazione i fattori seguenti:

  • Se il file di testo si trova nello stesso computer del database di SQL Server in cui vengono inseriti i dati, l'operazione di copia avviene a una velocità superiore, in quanto i dati non devono essere trasferiti in rete.

  • L'attività Inserimento bulk non registra le righe che determinano errori. Se è necessario acquisire tali informazioni, utilizzare gli output degli errori dei componenti del flusso di dati per registrare in un file di eccezioni le righe che provocano errori.

Voci di log personalizzate disponibili nell'attività Inserimento bulk

Nella tabella seguente sono elencate le voci di log personalizzate disponibili per l'attività Inserimento bulk. Per ulteriori informazioni, vedere Implementazione della registrazione nei pacchetti e Messaggi personalizzati per la registrazione.

Voce di log

Descrizione

DTSBulkInsertTaskBegin

Indica che l'inserimento bulk è iniziato.

DTSBulkInsertTaskEnd

Indica che l'inserimento bulk è terminato.

DTSBulkInsertTaskInfos

Offre informazioni descrittive sull'attività.

Configurazione dell'attività Inserimento bulk

È possibile impostare le proprietà tramite Progettazione SSIS o a livello di programmazione.

Per ulteriori informazioni sulle proprietà che è possibile impostare in Progettazione SSIS, fare clic su uno degli argomenti seguenti:

Per ulteriori informazioni sull'impostazione di queste proprietà in Progettazione SSIS, fare clic sull'argomento seguente:

Configurazione dell'attività Inserimento bulk a livello di programmazione

Per ulteriori informazioni sull'impostazione di queste proprietà a livello di programmazione, fare clic sull'argomento seguente:

Icona di Integration Services (piccola) Rimanere aggiornati con Integration Services

Per informazioni sui download, gli articoli, gli esempi e i video Microsoft più recenti, nonché sulle soluzioni selezionate dalla community, visitare la pagina Integration Services su MSDN o Technet:

Per ricevere notifiche automatiche su questi aggiornamenti, sottoscrivere i feed RSS disponibili nella pagina.