powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Как вы боритесь с блокировками?
39 сообщений из 39, показаны все 2 страниц
Как вы боритесь с блокировками?
    #33625884
Фотография Apex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ребята, извините за наивный вопрос:)
Ситуация следующая: я всю професиональную жизнь работал с версионниками - начинал с IB, поледние три года с Oracle.
Но тут встала производственная необходимость освоить DB2, т.к. было принято решение разрабатывать под нее.
Так вот, столкнуся с тем, что если я выдал update какой-то сроки или insert - то вся таблица блокируется даже на чтение. Насколько я смог выяснить - это типично для блокировочника.
Отсюда вопрос, а что делать если в приложении есть (потенцеально будут) долгоиграющие транзакции? Понятно, что нужно как-то пересмотреть архитектуру, чтобы избавится от них насколько это возможно. Но такие задачи как ежемесячный биллинг и закрытие периода в принципе не могут длиться меньше несокльких минут, а то и десятков минут, в зависимости от объемов.
Как в этом случае поступают зубры?:)
...
Рейтинг: 0 / 0
Как вы боритесь с блокировками?
    #33626299
Nikolay Kulikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Надо смотреть конкретные ситуации.

Можно поставить следующие пересенные

DB2_SKIP_INSERTED
DB2_EVAL_UNCOMII
...
Рейтинг: 0 / 0
Как вы боритесь с блокировками?
    #33626377
ggv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ggv
Гость
ну и skip_deleted.
только все равно - правильная архитектура рулез
Архитектура транзакций, я имел ввиду.
"Разведение" транзкций , конкурирующих за ресурс, во времени.
А вот insert|update одной строки - и блокировка всей базы????
Бывали приложения с сотнями insert/update в секунду, и параллельно зарпосами на статистику, но чтоб вся таблица блокировалась - исключительно редкая ситуация.
...
Рейтинг: 0 / 0
Как вы боритесь с блокировками?
    #33626378
ggv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ggv
Гость
пардон, не всей базы, а всей таблицы.
...
Рейтинг: 0 / 0
Как вы боритесь с блокировками?
    #33626391
ggv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ggv
Гость
что интересно, так это то, что не будет универсального рецепта - типа, делай так, и все будет хорошо (за исключением случая с явным глюком, когда одна строка insert блокирует таблицу)
В каждом случае и приложении надо выстраивать архитектуру транзакций в зависимости от поставленных задач.
Кстати, один из универсальных рецептов - не делайте select * from table :)
...
Рейтинг: 0 / 0
Как вы боритесь с блокировками?
    #33626457
gardenman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Встречный вопрос - а какого типа блокировка? Если разделяемая - то ничего страшного.

Если блокироется вся таблица при update строки, то следовательно в плане доступа TABLESCAN и уровень изоляции выше CS. Если TABLESCAN - то наверное нет нужного индекса. Или можно посмотреть какой тип блокировки выставлен на таблице.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
SELECT 
   CASE 
      WHEN LOCKSIZE ='T' THEN 'TABLE'
      WHEN LOcKSIZ E='R' THEN 'ROW'
   END
FROM
   SYSCAT.TABLES WHERE (TABSCHEMA,TABNAME)=('YourSchema','YourTable')
...
Рейтинг: 0 / 0
Как вы боритесь с блокировками?
    #33626517
ggv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ggv
Гость
snapshot rules.
gardenman - сдается мне, блокировка таблицы идет из-за select * from tables.
При чем это вызывыает ужас и громкую панику - как вообще можно работать в таких условиях :)
...
Рейтинг: 0 / 0
Как вы боритесь с блокировками?
    #33626554
gardenman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну, тогда надо посоветовать:
select * from tables with ur
...
Рейтинг: 0 / 0
Как вы боритесь с блокировками?
    #33626594
ggv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ggv
Гость
я против.
Вырабатывает плохой стиль.
...
Рейтинг: 0 / 0
Как вы боритесь с блокировками?
    #33626692
