Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Ketika saya memanggil PreparedStatement.cancel() dalam aplikasi JDBC, apakah itu benar-benar mematikannya di database Oracle?

Harap dicatat bahwa apa yang saya katakan di bawah ini didasarkan pada pengamatan dan kesimpulan Oracle yang digunakan, dan tidak didasarkan pada pemahaman mendalam tentang internal Oracle. Tak satu pun dari itu harus dianggap otoritatif.

Apa yang dikatakan sembilan sisi di paragraf pertama mereka benar. Namun, berhati-hatilah dengan tes yang disarankan. Tidak semua kueri Oracle yang berjalan lama adalah sama. Tampaknya kueri dievaluasi melalui dua fase, pertama fase yang menggabungkan data yang cukup untuk mengetahui cara mengembalikan baris dalam urutan yang benar, dan kedua fase yang mengembalikan baris yang mengisi celah yang tidak dihitung dalam fase pertama. Pembagian kerja antara dua fase juga dipengaruhi oleh pengaturan pengoptimal berbasis biaya. misalnya Baris pertama vs Semua baris.

Sekarang, jika kueri berada di fase 1, permintaan pembatalan tampaknya paling baik diantrekan untuk diterapkan pada akhir fase 1, yang berarti kueri terus beroperasi.

Pada fase 2, baris dikembalikan dalam tandan, dan setelah setiap tandan, perintah batal dapat diterapkan, jadi dengan asumsi driver mendukung perintah, permintaan batal akan mengakibatkan kueri dimatikan.

Spesifikasi untuk perintah pembatalan JDBC tampaknya tidak mengatakan apa yang harus terjadi jika kueri tidak berhenti berjalan, dan oleh karena itu perintah mungkin menunggu konfirmasi pembunuhan, atau mungkin habis waktu dan kembali dengan kueri masih berjalan.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mengurai nama tabel dan kolom dari SQL/HQL Java

  2. ATAN() Fungsi di Oracle

  3. Tipe Data Oracle

  4. Bagaimana cara menghitung jumlah kemunculan karakter dalam nilai Oracle varchar?

  5. Fungsi Bernilai Tabel di ORACLE 11g? ( tampilan parameter )