Возможные Причины Конфликтов Блокировок и их Обнаружение

Рубрика: Управление Параллелизмом Данных

  • Незафиксированные изменения

  • Продолжительные транзакции

  • Излишне выские уровни блокировок

Возможные Причины Конфликтов Блокировок

Наиболее распространенной причиной конфликтов блокировок является незафиксированное изменение, но есть несколько других возможных причин:

  • Продолжительные транзакции: Много приложений используют пакетную обработку, чтобы выполнить массовые обновления. Эти пакетные задания обычно планируются во время низкой или отсутствующей активности со стороны пользователей, но в некоторых случаях, они, возможно, не успеют завершиться или будут продолжаться слишком долго во время периода низкой активности. Конфликты блокировок распространены, когда обработка транзакций и пакетная обработка выполняются одновременно.

  • Излишне высокие уровни блокировок: Не все базы данных поддерживают блокировку на уровне строки (в Oracle эта поддержка блокировок на уровне строки добавлена в 1988 с выпуском 6). Некоторые базы данных все еще блокируют на табличном уровне или уровне страницы. Разработчики, пишущие приложения, которые предназначены для работы с различными базами данных, часто пишут свои приложения с искусственно завышенными уровнями блокировок так, что БД Oracle будет вести себя подобно этим менее способным системам баз данных. Разработчики, которые плохо знакомы с Oracle, также иногда излишне кодируют более высокие уровни блокировок, чем требуется БД Oracle.

Обнаружение Конфликтов Блокировок

Выберите Blocking Sessions на странице Performance.

Обнаружение Конфликтов Блокировок

Щелкните по ссылке Session ID, чтобы просмотреть информацию о блокирующем сеансе, включая выполняемый SQL-оператор.

Используйте страницу Blocking Sessions в Enterprise Manager, чтобы определить местоположение конфликтов блокировок. Конфликтные запросы блокировок будут показаны в иерархическом виде, показывая сеанс, содержащий блокировку, сверху, и под ним все сеансы, которые стоят в очереди, ожидая блокировки.

Для каждого сеанса, участвующего в конфликте, Вам предоставляются имя пользователя, ID сеанса и количество секунд, которые ожидает сеанс. Кликните по ссылке ID сеанса, чтобы увидеть фактические SQL-операторы, которые в настоящий момент выполняются или запрошены сеансом.

Автоматический Монитор Диагностики Базы данных (ADDM) также автоматически обнаруживает конфликты блокировок и может проконсультировать Вас по вопросам неэффективных трендов блокировок.

Далее: Конфигурирование Хранения Данных Отката

Смотрите также
Комментарии
Написать

(обязательно)

(обязательно)

Это не спам (обязательно)