Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Informix [игнор отключен] [закрыт для гостей] / Еще одна головоломка для дибиэев - error 710 / 25 сообщений из 27, страница 1 из 2
16.04.2010, 00:13
    #36581598
Выбегалло
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Еще одна головоломка для дибиэев - error 710
Дано: в рамках все той же миграции на 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 - не помогло.

На сервере идет массивное тестирование, перестартовать крайне нежелательно.

Требуется: а) рассказать, что произошло и б) угадать, как я эту проблему порешал без рестарта.

:-)
...
Рейтинг: 0 / 0
16.04.2010, 10:06
    #36581818
Журавлев Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Еще одна головоломка для дибиэев - error 710
statement cache
выполнить массу тупых запросов, которые вытолкнут из кеша проблемный
...
Рейтинг: 0 / 0
16.04.2010, 10:42
    #36581892
Выбегалло
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Еще одна головоломка для дибиэев - error 710
Журавлев Денисstatement cache
выполнить массу тупых запросов, которые вытолкнут из кеша проблемный

тепло, но не жжоцца :-)
...
Рейтинг: 0 / 0
16.04.2010, 10:42
    #36581893
АнатоЛой
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Еще одна головоломка для дибиэев - error 710
Журавлев Денис, +1.

Ещё интересно, а как ведут себя сессии, которые работали с запросом, для которых был сделан prepare до удаления триггера. "Масса тупых запросов" вытолкнет из кеша такие prepared запросы?
Если "да" - значит на практике запрос, несмотря на сделанный prepare, фактически может prepare'иться ещё раз? Если "нет" - значит кроме "массы тупых запросов" нужно ещё, чтобы такие сессии повторно выполнили prepare (ну или перезапустились).

П.С.: Аналогичная ситуация была на сервере 7.31UD8 буквально на днях - но после ALTER TABLE ... LOCK MODE ROW; ( svat2 - привет! :) )
До причин и "массы тупых запросов" не додумались. Но классический ребут исправил ситуацию :).
...
Рейтинг: 0 / 0
16.04.2010, 10:45
    #36581898
АнатоЛой
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Еще одна головоломка для дибиэев - error 710
Выбегалло, "update owner set XXX = 0 where owner_number = XXX" с клиента, а не изнутри ХП?
...
Рейтинг: 0 / 0
16.04.2010, 10:46
    #36581900
АнатоЛой
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Еще одна головоломка для дибиэев - error 710
АнатоЛойВыбегалло, "update owner set XXX = 0 where owner_number = XXX" с клиента, а не изнутри ХП?
провтыкал - все UPDATE STAT вроде были сделаны (первый пост).
...
Рейтинг: 0 / 0
16.04.2010, 10:49
    #36581906
Daugava
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Еще одна головоломка для дибиэев - error 710
UPDATE STATISTICS DROP DISTRIBUTIONS ONLY;
...
Рейтинг: 0 / 0
16.04.2010, 10:49
    #36581908
Выбегалло
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Еще одна головоломка для дибиэев - error 710
АнатоЛойВыбегалло, "update owner set XXX = 0 where owner_number = XXX" с клиента, а не изнутри ХП?

да, из dbaccess
...
Рейтинг: 0 / 0
16.04.2010, 10:50
    #36581910
АнатоЛой
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Еще одна головоломка для дибиэев - error 710
Выбегалло, так, на всякий случай, сервак не в репликационной паре живёт?
...
Рейтинг: 0 / 0
16.04.2010, 10:50
    #36581911
Выбегалло
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Еще одна головоломка для дибиэев - error 710
DaugavaUPDATE STATISTICS DROP DISTRIBUTIONS ONLY;

не пробовал, но не думаю что помогло бы. distribution ни при чем.
...
Рейтинг: 0 / 0
16.04.2010, 10:50
    #36581912
Выбегалло
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Еще одна головоломка для дибиэев - error 710
АнатоЛойВыбегалло, так, на всякий случай, сервак не в репликационной паре живёт?

нет.
...
Рейтинг: 0 / 0
16.04.2010, 10:51
    #36581916
Журавлев Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Еще одна головоломка для дибиэев - error 710
Вообще-то да, я написал фигню. Кешируются планы, -710 относится к курсорам.
Сейчас задумался, а что кеширует кеш процедур? Не помню.
...
Рейтинг: 0 / 0
16.04.2010, 10:52
    #36581920
Выбегалло
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Еще одна головоломка для дибиэев - error 710
Журавлев ДенисВообще-то да, я написал фигню. Кешируются планы, -710 относится к курсорам.
Сейчас задумался, а кеширует кеш процедур? Не помню.

Уже теплее :-)
...
Рейтинг: 0 / 0
16.04.2010, 10:58
    #36581937
