Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
17.09.2013, 21:38
|
|||
---|---|---|---|
Как запретить блокировки таблиц? |
|||
#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, 22:28
|
|||
---|---|---|---|
Как запретить блокировки таблиц? |
|||
#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 - список блокировок. Отобрать права на блокировку таблиц нельзя, поскольку блокировки - это механизм обеспечения выбранного режима изоляции. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
18.09.2013, 21:35
|
|||
---|---|---|---|
Как запретить блокировки таблиц? |
|||
#18+
Спасибо ... |
|||
:
Нравится:
Не нравится:
|
|||
|
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+
АнатоЛойonstat -g sql onstat -g ses расскажут вам, в каком режиме изоляции работает "товарищ", и что за запросы он выполняет. DBA Tools можно подкрутить - "SET ISOLATION TO DIRTY READ;" должен помочь. Спасибо за ответ. А в каком файле подкручивать? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
20.09.2013, 13:13
|
|||
---|---|---|---|
Как запретить блокировки таблиц? |
|||
#18+
bk0010А в каком файле подкручивать? А какой вы запускаете? :) ... |
|||
:
Нравится:
Не нравится:
|
|||
|
20.09.2013, 20:58
|
|||
---|---|---|---|
Как запретить блокировки таблиц? |
|||
#18+
АнатоЛойbk0010А в каком файле подкручивать? А какой вы запускаете? :) Да там вроде везде прописано set isolation to dirty read; ... |
|||
:
Нравится:
Не нравится:
|
|||
|
21.09.2013, 02:57
|
|||
---|---|---|---|
Как запретить блокировки таблиц? |
|||
#18+
bk0010АнатоЛойпропущено... А какой вы запускаете? :) Да там вроде везде прописано set isolation to dirty read; Dirty read работает только для чтения. Надо смотреть объемы данных, которые программа модицифирует. И уровень блокировок участвующих таблиц ... |
|||
:
Нравится:
Не нравится:
|
|||
|
21.09.2013, 04:08
|
|||
---|---|---|---|
Как запретить блокировки таблиц? |
|||
#18+
bk0010АнатоЛойпропущено... А какой вы запускаете? :) Да там вроде везде прописано set isolation to dirty read; Dirty read работает только для чтения. Надо смотреть объемы данных, которые программа модицифирует. И уровень блокировок участвующих таблиц ... |
|||
:
Нравится:
Не нравится:
|
|||
|
22.09.2013, 17:05
|
|||
---|---|---|---|
Как запретить блокировки таблиц? |
|||
#18+
ВыбегаллоDirty read работает только для чтения. Надо смотреть объемы данных, которые программа модицифирует. И уровень блокировок участвующих таблиц В том-то и беда, что изменяет сотни, максимум тысячу записей, а lock-ов устанавливает миллионы, на все таблицы, с которыми работает. В программе явно задается уровень commited read (видел своими глазами), но видимо, какая-то библиотека ставить repeateble read. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
23.09.2013, 11:27
|
|||
---|---|---|---|
Как запретить блокировки таблиц? |
|||
#18+
ВыбегаллоDirty read работает только для чтения Я говорил про DBA Tools, который не хочет ТСу давать выборку на заблокированных таблицах. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
27.09.2013, 06:54
|
|||
---|---|---|---|
Как запретить блокировки таблиц? |
|||
#18+
bk0010ВыбегаллоDirty read работает только для чтения. Надо смотреть объемы данных, которые программа модицифирует. И уровень блокировок участвующих таблиц В том-то и беда, что изменяет сотни, максимум тысячу записей, а lock-ов устанавливает миллионы, на все таблицы, с которыми работает. В программе явно задается уровень commited read (видел своими глазами), но видимо, какая-то библиотека ставить repeateble read. onstat -g ses / onstat -g sql выдают информацию об уровне блокировки сессии ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=44&mobile=1&tid=1607019]: |
0ms |
get settings: |
24ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
40ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
266ms |
get tp. blocked users: |
2ms |
others: | 290ms |
total: | 654ms |
0 / 0 |