|
|
|
Запрос "умирает" при попытке вставить данные таблицу.
|
|||
|---|---|---|---|
|
#18+
Добрый, форум! Имею запрос, сложный, тяжелый, но в итоге долгих оптимизаций выполнимый за приемлемое время. Но вот при попытке сделать INSERT INTO SELECT этот же запрос заканчивается ошибкой "ORA-01555: слишком старый снимок:...". Пробовала на другом сервере, постоянную и временную таблицу, результат тот же. Что-то даже мысли нет, в чем может быть причина, в какую сторону копать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2017, 09:29 |
|
||
|
Запрос "умирает" при попытке вставить данные таблицу.
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2017, 09:31 |
|
||
|
Запрос "умирает" при попытке вставить данные таблицу.
|
|||
|---|---|---|---|
|
#18+
приемлемое время - это сколько дней/часов? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2017, 09:47 |
|
||
|
Запрос "умирает" при попытке вставить данные таблицу.
|
|||
|---|---|---|---|
|
#18+
Елена Н.выполнимый за приемлемое время Что под этим понимается? Получение всех строк или только первый фетч? Елена Н.этот же запрос заканчивается План при insert select совпадает с планом при просто select? При наличии достаточного объёма TEMP и терпения, есть метод materialize'em all. Но лучше регулярно так не делать. Если сложный тяжёлый запрос надо выполнять регулярно, то смотрите в сторону предматериализации его составляющих, матьеговью с query rewrite и подобные гадости механизмы. Код: plsql 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2017, 09:52 |
|
||
|
Запрос "умирает" при попытке вставить данные таблицу.
|
|||
|---|---|---|---|
|
#18+
Елена Н., имхо как минимум 4 варианта 1) выполнить вставку при минимальной активности, напр ночью 2) еще больше "дооптимизировать" запрос 3) в старих версиях можно было фиктивными сессиями препядствовать затиранию в роллбек кольце 4) менять железо ..... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2017, 10:05 |
|
||
|
Запрос "умирает" при попытке вставить данные таблицу.
|
|||
|---|---|---|---|
|
#18+
Елена Н., Если запрос сложный и долгий но результат все равно куда-то пишется, можно разбить на 3-4 быстрых и писать по частям (если это позволяет запрос). Но пока очень мало вводных данных для принятия решения как лучше помочь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2017, 10:17 |
|
||
|
Запрос "умирает" при попытке вставить данные таблицу.
|
|||
|---|---|---|---|
|
#18+
MaximaXXLразбить на 3-4 быстрых и получить 3-4 несогласованных между собой набора данных ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2017, 10:20 |
|
||
|
Запрос "умирает" при попытке вставить данные таблицу.
|
|||
|---|---|---|---|
|
#18+
Вадиман, serialize, as of timestamp и прочее ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2017, 10:23 |
|
||
|
Запрос "умирает" при попытке вставить данные таблицу.
|
|||
|---|---|---|---|
|
#18+
Вы знаете информационную систему ТС и уверены, что эти транзакции получится сериализовать? По одной из нескольких причин запрос падает с ora-01555 и в качестве решения вы даете совет "as of timestamp". Отлично. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2017, 10:26 |
|
||
|
Запрос "умирает" при попытке вставить данные таблицу.
|
|||
|---|---|---|---|
|
#18+
Вадиман, Так мы и запроса не знаем. Может там декартово произведение миллиардных таблиц. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2017, 10:32 |
|
||
|
Запрос "умирает" при попытке вставить данные таблицу.
|
|||
|---|---|---|---|
|
#18+
ВадиманПо одной из нескольких причин запрос падает с ora-01555 Для случая - nested loop по FTA для большой таблицы в подзапросе - запросто можно словить ora-01555, при этом материализовать консистентные предварительные данные вполне себе можно без проблем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2017, 10:36 |
|
||
|
Запрос "умирает" при попытке вставить данные таблицу.
|
|||
|---|---|---|---|
|
#18+
но мы же не знаем причину. Вдруг там просто не хватает undo. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2017, 10:44 |
|
||
|
Запрос "умирает" при попытке вставить данные таблицу.
|
|||
|---|---|---|---|
|
#18+
Вадиман, Мы вообще мало что знаем ... посему и фраза "Но пока очень мало вводных данных для принятия решения как лучше помочь" Может там 10 union all ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2017, 10:48 |
|
||
|
Запрос "умирает" при попытке вставить данные таблицу.
|
|||
|---|---|---|---|
|
#18+
Вадиман, Мой хрустальный шар в майский снег плохо работает. В отделе телепатов все в отпусках на праздники. Думаю, у тебя примерно также. ТС проснётся и опишет подробности, если вспомнит вообще, что писала сюда. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2017, 11:31 |
|
||
|
Запрос "умирает" при попытке вставить данные таблицу.
|
|||
|---|---|---|---|
|
#18+
Ого, сколько... Так, 1. авторприемлемое время - это сколько дней/часов? минуты 2-7, по небольшой части данных чисто для разработки (изначально запрос работал несколько часов) 2. авторЧто под этим понимается? Получение всех строк или только первый фетч?все данные 3. авторПлан при insert select совпадает с планом при просто select?сейчас еще раз специально уточнила, одинаковый 4. автори вот что он говорит: http://www.orafaq.com/wiki/ORA-01555 не уверена, конечно, что я точно понимаю механизм этой ошибки, не приходилось так глубоко копать, но сервера, а которых пробовала, тестовые, если изменения там и есть, то кратковременные, а проблема постоянная, не первый раз уже в нее утыкаюсь с этим же запросом, да каждый раз откладываю решение на потом 5. авторвыполнить вставку при минимальной активности, напр ночью запуск процесса на ночь не помогает 6. авторМожет там 10 union all всего 5 :) 7. авторМожет там декартово произведение миллиардных таблиц таблицы большие, но в общем-то никаких сверхестественных механизмов в нем нет, большие таблицы + справочники ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2017, 14:28 |
|
||
|
Запрос "умирает" при попытке вставить данные таблицу.
|
|||
|---|---|---|---|
|
#18+
Елена Н.1. авторприемлемое время - это сколько дней/часов? минуты 2-7, по небольшой части данных чисто для разработки (изначально запрос работал несколько часов) Код: plsql 1. 2. И можно не разбираться в чем именно там причина ORA - 01555 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2017, 14:42 |
|
||
|
Запрос "умирает" при попытке вставить данные таблицу.
|
|||
|---|---|---|---|
|
#18+
ora601Елена Н.1. пропущено... минуты 2-7, по небольшой части данных чисто для разработки (изначально запрос работал несколько часов) Код: plsql 1. 2. И можно не разбираться в чем именно там причина ORA - 01555 а какая разница, insert или create імхо слетит также проблема видать в другом ..... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2017, 15:12 |
|
||
|
Запрос "умирает" при попытке вставить данные таблицу.
|
|||
|---|---|---|---|
|
#18+
Елена Н.Ого, сколько... Так, 1. авторприемлемое время - это сколько дней/часов? минуты 2-7, по небольшой части данных чисто для разработки (изначально запрос работал несколько часов) 5. авторвыполнить вставку при минимальной активности, напр ночью запуск процесса на ночь не помогает 5-7 минут ето очень мало, для 1555 про ночь тоже странно попробовать выполнить любой запрос с фулл скан таблицы перед Вашим, мож слетать из-за отложеноой очистки блоков (или как оно там правильно называется) ..... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2017, 15:21 |
|
||
|
Запрос "умирает" при попытке вставить данные таблицу.
|
|||
|---|---|---|---|
|
#18+
LOB-ы используются? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2017, 08:29 |
|
||
|
Запрос "умирает" при попытке вставить данные таблицу.
|
|||
|---|---|---|---|
|
#18+
мож, на тестовых серверах настройки кривые, что и 5 минут хватает для 1555? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2017, 08:58 |
|
||
|
Запрос "умирает" при попытке вставить данные таблицу.
|
|||
|---|---|---|---|
|
#18+
авторCREATE TABLE temp AS SELECT ... INSERT INTO src SELECT * FROM temp это тоже не работает авторLOB-ы используются? лобы проверю, но по-моему нет автормож, на тестовых серверах настройки кривые, что и 5 минут хватает для 1555? в том то и дело, что когда запрос выполняю отдельно, он выполняется быстро а когда пытаюсь данные куда-то вставить, он задумывается надооооолго, больше часа не ждала, оставляла на ночь, а утром привет 1555 вот что такого то в этой вставке, что она так на скорость запроса влияет? p.s. видимо надо опять сделать паузу в трудах, может я где-то туплю... будто-то глюк какой-то ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2017, 12:35 |
|
||
|
Запрос "умирает" при попытке вставить данные таблицу.
|
|||
|---|---|---|---|
|
#18+
Елена Н.в том то и дело, что когда запрос выполняю отдельно, он выполняется быстро а когда пытаюсь данные куда-то вставить, он задумывается надооооолго, больше часа не ждала, оставляла на ночь, а утром привет 1555 вот что такого то в этой вставке, что она так на скорость запроса влияет? p.s. видимо надо опять сделать паузу в трудах, может я где-то туплю... будто-то глюк какой-то паралельно ничего не вставляется? мож банально висит из-за пк/фк + сравнить планы селекта и инсерта ...... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2017, 08:48 |
|
||
|
Запрос "умирает" при попытке вставить данные таблицу.
|
|||
|---|---|---|---|
|
#18+
Елена Н., в догонку слетает и create table as большая вероятность того что планы select и iserta существенно разнятся напр из-за first/all rows ...... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2017, 09:35 |
|
||
|
Запрос "умирает" при попытке вставить данные таблицу.
|
|||
|---|---|---|---|
|
#18+
Елена Н., добавьте в запрос row_number и поверх запустите count(*) - тоже минуты? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2017, 10:07 |
|
||
|
Запрос "умирает" при попытке вставить данные таблицу.
|
|||
|---|---|---|---|
|
#18+
stax.., когда девушка говорит про 2-7 минут надо обязательно уточнять получает ли она все данные или только первый результат. учитывая уровень знаний вполне вероятно что получение всех данных может занять и неделю, оттуда и 1555 ноги растут. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2017, 10:07 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=39451828&tid=1885928]: |
0ms |
get settings: |
6ms |
get forum list: |
15ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
175ms |
get topic data: |
8ms |
get forum data: |
3ms |
get page messages: |
54ms |
get tp. blocked users: |
1ms |
| others: | 243ms |
| total: | 509ms |

| 0 / 0 |
