|
Как запретить блокировки таблиц?
|
|||
---|---|---|---|
#18+
Появилась программа, которая мешает работать другим программам: надолго блокирует доступ к используемым ею таблицам. Ее код у нас есть, но там нет прямых команд на блокировку, нет repeateble read, нет select for update. Пытался просмотреть блокировки с помощью DBA Tools, но она и DBA Tools не дает нормально работать. Транзакции используются явные, вроде везде есть commit/rollback, но 100% уверенности, что нет незавершенных транзакций еще нет. Программа сделана на Qt, сейчас грешим на ее компоненты отображения данных, использование которых требует установки признака scrollabel cursor в odbc dsn. Можно ли как-нибудь отобрать права на блокировку таблиц у пользователя, от имени которого работает данная программа? Или возможны другие методы решения вопроса? Можно ли просмотреть список висящих транзакций? PS Informix 11.7 FC3 на Windows 2008R2. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.09.2013, 21:38 |
|
Как запретить блокировки таблиц?
|
|||
---|---|---|---|
#18+
bk0010Появилась программа, которая мешает работать другим программам: надолго блокирует доступ к используемым ею таблицам. Ее код у нас есть, но там нет прямых команд на блокировку, нет repeateble read, нет select for update. Пытался просмотреть блокировки с помощью DBA Tools, но она и DBA Tools не дает нормально работать. Транзакции используются явные, вроде везде есть commit/rollback, но 100% уверенности, что нет незавершенных транзакций еще нет. Программа сделана на Qt, сейчас грешим на ее компоненты отображения данных, использование которых требует установки признака scrollabel cursor в odbc dsn. Можно ли как-нибудь отобрать права на блокировку таблиц у пользователя, от имени которого работает данная программа? Или возможны другие методы решения вопроса? Можно ли просмотреть список висящих транзакций? PS Informix 11.7 FC3 на Windows 2008R2. onstat ваш друг. onstat -x дает список транзакций, onstat -k - список блокировок. Отобрать права на блокировку таблиц нельзя, поскольку блокировки - это механизм обеспечения выбранного режима изоляции. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.09.2013, 22:28 |
|
Как запретить блокировки таблиц?
|
|||
---|---|---|---|
#18+
Спасибо ... |
|||
:
Нравится:
Не нравится:
|
|||
18.09.2013, 21:35 |
|
Как запретить блокировки таблиц?
|
|||
---|---|---|---|
#18+
onstat -g sql onstat -g ses расскажут вам, в каком режиме изоляции работает "товарищ", и что за запросы он выполняет. DBA Tools можно подкрутить - "SET ISOLATION TO DIRTY READ;" должен помочь. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2013, 19:52 |
|
Как запретить блокировки таблиц?
|
|||
---|---|---|---|
#18+
АнатоЛойonstat -g sql onstat -g ses расскажут вам, в каком режиме изоляции работает "товарищ", и что за запросы он выполняет. DBA Tools можно подкрутить - "SET ISOLATION TO DIRTY READ;" должен помочь. Спасибо за ответ. А в каком файле подкручивать? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2013, 20:34 |
|
Как запретить блокировки таблиц?
|
|||
---|---|---|---|
#18+
bk0010А в каком файле подкручивать? А какой вы запускаете? :) ... |
|||
:
Нравится:
Не нравится:
|
|||
20.09.2013, 13:13 |
|
Как запретить блокировки таблиц?
|
|||
---|---|---|---|
#18+
АнатоЛойbk0010А в каком файле подкручивать? А какой вы запускаете? :) Да там вроде везде прописано set isolation to dirty read; ... |
|||
:
Нравится:
Не нравится:
|
|||
20.09.2013, 20:58 |
|
Как запретить блокировки таблиц?
|
|||
---|---|---|---|
#18+
bk0010АнатоЛойпропущено... А какой вы запускаете? :) Да там вроде везде прописано set isolation to dirty read; Dirty read работает только для чтения. Надо смотреть объемы данных, которые программа модицифирует. И уровень блокировок участвующих таблиц ... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2013, 02:57 |
|
Как запретить блокировки таблиц?
|
|||
---|---|---|---|
#18+
bk0010АнатоЛойпропущено... А какой вы запускаете? :) Да там вроде везде прописано set isolation to dirty read; Dirty read работает только для чтения. Надо смотреть объемы данных, которые программа модицифирует. И уровень блокировок участвующих таблиц ... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2013, 04:08 |
|
Как запретить блокировки таблиц?
|
|||
---|---|---|---|
#18+
ВыбегаллоDirty read работает только для чтения. Надо смотреть объемы данных, которые программа модицифирует. И уровень блокировок участвующих таблиц В том-то и беда, что изменяет сотни, максимум тысячу записей, а lock-ов устанавливает миллионы, на все таблицы, с которыми работает. В программе явно задается уровень commited read (видел своими глазами), но видимо, какая-то библиотека ставить repeateble read. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2013, 17:05 |
|
Как запретить блокировки таблиц?
|
|||
---|---|---|---|
#18+
ВыбегаллоDirty read работает только для чтения Я говорил про DBA Tools, который не хочет ТСу давать выборку на заблокированных таблицах. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2013, 11:27 |
|
Как запретить блокировки таблиц?
|
|||
---|---|---|---|
#18+
bk0010ВыбегаллоDirty read работает только для чтения. Надо смотреть объемы данных, которые программа модицифирует. И уровень блокировок участвующих таблиц В том-то и беда, что изменяет сотни, максимум тысячу записей, а lock-ов устанавливает миллионы, на все таблицы, с которыми работает. В программе явно задается уровень commited read (видел своими глазами), но видимо, какая-то библиотека ставить repeateble read. onstat -g ses / onstat -g sql выдают информацию об уровне блокировки сессии ... |
|||
:
Нравится:
Не нравится:
|
|||
27.09.2013, 06:54 |
|
|
start [/forum/topic.php?fid=44&msg=38399386&tid=1607019]: |
0ms |
get settings: |
14ms |
get forum list: |
5ms |
check forum access: |
1ms |
check topic access: |
1ms |
track hit: |
36ms |
get topic data: |
4ms |
get forum data: |
1ms |
get page messages: |
270ms |
get tp. blocked users: |
1ms |
others: | 306ms |
total: | 639ms |
0 / 0 |