Фотография Apex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Господа, спасибо за отзывы. Проблема видимо в том, что я этот сервер только вчера поставил - опыт нулевой:) Чувствую надо много RTFM.
1. По поводу того, что я вообще делал:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
/*сеанс 1*/
create table tbl(id number)
;
insert into tbl(id) values ( 1 )
;
commit
;
insert into tbl(id) values ( 1 )
;
/*не фиксируем*/
/*сеанс 2*/
select * from tbl
висим....
Насколько я понял из ваших постов - это ситуация вполне разрешима настройками блокировок

DB2_SKIP_INSERTED
DB2_EVAL_UNCOMII

и запрашиванием в селекте нужных данных? Так? А эти настройки действуют на уровне всей БД?
...
Рейтинг: 0 / 0
Как вы боритесь с блокировками?
    #33626697
Фотография Apex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В догонку, можно ли качнуть у IBM полный комплект документации, оформленный как-нибудь поудобнее нежели куча pdf с невнятными названиями??
-------------------------------------------------------
Автор благодарит алфавит за любезно предоставленные ему буквы.
...
Рейтинг: 0 / 0
Как вы боритесь с блокировками?
    #33626728
ggv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ggv
Гость
на support page (интересна мне логика) есть documentation fixpack.
вот он то и нужен
Только все равно, я скептик в этом плане.
gardenman - пари, по поводу удастся Apex что-нибудь, или нет?
...
Рейтинг: 0 / 0
Как вы боритесь с блокировками?
    #33626739
ggv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ggv
Гость
Apex - можешь пояснить, какое отношение select * from table может иметь к твоему бизнес приложению?
Если никакого - то все нормально, и "ужоса" нет.
А если в требованиях есть такое предложение, то
1) требования составлены неправильно
2) неправильно выбрана база под требования
с большой вероятностью, что таки 1)
...
Рейтинг: 0 / 0
Как вы боритесь с блокировками?
    #33626788
gardenman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Apex
тебе ж сказали поробуй select * from table with ur
короче делаешь
db2set DB2_SKIPINSERTED=YES
db2set DB2_SKIPDELETED=YES
db2set DB2_EVALUNCOMMITED=YES
db2stop
db2start

Смотришь чего получилось:
db2set

Для общего развития можешь глянуть на
db2set -rl

http://www.sql.ru/forum/actualthread.aspx?tid=193720&hl=documentation#1637032
...
Рейтинг: 0 / 0
Как вы боритесь с блокировками?
    #33626798
ggv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ggv
Гость
ну фсе, щаз как по-напоявится приложений с select * .......
...
Рейтинг: 0 / 0
Как вы боритесь с блокировками?
    #33626860
gardenman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ggvну фсе, щаз как по-напоявится приложений с select * .......
Да человек всего-лишь экспериментирует, чего распереживался-то? :))
...
Рейтинг: 0 / 0
Как вы боритесь с блокировками?
    #33626907
Фотография Apex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ggvgardenman - пари, по поводу удастся Apex что-нибудь, или нет?
ggvну фсе, щаз как по-напоявится приложений с select * .......
Вам неприятно читать мои вопросы?
ggvна support page (интересна мне логика) есть documentation fixpack.

Если интересно, то я с удовольствием поясню, если вы, в свою очередь, поясните, что именно вам интересно.
ggvApex - можешь пояснить, какое отношение select * from table может иметь к твоему бизнес приложению?

Поясняю:
1. Абсолютно никакго, пример взят с потолка, чтобы разобраться с механизмом работы этой СУБД.
2. Если я перепишу запрос так
Код: plaintext
1.
select id from table
что это изменит?

gardenman
тебе ж сказали поробуй select * from table with ur

Попробую. Я так понимаю, что в этом случае я должен увидеть незакомиченую строку?
gardenman
короче делаешь
db2set DB2_SKIPINSERTED=YES
db2set DB2_SKIPDELETED=YES
db2set DB2_EVALUNCOMMITED=YES
db2stop
db2start

