Добро пожаловать, Гость
Логин: Пароль: Запомнить меня
Теоретические аспекты и практические реализации создания, внедрения и использования баз данных, СУБД, хранилищ.
  • Страница:
  • 1
  • 2
  • 3
  • 4

ТЕМА:

Re: Как узнать причину блокировки 12 года 9 мес. назад #1964

А select for update туда попадает?


Наверное нет.

Если ты сессию определил, то посмотри время, когда началось ожидание и найди для блокирующей сессии в DBA_HIST_ACTIVE_SESS_HISTORY запрос на этот момент времени для поля SAMPLE_TIME.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Как узнать причину блокировки 12 года 9 мес. назад #1965

В DBA_HIST_ACTIVE_SESS_HISTORY ни разу ничего найти не удавалось. Видимо, блокирующая сессия настолько мало времени бывает active, что туда не попадает.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Как узнать причину блокировки 12 года 9 мес. назад #1966

сессия 1 выполняет операторы в рамках ~ одного набора строк
update....
delete...
select for update....
.......
.......
insert
и тут вклинивается сессия, которая нарывается на блокировку.
Что ее блокирует?


T1. Session1. Statement1
T2. Session1. Statement2 - Lock
T3. _________________________ Session2. Statement1 - WAIT
T4. Session1. Statement3
T5. Session1. Statement4

1) Помоему найти конкретный statement не получится. Да и смысла в этом по-моему нет
2) Ceccия 2 в любом случае прожолжит работу Statement3,Statement4. (если ей не помешают другие сессии или deadlock)
3) Объект мы можем определить из v$locked_object

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Как узнать причину блокировки 12 года 9 мес. назад #1967

а уровень изоляции какой? Может SERIALIZABLE? Та сессия что неактивна выполнила какую-либо транзакцию и забыла поставить commit или rollback. Остальные будут вынуждены ждать.

посмотри для блокирующей неактивной сессии
SELECT * FROM dba_locks WHERE session_id = <номер>

и результат сюда

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Как узнать причину блокировки 12 года 9 мес. назад #1968

1) Помоему найти конкретный statement не получится. Да и смысла в этом по-моему нет
2) Ceccия 2 в любом случае прожолжит работу Statement3,Statement4. (если ей не помешают другие сессии или deadlock)
3) Объект мы можем определить из v$locked_object


1 - ну ваш запрос был без этого комментария. Автору то нужен как раз селект
2 - вы хотели сказать Ceccия 1 ?
3 - да с объектом и так все понятно. Вопрос был не в этом.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Как узнать причину блокировки 12 года 9 мес. назад #1969

вы хотели сказать Ceccия 1 ?


да-да... Ошибся)
Именно Сессия 1.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

  • Страница:
  • 1
  • 2
  • 3
  • 4
Время создания страницы: 0.645 секунд