Hej,
może znajdzie się tutaj ktoś kto umie szybciej wykonać masową aktualizację na bazie i podpowie ;)
Problem:
Pobranie około 100k wierszy z bazy z około 10 kolumnami i przepuszczanie je przez pewne reguły (czyt. jeśli col1 = var1and col2 = var2,..., col10 = var10 to ustaw flagę na Y/N i zapisz).
Moje podejście:
1.Pobranie liczby wierszy do aktualizacji
2.Dodanie paginacji do pobierania 5k rekordów na stronę
3. Natywna querka do pobrania dto
4. Przestreamowanie po wszystkich dto
Odfiltrowanie dto których flaga się nie zmieniła i zapis z updatem do bazy po 1000 id-ków bo tyle wynosi limit w Oracle w klauzurze IN(..)
Dla 150k wierszy proces ten zabiera około 5 min.
Z tego co sprawdzałem aktualizacja typu
Update table set flag = ? Where ID In (... 1000 id-ków tutaj)
zabiera 0,3s. Proces jest cyklicznie odpalany 1 raz dziennie przez crona.