Смотришь чего получилось:
db2set

Для общего развития можешь глянуть на
db2set -rl

http://www.sql.ru/forum/actualthread.aspx?tid=193720&hl=documentation#1637032

Спасибо, попробую.
...
Рейтинг: 0 / 0
Как вы боритесь с блокировками?
    #33626945
ggv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ggv
Гость
дык.... Я так думаю, есть куча док, статьей, в том числе и на developerworks, и на db2mag, redbooks, которые поясняют механизмы работы db2 udb.
выполнение select * (да еще с последующим get snapshot) могут быть полезны только как иллюстрация к принципам работы.
а непонятно мне было, чего это ссылка на документацию db2 легче всего находится через support page на ibm.com
Эту загадочную логику вы мне вряд ли поясните :)
...
Рейтинг: 0 / 0
Как вы боритесь с блокировками?
    #33627019
Фотография Apex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ggvдык.... Я так думаю, есть куча док, статьей, в том числе и на developerworks, и на db2mag, redbooks, которые поясняют механизмы работы db2 udb.
выполнение select * (да еще с последующим get snapshot) могут быть полезны только как иллюстрация к принципам работы.
а непонятно мне было, чего это ссылка на документацию db2 легче всего находится через support page на ibm.com
Эту загадочную логику вы мне вряд ли поясните :)
А, вы про это:)
Ну да, тут логики никакой, просто еще не освоился я на ibm.com. Для сравнения попробуйте на oracle.com найти документацию, даже с первого раза это сделать очень просто. А тут какой-то fixpak...непривычно
...
Рейтинг: 0 / 0
Как вы боритесь с блокировками?
    #33628291
New Guest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
gardenman2 Apex
тебе ж сказали поробуй select * from table with ur
короче делаешь
db2set DB2_SKIPINSERTED=YES
db2set DB2_SKIPDELETED=YES
db2set DB2_EVALUNCOMMITED=YES
db2stop
db2start

Смотришь чего получилось:
db2set

Для общего развития можешь глянуть на
db2set -rl

http://www.sql.ru/forum/actualthread.aspx?tid=193720&hl=documentation#1637032

Только не забывай Commit/Rollback после select * from table with ur
Иногда with ur локирует catalog tables! Причем именно иногда!
From IBM doc - "UR isolation acquires almost no locks "
...
Рейтинг: 0 / 0
Как вы боритесь с блокировками?
    #33628736
ggv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ggv
Гость
я скептик потому, так как не верю, что человек с версионника будет работать успешно на блокировочнике. Как и наоборот.
...
Рейтинг: 0 / 0
Как вы боритесь с блокировками?
    #33628756
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ggvя скептик потому, так как не верю, что человек с версионника будет работать успешно на блокировочнике. Как и наоборот.
Если подробно знать архитектуру и принципы работы, то мне кажется вполне нормальным, что человек может поднабраться и там и там опыта и работать как с версионниками, так и блокировочниками. А вот если не знать архитектуру, то и зная к примеру DB2 или ASA можно сесть в большую лужу, работая с MSSQL или ASE, хотя вроде бы все и блокировочники, впрочем как и наборот при переходе с того же IB/PostgreSQL на Oracle.
...
Рейтинг: 0 / 0
Как вы боритесь с блокировками?
    #33628788
