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

Kiedy wywołuję PreparedStatement.cancel() w aplikacji JDBC, czy faktycznie zabija to w bazie danych Oracle?

Należy pamiętać, że to, co powiem poniżej, opiera się na obserwacjach i wnioskach dotyczących użytkowania Oracle, a nie na żadnym głębokim zrozumieniu wewnętrznych elementów Oracle. Żadnej z nich nie należy uważać za autorytatywną.

To, co dziewięciostronne powiedział w pierwszym akapicie, jest poprawne. Uważaj jednak na sugerowany test. Nie wszystkie długotrwałe zapytania Oracle są takie same. Wydaje się, że zapytania są oceniane w dwóch fazach, po pierwsze w fazie, która łączy wystarczającą ilość danych, aby wiedzieć, jak zwrócić wiersze we właściwej kolejności, a po drugie w fazie, w której zwracane są wiersze wypełniające luki, których nie obliczono w pierwsza faza. Na podział pracy pomiędzy dwie fazy mają również wpływ ustawienia optymalizatora kosztowego. np. Pierwsze rzędy a wszystkie rzędy.

Teraz, jeśli zapytanie znajduje się w fazie 1, żądanie anulowania wydaje się co najwyżej być w kolejce do zastosowania na końcu fazy 1, co oznacza, że ​​zapytanie nadal działa.

W fazie 2 wiersze są zwracane w pęczkach, a po każdym pęczku polecenie anulowania może zacząć działać, więc zakładając, że sterownik obsługuje to polecenie, żądanie anulowania spowoduje zabicie zapytania.

Specyfikacja polecenia anulowania JDBC wydaje się nie określać, co powinno się stać, jeśli zapytanie nie przestanie działać, a zatem polecenie może czekać na potwierdzenie zabicia lub może przekroczyć limit czasu i powrócić z uruchomionym zapytaniem.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kroki zmiany hasła administratora, które zostało utracone lub zapomniane w domenie EBS WebLogic R12.2

  2. Oracle Regexp do zastąpienia \n,\r i \t spacją

  3. CX_Oracle - importuj dane z Oracle do ramki danych Pandas

  4. Jak połączyć wiele wierszy w jeden w Oracle bez tworzenia procedury składowanej?

  5. Programista SQL 4