/ / Aktualizacja instrukcji przygotowanej - poprawa wydajności - java, wydajność, java-ee, jdbc, gotowa instrukcja

Przygotowana aktualizacja instrukcji - poprawa wydajności - java, performance, java-ee, jdbc, ready-statement

W mojej aplikacji mam jedno przygotowane przez Oracle oświadczenie, które za jednym razem zaktualizuje status około 100 000 rekordów w tabeli. Na przykład:

UPDATE <TABLE NAME> SET STATUS=SUCCESS" where STATUS="INIT"

Powyższe zapytanie zostanie zaktualizowane o więcej niż100 000 rekordów za jednym strzałem. Czy jest jakiś sposób na zwiększenie wydajności, np. Ustawienie wielkości partii / pobrania na przygotowanej instrukcji? jak to zrobić, jeśli korzystam z przygotowanej instrukcji z zapytaniem takim jak powyżej, którą wykonam tylko raz, ponieważ nie ustawiam żadnych parametrów do wykonania w partiach?

Odpowiedzi:

0 dla odpowiedzi № 1

Jednym ze sposobów optymalizacji jest nie uruchamianie jednego zapytania naraz (ponieważ opóźnienie systemu na zapytanie jest zbyt wolne ...)

Możesz użyć aktualizacji wsadowej.

Jeśli używasz Spring, użyj batchUpdate

lub jeśli masz do czynienia z JDBC bezpośrednio, użyj

preparedStatement.addBatch();

preparedStatement.executeBatch();

0 dla odpowiedzi nr 2

Pomocne może być podzielenie aktualizacji na wiele częścidzieląc aktualizacje na wiele transakcji, ale zacznę od konfiguracji bazy danych. Jeśli aktualizacje zajmują dużo czasu, możesz nie mieć wystarczająco dużego rozmiaru dziennika. Mogą również występować wąskie gardła dysku.