Dela via


Krav för minimal loggning vid massimport

Gäller för:SQL Server

För en databas under den fullständiga återställningsmodellen loggas alla radinfogningsåtgärder som utförs av massimport i transaktionsloggen. Stora dataimporter kan göra att transaktionsloggen fylls snabbt om den fullständiga återställningsmodellen används. I den enkla återställningsmodellen eller den massloggade återställningsmodellen minskar däremot minimal loggning av massimportåtgärder möjligheten att en massimportåtgärd fyller loggutrymmet. Minimal loggning är också effektivare än fullständig loggning.

Anmärkning

Den massloggade återställningsmodellen är utformad för att tillfälligt ersätta den fullständiga återställningsmodellen under stora massåtgärder.

Tabellkrav för minimal loggning av massimportåtgärder

Minimal loggning kräver att måltabellen uppfyller följande villkor:

  • Tabellen replikeras inte.

  • Tabelllåsning anges (med ).TABLOCK

    Anmärkning

    Även om datainfogningar inte loggas i transaktionsloggen under en minimalt loggad massimportåtgärd loggar databasmotorn fortfarande omfattningsallokeringar varje gång en ny omfattning allokeras till tabellen.

  • Tabellen är inte en minnesoptimerad tabell.

Om minimal loggning kan ske för en tabell beror också på om tabellen är indexerad och i så fall om tabellen är tom:

  • Om tabellen inte har några index loggas datasidorna minimalt.

  • Om tabellen inte har något grupperat index men har ett eller flera icke-grupperade index loggas alltid datasidorna minimalt. Hur indexsidor loggas beror dock på om tabellen är tom:

    • Om tabellen är tom loggas indexsidorna minimalt. Om du börjar med en tom tabell och massimporterar data i flera batchar loggas både index- och datasidorna minimalt för den första batchen, men från och med den andra batchen loggas endast datasidorna minimalt.

    • Om tabellen inte är tom loggas indexsidorna fullständigt.

    • Om ett av indexen har IGNORE_DUP_KEY = ONloggas index- och datasidorna fullständigt.

  • Om tabellen har ett grupperat index och är tom loggas både data- och indexsidorna minimalt. Om en tabell däremot har ett B-trädbaserat grupperat index och inte är tom loggas både datasidor och indexsidor fullständigt oavsett återställningsmodell. Om du börjar med en tom radlagringstabell och massimporterar data i batchar loggas både index- och datasidorna minimalt för den första batchen, men från och med den andra batchen loggas endast datasidor massloggade.

    Anmärkning

    I dokumentationen används termen B-träd vanligtvis som referens till index. I radlagringsindex implementerar databasmotorn ett B+-träd. Detta gäller inte för kolumnlagringsindex eller index i minnesoptimerade tabeller. Mer information finns i arkitekturen och designguiden för SQL Server och Azure SQL-index.

  • Information om loggning för ett grupperat kolumnlagringsindex (CCI) finns i Vägledning för inläsning av kolumnlagringsindexdata.

Anmärkning

När transaktionsreplikering är aktiverat BULK INSERT loggas åtgärderna fullständigt även under den massloggade återställningsmodellen.

Nästa steg