Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Эскалация блокировки 8.1 / 8 сообщений из 8, страница 1 из 1
15.10.2009, 12:26
    #36252786
gardenman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Эскалация блокировки 8.1
У клиента 8.1.13 (8.2.6) AIX

Интересная ситуация, вот такой запрос:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
update 
    C_MAINT_TBL h 
set 
    hist_update_date = ? , 
    mrg_tgt_rowid_object = ? , 
    affected_tgt_value = ? , 
    updated_by = ? 
where 
    affected_rowid_xref in (
        select 
            h.id 
        from 
            SESSION.TFX_53416 t, 
            C_MAINT_TBL h 
        where 
            t.rowid_xref = h.id 
    ) 
    and 
        h.affected_rowid_column = 'SVR1.8EU      ' 
        and h.affected_level_code = 'X' 
        and h.unmerge_ind =  0  
блокирует полностью всю таблицу, даже если не обновляет ни одной строки или обновляет пару строк. Проблема лечится созданием индекса на поле (affected_rowid_xref).
В таблице ~ 2 млн строк. Транзакция достаточно длинная, и это естественно не один update.

Собственно вопрос в том, не встречал ли кто-нибудь что-нибудь подобного в 8-й версии?
Т.е. когда в запросе проходит TABLESCAN, то вне зависимости от уровня изоляции, и вне зависимости от числа обновленных записей на таблицу вешается 'X'-блокировка?
...
Рейтинг: 0 / 0
16.10.2009, 10:35
    #36254895
Alexander Mozhaev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Эскалация блокировки 8.1
А если немного переписать запрос:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
update 
    C_MAINT_TBL h 
set 
    hist_update_date = ? , 
    mrg_tgt_rowid_object = ? , 
    affected_tgt_value = ? , 
    updated_by = ? 
where 
    affected_rowid_xref exists (
        select 
             1 
        from 
            SESSION.TFX_53416 t
        where 
            t.rowid_xref = h.id 
    ) 
    and 
        h.affected_rowid_column = 'SVR1.8EU      ' 
        and h.affected_level_code = 'X' 
        and h.unmerge_ind =  0  
...
Рейтинг: 0 / 0
16.10.2009, 10:41
    #36254913
Alexander Mozhaev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Эскалация блокировки 8.1
Прошу прощения - ошибся в запросе:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
update 
    C_MAINT_TBL h 
set 
    hist_update_date = ? , 
    mrg_tgt_rowid_object = ? , 
    affected_tgt_value = ? , 
    updated_by = ? 
where 
    exists (
        select 
             1 
        from 
            SESSION.TFX_53416 t, 
            C_MAINT_TBL h1
        where 
            t.rowid_xref = h1.id and h.affected_rowid_xref = h1.id
    ) 

    and 
        h.affected_rowid_column = 'SVR1.8EU      ' 
        and h.affected_level_code = 'X' 
        and h.unmerge_ind =  0  
...
Рейтинг: 0 / 0
16.10.2009, 11:18
    #36255044
gardenman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Эскалация блокировки 8.1
Попробую
...
Рейтинг: 0 / 0
16.10.2009, 11:50
    #36255173
gardenman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Эскалация блокировки 8.1
Нет. Тоже приводит к эскалации. Все равно - спасибо.
Странно то, что фактически обновляется всего лишь несколько строк из почти 2 миллионов, но с использованием tablescan - и намертво лочится таблица. Наверное это в 8-ке такая специфика была.
причем когда пытался подобным образом залочить свою тестовую таблицу - то не всегда получалось..(
...
Рейтинг: 0 / 0
16.10.2009, 12:59
    #36255459
db2-merge
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Эскалация блокировки 8.1
gardenmanУ клиента 8.1.13 (8.2.6) AIX

Интересная ситуация, вот такой запрос:

А если переписать запрос на MERGE?
...
Рейтинг: 0 / 0
23.04.2010, 02:33
    #36593708
nevograd
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Эскалация блокировки 8.1
gardenman , у меня к Вам будет просьба небольшая, но в вашей карточке не нашел вашего е-мэйл адреса,
могли бы вы мне его сказать?
и еще Я на этом форуме только зарегистрировался. не нашел еше как писать личные сообщения, так что заранее извиняюсь за пост в эту тему. (прошу ее удалить после прочтения)
в кратце о просьбе - нужна помощь в проектировании схемы данных для диплома.
Я делаю диплом на эту тему, в страховании разбираюсь хорошо, сдал на 5 балов его.
Мне нужно только автострахование - КАСКО и ОСАГО.
Заранее благодарствую.
моя почта nevograd@gmail.com
...
Рейтинг: 0 / 0
23.04.2010, 11:15
    #36594154
gardenman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Эскалация блокировки 8.1
К сожалению я со страхованием завязал примерно 6 лет назад.
Все наработки, какие были - пропали. Даже терминологию стал забывать.
Да и взваливать на себя такую ответственность - влом :) Уж извините.

Хотя пару советов дам.
1) Не зацикливайтесь на создании таблиц с большим количеством атрибутов.
Машины бывают разные. От ЗАЗ до КАМАЗ, БелАЗб и всякие специализированные типа пожарных, автокранов, и т.д. Разложить все атрибуты в таблицы - получится минимум пару сотен. Для диплома это слишком круто. Посмотрите в сторону XML. ИМХО это правильный подход.
Т.е. основная инфа - расчет, оплата страховых премий, перезаключение договоров, доп соглашения,
(перестрахование) - все должно лежать в простых таблицах. А вот описание объекта страхования - в XML, с учетом что этот XML можно будет распарсить и вытащить в случае чего нужные данные.

2) Рассмотрение страховых случаев - это отдельная тема. Но жестко связаная с расчетом страховых премий. Ведь цель системы - расчет заработанной премии, подписанной премии, клиентской задолженности, убытков, прогноз убытков и эффективности работы СК. Т.е. смотрите на то, как вы будите формировать отчеты. типа коэф. частоты и тяжести страховых случаев.

3) Что касается ОСАГО, то есть соответствующая документация, кажется РСА,
используя которую можно сгенерировать 90% модели. Потому как для компании, которая занимается ОСАГО самое главное - это отчетность перед соответствующими регулирующими органами.

ЗЫ. Престрахование - это еще тот гемор. Честно говоря, я бы не стал связываться. Оно бывает как входящее так и исходящее.

Вообще я не знаю кто у вас будет "принимать" это хозяйство и какие требования вам выдвинут.
СК как раз и отличается тем, что данных не так уж и много, зато модель довольно сложная, если реализовывать все как полагается. И на разработку такой модели потребуется не один человеко-месяц.
Вам какая-то упрощенная схема нужна. А вот насколько "упростить" - это вопрос к вашему руководителю.
...
Рейтинг: 0 / 0
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Эскалация блокировки 8.1 / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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