Stopping SQL Code Execution

We have a huge Oracle database, and I often retrieve data using SQL Navigator (v5.5). From time to time, I need to stop executing the code by clicking a button Stopbecause I understand that there are no parts in my code. The problem is that after clicking the button Stopit takes a very long time to complete the stop process (sometimes it takes several hours!). The program says Stopping...the bottom line, and I lose a lot of time until it ends.

What is the reason for this? How to speed up the stop process? Just in case, I'm not an admin; I am a limited user who uses some views to access the database.

+3
source share
2 answers

To stop the request, you must perform two tasks:

  • The actual Oracle process must be notified that you want to cancel the request
  • If the request made any changes to the database (DDL, DML), the work should be discarded.

First and foremost, the Oracle process executing the request must check from time to time whether it should cancel the request or not. Even when it performs a large task (for example, a large HASH JOIN), I think it checks every 3 seconds or so (I am looking for the source of this information, I will update the answer if I find it). Is your software now able to communicate correctly with Oracle? I am not familiar with SLQ Navigator, but I suppose the cancellation mechanism should work like with any other tool, so I assume that you are expecting a second point:

, , ( Oracle, ). DML , ( : Oracle , ). ( DML), , , .

- SELECT, , ( ) - .

+5

Oracle OCIBreak(), Windows, .

, DBA SQLNET.EXPIRE_TIME.

+1

Source: https://habr.com/ru/post/1769708/


All Articles