powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Как вы боритесь с блокировками?
25 сообщений из 39, страница 1 из 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
25 сообщений из 39, страница 1 из 2
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Как вы боритесь с блокировками?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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