Impedisci il log delle transazioni in crescita con INSERT BULK con TABLOCK

apache-spark bulkinsert jdbc sqlbulkcopy sql-server

Domanda

Sto lavorando alla scrittura di un processo che scriverà su SQL Server dall'applicazione Spark-Scala. La sua generazione di più INSERT BULK per partizione di dati (come previsto), record di 100.000 lotti batch.

Mentre sto monitorando il log delle transazioni, posso vedere che si sta riempiendo, e speravo che con INSERT BULK non lo fosse.

Potete suggerire, come posso ottenere il commit per partita.

Risposta popolare

Quando il modello di recupero DB è impostato su pieno, l'inserimento bulk verrà scritto nel log delle transazioni e i registri delle transazioni continueranno a crescere. Hai due opzioni:

  1. Modificare il modello di recupero del database in modo che venga eseguito il bulking loggato mentre i dati vengono caricati e ripristinarlo in modo completo in seguito

  2. Modifica il tuo processo per eseguire il backup dei registri delle transazioni dopo che ogni batch è stato caricato (o ogni pochi lotti)



Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché
Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché