Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Два клиента на одну таблицу
|
|||
|---|---|---|---|
|
#18+
Два пользователя программно (активно) Добавляют и Читают каждый свое множество записей в таблице. Таблица имеет необходимые индексы, чтобы исключить последовательное сканирование при чтении. У одного из пользователей программа вылетает с ошибкой sql=-244 isam=-154 (т.е. ресурс заблокирован). Есть ли способы решения данной проблемы на уровне СУБД? Увеличение времени ожидания освобождения ресурса не подходит, т.к. для пользователя это будет уменьшением производительности программы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2003, 14:53 |
|
||
|
Два клиента на одну таблицу
|
|||
|---|---|---|---|
|
#18+
Таблицы бывают lock mode Page (Row), у тебя какая? если page, то alter table modify .... (rtfm Guide to SQL Syntax) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2003, 08:59 |
|
||
|
Два клиента на одну таблицу
|
|||
|---|---|---|---|
|
#18+
а если режим блокировки таки строковый, то надо анализировать план запроса , тк возможно запрос выполняется так что в выборку попадают заблокированные записи . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2003, 14:35 |
|
||
|
Два клиента на одну таблицу
|
|||
|---|---|---|---|
|
#18+
и to wait должен быть больше 0, иначе будем налетать на что-нибудь вроде -244 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2003, 14:55 |
|
||
|
Два клиента на одну таблицу
|
|||
|---|---|---|---|
|
#18+
Уже установлено: для таблицы: Lock Mode Row; для сеанса: set lock mode to wait 30; На данный момент известна причина: клиентское приложение открывает транзакцию, которая длится более 30 сек и в течении которой происходит добавление записей в таблицу, А в это же время второй пользователь пытается удалить из этой таблицы свое множесвто записей, которое с записями первого не пересекается, после чего появляется вышеприведенная ошибка с оговоркой (key value locked), т.е. (если я правильно понимаю), блокировка индексной информации. А можно ли как-нибудь настроить индекс, что бы и этой ошибки не было ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2003, 20:15 |
|
||
|
Два клиента на одну таблицу
|
|||
|---|---|---|---|
|
#18+
Нет. автор писал:клиентское приложение открывает транзакцию, которая длится более 30 сек В это время записи нельзя прочитать, т.е. нельзя узнать нужны они или нет второй транзакции. автор писал:записей, которое с записями первого не пересекается, после чего Информикс откуда это знает? Может первая транзакция изменила бы записи так, что они стали пересекаться с первой транзакцией. Тут можно играть уровнем изоляции, т.е. у второй транзакции установить dirty read, или записи положить в разные таблицы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2003, 08:52 |
|
||
|
Два клиента на одну таблицу
|
|||
|---|---|---|---|
|
#18+
1 развести пользователей можно, если модифицированные одним юзером записи не подпадают под выборку другого. Для этого надо проанализировать план запроса с помощью set explain on, который надо выполнить перед запросом. 2 транзакция длится слишком долго для oltp-приложения. Что-то не так спланировано. У меня например десятки пользователей вводят данные в одну большую таблицу, при этом каждый работает со своим множеством документов и никто друг друга не блокирует. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2003, 10:25 |
|
||
|
|

start [/forum/topic.php?fid=44&fpage=67&tid=1609349]: |
0ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
30ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
| others: | 229ms |
| total: | 346ms |

| 0 / 0 |
