Xin lưu ý rằng những gì tôi nói bên dưới dựa trên các quan sát và suy luận của Oracle đang sử dụng và không dựa trên bất kỳ sự 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.
Điều ninesided được 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 thử nghiệm được đề xuất. Không phải tất cả các truy vấn oracle chạy dài đều giống nhau. Dường như các truy vấn được đánh giá qua hai giai đoạn, đầu tiên là một pha kết hợp đủ dữ liệu để biết cách trả về các hàng theo thứ tự đúng và thứ hai là một pha 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 tiên. 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 thiết lập 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 nằm trong giai đoạn 1, yêu cầu hủy có vẻ tốt nhất để xếp hàng để được áp dụng vào cuối giai đoạn 1, có nghĩa là truy vấn vẫn tiếp tục hoạt động. Trong giai đoạn 2, các hàng được trả về trong các bó, và sau mỗi bó, 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ị giết. Quay trở lại đầu trang Thông số kỹ thuật cho lệnh hủy JDBC dường như không nói đ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 giết, hoặc có thể hết thời gian chờ và quay trở lại với truy vấn vẫn đang chạy. Quay lại đầu trang ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Không có trong trường hợp của tôi. https://stackoverflow.com/questions/44383579/how-do-i-forcibly-close-connections-from-a-connection-pool – supertonsky