Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Как вы боритесь с блокировками?
|
|||
|---|---|---|---|
|
#18+
Ребята, извините за наивный вопрос:) Ситуация следующая: я всю професиональную жизнь работал с версионниками - начинал с IB, поледние три года с Oracle. Но тут встала производственная необходимость освоить DB2, т.к. было принято решение разрабатывать под нее. Так вот, столкнуся с тем, что если я выдал update какой-то сроки или insert - то вся таблица блокируется даже на чтение. Насколько я смог выяснить - это типично для блокировочника. Отсюда вопрос, а что делать если в приложении есть (потенцеально будут) долгоиграющие транзакции? Понятно, что нужно как-то пересмотреть архитектуру, чтобы избавится от них насколько это возможно. Но такие задачи как ежемесячный биллинг и закрытие периода в принципе не могут длиться меньше несокльких минут, а то и десятков минут, в зависимости от объемов. Как в этом случае поступают зубры?:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2006, 18:21 |
|
||
|
Как вы боритесь с блокировками?
|
|||
|---|---|---|---|
|
#18+
Надо смотреть конкретные ситуации. Можно поставить следующие пересенные DB2_SKIP_INSERTED DB2_EVAL_UNCOMII ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2006, 09:35 |
|
||
|
Как вы боритесь с блокировками?
|
|||
|---|---|---|---|
|
#18+
ну и skip_deleted. только все равно - правильная архитектура рулез Архитектура транзакций, я имел ввиду. "Разведение" транзкций , конкурирующих за ресурс, во времени. А вот insert|update одной строки - и блокировка всей базы???? Бывали приложения с сотнями insert/update в секунду, и параллельно зарпосами на статистику, но чтоб вся таблица блокировалась - исключительно редкая ситуация. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2006, 10:08 |
|
||
|
Как вы боритесь с блокировками?
|
|||
|---|---|---|---|
|
#18+
пардон, не всей базы, а всей таблицы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2006, 10:08 |
|
||
|
Как вы боритесь с блокировками?
|
|||
|---|---|---|---|
|
#18+
что интересно, так это то, что не будет универсального рецепта - типа, делай так, и все будет хорошо (за исключением случая с явным глюком, когда одна строка insert блокирует таблицу) В каждом случае и приложении надо выстраивать архитектуру транзакций в зависимости от поставленных задач. Кстати, один из универсальных рецептов - не делайте select * from table :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2006, 10:11 |
|
||
|
Как вы боритесь с блокировками?
|
|||
|---|---|---|---|
|
#18+
Встречный вопрос - а какого типа блокировка? Если разделяемая - то ничего страшного. Если блокироется вся таблица при update строки, то следовательно в плане доступа TABLESCAN и уровень изоляции выше CS. Если TABLESCAN - то наверное нет нужного индекса. Или можно посмотреть какой тип блокировки выставлен на таблице. Код: plaintext 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2006, 10:31 |
|
||
|
Как вы боритесь с блокировками?
|
|||
|---|---|---|---|
|
#18+
snapshot rules. gardenman - сдается мне, блокировка таблицы идет из-за select * from tables. При чем это вызывыает ужас и громкую панику - как вообще можно работать в таких условиях :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2006, 10:56 |
|
||
|
Как вы боритесь с блокировками?
|
|||
|---|---|---|---|
|
#18+
ну, тогда надо посоветовать: select * from tables with ur ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2006, 11:07 |
|
||
|
Как вы боритесь с блокировками?
|
|||
|---|---|---|---|
|
#18+
я против. Вырабатывает плохой стиль. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2006, 11:16 |
|
||
|
Как вы боритесь с блокировками?
|
|||
|---|---|---|---|
|
#18+
Господа, спасибо за отзывы. Проблема видимо в том, что я этот сервер только вчера поставил - опыт нулевой:) Чувствую надо много RTFM. 1. По поводу того, что я вообще делал: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. DB2_SKIP_INSERTED DB2_EVAL_UNCOMII и запрашиванием в селекте нужных данных? Так? А эти настройки действуют на уровне всей БД? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2006, 11:44 |
|
||
|
Как вы боритесь с блокировками?
|
|||
|---|---|---|---|
|
#18+
В догонку, можно ли качнуть у IBM полный комплект документации, оформленный как-нибудь поудобнее нежели куча pdf с невнятными названиями?? ------------------------------------------------------- Автор благодарит алфавит за любезно предоставленные ему буквы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2006, 11:46 |
|
||
|
Как вы боритесь с блокировками?
|
|||
|---|---|---|---|
|
#18+
на support page (интересна мне логика) есть documentation fixpack. вот он то и нужен Только все равно, я скептик в этом плане. gardenman - пари, по поводу удастся Apex что-нибудь, или нет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2006, 11:56 |
|
||
|
Как вы боритесь с блокировками?
|
|||
|---|---|---|---|
|
#18+
Apex - можешь пояснить, какое отношение select * from table может иметь к твоему бизнес приложению? Если никакого - то все нормально, и "ужоса" нет. А если в требованиях есть такое предложение, то 1) требования составлены неправильно 2) неправильно выбрана база под требования с большой вероятностью, что таки 1) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2006, 12:00 |
|
||
|
Как вы боритесь с блокировками?
|
|||
|---|---|---|---|
|
#18+
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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2006, 12:16 |
|
||
|
Как вы боритесь с блокировками?
|
|||
|---|---|---|---|
|
#18+
ну фсе, щаз как по-напоявится приложений с select * ....... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2006, 12:20 |
|
||
|
Как вы боритесь с блокировками?
|
|||
|---|---|---|---|
|
#18+
ggvну фсе, щаз как по-напоявится приложений с select * ....... Да человек всего-лишь экспериментирует, чего распереживался-то? :)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2006, 12:45 |
|
||
|
Как вы боритесь с блокировками?
|
|||
|---|---|---|---|
|
#18+
ggvgardenman - пари, по поводу удастся Apex что-нибудь, или нет? ggvну фсе, щаз как по-напоявится приложений с select * ....... Вам неприятно читать мои вопросы? ggvна support page (интересна мне логика) есть documentation fixpack. Если интересно, то я с удовольствием поясню, если вы, в свою очередь, поясните, что именно вам интересно. ggvApex - можешь пояснить, какое отношение select * from table может иметь к твоему бизнес приложению? Поясняю: 1. Абсолютно никакго, пример взят с потолка, чтобы разобраться с механизмом работы этой СУБД. 2. Если я перепишу запрос так Код: plaintext 1. 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 Спасибо, попробую. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2006, 13:04 |
|
||
|
Как вы боритесь с блокировками?
|
|||
|---|---|---|---|
|
#18+
дык.... Я так думаю, есть куча док, статьей, в том числе и на developerworks, и на db2mag, redbooks, которые поясняют механизмы работы db2 udb. выполнение select * (да еще с последующим get snapshot) могут быть полезны только как иллюстрация к принципам работы. а непонятно мне было, чего это ссылка на документацию db2 легче всего находится через support page на ibm.com Эту загадочную логику вы мне вряд ли поясните :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2006, 13:17 |
|
||
|
Как вы боритесь с блокировками?
|
|||
|---|---|---|---|
|
#18+
ggvдык.... Я так думаю, есть куча док, статьей, в том числе и на developerworks, и на db2mag, redbooks, которые поясняют механизмы работы db2 udb. выполнение select * (да еще с последующим get snapshot) могут быть полезны только как иллюстрация к принципам работы. а непонятно мне было, чего это ссылка на документацию db2 легче всего находится через support page на ibm.com Эту загадочную логику вы мне вряд ли поясните :) А, вы про это:) Ну да, тут логики никакой, просто еще не освоился я на ibm.com. Для сравнения попробуйте на oracle.com найти документацию, даже с первого раза это сделать очень просто. А тут какой-то fixpak...непривычно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2006, 13:37 |
|
||
|
Как вы боритесь с блокировками?
|
|||
|---|---|---|---|
|
#18+
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 " ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2006, 21:20 |
|
||
|
Как вы боритесь с блокировками?
|
|||
|---|---|---|---|
|
#18+
я скептик потому, так как не верю, что человек с версионника будет работать успешно на блокировочнике. Как и наоборот. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2006, 09:50 |
|
||
|
Как вы боритесь с блокировками?
|
|||
|---|---|---|---|
|
#18+
ggvя скептик потому, так как не верю, что человек с версионника будет работать успешно на блокировочнике. Как и наоборот. Если подробно знать архитектуру и принципы работы, то мне кажется вполне нормальным, что человек может поднабраться и там и там опыта и работать как с версионниками, так и блокировочниками. А вот если не знать архитектуру, то и зная к примеру DB2 или ASA можно сесть в большую лужу, работая с MSSQL или ASE, хотя вроде бы все и блокировочники, впрочем как и наборот при переходе с того же IB/PostgreSQL на Oracle. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2006, 09:59 |
|
||
|
Как вы боритесь с блокировками?
|
|||
|---|---|---|---|
|
#18+
ASCRUS - согласен. Но процент людей, знающих и умеющих, и прочее по списку, на нескольких платформах, вполне попадет под статистическую погрешность, и под исключение, подтверждающее правило :) Ведь правда же, наиболее частая реакция на новую базу - "Блин, как с этим можно вообще работать!" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2006, 10:14 |
|
||
|
Как вы боритесь с блокировками?
|
|||
|---|---|---|---|
|
#18+
Ну так от опыта зависит, причем не опыта работы с каким либо сервером, а общим стажем работы и кол-вом реализованных проектов. я к примеру не очень огорчился и тем более стал возмущаться, увидев кривоватый GUI под DB2, у самих Sybase Central периодически на сборщике мусора уходит в аут (тут более всего люди приходящие с IB начинают возмущаться, типа не хотим работать с ASA, потому что мы привыкли к IBExpert - вообще бред, причем тут разный поход к интерфейсу GUI и самому серверу, тем более что в ASA на самом деле побольше всего есть на GUI, просто концепции другие). То же и по утилитам - к примеру многий дельфовый народ удивляется, как вообще можно работать на сплошь глюкавом PowerBuilder - а я вот отвечаю, что просто замечательно можно работать, делая качественный приложения и сокращая в разы время разработки клиентских приложений по сравнению с другими продуктами. Или к примеру вообще ставят минусом ASA, что нет штатных средств восстановления БД - пускают сервер на FAT32, без упсов и не делая никаких бакупов и хотят, чтобы после физического повреждения файлов БД, сервер сам восстанавливал структуру базы, обрезая те данные, что на ошибочных страницах - тоже чистой воды бред, смысл серверу восстанавливать части данных, когда есть резервирование, накаты логов и зеркалирование. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2006, 12:42 |
|
||
|
Как вы боритесь с блокировками?
|
|||
|---|---|---|---|
|
#18+
ASCRUSНу так от опыта зависит, причем не опыта работы с каким либо сервером, а общим стажем работы и кол-вом реализованных проектов. я к примеру не очень огорчился и тем более стал возмущаться, увидев кривоватый GUI под DB2, у самих Sybase Central периодически на сборщике мусора уходит в аут (тут более всего люди приходящие с IB начинают возмущаться, типа не хотим работать с ASA, потому что мы привыкли к IBExpert - вообще бред, причем тут разный поход к интерфейсу GUI и самому серверу, тем более что в ASA на самом деле побольше всего есть на GUI, просто концепции другие). Кхе, кхе, меня кривыми гуями не испугаешь, в оракле с ними тоже не фантан... SQL*Plus - вот инструмент Oracle DBA. Другое дело, что мыслить при разработке приходится иначе... вот тут не все просто... это знаетели привычка выработаная годами... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2006, 17:17 |
|
||
|
|

start [/forum/topic.php?fid=43&msg=33626299&tid=1601554]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
64ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
| others: | 11ms |
| total: | 167ms |

| 0 / 0 |
