Как найти запросы, работающие на таблице в Oracle - PullRequest
0 голосов
/ 02 августа 2010

Я запустил удаление SQL из сеанса SQL Developer, и удаление выполнялось долгое время, поскольку было большое количество записей.Из-за некоторой проблемы «Не отвечает» с клиентом SQL Developer я потерял сеанс, так как окно SQL Developer закрылось.

У меня нет прав доступа DBA, я не могу запрашивать представления типа v $ session, v $sqlarea и т. д. Но SQL все еще работает на базе данных.Как только я вставляю некоторые записи, он удаляет их.Как я могу найти / подтвердить, что этот запрос все еще выполняется, прежде чем просить администратора базы данных убить этот запрос.

Ответы [ 2 ]

3 голосов
/ 02 августа 2010

"Но SQL все еще работает на база данных. Как только я вставлю немного записи, он удаляет их. "

В это немного трудно поверить. Если ваш «SQL Delete» был простым DELETE FROM your_table, то он не может удалить ваши новые записи. Модель согласованности чтения Oracle не допустит этого. Так что, либо вы ошибаетесь, либо сделали что-то более сложное.

Если вы выпустили долго выполняющийся запрос DELETE, он может отображаться как длительный процесс в представлении V $ SESSION_LONGOPS. Не все включено. Узнайте больше .

select sid
        , serial#
        , opname
        , sofar
        , totalwork
        , start_time
        , last_update_time
        , time_remaining
        , elapsed_seconds
        , sql_address
        , sql_hash_value
        , sql_id    
from v$session_longops
where username = &your_username
and time_remaining != 0 ;

Без доступа DBA вы не сможете использовать такую ​​информацию, как SQL_ADDRESS, для поиска точного SQL, запускаемого в V $ SQL. Но, надеюсь, у вас не будет слишком много хитов.

2 голосов
/ 02 августа 2010

Вам следует обратиться к администратору базы данных, объяснить, что, по вашему мнению, происходит, и вместе проанализировать проблему.

Эта часть вашего вопроса озадачивает меня:

Как только я вставляю некоторые записи, он удаляет их.

Запущенная транзакция удаления можетне удалять записи, вставленные после запуска транзакции удаления, это называется согласованность чтения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...