Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Informix Новый топик    Ответить
 Вопрос: режим блокировки для временных таблиц  [new]
Leonid Belov
Member

Откуда: Санкт-Петербург
Сообщений: 111
Разбирая чужой код, наткнулся на такое:

CREATE TEMP TABLE xxxx (
. . . . .
) LOCK MODE ROW;

Мне всегда казалось, что временная таблица принадлежит сессии и, следовательно, ни с кем не разделяется. Вроде бы задавать режим блокировки не имеет смысла (хотя синтаксис позволяет). Подскажите, кто знает: чего я не понимаю?
18 авг 09, 16:59    [7552852]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос: режим блокировки для временных таблиц  [new]
Kozhina Lidia
Member

Откуда: Кириши
Сообщений: 14
Леонид,
я нашла еще вот такое
CREATE TEMP TABLE table_name
(
fields...
) WITH NO LOG EXTENT SIZE 3200 NEXT SIZE 400 LOCK MODE ROW;

думаю, что на самом деле разработчики думали про
WITH NO LOG;
пойду беседовать:)
19 авг 09, 16:29    [7557614]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос: режим блокировки для временных таблиц  [new]
Kozhina Lidia
Member

Откуда: Кириши
Сообщений: 14
Да еще забыла добавить, что судя по датам создания процедур
это все свежие причуды
19 авг 09, 16:31    [7557632]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос: режим блокировки для временных таблиц  [new]
vasilis
Member

Откуда: Украина, Киев
Сообщений: 2205
Leonid Belov
Разбирая чужой код, наткнулся на такое:
CREATE TEMP TABLE xxxx (
. . . . .
) LOCK MODE ROW;
Мне всегда казалось, что временная таблица принадлежит сессии и, следовательно, ни с кем не разделяется. Вроде бы задавать режим блокировки не имеет смысла (хотя синтаксис позволяет). Подскажите, кто знает: чего я не понимаю?

А разве в одной сессии нельзя сделать многопоточную обработку или запрос с подзапросами (многократным проходом таблицы) ?
На больших таблицах и старых версиях серверов LOCK MODE ROW может привести к большому кол-ву блокировок, со всеми вытекающими последствиями. А иногда может помочь избежать дидлоков или уменьшить взаимные блокировки.
Но в вашем случае, вероятно, человек просто действовал по устоявшемуся у него стандарту (или использовал для написания кода какой то инструментарий с шаблонами).
20 авг 09, 16:39    [7562984]     Ответить | Цитировать Сообщить модератору
Все форумы / Informix Ответить