Dela via


Diskutrymme för transaktionsloggar för indexåtgärder

gäller för:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

Storskaliga indexåtgärder kan generera stora databelastningar som kan göra att transaktionsloggen fylls snabbt. För att säkerställa att indexåtgärden kan återställas kan transaktionsloggen inte trunkeras förrän indexåtgärden har slutförts. Loggen kan dock säkerhetskopieras under indexåtgärden. Transaktionsloggen måste därför ha tillräckligt med utrymme för att lagra både indexåtgärdstransaktionerna och eventuella samtidiga användartransaktioner under indexåtgärdens varaktighet.

Detta gäller både offline- och onlineindexåtgärder. Eftersom de underliggande tabellerna inte kan nås under en offlineindexåtgärd kan det finnas få användartransaktioner och loggen kanske inte växer lika snabbt. Onlineindexåtgärder förhindrar inte samtidig användaraktivitet, därför kan storskaliga onlineindexåtgärder i kombination med betydande samtidiga användartransaktioner orsaka kontinuerlig tillväxt av transaktionsloggen utan ett alternativ för att trunkera loggen.

Recommendations

När du kör storskaliga indexåtgärder bör du överväga följande rekommendationer:

  1. Kontrollera att transaktionsloggen säkerhetskopieras och trunkeras innan du kör storskaliga indexåtgärder online och att loggen har tillräckligt med utrymme för att lagra det planerade indexet och användartransaktionerna.

  2. Överväg att ställa in alternativet SORT_IN_TEMPDB till ON för indexåtgärden. Detta skiljer indextransaktionerna från samtidiga användartransaktioner. Indextransaktionerna lagras i transaktionsloggen tempdb och de samtidiga användartransaktionerna lagras i transaktionsloggen för användardatabasen. På så sätt kan användardatabasens transaktionslogg trunkeras under indexeringsoperationen om det behövs. Om loggen tempdb inte finns på samma disk som användardatabasloggen konkurrerar inte de två loggarna om samma diskutrymme.

    Anmärkning

    Kontrollera att tempdb databasen och transaktionsloggen har tillräckligt med diskutrymme för att hantera indexåtgärden. Transaktionsloggen tempdb kan inte trunkeras förrän indexåtgärden har slutförts.

  3. Använd en databasåterställningsmodell som möjliggör minimal loggning av indexåtgärden. Detta kan minska loggens storlek och förhindra att loggen fyller loggutrymmet.

  4. Kör inte onlineindexåtgärden i en explicit transaktion. Loggen klipps inte förrän den explicita transaktionen upphör.