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

Откуда:
Сообщений: 14
в таблице около 40000 записей.
Выполняю оператор
delete tabl1

время выполнения дошло до 8 часов, дальше ждать не интересно.

никакие логи не растут, загрузка процессора есть до 10% , диски почти на 100%(в режиме чтения)
план запроса в три действия.

Где ошибка?
9 июл 07, 22:06    [4369897]     Ответить | Цитировать Сообщить модератору
 Re: Очень медленное удаление. Почему?  [new]
for93t
Member

Откуда:
Сообщений: 260
Не исключено, что сеанс чего-то ожидает
9 июл 07, 22:15    [4369909]     Ответить | Цитировать Сообщить модератору
 Re: Очень медленное удаление. Почему?  [new]
alex-ls
Member

Откуда: Иркутская обл - Пенза - Москва
Сообщений: 6916
триггеры? кто-то меняет таблицу? Трассировку хоть включите и посмотрите, что там.
DELETE FROM ...
WHERE rownum < 1000 
нормально идет?
9 июл 07, 22:17    [4369914]     Ответить | Цитировать Сообщить модератору
 Re: Очень медленное удаление. Почему?  [new]
for93t
Member

Откуда:
Сообщений: 260
Попробуйте обратиться к представлению v$lock
9 июл 07, 22:17    [4369916]     Ответить | Цитировать Сообщить модератору
 Re: Очень медленное удаление. Почему?  [new]
aka5
Member

Откуда:
Сообщений: 14
alex-ls
триггеры? кто-то меняет таблицу? Трассировку хоть включите и посмотрите, что там.
DELETE FROM ...
WHERE rownum < 1000 
нормально идет?


такой select выполняется за 0.7 сек , а delete идет себе неторопясь уже давно.
9 июл 07, 22:22    [4369930]     Ответить | Цитировать Сообщить модератору
 Re: Очень медленное удаление. Почему?  [new]
aka5
Member

Откуда:
Сообщений: 14
for93t
Не исключено, что сеанс чего-то ожидает

скорее всего да, но чего, к базе подключен только один пользователь.
9 июл 07, 22:24    [4369935]     Ответить | Цитировать Сообщить модератору
 Re: Очень медленное удаление. Почему?  [new]
aka5
Member

Откуда:
Сообщений: 14
for93t
Попробуйте обратиться к представлению v$lock

Как его правильно использовать, я в этом не силен.
9 июл 07, 22:25    [4369938]     Ответить | Цитировать Сообщить модератору
 Re: Очень медленное удаление. Почему?  [new]
for93t
Member

Откуда:
Сообщений: 260
Тут
При необходимости можно подогнать под свои нужды
9 июл 07, 22:32    [4369950]     Ответить | Цитировать Сообщить модератору
 Re: Очень медленное удаление. Почему?  [new]
aka5
Member

Откуда:
Сообщений: 14
for93t
Тут
При необходимости можно подогнать под свои нужды

Спасибо попробую разобраться.
9 июл 07, 22:35    [4369955]     Ответить | Цитировать Сообщить модератору
 Re: Очень медленное удаление. Почему?  [new]
alex-ls
Member

Откуда: Иркутская обл - Пенза - Москва
Сообщений: 6916
aka5
alex-ls
триггеры? кто-то меняет таблицу? Трассировку хоть включите и посмотрите, что там.
DELETE FROM ...
WHERE rownum < 1000 
нормально идет?


такой select выполняется за 0.7 сек , а delete идет себе неторопясь уже давно.

где я писал про select? DELETE попробуй такой, и уменьши rownum до 2 :)
9 июл 07, 22:35    [4369956]     Ответить | Цитировать Сообщить модератору
 Re: Очень медленное удаление. Почему?  [new]
Apex
Member

Откуда: Made in USSR
Сообщений: 3909
Для начала надо было посмотреть ожидания сеанса в представлении v$session_wait. Если сеанс висит на enqueue, то смотрим кто его блокирует, как показал for93t.
-------------------------------------------------------
Автор благодарит алфавит за любезно предоставленные ему буквы.
9 июл 07, 22:36    [4369959]     Ответить | Цитировать Сообщить модератору
 Re: Очень медленное удаление. Почему?  [new]
Apex
Member

Откуда: Made in USSR
Сообщений: 3909
alex-ls
aka5
alex-ls
триггеры? кто-то меняет таблицу? Трассировку хоть включите и посмотрите, что там.
DELETE FROM ...
WHERE rownum < 1000 
нормально идет?


такой select выполняется за 0.7 сек , а delete идет себе неторопясь уже давно.

где я писал про select? DELETE попробуй такой, и уменьши rownum до 2 :)

Если кто-то перед этим выдал lock table, то уменьшать можно до посинения:)
К чему все эти танцы, если можно сразу понять, чего ждет сеанс?:)
9 июл 07, 22:39    [4369966]     Ответить | Цитировать Сообщить модератору
 Re: Очень медленное удаление. Почему?  [new]
Далай-ламо
Member

Откуда: никого не Тибёт
Сообщений: 92
aka5
в таблице около 40000 записей.
Выполняю оператор
delete tabl1

время выполнения дошло до 8 часов, дальше ждать не интересно.

никакие логи не растут, загрузка процессора есть до 10% , диски почти на 100%(в режиме чтения)
план запроса в три действия.

Где ошибка?
1) высокая HWM
2) on delete cascade reference constraints
3) before/after delete строчные триггеры
4) кто-то активно в это время изменяет таблицу
5) чего-то ждем

Возможно что-то из-за ламерства я упустил :(
9 июл 07, 22:44    [4369977]     Ответить | Цитировать Сообщить модератору
 Re: Очень медленное удаление. Почему?  [new]
aka5
Member

Откуда:
Сообщений: 14
alex-ls
aka5
alex-ls
триггеры? кто-то меняет таблицу? Трассировку хоть включите и посмотрите, что там.
DELETE FROM ...
WHERE rownum < 1000 
нормально идет?


такой select выполняется за 0.7 сек , а delete идет себе неторопясь уже давно.

где я писал про select? DELETE попробуй такой, и уменьши rownum до 2 :)


Выполняется delete за 7,5 сек при rownum <2
9 июл 07, 22:54    [4369994]     Ответить | Цитировать Сообщить модератору
 Re: Очень медленное удаление. Почему?  [new]
pravednik
Member

Откуда: Jacksonville, FL
Сообщений: 16268
aka5
alex-ls
aka5
alex-ls
триггеры? кто-то меняет таблицу? Трассировку хоть включите и посмотрите, что там.
DELETE FROM ...
WHERE rownum < 1000 
нормально идет?


такой select выполняется за 0.7 сек , а delete идет себе неторопясь уже давно.

где я писал про select? DELETE попробуй такой, и уменьши rownum до 2 :)


Выполняется delete за 7,5 сек при rownum <2


Вы все записи в таблице удаляете?
9 июл 07, 22:58    [4369996]     Ответить | Цитировать Сообщить модератору
 Re: Очень медленное удаление. Почему?  [new]
aka5
Member

Откуда:
Сообщений: 14
Далай-ламо
aka5
в таблице около 40000 записей.
Выполняю оператор
delete tabl1

время выполнения дошло до 8 часов, дальше ждать не интересно.

никакие логи не растут, загрузка процессора есть до 10% , диски почти на 100%(в режиме чтения)
план запроса в три действия.

Где ошибка?
1) высокая HWM
2) on delete cascade reference constraints
3) before/after delete строчные триггеры
4) кто-то активно в это время изменяет таблицу
5) чего-то ждем

Возможно что-то из-за ламерства я упустил :(


Очень похоже на 2 (если я правильно понял) то возможно есть зависимости которые проверяются или тоже удаляются, я пока нашел две, на пустые таблицы.
запроы к ним выполняются по 5-10 сек, но таблицы ведь пустые.
9 июл 07, 22:58    [4369997]     Ответить | Цитировать Сообщить модератору
 Re: Очень медленное удаление. Почему?  [new]
aka5
Member

Откуда:
Сообщений: 14
pravednik
aka5
alex-ls
aka5
alex-ls
триггеры? кто-то меняет таблицу? Трассировку хоть включите и посмотрите, что там.
DELETE FROM ...
WHERE rownum < 1000 
нормально идет?


такой select выполняется за 0.7 сек , а delete идет себе неторопясь уже давно.

где я писал про select? DELETE попробуй такой, и уменьши rownum до 2 :)


Выполняется delete за 7,5 сек при rownum <2


Вы все записи в таблице удаляете?

Да
9 июл 07, 22:59    [4369998]     Ответить | Цитировать Сообщить модератору
 Re: Очень медленное удаление. Почему?  [new]
pravednik
Member

Откуда: Jacksonville, FL
Сообщений: 16268
aka5
pravednik
aka5
alex-ls
aka5
alex-ls
триггеры? кто-то меняет таблицу? Трассировку хоть включите и посмотрите, что там.
DELETE FROM ...
WHERE rownum < 1000 
нормально идет?


такой select выполняется за 0.7 сек , а delete идет себе неторопясь уже давно.

где я писал про select? DELETE попробуй такой, и уменьши rownum до 2 :)


Выполняется delete за 7,5 сек при rownum <2


Вы все записи в таблице удаляете?

Да


а не проще тогда truncate?
9 июл 07, 23:00    [4370000]     Ответить | Цитировать Сообщить модератору
 Re: Очень медленное удаление. Почему?  [new]
aka5
Member

Откуда:
Сообщений: 14
pravednik
aka5
pravednik
aka5
alex-ls
aka5
alex-ls
триггеры? кто-то меняет таблицу? Трассировку хоть включите и посмотрите, что там.
DELETE FROM ...
WHERE rownum < 1000 
нормально идет?


такой select выполняется за 0.7 сек , а delete идет себе неторопясь уже давно.

где я писал про select? DELETE попробуй такой, и уменьши rownum до 2 :)


Выполняется delete за 7,5 сек при rownum <2


Вы все записи в таблице удаляете?

Да


а не проще тогда truncate?

truncate ругается так:
на первичные ключи в талице ссылаются вторичные ключи.
9 июл 07, 23:10    [4370012]     Ответить | Цитировать Сообщить модератору
 Re: Очень медленное удаление. Почему?  [new]
Далай-ламо
Member

Откуда: никого не Тибёт
Сообщений: 92
aka5
Очень похоже на 2 (если я правильно понял) то возможно есть зависимости которые проверяются или тоже удаляются, я пока нашел две, на пустые таблицы.
запроы к ним выполняются по 5-10 сек, но таблицы ведь пустые.
Но у них HWM высоко и индексов по FK нет. Так?
Снимай трассу - все станет сразу видно.
9 июл 07, 23:12    [4370017]     Ответить | Цитировать Сообщить модератору
 Re: Очень медленное удаление. Почему?  [new]
pravednik
Member

Откуда: Jacksonville, FL
Сообщений: 16268
aka5
Далай-ламо
1) высокая HWM
2) on delete cascade reference constraints


Очень похоже на 2 (если я правильно понял) то возможно есть зависимости которые проверяются или тоже удаляются, я пока нашел две, на пустые таблицы.
запроы к ним выполняются по 5-10 сек, но таблицы ведь пустые.


запросы к пустым таблицам так выполняются из-за 1-го
9 июл 07, 23:12    [4370018]     Ответить | Цитировать Сообщить модератору
 Re: Очень медленное удаление. Почему?  [new]
aka5
Member

Откуда:
Сообщений: 14
pravednik
aka5
Далай-ламо
1) высокая HWM
2) on delete cascade reference constraints


Очень похоже на 2 (если я правильно понял) то возможно есть зависимости которые проверяются или тоже удаляются, я пока нашел две, на пустые таблицы.
запроы к ним выполняются по 5-10 сек, но таблицы ведь пустые.


запросы к пустым таблицам так выполняются из-за 1-го

результат такой, что после truncate в подчененной таблице, процесс ускорился в 2 раза,
видимо есть еще таблица с высокой HWM, но как ее опустить не прибегая к полному удалению записей из таблицы?
9 июл 07, 23:27    [4370041]     Ответить | Цитировать Сообщить модератору
 Re: Очень медленное удаление. Почему?  [new]
pravednik
Member

Откуда: Jacksonville, FL
Сообщений: 16268
aka5
pravednik
aka5
Далай-ламо
1) высокая HWM
2) on delete cascade reference constraints


Очень похоже на 2 (если я правильно понял) то возможно есть зависимости которые проверяются или тоже удаляются, я пока нашел две, на пустые таблицы.
запроы к ним выполняются по 5-10 сек, но таблицы ведь пустые.


запросы к пустым таблицам так выполняются из-за 1-го

результат такой, что после truncate в подчененной таблице, процесс ускорился в 2 раза,
видимо есть еще таблица с высокой HWM, но как ее опустить не прибегая к полному удалению записей из таблицы?


отключить внешние ключи
9 июл 07, 23:30    [4370048]     Ответить | Цитировать Сообщить модератору
 Re: Очень медленное удаление. Почему?  [new]
pravednik
Member

Откуда: Jacksonville, FL
Сообщений: 16268
pravednik
отключить внешние ключи

но тольк продумайте свои действия....чтоб потом не пришлось перебирать записи в подчиненной таблице и не удалять их... не простож так delete on caskade
9 июл 07, 23:33    [4370051]     Ответить | Цитировать Сообщить модератору
 Re: Очень медленное удаление. Почему?  [new]
Далай-ламо
Member

Откуда: никого не Тибёт
Сообщений: 92
aka5
видимо есть еще таблица с высокой HWM, но как ее опустить не прибегая к полному удалению записей из таблицы?
alter table ... move + последующее перестроение индексов, если это не IOT. Но я бы сделал индекс по внешнему ключу (потом можно удалить)


pravednik
отключить внешние ключи
и потом, возможно, трахаться с неудаленными каскадно данными в кучке таблиц?
9 июл 07, 23:35    [4370052]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Oracle Ответить