ggv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ggv
Гость
ASCRUS - согласен. Но процент людей, знающих и умеющих, и прочее по списку, на нескольких платформах, вполне попадет под статистическую погрешность, и под исключение, подтверждающее правило :)
Ведь правда же, наиболее частая реакция на новую базу - "Блин, как с этим можно вообще работать!"
...
Рейтинг: 0 / 0
Как вы боритесь с блокировками?
    #33629313
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну так от опыта зависит, причем не опыта работы с каким либо сервером, а общим стажем работы и кол-вом реализованных проектов. я к примеру не очень огорчился и тем более стал возмущаться, увидев кривоватый GUI под DB2, у самих Sybase Central периодически на сборщике мусора уходит в аут (тут более всего люди приходящие с IB начинают возмущаться, типа не хотим работать с ASA, потому что мы привыкли к IBExpert - вообще бред, причем тут разный поход к интерфейсу GUI и самому серверу, тем более что в ASA на самом деле побольше всего есть на GUI, просто концепции другие). То же и по утилитам - к примеру многий дельфовый народ удивляется, как вообще можно работать на сплошь глюкавом PowerBuilder - а я вот отвечаю, что просто замечательно можно работать, делая качественный приложения и сокращая в разы время разработки клиентских приложений по сравнению с другими продуктами. Или к примеру вообще ставят минусом ASA, что нет штатных средств восстановления БД - пускают сервер на FAT32, без упсов и не делая никаких бакупов и хотят, чтобы после физического повреждения файлов БД, сервер сам восстанавливал структуру базы, обрезая те данные, что на ошибочных страницах - тоже чистой воды бред, смысл серверу восстанавливать части данных, когда есть резервирование, накаты логов и зеркалирование.
...
Рейтинг: 0 / 0
Как вы боритесь с блокировками?
    #33630383
Фотография Apex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ASCRUSНу так от опыта зависит, причем не опыта работы с каким либо сервером, а общим стажем работы и кол-вом реализованных проектов. я к примеру не очень огорчился и тем более стал возмущаться, увидев кривоватый GUI под DB2, у самих Sybase Central периодически на сборщике мусора уходит в аут (тут более всего люди приходящие с IB начинают возмущаться, типа не хотим работать с ASA, потому что мы привыкли к IBExpert - вообще бред, причем тут разный поход к интерфейсу GUI и самому серверу, тем более что в ASA на самом деле побольше всего есть на GUI, просто концепции другие).
Кхе, кхе, меня кривыми гуями не испугаешь, в оракле с ними тоже не фантан... SQL*Plus - вот инструмент Oracle DBA. Другое дело, что мыслить при разработке приходится иначе... вот тут не все просто... это знаетели привычка выработаная годами...
...
Рейтинг: 0 / 0
Как вы боритесь с блокировками?
    #33630918
ggv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ggv
Гость
вот я об этой привычке и говорил.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Как вы боритесь с блокировками?
    #38106108
