|
Temp table exists?
|
|||
---|---|---|---|
#18+
Господа, а как определить наличие временной таблицы в данной сессии? В других сессиях временная таблица с таким именем может существовать. Поэтому выражение select count(*) from sysmaster:systabnames s inner join sysmaster:systabinfo i on i.ti_partnum=s.partnum where tabname = 'bla-bla-bla' and sysmaster:BITVAL(i.ti_flags,'0x0020') = 1 не подходит. Сессию же я могу определить: SELECT DBINFO('sessionid') FROM systables Или другими словами: Как определить, в какой сессии создана временная таблица? Informix 7.31. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.11.2010, 07:32 |
|
Temp table exists?
|
|||
---|---|---|---|
#18+
ПортосГоспода, а как определить наличие временной таблицы в данной сессии? select 1 from вашатаблица where 1=0 ... |
|||
:
Нравится:
Не нравится:
|
|||
17.11.2010, 08:38 |
|
Temp table exists?
|
|||
---|---|---|---|
#18+
Шутите, батенька? Если таблицы нет, то: The specified table (bla-bla-bla) is not in the database. Эксепшенов нам не надо! ... |
|||
:
Нравится:
Не нравится:
|
|||
17.11.2010, 10:57 |
|
Temp table exists?
|
|||
---|---|---|---|
#18+
ПортосЭксепшенов нам не надо!а зря ... |
|||
:
Нравится:
Не нравится:
|
|||
17.11.2010, 10:58 |
|
Temp table exists?
|
|||
---|---|---|---|
#18+
Журавлев ДенисПортосЭксепшенов нам не надо!а зря +1 делов-то - exception внутри ХП перехватить :). Но: ХП неудобен (на 7.31), когда хочется одну ХП на проверку любой таблицы... На 7.31 я так и не нашёл в своё время способа. Максимум, что получилось - по имени пользователя, что удовлетворит конечно не всех: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23.
... |
|||
:
Нравится:
Не нравится:
|
|||
17.11.2010, 12:04 |
|
Temp table exists?
|
|||
---|---|---|---|
#18+
Ну ладно, картина ясна. Похоже, эксепшн - это самое простое решение... :) Благодарствую, друзья! ... |
|||
:
Нравится:
Не нравится:
|
|||
17.11.2010, 12:22 |
|
Temp table exists?
|
|||
---|---|---|---|
#18+
ПортосГоспода, а как определить наличие временной таблицы в данной сессии? ... Как определить, в какой сессии создана временная таблица? Informix 7.31. Temp таблица P.S. Даже странно, что такой популярный и старый вопрос отсутствует в FAQ.... ... |
|||
:
Нравится:
Не нравится:
|
|||
17.11.2010, 14:34 |
|
Temp table exists?
|
|||
---|---|---|---|
#18+
ПортосНу ладно, картина ясна. Похоже, эксепшн - это самое простое решение... :) Благодарствую, друзья! Я пытаюсь дропнуть темп таблицу в начале, перехватывая эксепшн. минимум головной боли. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.11.2010, 23:28 |
|
Temp table exists?
|
|||
---|---|---|---|
#18+
Главное, не дропнуть постоянную таблицу вместо временной. А вообще, в 11.70 уже появились SQL-операторы DROP IF EXISTS CREATE IF NOT EXITS ... |
|||
:
Нравится:
Не нравится:
|
|||
18.11.2010, 09:38 |
|
Temp table exists?
|
|||
---|---|---|---|
#18+
vasilisПортосГоспода, а как определить наличие временной таблицы в данной сессии? ... Как определить, в какой сессии создана временная таблица? Informix 7.31. Temp таблица P.S. Даже странно, что такой популярный и старый вопрос отсутствует в FAQ.... Указанная ссылка на топик заканчивается оптипессимистично: "теперь осталось только выяснить, откуда onstat берет информацию по временным таблицам для конкретного SID-а :)"... Так что приемлемого ответа на вопрос "как для 7.31 определить наличие временной таблицы в данной сессии" кроме "select/drop-> exception -> АГА!" пока не имеется. И надеюсь, больше и не понадобится :) ... |
|||
:
Нравится:
Не нравится:
|
|||
18.11.2010, 13:20 |
|
Temp table exists?
|
|||
---|---|---|---|
#18+
АнатоЛойvasilisпропущено... Temp таблица P.S. Даже странно, что такой популярный и старый вопрос отсутствует в FAQ.... Указанная ссылка на топик заканчивается оптипессимистично: "теперь осталось только выяснить, откуда onstat берет информацию по временным таблицам для конкретного SID-а :)"... Так что приемлемого ответа на вопрос "как для 7.31 определить наличие временной таблицы в данной сессии" кроме "select/drop-> exception -> АГА!" пока не имеется. И надеюсь, больше и не понадобится :) А что SQLIDEBUG=2:xxx не показывает дамп для сессий onstat ?! С уважением, Вадим. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.11.2010, 23:31 |
|
Temp table exists?
|
|||
---|---|---|---|
#18+
А как же - показівает: # sqliprint /tmp/zzzz.dbg_23806 SQLIDBG Version 1 # ... |
|||
:
Нравится:
Не нравится:
|
|||
19.11.2010, 17:47 |
|
Temp table exists?
|
|||
---|---|---|---|
#18+
zaietsА как же - показівает: # sqliprint /tmp/zzzz.dbg_23806 SQLIDBG Version 1 # Ну и ... ?! ... дамп псевдо-запроса (через view на структуры SHM памяти) есть или нет ? С уважением, Вадим. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.11.2010, 18:38 |
|
Temp table exists?
|
|||
---|---|---|---|
#18+
GVF112GVFАнатоЛойпропущено... Указанная ссылка на топик заканчивается оптипессимистично: "теперь осталось только выяснить, откуда onstat берет информацию по временным таблицам для конкретного SID-а :)"... Так что приемлемого ответа на вопрос "как для 7.31 определить наличие временной таблицы в данной сессии" кроме "select/drop-> exception -> АГА!" пока не имеется. И надеюсь, больше и не понадобится :) А что SQLIDEBUG=2:xxx не показывает дамп для сессий onstat ?! С уважением, Вадим. onstat лезет непосредственно в shared memory и берет данные оттуда, из внутренних структур. Никаких обращений к псевдотаблицам не происходит. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2010, 00:04 |
|
Temp table exists?
|
|||
---|---|---|---|
#18+
ВыбегаллоGVF112GVFпропущено... А что SQLIDEBUG=2:xxx не показывает дамп для сессий onstat ?! С уважением, Вадим. onstat лезет непосредственно в shared memory и берет данные оттуда, из внутренних структур. Никаких обращений к псевдотаблицам не происходит. Куда лезет onstat - Я знаю ... в свое время, изучал исходники на С. Некоторые структуры в разделяемой памяти, могут проецироваться как view. Другое дело, что эти view могут быть не документированы. Насколько Я помню, в SMI, используются псевдо-таблицы (часть из них view на структуры памяти SHM). Они также могут использоваться в программах, реализованных на ESQL/C ... :) Вообще-то, тенденция такова, что все чаще в продуктах IBM (DB2/Informix), используются табличные функции в том числе и для досупа у структурам разделяемой памяти. С уважением, Вадим. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2010, 11:42 |
|
Temp table exists?
|
|||
---|---|---|---|
#18+
GVF112GVFВыбегаллопропущено... onstat лезет непосредственно в shared memory и берет данные оттуда, из внутренних структур. Никаких обращений к псевдотаблицам не происходит. Куда лезет onstat - Я знаю ... в свое время, изучал исходники на С. Некоторые структуры в разделяемой памяти, могут проецироваться как view. Другое дело, что эти view могут быть не документированы. Насколько Я помню, в SMI, используются псевдо-таблицы (часть из них view на структуры памяти SHM). Они также могут использоваться в программах, реализованных на ESQL/C ... :) Вообще-то, тенденция такова, что все чаще в продуктах IBM (DB2/Informix), используются табличные функции в том числе и для досупа у структурам разделяемой памяти. С уважением, Вадим. onstat-у сто лет в обед. Никаких SMI на момент его написания (1990-1994, I guess) не было. Так что не стоит задерживать дыхание, ожидая SQLIDEBUG trace от его вызова. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2010, 13:42 |
|
Temp table exists?
|
|||
---|---|---|---|
#18+
GVF112GVFКуда лезет onstat - Я знаю ... в свое время, изучал исходники на С. А вы случайно не знаете, где можно увидеть, на какой таблице произошел затык по удалению? Задача следующая: в БД есть основные таблицы и куча специализированных (для разных типов изделий и разных пользователей). Основные таблицы давно устоялись, а специализированные появляются вместе с изделиями новых типов. Периодически при удалении записей из основных таблиц возникает сбой из-за того, что у какой-нибудь новой специализированной таблицы (которая косвенно связана с основной ключом с каскадным удалением) не установлено разрешение на удаление данных для текущего пользователя. Можно ли как-нибудь увидеть имя таблицы, на которой произошел затык? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2010, 19:33 |
|
Temp table exists?
|
|||
---|---|---|---|
#18+
bk0010GVF112GVFКуда лезет onstat - Я знаю ... в свое время, изучал исходники на С. А вы случайно не знаете, где можно увидеть, на какой таблице произошел затык по удалению? Задача следующая: в БД есть основные таблицы и куча специализированных (для разных типов изделий и разных пользователей). Основные таблицы давно устоялись, а специализированные появляются вместе с изделиями новых типов. Периодически при удалении записей из основных таблиц возникает сбой из-за того, что у какой-нибудь новой специализированной таблицы (которая косвенно связана с основной ключом с каскадным удалением) не установлено разрешение на удаление данных для текущего пользователя. Можно ли как-нибудь увидеть имя таблицы, на которой произошел затык? Вообще-то вопрос достаточно не простой. Все зависит от того, на каком уровне Вы хотите анализировать, интересующий Вас инцидент - на уровне приложения, пользовательской сессии, инстанции INFORMIX и т.д. Например, для этих целей, Вы можете использовать - AUDIT (фильтровать не удавшиеся события- DLRW (DELETE ROW), ACTB (Access Table), and so on). Другой возможный вариант - анализ кодов SQL error, ISAM error для пользовательских сессий (используя SMI - интерфейс, утилиту ONSTAT и т.д.). Если есть деньги, Вы можете использовать решение - IBM Guargium (Audit & Report) http://www.guardium.com/index.php/pr/923 С уважением, Вадим. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.11.2010, 13:26 |
|
Temp table exists?
|
|||
---|---|---|---|
#18+
ВыбегаллоGVF112GVFпропущено... Куда лезет onstat - Я знаю ... в свое время, изучал исходники на С. Некоторые структуры в разделяемой памяти, могут проецироваться как view. Другое дело, что эти view могут быть не документированы. Насколько Я помню, в SMI, используются псевдо-таблицы (часть из них view на структуры памяти SHM). Они также могут использоваться в программах, реализованных на ESQL/C ... :) Вообще-то, тенденция такова, что все чаще в продуктах IBM (DB2/Informix), используются табличные функции в том числе и для досупа у структурам разделяемой памяти. С уважением, Вадим. onstat-у сто лет в обед. Никаких SMI на момент его написания (1990-1994, I guess) не было. Так что не стоит задерживать дыхание, ожидая SQLIDEBUG trace от его вызова. Возможно, что Вы правы, но жизнь не стоит на месте. Многие функции утилит (oncheck, onparams, onspaces...) уже реализованы как SQL-функции. Так что все может быть ... ;) Например, отключение Вашей инстанции посредством удаленного вызова SQL-функции ... ... шутка ... :) С уважением, Вадим. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.11.2010, 13:34 |
|
Temp table exists?
|
|||
---|---|---|---|
#18+
GVF112GVF, у топик-стартера Informix 7.31 (ещё и непонятно насколько пропатченый). Портос, если Вас не затруднит, попробуйте предложение с SQLIDEBUG от GVF112GVF. Может прямого ответа на вопрос Вы и не получите (в чём уверен Выбегалло), но опыт использования SQLIDEBUG тоже чего-то стоит :). ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2010, 10:48 |
|
|
start [/forum/topic.php?fid=44&msg=36967613&tid=1607453]: |
0ms |
get settings: |
11ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
174ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
59ms |
get tp. blocked users: |
1ms |
others: | 16ms |
total: | 298ms |
0 / 0 |