Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Как почистить таблицу, не заблокировав ее для записи?  [new]
silnov
Member

Откуда:
Сообщений: 4
Есть таблица, в которую регулярно добавляются записи.
Периодически таблицу нужно подчищать.

В итоге один раз чистка старых данных запустила пересбор статистики, что заблокировало таблицу на запись, это затронуло пользователей.

Как можно избежать такой ситуации?
Перепроектировать бд можно, но данные в любом случае нужно будет чистить.
13 ноя 21, 12:45    [22395520]     Ответить | Цитировать Сообщить модератору
 Re: Как почистить таблицу, не заблокировав ее для записи?  [new]
dmdmdm
Member

Откуда: Нижний Новгород
Сообщений: 1837
Периодически таблицу нужно подчищать.


Не вижу проблем. Например, по дате.

чистка старых данных запустила пересбор статистики, что заблокировало таблицу на запись


Это епархия DBA, пусть не допускает такого.
13 ноя 21, 13:35    [22395542]     Ответить | Цитировать Сообщить модератору
 Re: Как почистить таблицу, не заблокировав ее для записи?  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54798

silnov
пересбор статистики, что заблокировало таблицу на запись

Сбор статистики блокирует таблицу? У вас какая версия?

Posted via ActualForum NNTP Server 1.5

13 ноя 21, 13:56    [22395546]     Ответить | Цитировать Сообщить модератору
 Re: Как почистить таблицу, не заблокировав ее для записи?  [new]
проходил мимо...
Member

Откуда: от верблюда
Сообщений: 1187
silnov
В итоге один раз чистка старых данных запустила пересбор статистики, что заблокировало таблицу на запись

это вы сами догадались, или вам ваш DBA сказал?
вообще, по опыту, DBA иногда бывают такими сказочниками...
13 ноя 21, 14:16    [22395551]     Ответить | Цитировать Сообщить модератору
 Re: Как почистить таблицу, не заблокировав ее для записи?  [new]
silnov
Member

Откуда:
Сообщений: 4
На буднях спрошу версию.
Может, я неправильно выразился, но ведь rebuild индексов блокирует изменение таблицы?
До наших DBAшников не достучался.
13 ноя 21, 14:17    [22395552]     Ответить | Цитировать Сообщить модератору
 Re: Как почистить таблицу, не заблокировав ее для записи?  [new]
проходил мимо...
Member

Откуда: от верблюда
Сообщений: 1187
silnov
но ведь rebuild индексов блокирует изменение таблицы?

так у вас пересбор статистики или ребилд индексов запустился? разница, может кому-то и не очевидная, всё же есть...
13 ноя 21, 14:19    [22395554]     Ответить | Цитировать Сообщить модератору
 Re: Как почистить таблицу, не заблокировав ее для записи?  [new]
silnov
Member

Откуда:
Сообщений: 4
Запись в таблицу точно была заблокирована, я точно не знаю, из-за чего.
Как сделать, чтобы такого не случилось?
13 ноя 21, 14:21    [22395556]     Ответить | Цитировать Сообщить модератору
 Re: Как почистить таблицу, не заблокировав ее для записи?  [new]
dmdmdm
Member

Откуда: Нижний Новгород
Сообщений: 1837
Как сделать, чтобы такого не случилось?


До наших DBAшников не достучался.


Достучаться.
13 ноя 21, 14:25    [22395557]     Ответить | Цитировать Сообщить модератору
 Re: Как почистить таблицу, не заблокировав ее для записи?  [new]
проходил мимо...
Member

Откуда: от верблюда
Сообщений: 1187
silnov,

то, что вы описали, не могло заблокировать запись в таблицу - наверняка было что-то ещё.
например, там ещё есть триггеры, которые пишут в другие таблицы, именно запись в которые и была заблокирована.
или на эту таблицу есть foreign key с другой таблицы и запись была заблокирована именно в ту - другую - таблицу.
или ... да масса вариантов!

не зная точной причины сложно давать рекомендации...
нужно больше информации. трейсы там или ожидания всех задействованных сессий - и заблокировавшей и заблокированных.
13 ноя 21, 14:29    [22395558]     Ответить | Цитировать Сообщить модератору
 Re: Как почистить таблицу, не заблокировав ее для записи?  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54798

silnov
Запись в таблицу точно была заблокирована, я точно не знаю, из-за чего.
Как сделать, чтобы такого не случилось?

1. Выяснить точно из-за чего.
2. Устранить.

Posted via ActualForum NNTP Server 1.5

13 ноя 21, 14:34    [22395559]     Ответить | Цитировать Сообщить модератору
 Re: Как почистить таблицу, не заблокировав ее для записи?  [new]
silnov
Member

Откуда:
Сообщений: 4
Пошел узнавать, спасибо!
13 ноя 21, 14:37    [22395561]     Ответить | Цитировать Сообщить модератору
 Re: Как почистить таблицу, не заблокировав ее для записи?  [new]
Правильный Вася
Member

Откуда:
Сообщений: 459
silnov
Периодически таблицу нужно подчищать.

Job на время неактивности пользователей?
15 ноя 21, 19:17    [22396372]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить