powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Запрос "умирает" при попытке вставить данные таблицу.
25 сообщений из 65, страница 1 из 3
Запрос "умирает" при попытке вставить данные таблицу.
    #39451815
Елена Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый, форум!

Имею запрос, сложный, тяжелый, но в итоге долгих оптимизаций выполнимый за приемлемое время. Но вот при попытке сделать INSERT INTO SELECT этот же запрос заканчивается ошибкой "ORA-01555: слишком старый снимок:...". Пробовала на другом сервере, постоянную и временную таблицу, результат тот же.

Что-то даже мысли нет, в чем может быть причина, в какую сторону копать?
...
Рейтинг: 0 / 0
Запрос "умирает" при попытке вставить данные таблицу.
    #39451816
Q.Tarantino
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
есть замечательный сайт google.com!
и вот что он говорит:
http://www.orafaq.com/wiki/ORA-01555
...
Рейтинг: 0 / 0
Запрос "умирает" при попытке вставить данные таблицу.
    #39451827
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
приемлемое время - это сколько дней/часов?
...
Рейтинг: 0 / 0
Запрос "умирает" при попытке вставить данные таблицу.
    #39451828
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Елена Н.выполнимый за приемлемое время

Что под этим понимается? Получение всех строк или только первый фетч?


Елена Н.этот же запрос заканчивается
План при insert select совпадает с планом при просто select?

При наличии достаточного объёма TEMP и терпения, есть метод materialize'em all. Но лучше регулярно так не делать.
Если сложный тяжёлый запрос надо выполнять регулярно, то смотрите в сторону предматериализации его составляющих, матьеговью с query rewrite и подобные гадости механизмы.
Код: plsql
1.
2.
3.
4.
5.
6.
7.
insert into ...
with "t_N" as (select /*+ materialize */ .....),
      "t_N-1" as (select /*+ materialize */ ..... from "t_N" any join some_table ...),
      ...
       t as (select /*+ materialize */ ..... from "t_0" any join last_little_dimension),
select t.* 
from t
...
Рейтинг: 0 / 0
Запрос "умирает" при попытке вставить данные таблицу.
    #39451842
stax..
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Елена Н.,
имхо
как минимум 4 варианта
1) выполнить вставку при минимальной активности, напр ночью
2) еще больше "дооптимизировать" запрос
3) в старих версиях можно было фиктивными сессиями препядствовать затиранию в роллбек кольце
4) менять железо

.....
stax
...
Рейтинг: 0 / 0
Запрос "умирает" при попытке вставить данные таблицу.
    #39451853
MaximaXXL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Елена Н.,

Если запрос сложный и долгий но результат все равно куда-то пишется, можно разбить на 3-4 быстрых и писать по частям (если это позволяет запрос).

Но пока очень мало вводных данных для принятия решения как лучше помочь
...
Рейтинг: 0 / 0
Запрос "умирает" при попытке вставить данные таблицу.
    #39451855
Вадиман
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MaximaXXLразбить на 3-4 быстрых
и получить 3-4 несогласованных между собой набора данных
...
Рейтинг: 0 / 0
Запрос "умирает" при попытке вставить данные таблицу.
    #39451859
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вадиман,

serialize, as of timestamp и прочее
...
Рейтинг: 0 / 0
Запрос "умирает" при попытке вставить данные таблицу.
    #39451861
Вадиман
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вы знаете информационную систему ТС и уверены, что эти транзакции получится сериализовать?
По одной из нескольких причин запрос падает с ora-01555 и в качестве решения вы даете совет "as of timestamp". Отлично.
...
Рейтинг: 0 / 0
Запрос "умирает" при попытке вставить данные таблицу.
    #39451871
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вадиман,

Так мы и запроса не знаем.
Может там декартово произведение миллиардных таблиц.
...
Рейтинг: 0 / 0
Запрос "умирает" при попытке вставить данные таблицу.
    #39451876
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВадиманПо одной из нескольких причин запрос падает с ora-01555

Для случая - nested loop по FTA для большой таблицы в подзапросе - запросто можно словить ora-01555, при этом материализовать консистентные предварительные данные вполне себе можно без проблем.
...
Рейтинг: 0 / 0
Запрос "умирает" при попытке вставить данные таблицу.
    #39451883
Вадиман
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
но мы же не знаем причину. Вдруг там просто не хватает undo.
...
Рейтинг: 0 / 0
Запрос "умирает" при попытке вставить данные таблицу.
    #39451890
MaximaXXL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вадиман,

Мы вообще мало что знаем ... посему и фраза "Но пока очень мало вводных данных для принятия решения как лучше помочь"

Может там 10 union all
...
Рейтинг: 0 / 0
Запрос "умирает" при попытке вставить данные таблицу.
    #39451943
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вадиман,

Мой хрустальный шар в майский снег плохо работает. В отделе телепатов все в отпусках на праздники.
Думаю, у тебя примерно также.

ТС проснётся и опишет подробности, если вспомнит вообще, что писала сюда.
...
Рейтинг: 0 / 0
Запрос "умирает" при попытке вставить данные таблицу.
    #39452140