Фотография medoed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подниму тему, у меня есть функция, которая возвращает table.

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
CREATE OR REPLACE FUNCTION FINTOOLS.BFC (
    par1
  RETURNS TABLE  (
    ID_L	INTEGER,
    ID_T	INTEGER,
    ID_F	INTEGER,
    VALUE	DECIMAL(31, 14) )
  SPECIFIC SQL091123141987654
  LANGUAGE SQL
BEGIN ATOMIC
   RETURN WITH rec1 (BOOK_DATE, ID_L, ID_T, ID_F, VALUE)
               AS (SELECT t1.BOOK_DATE,
                          t1.ID_LIABILITY,
                     FROM TRANSACTION.LIABILITY_SDEPO t1 
                    WHERE t1.ID_PERSON_FUND IN
                             (SELECT 3,5)
                                           ,
               rec2 (BOOK_DATE, BOOK_DATE_END, VALUE)
               AS (SELECT t1.BOOK_DATE,
                         СURRENT_DATE
                       ,
                             date ('9999-01-01')),
                             7
                     FROM rec1 t1)
          SELECT ID_L,
                 ID_T,
                 ID_F,
                 VALUE
            FROM rec2
           WHERE     CURRENT_DATE BETWEEN BOOK_DATE AND CURRENT DATE
                 AND VALUE <> 0  with ur ;
END;



В ней хочу поставить опцию with UR; - Для того чтобы не было блокировок.
Получаю ругачку : [i] The isolation clause is ignored because of the statement context.

Можно как то побороть?
...
Рейтинг: 0 / 0
Как вы боритесь с блокировками?
    #38106190
GVF112GVF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
Как вы боритесь с блокировками?
    #38106235
Фотография medoed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GVF112GVF,
Спасибо, но я не нашёл там ограничения на функции. У меня версия не 10, а 9.7.
У меня в 2-х местах ошибки и пока разбирался - нашёл глюк в том, что если в функции используется select не из таблицы, а из NIKNAMES , то вот она ошибка, если заменяем на таблицу то всё окей. Какие пути развития есть, тоесть как бы сделать так , что бы в функции и NIKNAME остался и уровень изоляции можно было поставить UR.
Спасибо!
...
Рейтинг: 0 / 0
Как вы боритесь с блокировками?
    #38106340
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
medoedПодниму тему, у меня есть функция, которая возвращает table.
...
В ней хочу поставить опцию with UR; - Для того чтобы не было блокировок.
Получаю ругачку : [i] The isolation clause is ignored because of the statement context.

Можно как то побороть? В DB2 можно в подзапросах использовать isolation clause.
Типа:

Код: sql
1.
2.
3.
4.
select *
from mytable t
, table(select * from table(FINTOOLS.BFC(t.mycolumn)) with ur) f
where ...



Но для nickname это не работает, и в этом случае вы можете только указать изоляцию для всего запроса типа:

Код: sql
1.
2.
3.
4.
5.
select *
from mytable t
, table(FINTOOLS.BFC(t.mycolumn)) f
where ...
with ur
...
Рейтинг: 0 / 0
Как вы боритесь с блокировками?
    #38106377
Фотография medoed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mark Barinstein,
Марк, спасибо - что откликнулись! Оптимизация в DB2 - вещь просто тяжелая.
В MSSQL я могу у каждой таблицы sometable (nolock) могу ставить и не париться, в DB2 это жесть!!!
В том то и проблема, что если я использую with ur для всей функции,
где есть NikName - ошибка, если ставлю вместо NikName - обычную таблицу , то ошибки нет.

Задам ещё вопрос, как мне в функции, в которой используется автономная транзакция, заюзать with UR;

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
CREATE OR REPLACE FUNCTION "F"."BFCUR" (
    "ID"	INTEGER
    )
  RETURNS TABLE  (ID INTEGER)

BEGIN ATOMIC
      DECLARE ADATE_OTH   DATE;
          with rec21 (ID) as 
            (select ID
            from BALANCE.BANKR
            )
             SELECT 
                    ID
               FROM rec21
             with ur;  
   END;
 
...
Рейтинг: 0 / 0
Как вы боритесь с блокировками?
    #38106431
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
medoed,

Я, наверное, не очень понятно выразился.
Не используйте указание isolation clause в функциях.
Если надо, используйте указание уровня изоляции в запросе, который использует эту функцию.

Кроме того, если у вас параметр базы cur_commit = ON (это умолчание для вновь создаваемых в 9.7 базах) и вы работаете на уровне изоляции CS (уровень по-умолчанию), то на нём писатели не блокируют читателей.
...
Рейтинг: 0 / 0
Как вы боритесь с блокировками?
    #38106477
Фотография medoed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mark Barinsteinmedoed,

(это умолчание для вновь создаваемых в 9.7 базах) и вы работаете на уровне изоляции CS (уровень по-умолчанию)

Вот тут немного не понятно, для вновь создаваемых чего.
Функции мигрировали с 8 - ки на 9.7 - их никак не перекомпилировали!
...
Рейтинг: 0 / 0
Как вы боритесь с блокировками?
    #38106589
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
medoedВот тут немного не понятно, для вновь создаваемых чего.Баз данных.
Cursor stability (CS) level behavior for newly created databases has been changed .
Т.е. если вы в 9.7 сделали
CREATE DATABASE MYDB ...
то этот параметр будет в ON по-умолчанию.
Если вы мигрировали базу с предыдущей версии, то этот параметр (он не существовал ранее) установится в OFF, и его, если надо, можно потом выставить в ON.
medoedФункции мигрировали с 8 - ки на 9.7 - их никак не перекомпилировали!"Мигрировали функции" - это что значит?
Саму базу мигрировали командой UPGRADE DATABASE или просто пересоздали командой CREATE FUNCTION?
...
Рейтинг: 0 / 0
Как вы боритесь с блокировками?
    #38106708
Фотография medoed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mark Barinstein,

Уточнил у админа
1) Саму базу мигрировали командой UPGRADE DATABASE
2) Скоро поставим cur_commit = ON и задача по переписыванию функций (оптимизации на грязное чтение)
сама отпадёт.
Спасибо - вопрос закрыт.
...
Рейтинг: 0 / 0
Как вы боритесь с блокировками?
    #38117740
