|
Еще одна головоломка для дибиэев - error 710
|
|||
---|---|---|---|
#18+
Дано: в рамках все той же миграции на UNICODE, я удалил тригер у таблицы split_master. После чего "update owner set XXX = 0 where owner_number = XXX" стал возвращать error 710 "Table split_master has been dropped, altered or renamed." На таблице owner висит update trigger, который вызывает штук пять процедур, одна или несколько которых наверняка читают split_master . Сделал update statistics low for table owner, for table split_master, update statistics for procedure - не помогло. На сервере идет массивное тестирование, перестартовать крайне нежелательно. Требуется: а) рассказать, что произошло и б) угадать, как я эту проблему порешал без рестарта. :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2010, 00:13 |
|
Еще одна головоломка для дибиэев - error 710
|
|||
---|---|---|---|
#18+
statement cache выполнить массу тупых запросов, которые вытолкнут из кеша проблемный ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2010, 10:06 |
|
Еще одна головоломка для дибиэев - error 710
|
|||
---|---|---|---|
#18+
Журавлев Денисstatement cache выполнить массу тупых запросов, которые вытолкнут из кеша проблемный тепло, но не жжоцца :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2010, 10:42 |
|
Еще одна головоломка для дибиэев - error 710
|
|||
---|---|---|---|
#18+
Журавлев Денис, +1. Ещё интересно, а как ведут себя сессии, которые работали с запросом, для которых был сделан prepare до удаления триггера. "Масса тупых запросов" вытолкнет из кеша такие prepared запросы? Если "да" - значит на практике запрос, несмотря на сделанный prepare, фактически может prepare'иться ещё раз? Если "нет" - значит кроме "массы тупых запросов" нужно ещё, чтобы такие сессии повторно выполнили prepare (ну или перезапустились). П.С.: Аналогичная ситуация была на сервере 7.31UD8 буквально на днях - но после ALTER TABLE ... LOCK MODE ROW; ( svat2 - привет! :) ) До причин и "массы тупых запросов" не додумались. Но классический ребут исправил ситуацию :). ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2010, 10:42 |
|
Еще одна головоломка для дибиэев - error 710
|
|||
---|---|---|---|
#18+
Выбегалло, "update owner set XXX = 0 where owner_number = XXX" с клиента, а не изнутри ХП? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2010, 10:45 |
|
Еще одна головоломка для дибиэев - error 710
|
|||
---|---|---|---|
#18+
АнатоЛойВыбегалло, "update owner set XXX = 0 where owner_number = XXX" с клиента, а не изнутри ХП? провтыкал - все UPDATE STAT вроде были сделаны (первый пост). ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2010, 10:46 |
|
Еще одна головоломка для дибиэев - error 710
|
|||
---|---|---|---|
#18+
UPDATE STATISTICS DROP DISTRIBUTIONS ONLY; ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2010, 10:49 |
|
Еще одна головоломка для дибиэев - error 710
|
|||
---|---|---|---|
#18+
АнатоЛойВыбегалло, "update owner set XXX = 0 where owner_number = XXX" с клиента, а не изнутри ХП? да, из dbaccess ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2010, 10:49 |
|
Еще одна головоломка для дибиэев - error 710
|
|||
---|---|---|---|
#18+
Выбегалло, так, на всякий случай, сервак не в репликационной паре живёт? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2010, 10:50 |
|
Еще одна головоломка для дибиэев - error 710
|
|||
---|---|---|---|
#18+
DaugavaUPDATE STATISTICS DROP DISTRIBUTIONS ONLY; не пробовал, но не думаю что помогло бы. distribution ни при чем. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2010, 10:50 |
|
Еще одна головоломка для дибиэев - error 710
|
|||
---|---|---|---|
#18+
АнатоЛойВыбегалло, так, на всякий случай, сервак не в репликационной паре живёт? нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2010, 10:50 |
|
Еще одна головоломка для дибиэев - error 710
|
|||
---|---|---|---|
#18+
Вообще-то да, я написал фигню. Кешируются планы, -710 относится к курсорам. Сейчас задумался, а что кеширует кеш процедур? Не помню. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2010, 10:51 |
|
Еще одна головоломка для дибиэев - error 710
|
|||
---|---|---|---|
#18+
Журавлев ДенисВообще-то да, я написал фигню. Кешируются планы, -710 относится к курсорам. Сейчас задумался, а кеширует кеш процедур? Не помню. Уже теплее :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2010, 10:52 |
|
Еще одна головоломка для дибиэев - error 710
|
|||
---|---|---|---|
#18+
АнатоЛойВыбегалло, так, на всякий случай, сервак не в репликационной паре живёт?к чему такой вопрос? на hdr секондари не выполняются (не видно) процедуры, после создания на примари? Эта бага не могла быть у Выбеггалы, он базу только-что создал. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2010, 10:58 |
|
Еще одна головоломка для дибиэев - error 710
|
|||
---|---|---|---|
#18+
Журавлев ДенисАнатоЛойВыбегалло, так, на всякий случай, сервак не в репликационной паре живёт?к чему такой вопрос? на hdr секондари не выполняются (не видно) процедуры, после создания на примари? Эта бага не могла быть у Выбеггалы, он базу только-что создал. две таблицы, триггеры, процедуры... Я понимаю, что при формулировке головоломки ТС должен давать необходимый и достаточный объём исходной информации для её решения... "А поговорить?". Может, Выбегалло ждёт от нас и диалога в том числе?! :)... На самом деле, привык уточнять детали среды, которые слишком часто фигурируют как важные, но почему-то слишком часто опускаются при описании проблемы... ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2010, 12:20 |
|
Еще одна головоломка для дибиэев - error 710
|
|||
---|---|---|---|
#18+
Выбегалло, вместо "массы тупых запросов" пришлось создать и убить массу тупых ХП? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2010, 12:54 |
|
Еще одна головоломка для дибиэев - error 710
|
|||
---|---|---|---|
#18+
АнатоЛойВыбегалло, вместо "массы тупых запросов" пришлось создать и убить массу тупых ХП? Нет, всё как-то странно, ведь UPDATE STAT FOR PROC всё же не помог... ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2010, 13:00 |
|
Еще одна головоломка для дибиэев - error 710
|
|||
---|---|---|---|
#18+
Возможно решили путями 1. Пересоздали update trigger 2. пересоздали процедуру 3. сделали фрагмент инит на split_master ? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2010, 13:16 |
|
Еще одна головоломка для дибиэев - error 710
|
|||
---|---|---|---|
#18+
DaugavaUPDATE STATISTICS DROP DISTRIBUTIONS; +1 Как вариант , Только без only И пересобрать статистику заново. Но я бы на нагруженном серевере сделал в соответствии с автор Routines The sysprocplan system catalog table stores execution plans for routines. Two actions update the sysprocplan system catalog table: * Execution of a routine that uses a modified table * The UPDATE STATISTICS statement If you change an object, such as a table, you can run UPDATE STATISTICS to reoptimize on demand, rather than waiting until the routine next executes. update statistics for table owner; update statistics for table split_master; update statistics for procedure .......( для процедур из списка). Думаю это решит все проблемы. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2010, 17:04 |
|
Еще одна головоломка для дибиэев - error 710
|
|||
---|---|---|---|
#18+
Только сейчас увидел что в постановке все сделано в соотвествии с докой( как у меня) , и не помогло. тогда как вариант : update statistics for table owner DROP DISTRIBUTIONS ; update statistics for table owner; update statistics for table split_master DROP DISTRIBUTIONS ; update statistics for table split_master; update statistics for procedure .......( для процедур из списка). Если не помогло то преходим в sysmaster update statistics DROP DISTRIBUTIONS ; update statistics; Но это уже шаманство зависящее от конкретной веорсии сервера и его таракнов( багов). ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2010, 17:30 |
|
Еще одна головоломка для дибиэев - error 710
|
|||
---|---|---|---|
#18+
Если версия 11.50 то решение в доке ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2010, 19:09 |
|
Еще одна головоломка для дибиэев - error 710
|
|||
---|---|---|---|
#18+
Хм... что-то не получается воспроизвести по-простому. Ну, ладно, изложу как есть. На идею меня натолкнула статья http://informix-technology.blogspot.com/2006/10/when-exclusive-is-not-really-exclusive.html Поскольку я убюл триггер на split_master, то изменился major version number. При его изменении, процедуры, обращающиеся к этой таблице, должны перекомпилироваться либо при вызове, либо при update statistics for procedure. Похоже было, что по каким-то причинам процедура, читающая split_master, не может переделать план доступа. И скорее всего - потому что кто-то держал структуру таблицы split_master (при этом не читая саму таблицу). Я выдрал из статьи скрипт, находящий сессии, приаттаченные к таблице (оказывается, например, что begin; alter table ..." - приаттачивает сессию, а "rollback work" - нихрена не разрывает связь !) Затем, как написано в статье, залочил структуру командой "begin work; grant select on split_master to me;" Затем поубивал все сессии, выданные скриптом. Затем запустил update statistics for procedure, и для надежности - Update statistics для обеих таблиц. И вуаля - error 710 исчезла ! ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2010, 21:34 |
|
Еще одна головоломка для дибиэев - error 710
|
|||
---|---|---|---|
#18+
Выбегалло оказывается, например, что begin; alter table ..." - приаттачивает сессию, а "rollback work" - ... не разрывает связь !) DIRTY READ тоже оказывается присоединяет сессию. По статье получается, что этот скрипт надо использовать в момент изменения структуры таблицы, но судя по всему должен помочь и после. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2010, 10:36 |
|
Еще одна головоломка для дибиэев - error 710
|
|||
---|---|---|---|
#18+
victor16Если версия 11.50 то решение в доке Нет, поскольку Выбегалло при формулировании головомки про UPD STAT, который не помог, упомянул... И, судя по уже раскрытым картам, на такое решение дока могла подтолкнуть только при прочтении вот этой её части :(. Идея "не перестартовать сервер, но выкинуть всех пользователей, и после этого сделать UPD STAT" витала, но: 1. в постановке задачи это было равносильно рестарту сервера 2. "идея" не отвечала достаточно детально на вопрос "а чё случилось, то?". ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2010, 14:59 |
|
Еще одна головоломка для дибиэев - error 710
|
|||
---|---|---|---|
#18+
Выбегалло Затем запустил update statistics for procedure, и для надежности - Update statistics для обеих таблиц. Лучше сначала Update statistics для таблиц, потом update statistics for procedure :). ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2010, 15:05 |
|
|
start [/forum/topic.php?fid=44&msg=36581906&tid=1607588]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
42ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
others: | 337ms |
total: | 475ms |
0 / 0 |