Елена Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ого, сколько...
Так,
1. авторприемлемое время - это сколько дней/часов? минуты 2-7, по небольшой части данных чисто для разработки (изначально запрос работал несколько часов)
2. авторЧто под этим понимается? Получение всех строк или только первый фетч?все данные
3. авторПлан при insert select совпадает с планом при просто select?сейчас еще раз специально уточнила, одинаковый
4. автори вот что он говорит:
http://www.orafaq.com/wiki/ORA-01555
не уверена, конечно, что я точно понимаю механизм этой ошибки, не приходилось так глубоко копать, но сервера, а которых пробовала, тестовые, если изменения там и есть, то кратковременные, а проблема постоянная, не первый раз уже в нее утыкаюсь с этим же запросом, да каждый раз откладываю решение на потом
5. авторвыполнить вставку при минимальной активности, напр ночью
запуск процесса на ночь не помогает
6. авторМожет там 10 union all
всего 5 :)
7. авторМожет там декартово произведение миллиардных таблиц
таблицы большие, но в общем-то никаких сверхестественных механизмов в нем нет, большие таблицы + справочники
...
Рейтинг: 0 / 0
Запрос "умирает" при попытке вставить данные таблицу.
    #39452148
ora601
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Елена Н.1. авторприемлемое время - это сколько дней/часов? минуты 2-7, по небольшой части данных чисто для разработки (изначально запрос работал несколько часов)

Код: plsql
1.
2.
CREATE TABLE temp AS SELECT ...  
INSERT INTO src SELECT * FROM temp 



И можно не разбираться в чем именно там причина ORA - 01555
...
Рейтинг: 0 / 0
Запрос "умирает" при попытке вставить данные таблицу.
    #39452172
stax..
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ora601Елена Н.1. пропущено...
минуты 2-7, по небольшой части данных чисто для разработки (изначально запрос работал несколько часов)

Код: plsql
1.
2.
CREATE TABLE temp AS SELECT ...  
INSERT INTO src SELECT * FROM temp 




И можно не разбираться в чем именно там причина ORA - 01555


а какая разница, insert или create
імхо слетит также

проблема видать в другом

.....
stax
...
Рейтинг: 0 / 0
Запрос "умирает" при попытке вставить данные таблицу.
    #39452182
stax..
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Елена Н.Ого, сколько...
Так,
1. авторприемлемое время - это сколько дней/часов? минуты 2-7, по небольшой части данных чисто для разработки (изначально запрос работал несколько часов)
5. авторвыполнить вставку при минимальной активности, напр ночью
запуск процесса на ночь не помогает


5-7 минут ето очень мало, для 1555

про ночь тоже странно

попробовать выполнить любой запрос с фулл скан таблицы перед Вашим,
мож слетать из-за отложеноой очистки блоков (или как оно там правильно называется)

.....
stax
...
Рейтинг: 0 / 0
Запрос "умирает" при попытке вставить данные таблицу.
    #39452463
Nobody1111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
LOB-ы используются?
...
Рейтинг: 0 / 0
Запрос "умирает" при попытке вставить данные таблицу.
    #39452469
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мож, на тестовых серверах настройки кривые, что и 5 минут хватает для 1555?
...
Рейтинг: 0 / 0
Запрос "умирает" при попытке вставить данные таблицу.
    #39452702
Елена Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторCREATE TABLE temp AS SELECT ...
INSERT INTO src SELECT * FROM temp
это тоже не работает

авторLOB-ы используются?
лобы проверю, но по-моему нет

автормож, на тестовых серверах настройки кривые, что и 5 минут хватает для 1555?
в том то и дело, что когда запрос выполняю отдельно, он выполняется быстро
а когда пытаюсь данные куда-то вставить, он задумывается надооооолго, больше часа не ждала, оставляла на ночь, а утром привет 1555

вот что такого то в этой вставке, что она так на скорость запроса влияет?

p.s. видимо надо опять сделать паузу в трудах, может я где-то туплю... будто-то глюк какой-то
...
Рейтинг: 0 / 0
Запрос "умирает" при попытке вставить данные таблицу.
    #39452895
stax..
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Елена Н.в том то и дело, что когда запрос выполняю отдельно, он выполняется быстро
а когда пытаюсь данные куда-то вставить, он задумывается надооооолго, больше часа не ждала, оставляла на ночь, а утром привет 1555

вот что такого то в этой вставке, что она так на скорость запроса влияет?

p.s. видимо надо опять сделать паузу в трудах, может я где-то туплю... будто-то глюк какой-то

паралельно ничего не вставляется?
мож банально висит из-за пк/фк

+ сравнить планы селекта и инсерта

......
stax
...
Рейтинг: 0 / 0
Запрос "умирает" при попытке вставить данные таблицу.
    #39452912
stax..
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Елена Н.,

в догонку
слетает и create table as
большая вероятность того что планы select и iserta существенно разнятся
напр из-за first/all rows

......
stax
...
Рейтинг: 0 / 0
Запрос "умирает" при попытке вставить данные таблицу.
    #39452937
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Елена Н.,

добавьте в запрос row_number и поверх запустите count(*) - тоже минуты?
...
Рейтинг: 0 / 0
Запрос "умирает" при попытке вставить данные таблицу.
    #39452939
Vint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stax..,
когда девушка говорит про 2-7 минут надо обязательно уточнять получает ли она все данные или только первый результат. учитывая уровень знаний вполне вероятно что получение всех данных может занять и неделю, оттуда и 1555 ноги растут.
...
Рейтинг: 0 / 0
25 сообщений из 65, страница 1 из 3
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Запрос "умирает" при попытке вставить данные таблицу.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]