Журавлев Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Еще одна головоломка для дибиэев - error 710
АнатоЛойВыбегалло, так, на всякий случай, сервак не в репликационной паре живёт?к чему такой вопрос? на hdr секондари не выполняются (не видно) процедуры, после создания на примари? Эта бага не могла быть у Выбеггалы, он базу только-что создал.
...
Рейтинг: 0 / 0
16.04.2010, 12:20
    #36582169
АнатоЛой
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Еще одна головоломка для дибиэев - error 710
Журавлев ДенисАнатоЛойВыбегалло, так, на всякий случай, сервак не в репликационной паре живёт?к чему такой вопрос? на hdr секондари не выполняются (не видно) процедуры, после создания на примари? Эта бага не могла быть у Выбеггалы, он базу только-что создал.
две таблицы, триггеры, процедуры... Я понимаю, что при формулировке головоломки ТС должен давать необходимый и достаточный объём исходной информации для её решения... "А поговорить?". Может, Выбегалло ждёт от нас и диалога в том числе?! :)... На самом деле, привык уточнять детали среды, которые слишком часто фигурируют как важные, но почему-то слишком часто опускаются при описании проблемы...
...
Рейтинг: 0 / 0
16.04.2010, 12:54
    #36582247
АнатоЛой
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Еще одна головоломка для дибиэев - error 710
Выбегалло, вместо "массы тупых запросов" пришлось создать и убить массу тупых ХП?
...
Рейтинг: 0 / 0
16.04.2010, 13:00
    #36582267
АнатоЛой
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Еще одна головоломка для дибиэев - error 710
АнатоЛойВыбегалло, вместо "массы тупых запросов" пришлось создать и убить массу тупых ХП?
Нет, всё как-то странно, ведь UPDATE STAT FOR PROC всё же не помог...
...
Рейтинг: 0 / 0
16.04.2010, 13:16
    #36582323
zaiets
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Еще одна головоломка для дибиэев - error 710
Возможно решили путями
1. Пересоздали update trigger
2. пересоздали процедуру
3. сделали фрагмент инит на split_master
?
...
Рейтинг: 0 / 0
16.04.2010, 17:04
    #36582901
onstat-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Еще одна головоломка для дибиэев - error 710
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
.......( для процедур из списка).

Думаю это решит все проблемы.
...
Рейтинг: 0 / 0
16.04.2010, 17:30
    #36582971
onstat-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Еще одна головоломка для дибиэев - error 710
Только сейчас увидел что в постановке все сделано в соотвествии с докой( как у меня) ,
и не помогло.

тогда как вариант :

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;

Но это уже шаманство зависящее от конкретной веорсии сервера и его таракнов( багов).
...
Рейтинг: 0 / 0
16.04.2010, 19:09
    #36583133
victor16
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Еще одна головоломка для дибиэев - error 710
Если версия 11.50 то решение в доке
...
Рейтинг: 0 / 0
16.04.2010, 21:34
    #36583266
Выбегалло
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Еще одна головоломка для дибиэев - error 710
Хм... что-то не получается воспроизвести по-простому.

Ну, ладно, изложу как есть.

На идею меня натолкнула статья 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 исчезла !
...
Рейтинг: 0 / 0
17.04.2010, 10:36
    #36583463
victor16
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Еще одна головоломка для дибиэев - error 710
Выбегалло
оказывается, например, что begin; alter table ..." - приаттачивает сессию, а "rollback work" - ... не разрывает связь !)

DIRTY READ тоже оказывается присоединяет сессию.
По статье получается, что этот скрипт надо использовать в момент изменения структуры таблицы, но судя по всему должен помочь и после.
...
Рейтинг: 0 / 0
17.04.2010, 14:59
    #36583651
АнатоЛой
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Еще одна головоломка для дибиэев - error 710
victor16Если версия 11.50 то решение в доке
Нет, поскольку Выбегалло при формулировании головомки про UPD STAT, который не помог, упомянул... И, судя по уже раскрытым картам, на такое решение дока могла подтолкнуть только при прочтении вот этой её части :(.

Идея "не перестартовать сервер, но выкинуть всех пользователей, и после этого сделать UPD STAT" витала, но:
1. в постановке задачи это было равносильно рестарту сервера
2. "идея" не отвечала достаточно детально на вопрос "а чё случилось, то?".
...
Рейтинг: 0 / 0
17.04.2010, 15:05
    #36583656
АнатоЛой
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Еще одна головоломка для дибиэев - error 710
Выбегалло
Затем запустил update statistics for procedure, и для надежности - Update statistics для обеих таблиц.

Лучше сначала Update statistics для таблиц, потом update statistics for procedure :).
...
Рейтинг: 0 / 0
Форумы / Informix [игнор отключен] [закрыт для гостей] / Еще одна головоломка для дибиэев - error 710 / 25 сообщений из 27, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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