Prepararsi all'importazione bulk dei dati (SQL Server)Prepare to Bulk Import Data (SQL Server)

In questo argomento si applica a: SìSQL ServernonDatabase SQL di AzurenonAzure SQL Data Warehouse non Parallel Data WarehouseTHIS TOPIC APPLIES TO: yesSQL ServernoAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

Per importare dati in blocco solo da un file di dati, è possibile usare il comando bcp , l'istruzione BULK INSERT o la funzione OPENROWSET (BULK).You can use the bcp command, BULK INSERT statement, or OPENROWSET(BULK) function to bulk import data from a data file only.

Nota

È possibile scrivere un'applicazione personalizzata che esegua l'importazione bulk di dati da oggetti diversi da un file di testo.It is possible to write a custom application that bulk imports data from objects other than a text file. Per importare dati in blocco dai buffer della memoria, usare le estensioni bcp dell'interfaccia API (Application Programming Interface) Native Client (ODBC) SQL ServerSQL Server o dell'interfaccia IRowsetFastLoad di OLE DB.To bulk import data from memory buffers, use either the bcp extensions to the SQL ServerSQL Server Native Client (ODBC) application programming interface (API) or the OLE DB IRowsetFastLoad interface. Per importare dati in blocco da una tabella dati C#, usare l'API della copia bulk ADO.NET, SqlBulkCopy.To bulk import data from a C# data table, use the ADO.NET bulk-copy API, SqlBulkCopy.

Nota

L'importazione bulk di dati in una tabella remota non è supportata.Bulk importing data into a remote table is not supported.

