powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Informix [игнор отключен] [закрыт для гостей] / Еще одна головоломка для дибиэев - error 710
25 сообщений из 27, страница 1 из 2
Еще одна головоломка для дибиэев - error 710
    #36581598
Выбегалло
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дано: в рамках все той же миграции на 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
Еще одна головоломка для дибиэев - error 710
    #36581818
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
statement cache
выполнить массу тупых запросов, которые вытолкнут из кеша проблемный
...
Рейтинг: 0 / 0
Еще одна головоломка для дибиэев - error 710
    #36581892
Выбегалло
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Журавлев Денисstatement cache
выполнить массу тупых запросов, которые вытолкнут из кеша проблемный

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

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

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

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

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

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

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

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

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
Еще одна головоломка для дибиэев - error 710
    #36583133
victor16
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если версия 11.50 то решение в доке
...
Рейтинг: 0 / 0
Еще одна головоломка для дибиэев - error 710
    #36583266
Выбегалло
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хм... что-то не получается воспроизвести по-простому.

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

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

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

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

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


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