Dela via


Förbereda för massimport av data (SQL Server)

gäller för:SQL Server

Du kan använda funktionen bcp-kommando , BULK INSERT-instruktion eller OPENROWSET(BULK) för att massimportera data från en datafil.

Anmärkning

Det går att skriva ett anpassat program som massimporter data från andra objekt än en textfil. Om du vill massimportera data från minnesbuffertar använder du antingen bcp-tilläggen till PROGRAMMERINGsgränssnittet för SQL Server Native Client (ODBC) eller OLE DB IRowsetFastLoad-gränssnittet . Om du vill massimportera data från en C#-datatabell använder du ADO.NET api för masskopiering, SqlBulkCopy.

Anmärkning

Massimport av data till en fjärrtabell stöds inte.

Använd följande riktlinjer när du massimportera data från en datafil till en instans av Microsoft SQL Server:

  • Skaffa nödvändiga behörigheter för ditt användarkonto.

    Det användarkonto där du använder bcp-verktyget , BULK INSERT-instruktionen eller -instruktionen INSERT ... SELECT * FROM OPENROWSET(BULK...) måste ha de behörigheter som krävs för tabellen, som tilldelas av tabellägaren. Mer information om behörigheter som krävs av varje metod finns i bcp Utility, OPENROWSET (BULK) och BULK INSERT (Transact-SQL).

  • Använd den massloggade återställningsmodellen.

    Den här riktlinjen gäller för en databas som använder den fullständiga återställningsmodellen. Den massloggade återställningsmodellen är användbar när du utför massåtgärder i en oindexerad tabell (en heap). Med massloggad återställning kan du förhindra att transaktionsloggen får slut på utrymme eftersom massloggad återställning inte utför infogningar av loggrader. Mer information om den massloggade återställningsmodellen finns i Recovery Models (SQL Server).

    Vi rekommenderar att du ändrar databasen så att den använder den massloggade återställningsmodellen omedelbart före massimporten. Omedelbart därefter bör du återställa databasen till den fullständiga återställningsmodellen. Mer information finns i Visa eller ändra återställningsmodellen för en databas (SQL Server).

    Anmärkning

    Mer information om hur du minimerar loggning under massimportåtgärder finns i Krav för minimal loggning i massimport.

  • Säkerhetskopiera efter massimport av data.

    För en databas som använder den enkla återställningsmodellen rekommenderar vi att du gör en fullständig eller differentiell säkerhetskopiering när massimporten har slutförts. Mer information finns i Skapa en fullständig databassäkerhetskopia (SQL Server) eller Skapa en differentiell databassäkerhetskopia (SQL Server).

    För den massloggade återställningsmodellen eller den fullständiga återställningsmodellen räcker det med en loggsäkerhetskopia. Mer information finns i Säkerhetskopiering av transaktionsloggar (SQL Server).

  • Ta bort tabellindex för att förbättra prestanda för stora massimporter.

    Den här riktlinjen gäller när du importerar en stor mängd data jämfört med mängden data som redan finns i tabellen. I det här fallet kan det avsevärt öka prestandan att ta bort indexen från tabellen innan du utför massimportåtgärden.

    Anmärkning

    Om du läser in en liten mängd data jämfört med mängden data som redan finns i tabellen är det kontraproduktivt att ta bort indexen. Tiden som krävs för att återskapa indexen kan vara längre än den tid som sparades under massimporten.

  • Leta upp och ta bort dolda tecken i datafilen.

    Många verktyg och textredigerare visar dolda tecken, som vanligtvis finns i slutet av datafilen. Under en massimportåtgärd kan dolda tecken i en ASCII-datafil orsaka problem som orsakar felet "oväntad null hittades". Att hitta och ta bort alla dolda tecken bör bidra till att förhindra det här problemet.

Se även

Importera och exportera massdata med hjälp av bcp-verktyget (SQL Server)
Importera stordata med BULK INSERT eller OPENROWSET(BULK...) (SQL Server)
bcp-verktyg
BULK INSERT (Transact-SQL)
Dataformat för massimport eller massexport (SQL Server)
OPENROWSET (Transact-SQL)