Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Jak obsłużyć duże transakcje w Oracle?

Oracle tworzy kursor dla każdego zestawu wyników i zwalnia go po zamknięciu zestawu wyników (jdbc ResultSet.close() lub podobny). Domyślne 50 otwartych kursorów na sesję jest wystarczające dla każdej dobrze zaprojektowanej aplikacji (kiedy ją zmierzyłem i w trybie produkcyjnym, nigdy nie wzrosła powyżej 20).

Powinieneś sprawdzić, jak sprawić, by Hibernate zamykał zestawy wyników po pobraniu. Generalnie nie wyobrażam sobie, co powinna zrobić sesja, jeśli naprawdę wymaga 1000 otwartych kursorów. Nigdy nie widziałem zestawu max_open_cursors więcej niż 1000, więc myślę, że to wystarcza również dla źle zaprojektowanych aplikacji (ale... nie ma granic perfekcji w trzeźwych faktach i nigdy nie używam Hibernate).

Każdy kursor oznacza trochę pamięci, więc zwiększenie max_open_cursors nie jest obejściem zerowej ceny.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak wyświetlić rozmiar schematu Oracle za pomocą zapytania SQL?

  2. Czy możliwe jest odwoływanie się do nazw kolumn za pomocą zmiennych wiążących w Oracle?

  3. Nie znaleziono kluczy nadrzędnych ORA-02298?

  4. jak wstawić długi ciąg oracle clob lub blob?

  5. Instalacja ROracle na Mac OS X - czego potrzeba od Oracle?