Quando si esegue un'importazione bulk di dati da un file di dati in un'istanza di MicrosoftMicrosoft SQL ServerSQL Server, attenersi alle linee guida seguenti:Use the following guidelines when you bulk import data from a data file to an instance of MicrosoftMicrosoft SQL ServerSQL Server:

  • Ottenere le autorizzazioni necessarie per l'account utente in uso.Obtain required permissions for your user account.

    L'account utente usato per l'esecuzione dell'utilità bcp, dell'istruzione BULK INSERT oppure dell'istruzione INSERT ... L'istruzione SELECT * FROM OPENROWSET(BULK...) deve disporre delle autorizzazioni necessarie per la tabella, che vengono assegnate dal proprietario della tabella.The user account in which you use the bcp utility, the BULK INSERT statement, or the INSERT ... SELECT * FROM OPENROWSET(BULK...) statement must have the required permissions on the table, which are assigned by the table owner. Per altre informazioni sulle autorizzazioni necessarie per ogni metodo, vedere Utilità bcp, OPENROWSET (Transact-SQL) e BULK INSERT (Transact-SQL).For more information about permissions that are required by each method, see bcp Utility, OPENROWSET (Transact-SQL), and BULK INSERT (Transact-SQL).

  • Utilizzare il modello di recupero con registrazione minima delle operazioni bulk.Use the bulk-logged recovery model.

    Questa linea guida riguarda un database che utilizza il modello di recupero con registrazione completa.This guideline is for a database that uses the full recovery model. Il modello di recupero con registrazione minima delle operazioni bulk risulta utile quando si eseguono operazioni bulk in una tabella non indicizzata (un heap).The bulk-logged recovery model is useful when performing bulk operations into an unindexed table (a heap). L'utilizzo del recupero con registrazione minima delle operazioni bulk consente di evitare i problemi di esaurimento dello spazio da parte del log delle transazioni in quanto questo tipo di recupero non inserisce righe nel log.Using bulk-logged recovery helps prevent the transaction log from running out of space because bulk-logged recovery does not perform log row inserts. Per altre informazioni sul modello di recupero con registrazione minima delle operazioni bulk, vedere Modelli di recupero (SQL Server).For more information about the bulk-logged recovery model, see Recovery Models (SQL Server).

    È consigliabile modificare il database in modo da utilizzare il modello di recupero con registrazione minima delle operazioni bulk immediatamente prima dell'operazione di importazione bulk.We recommend that you change the database to use the bulk-logged recovery model immediately before the bulk import operation. Appena terminata l'operazione, reimpostare il modello di recupero con registrazione completa.Immediately afterwards, you should reset the database to the full recovery model. Per altre informazioni, vedere Visualizzare o modificare il modello di recupero di un database (SQL Server).For more information, see View or Change the Recovery Model of a Database (SQL Server).

    Nota

    Per altre informazioni sulla limitazione della registrazione durante le operazioni di importazione in blocco, vedere Prerequisiti per la registrazione minima nell'importazione in blocco.more information about how to minimize logging during bulk import operations, see Prerequisites for Minimal Logging in Bulk Import.

  • Eseguire il backup dopo l'importazione bulk dei dati.Back up after bulk importing data.

    Per un database che utilizza il modello di recupero con registrazione minima, è consigliabile eseguire un backup completo o differenziale al termine dell'operazione di importazione bulk.For a database that uses the simple recovery model, we recommend that you take a full or differential backup after the bulk-import operation finishes. Per altre informazioni, vedere Creare un backup completo del database (SQL Server) o Creare un backup differenziale del database (SQL Server).For more information, see Create a Full Database Backup (SQL Server) or Create a Differential Database Backup (SQL Server).

    Per il modello di recupero con registrazione minima delle operazioni bulk o con registrazione completa, è sufficiente un backup del log.For the bulk-logged recovery model or full recovery model, a log backup is enough. Per altre informazioni, vedere Backup di log delle transazioni (SQL Server).For more information, see Transaction Log Backups (SQL Server).

  • Eliminare gli indici della tabella al fine di migliorare le prestazioni per le importazioni bulk di grandi dimensioni.Drop table indexes to improve performance for large bulk imports.

    Questa linea guida riguarda i casi in cui viene importata una grande quantità di dati rispetto alla quantità di dati già presente nella tabella.This guideline is for when you are importing a large amount of data compared to the amount of data that is already in the table. In tal caso, l'eliminazione degli indici della tabella prima dell'operazione di importazione bulk può consentire un notevole miglioramento delle prestazioni.In this case, dropping the indexes from the table before you perform the bulk-import operation can significantly increase performance.

    Nota

    Se si sta caricando una quantità di dati ridotta rispetto a quella già presente nella tabella, l'eliminazione degli indici risulta controproducente.If you are loading a small amount of data compared to the amount of data already in the table, dropping the indexes is counterproductive. Il tempo necessario per ricompilare gli indici potrebbe essere superiore a quello risparmiato durante l'operazione di importazione bulk.The time required to rebuild the indexes might be longer than the time saved during the bulk-import operation.

  • Individuare e rimuovere i caratteri nascosti nel file di dati.Find and remove hidden characters in the data file.

    In molte utilità ed editor di testo vengono visualizzati i caratteri nascosti, che in genere sono presenti nella parte finale del file di dati.Many utilities and text editors display hidden characters, which are usually at the end of the data file. Durante un'operazione di importazione bulk, i caratteri nascosti in un file di dati ASCII possono causare problemi che generano un errore di tipo carattere NULL imprevisto.During a bulk-import operation, hidden characters in an ASCII data file can cause problems that cause an error of "unexpected null found". L'individuazione e la rimozione di tutti i caratteri nascosti dovrebbero consentire di risolvere questo problema.Finding and removing all the hidden characters should help prevent this problem.

Vedere ancheSee Also

Importare ed esportare dati per operazioni bulk usando l'utilità bcp (SQL Server) Import and Export Bulk Data by Using the bcp Utility (SQL Server)
Importare dati per operazioni bulk usando BULK INSERT o OPENROWSET(BULK...) (SQL Server) Import Bulk Data by Using BULK INSERT or OPENROWSET(BULK...) (SQL Server)
Utilità bcp bcp Utility
BULK INSERT (Transact-SQL) BULK INSERT (Transact-SQL)
Formati di dati per l'importazione o l'esportazione in blocco (SQL Server) Data Formats for Bulk Import or Bulk Export (SQL Server)
OPENROWSET (Transact-SQL)OPENROWSET (Transact-SQL)