Sto tentando di utilizzare Dapper per l'accesso ai miei dati per l'app del mio server.Metodo corretto per eliminare oltre 2100 righe (per ID) con Dapper
L'app del mio server ha un'altra applicazione che rilascia record nel mio database a una velocità di 400 al minuto.
La mia app li estrae in batch, li elabora e li elimina dal database.
Poiché i dati continuano a scorrere nel database mentre sto elaborando, non ho un buon modo per dire delete from myTable where allProcessed = true
.
Tuttavia, conosco il valore PK delle righe da eliminare. Quindi voglio fare un
Il problema è che se il mio server si ferma per almeno 6 minuti, allora ho più di 2100 righe da eliminare.
Da quando Dapper prende il mio @listToDelete e trasforma ciascuno di essi in un parametro, la mia chiamata all'eliminazione fallisce. (Causa lo spurgo dei miei dati per ottenere ancora più indietro.)
Qual è il modo migliore per gestire questo in Dapper?
NOTE: Ho esaminato i Parametri valutati su Tabled ma da quello che posso vedere, non sono molto performant. Questo pezzo della mia architettura è il collo di bottiglia del mio sistema e ho bisogno di essere molto molto veloce.
@marc_s - Non ho ** bisogno ** di passare molti parametri ... Ma ho bisogno di cancellare quelle righe per ID PK. Comunque lo faccio va bene per me. Sto dicendo dapper di cancellare ogni riga nel mio '@ list'. È Dapper che sta facendo i parametri di ogni elemento nella mia lista. – Vaccano
Difficile dire da questa piccola informazione, ma perché non è possibile utilizzare i criteri di selezione per il batch come criterio per l'eliminazione. Oppure disporre di un flag elaborato in MyTable, impostarlo in "elaborazione" e quindi utilizzarlo. Non è bello, ma sarà molto più rapido che cancellarli uno per uno. Non sarà terribilmente pessimo nemmeno con 10.000 dischi. –
I miei criteri di lotto non sono molto performanti. Quindi preferirei non usarlo. Potrei aggiungere un flag elaborato, ma per farlo avrei bisogno di un modo per richiamare le righe per aggiungere il flag elaborato a. Se riesco a chiamarli, posso anche eliminarli. (Potrei aggiungere una bandiera per dire "in batch" al momento opportuno, ma preferirei non farlo.) – Vaccano