Ottimizzazione delle prestazioni dell'importazione di massa

Data aggiornamento: 12 dicembre 2006

In questo argomento vengono descritte alcune opzioni per l'ottimizzazione dell'importazione di massa dei dati in una tabella in Microsoft SQL Server 2005 mediante un comando bcp, un'istruzione BULK INSERT oppure un'istruzione INSERT ... SELECT * FROM OPENROWSET(BULK...). Per eseguire l'importazione o l'esportazione di massa dei dati il più rapidamente possibile, è importante comprendere i fattori che influenzano le prestazioni e i qualificatori di comando disponibili per gestire le prestazioni. Dove possibile, utilizzare un'istruzione Transact-SQL per l'importazione di massa dei dati in SQL Server in quanto Transact-SQL è più rapido di bcp.

[!NOTA] Per un confronto tra le due alternative, vedere Informazioni sulle operazioni di importazione ed esportazione di massa.

La modalità ottimale per migliorare le prestazioni di un'operazione di importazione di massa dipende dai fattori seguenti:

  • Se alla tabella sono applicati vincoli, trigger o entrambi.
  • Il modello di recupero utilizzato dal database.
    Per ulteriori informazioni, vedere Panoramica dei modelli di recupero.
  • Se la tabella in cui vengono copiati i dati è vuota.
  • Se la tabella dispone di indici.
  • Se viene specificato TABLOCK.
  • Se i dati verranno copiati da un client singolo o in parallelo da più client.
  • Se i dati verranno copiati tra due computer sui quali SQL Server è in esecuzione.
ms190421.note(it-it,SQL.90).gifImportante:
In SQL Server 2005 le ottimizzazioni per l'importazione di massa sono disponibili quando vengono attivati i trigger. In SQL Server 2005 viene utilizzato il controllo delle versioni delle righe per i trigger e le versioni delle righe vengono inserite in un apposito archivio nel database tempdb. Prima di poter eseguire un'importazione di massa di un batch di record di dati di grandi dimensioni tramite i trigger, potrebbe essere necessario aumentare le dimensioni di tempdb a causa dell'impatto dei trigger sull'archivio delle versioni.

Per informazioni sugli effetti di questi fattori sugli scenari di importazione di massa, vedere Linee guida per l'ottimizzazione dell'importazione di massa.

Modalità di ottimizzazione dell'importazione di massa

Per velocizzare l'importazione di massa dei dati, SQL Server offre le modalità seguenti:

  • Utilizzo della registrazione minima
    Il modello di recupero con registrazione minima prevede la registrazione minima della maggior parte delle operazioni di massa.
    Per un database con modello di recupero con registrazione completa, tutte le operazioni di inserimento di righe eseguite durante l'importazione di massa vengono registrate in modo completo nel log delle transazioni. In caso di importazioni di grandi quantità di dati, ciò può causare un rapido esaurimento dello spazio disponibile nel log. Per le operazioni di massa la registrazione minima è più efficiente di quella completa e riduce la possibilità che un'operazione di importazione di massa esaurisca lo spazio nel log. Per eseguire la registrazione minima di un'operazione di importazione di massa in un database che in genere utilizza il modello di recupero con registrazione completa, è possibile passare al modello di recupero con registrazione minima delle transazioni di massa. Dopo l'importazione di massa dei dati, passare nuovamente al modello di recupero con registrazione completa. Per ulteriori informazioni, vedere Considerazioni sul passaggio dal modello di recupero con registrazione completa o con registrazione minima delle transazioni di massa.

    [!NOTA] Per le righe inserite viene eseguita la registrazione minima se è applicabile la registrazione delle transazioni di massa. In caso contrario, le righe inserite vengono registrate in modo completo nel log delle transazioni. Per informazioni sul momento in cui le operazioni di importazione di massa vengono registrate e su come eseguire operazioni di importazione di massa con registrazione minima, vedere Operazioni con registrazione minima e Prerequisiti per la registrazione minima nell'importazione di massa.

  • Importazione di dati in parallelo da più client in una tabella singola
    SQL Server consente l'importazione di massa dei dati in una tabella singola da più client in parallelo. Tutti e tre i meccanismi di importazione di massa supportano l'importazione parallela dei dati. Ciò consente di migliorare le prestazioni delle operazioni di importazione dei dati.
    Per ulteriori informazioni, vedere Importazione di dati in parallelo tramite il blocco a livello di tabella.

  • Utilizzo dei batch
    Per informazioni sull'utilizzo dei batch nell'importazione dei dati e per informazioni sui qualificatori di comando per la gestione dei batch, vedere Gestione dei batch per l'importazione di massa.

    [!NOTA] L'opzione BULK della clausola OPENROWSET non supporta il controllo delle dimensioni dei batch.

  • Disattivazione dei trigger
    La disattivazione dei trigger può migliorare le prestazioni.
    Per ulteriori informazioni sull'effetto dell'esecuzione dei trigger sulle operazioni di importazione di massa e su come attivare o disattivare i trigger, vedere Controllo dell'esecuzione dei trigger durante l'importazione di massa di dati.

  • Disattivazione dei vincoli
    Per informazioni sull'effetto della verifica dei vincoli sulle operazioni di importazione di massa e su come attivare o disattivare i vincoli CHECK e FOREIGN KEY di una tabella, vedere Controllo della verifica dei vincoli tramite operazioni di importazione di massa.

  • Ordinamento dei dati in un file di dati
    Per impostazione predefinita, un'operazione di importazione di massa parte dal presupposto che il file di dati non sia ordinato. Se la tabella dispone di un indice cluster, l'utilità bcp e l'istruzione BULK INSERT consentono di specificare l'ordinamento da applicare ai dati nel file di dati durante un'operazione di importazione di massa. L'ordinamento dei dati nel file di dati in modo uguale ai dati nella tabella è facoltativo. Tuttavia, è possibile migliorare le prestazioni dell'operazione di importazione di massa se si specifica lo stesso ordinamento per il file di dati e per la tabella.
    Per ulteriori informazioni, vedere Controllo dell'ordinamento durante l'importazione di massa di dati.

    [!NOTA] Le istruzioni INSERT ... SELECT * FROM OPENROWSET(BULK...) non supportano il controllo dell'ordinamento.

  • Controllo del comportamento di blocco
    Per informazioni su come specificare il comportamento di blocco durante operazioni di importazione di massa, vedere Controllo della modalità di blocco per l'importazione di massa.

  • Importazione di dati in formato nativo
    Per ulteriori informazioni, vedere Utilizzo del formato nativo per l'importazione o l'esportazione di dati e Utilizzo del formato Unicode nativo per importare o esportare dati.

Vedere anche

Riferimento

Oggetto Databases di SQL Server

Concetti

Importazione ed esportazione di dati dati per operazioni di massa

Guida in linea e informazioni

Assistenza su SQL Server 2005

Cronologia modifiche

Versione Cronologia

12 dicembre 2006

Contenuto modificato:
  • Aggiornamento delle informazioni sulla disattivazione dei vincoli per indicare che i vincoli CHECK e FOREIGN KEY vengono attivati o disattivati insieme.