Фотография medoed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Прошу прощения с закрытием. Опыта у меня маловато, а блокировки не прекращаются (читателей).
Дано:
1) База мигрирована c 8-ки на 9-ку командой : UPGRADE DATABASE.
2) Параметр CUR_COMMIT установлен в ON.
3) Запрос select CURRENT ISOLATION as iso_level
from SYSIBM.SYSDUMMY1 - возвращает пустоту.

Я так понимаю - сейчас на базе уровень изоляции не установлен (берется из пакетов).

Чтобы установить уровень изоляции на базу, в батнике нужно прописать так:
db2 terminate
db2 change isolation to CS
db2 connect to sample

Верно или я в чем то запутался?
...
Рейтинг: 0 / 0
Как вы боритесь с блокировками?
    #38119121
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
medoed,

Разберитесь кто и кого блокирует.
Если блокируются запросы из процедур, которые были созданы до переключения cur_commit в ON, то пакетам процедур надо rebind.
Monitoring database locking
...
Рейтинг: 0 / 0
Как вы боритесь с блокировками?
    #38119542
Фотография medoed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>>Если блокируются запросы из процедур, которые были созданы до переключения cur_commit в ON, то пакетам процедур надо rebind.

Процедур почти нет, функции возвращают данные, а вся логика на толстом клиенте - тоесть update и insert формирутся автоматически. Rebind - производится еженедельно!

Насчет монитора - Monitoring database locking , админ сказал, что он сильно систему нагружает!

А нет никакой функции или системной процедуры, типа sp_lock - в конкретный момент, чтоб было видно кому плохо и от кого (от какого запроса). Марк - у Вас нет такой доработки?
...
Рейтинг: 0 / 0
Как вы боритесь с блокировками?
    #38120074
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
medoedНасчет монитора - Monitoring database locking , админ сказал, что он сильно систему нагружает!

А нет никакой функции или системной процедуры, типа sp_lock - в конкретный момент, чтоб было видно кому плохо и от кого (от какого запроса). Марк - у Вас нет такой доработки?
Есть SYSIBMADM.MON_LOCKWAITS .
Больше информации о заблокированном запросе можно получить из MON_GET_APPL_LOCKWAIT .
Но проблема этих запросов в том, что вы можете не увидеть там запроса, который ресурс заблокировал. Например, этот запрос мог изменить данные и завершится (стал неактивным), а наложенные им блокировки будут висеть до конца таранзакции. В MON_LOCKWAITS показывается только активный в данный момент запрос блокирующей транзакции, который может быть совсем не тем, который заблокировал ресурс.
Т.е. вы не получите без монитора блокировок историю запросов блокирующей транзакции, без чего может быть непонятно, что же за запрос заблокировал записи.
Такую историю запросов активной транзакции можно получить только на сервере командой:
Код: plaintext
db2pd -db  mydb  -apinfo  appl_handle 
но для нее нет sql интерфейса и запускать ее может только пользователь с SYSADM правами.
...
Рейтинг: 0 / 0
39 сообщений из 39, показаны все 2 страниц
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Как вы боритесь с блокировками?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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