Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Khi tôi gọi PreparedStatement.cancel () trong ứng dụng JDBC, nó có thực sự giết nó trong cơ sở dữ liệu Oracle không?

Xin lưu ý rằng những gì tôi nói dưới đây dựa trên những quan sát và suy luận về Oracle đang được sử dụng, và không dựa trên bất kỳ hiểu biết sâu sắc nào về nội bộ của Oracle. Không ai trong số đó nên được coi là có thẩm quyền.

Những gì ninesided nói trong đoạn đầu tiên của họ là chính xác. Tuy nhiên, hãy cẩn thận với bài kiểm tra được đề xuất. Không phải tất cả các truy vấn tiên tri dài hạn đều giống nhau. Có vẻ như các truy vấn được đánh giá qua hai giai đoạn, giai đoạn đầu kết hợp đủ dữ liệu để biết cách trả về các hàng theo đúng thứ tự và giai đoạn thứ hai trả về các hàng lấp đầy khoảng trống mà nó không tính toán trong giai đoạn đầu. Việc phân chia công việc giữa hai giai đoạn cũng bị ảnh hưởng bởi các cài đặt của trình tối ưu hóa dựa trên chi phí. ví dụ. Hàng đầu tiên so với Tất cả các hàng.

Bây giờ, nếu truy vấn đang ở giai đoạn 1, thì yêu cầu hủy tốt nhất có vẻ như được xếp hàng đợi để áp dụng vào cuối giai đoạn 1, có nghĩa là truy vấn tiếp tục hoạt động.

Trong giai đoạn 2, các hàng được trả về theo nhóm và sau mỗi nhóm, lệnh hủy có thể có hiệu lực, vì vậy giả sử trình điều khiển hỗ trợ lệnh, yêu cầu hủy sẽ dẫn đến truy vấn bị hủy.

Đặc tả cho lệnh hủy JDBC dường như không cho biết điều gì sẽ xảy ra nếu truy vấn không ngừng chạy và do đó lệnh có thể chờ xác nhận việc hủy hoặc có thể hết thời gian chờ và quay lại với truy vấn vẫn đang chạy.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kho dữ liệu Lập hồ sơ dữ liệu ETL với Oracle Warehouse Builder

  2. Hàm EXP () trong Oracle

  3. Cách chạy tập lệnh SQL Plus trong PowerShell

  4. Đưa các trường CLOB vào tệp?

  5. Cách sửa đổi kiểu dữ liệu trong Oracle với các hàng hiện có trong bảng