Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Как решить ситуацию
|
|||
|---|---|---|---|
|
#18+
Доброго времени суток Ситуация в следующем необходимо отключить логирование при вставке в таблицу Выполняю следующее ALTER TABLE TEST_TRUNCATE ACTIVATE NOT LOGGED INITIALLY WITH EMPTY TABLE; insert into TEST_TRUNCATE select t.* from TEST_TRUNCATE2 t where t.ordered_id > 100; commit; если таблица select возвращает меньше 2 млн все работает чудесно и даже достаточно быстро если привышает 2млн получаем: DB2 Database Error: ERROR [40506] [IBM][DB2/NT] SQL1476N The current transaction was rolled back because of error "-964". SQLSTATE=40506 Как решить ситуацию? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2012, 20:59 |
|
||
|
Как решить ситуацию
|
|||
|---|---|---|---|
|
#18+
Вы в курсе, что error "-964" переводится как SQL0964N? (Сперва SQL, потом 4 цифры, дополненные слева нулями, и, если число отрицательное, то справа добавляется N). Вы не забыли выключить autocommit? (UPDATE COMMAND OPTIONS USING C OFF или соотв. опция CLP) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2012, 22:45 |
|
||
|
Как решить ситуацию
|
|||
|---|---|---|---|
|
#18+
Victor Metelitsa, Autocommit, видимо, выключен, иначе бы SQL1476N не вылезало. smalldaewoo, А что в db2diag.log? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2012, 15:18 |
|
||
|
Как решить ситуацию
|
|||
|---|---|---|---|
|
#18+
CawaSPbAutocommit, видимо, выключен, иначе бы SQL1476N не вылезало. Не вижу прямой связи. Зато SQL0964N на что-то намекает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2012, 15:30 |
|
||
|
Как решить ситуацию
|
|||
|---|---|---|---|
|
#18+
Victor Metelitsa, Ну, из всего, про что SQL1476N говорит, Код: plaintext 1. 2. 3. 4. Т.е. тот error, в который завёрнут SQL0964N, имеет отношение к таблице, находящейся в NOT LOGGED INITIALLY состоянии, следовательно коммита перед insert into не было. Возможно там триггера на табличку понавешаны (логирующие изменения, к примеру). PS load from cursor супротив insert into в приводимой ситуации будет быстрее. Работает как из пушки (ну то есть вплоть до того, что чуть не в сотню/другую раз быстрее). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2012, 15:59 |
|
||
|
Как решить ситуацию
|
|||
|---|---|---|---|
|
#18+
[quot Victor Metelitsa]Вы в курсе, что error "-964" переводится как SQL0964N? (Сперва SQL, потом 4 цифры, дополненные слева нулями, и, если число отрицательное, то справа добавляется N). autocommit - выключен, работаю вторую неделю с db2 поэтому не знал что "-964" это и есть SQL0964N ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2012, 17:45 |
|
||
|
Как решить ситуацию
|
|||
|---|---|---|---|
|
#18+
Триггеров нет вообще Ситуация свободно решилась увеличением параметров logfilsiz logprimary logsecond 20 млн свободно вставляются Щас попробую load from cursor ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2012, 17:52 |
|
||
|
Как решить ситуацию
|
|||
|---|---|---|---|
|
#18+
smalldaewooТриггеров нет вообще Ситуация свободно решилась увеличением параметров logfilsiz logprimary logsecond 20 млн свободно вставляются Щас попробую load from cursor Если автокоммит выключен, то зачем увеличивать эти параметры? Ведь логинга нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2012, 20:16 |
|
||
|
Как решить ситуацию
|
|||
|---|---|---|---|
|
#18+
шубин_дуsmalldaewooТриггеров нет вообще Ситуация свободно решилась увеличением параметров logfilsiz logprimary logsecond 20 млн свободно вставляются Щас попробую load from cursor Если автокоммит выключен, то зачем увеличивать эти параметры? Ведь логинга нет. "Видишь суслика? И я не вижу, а он есть!" (C) Пришедший SQL0964N недвусмысленно говорит о том, что кончились логи, значит что-то логируется, причём так неслабо. Можно, конечно, просто пространство для активных логов увеличить, но логирование для TEST_TRUNCATE отключается, видимо, не просто так, а для ускорения операции. Между тем, эта цель явно не достигается. Код: plsql 1. 2. 3. 4. 5. 6. поправит ситуацию, но в исходной проблеме было бы неплохо разобраться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2012, 20:50 |
|
||
|
Как решить ситуацию
|
|||
|---|---|---|---|
|
#18+
SQL1476N 4. A severe error occurred during an atomic array input operation. Коммит есть, логгинг поэтому не выключается. Получаем нехватку места в логах на операции "atomic array input operation". Если конечно под этим понимается "insert select from". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2012, 21:09 |
|
||
|
Как решить ситуацию
|
|||
|---|---|---|---|
|
#18+
CawaSPbVictor Metelitsa, Ну, из всего, про что SQL1476N говорит, Код: plaintext 1. 2. 3. 4. Нет, непохоже. Если вы делаете что-то типа insert into ... select ... from и во время выполнения произошла какая-то "левая" (в смысле, не относящаяся к данной теме) ошибка, типа деления на ноль, вот об этом пункт 2 - транзакция откачена, таблица безвозвратно испорчена (очень жаль). Вот, кстати, способ узнать, был ли вправду отключён автокоммит - проверить, попортилась ли она, напр., сделать после insert'а select ,,, from... fetch first 1 row only SQL0964N, переполнение логов, с NOT LOGGED INITIALLY обычно не ожидается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2012, 22:21 |
|
||
|
Как решить ситуацию
|
|||
|---|---|---|---|
|
#18+
[quot Victor Metelitsa]CawaSPbVictor Metelitsa, Если вы делаете что-то типа insert into ... select ... from и во время выполнения произошла какая-то "левая" (в смысле, не относящаяся к данной теме) ошибка, типа деления на ноль, вот об этом пункт 2 - транзакция откачена, таблица безвозвратно испорчена (очень жаль). В смысле, при NOT LOGGED INITIALLY - пункт 2. Не при NOT LOGGED INITIALLY - не пункт 2, таблица не портится, но всё равно SQL1476N может быть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2012, 22:30 |
|
||
|
Как решить ситуацию
|
|||
|---|---|---|---|
|
#18+
Victor MetelitsaВ смысле, при NOT LOGGED INITIALLY - пункт 2. Не при NOT LOGGED INITIALLY - не пункт 2, таблица не портится, но всё равно SQL1476N может быть. Может, но как-то я вот так с ходу не вижу, к чему бы оно ("не пункт 2") вылезало на представленном "insert into ...". Хорошо бы дождаться информации от smalldaewoo, как там оно на самом деле. С наилучшими пожеланиями, Александр Веремьев (привет из su.dbms.db2 годов 97-го - 99-го! :)). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2012, 20:23 |
|
||
|
Как решить ситуацию
|
|||
|---|---|---|---|
|
#18+
Всё это легко проверяется. Создаём тестовую базу, урезаем логи до минимума (чтобы побыстрее было), и видим Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. и Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. (Краснея) Что я могу сказать? Ну... у меня это не так часто встречается, чтобы помнить, какие коды когда. Раньше нарывался на переполнение логов слишком много раз, и теперь стараюсь выделить как можно больше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2012, 14:02 |
|
||
|
Как решить ситуацию
|
|||
|---|---|---|---|
|
#18+
Victor Metelitsa, BTW Это означает, что не смотря на выставленное состояние not logged initially в лог таки что-то идёт, причём объём зависит от количества вставляемых записей. Интересно, что. Victor MetelitsaРаньше нарывался на переполнение логов слишком много раз, и теперь стараюсь выделить как можно больше. Один фиг, найдётся кто-нибудь, кто "забудет" открытую транзакцию, и при достаточной нагрузке оно рано или поздно упрётся в ограничение. Спасают массовые расстрелы :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2012, 10:16 |
|
||
|
Как решить ситуацию
|
|||
|---|---|---|---|
|
#18+
CawaSPb, если LOAD FROM CURSOR отрабатывает нормально, а insert в таблицу NOT LOGGED - нет, то: - триггер (переполняет журналы) - не проходит поле (сваливаемся на ошибке) FYI: операция LOAD тоже может потребовать журналы. Данные грузятся в первой фазе без проверки на констрейны, а вот если потом делается очистка - она идет с полным журналированием. Andy ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2012, 13:55 |
|
||
|
|

start [/forum/topic.php?fid=43&msg=37634069&tid=1601951]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
85ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
| others: | 293ms |
| total: | 470ms |

| 0 / 0 |
