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.
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 (SQL Server).
I pacchetti che contengono attività Inserimento bulk possono essere eseguiti solo dai membri del ruolo predefinito del server sysadmin.
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.
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.
Origine e 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 in un server remoto, è 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 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 Registrazione di Integration Services (SSIS) e Messaggi personalizzati per la registrazione.
Voce di log |
Descrizione |
---|---|
BulkInsertTaskBegin |
Indica che l'inserimento bulk è iniziato. |
BulkInsertTaskEnd |
Indica che l'inserimento bulk è terminato. |
BulkInsertTaskInfos |
Offre informazioni descrittive sull'attività. |
Configurazione dell'attività Inserimento bulk
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, abilitare 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 arrestare 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à.
È possibile impostare le proprietà tramite Progettazione SSIS o a livello di codice.
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 a livello di codice dell'attività Inserimento bulk
Per ulteriori informazioni sull'impostazione di queste proprietà a livello di codice, fare clic sull'argomento seguente:
Attività correlate
Impostazione delle proprietà di un'attività o di un contenitore
Contenuto correlato
Articolo tecnico relativo alla possibile visualizzazione dell'errore "Impossibile preparare l'attività Inserimento bulk SSIS per l'inserimento dei dati" nei sistemi con Controllo account utente abilitato sul sito support.microsoft.com.
Articolo tecnico relativo alla guida alle prestazioni del caricamento dati sul sito msdn.microsoft.com
Articolo tecnico relativo all'utilizzo di SQL Server Integration Services per il caricamento bulk dei dati sul sito Web simple-talk.com.
|