Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Informix [игнор отключен] [закрыт для гостей] / Построчная блокировка в таблицах c разм < page_size / 6 сообщений из 6, страница 1 из 1
09.03.2004, 09:55
    #32434175
CheKot
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Построчная блокировка в таблицах c разм < page_size
Возникла следующая проблема: таблица с lock mode row, первоначально данные занимают меньше PAGE SIZE'а (2kb). При эксклюзивной (update) блокировке одной строки блокируются все данные таблицы
(244: Could not do a physical-order read to fetch next row.
107: ISAM error: record is locked.).
При объёме данных больше одной страницы и выполнении
update statistics high for table ...
блокировка становится действительно построчной.
Далее, возвращаемся к объёму данных < 2кб - всё работает корректно.
Выполненяем
update statistics high for table ...
и снова выходим на
(244: Could not do a physical-order read to fetch next row.
107: ISAM error: record is locked.)
Как побороть эту ошибку на малых объёмах ???
...
Рейтинг: 0 / 0
09.03.2004, 09:59
    #32434178
СруЛще
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Построчная блокировка в таблицах c разм < page_size
Добавлю:
Informix Dynamic Server 2000 Version 9.21.UC4
UnixWare 5 7.1.1 i386 x86at SCO UNIX_SVR5
...
Рейтинг: 0 / 0
09.03.2004, 17:24
    #32435217
Daugava
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Построчная блокировка в таблицах c разм < page_size
Проблема скорее всего в том, что оптимизатор считает, что на маленькой табличке проще выполнить данную операцию через seqscan, а не через index. Обойти можно указав директивы оптимизатору на принудительное использование индекса. Мониторить, как именно хочет сделать этот апдейт сервер - через set expalin on.
...
Рейтинг: 0 / 0
09.03.2004, 18:04
    #32435289
Журавлев Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Построчная блокировка в таблицах c разм < page_size
авторПроблема скорее всего в том, что оптимизатор считает, что на маленькой табличке проще выполнить данную операцию через seqscan, а не через index. Обойти можно указав директивы оптимизатору на принудительное использование индекса.

Когда на маленькой табличке создается индекс, информикс не блокирует эту табличку эксклюзивно, поэтому у меня возникает вопрос, а создается ли индекс вообще?
...
Рейтинг: 0 / 0
09.03.2004, 18:59
    #32435360
Sergey L.
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Построчная блокировка в таблицах c разм < page_size
Ну если его заставлять директивами оптимизатора использовать этот индекс, то он
его и на маленькой таблице таки использует.
Сам на этот эффект sequential scan'а попадал.
...
Рейтинг: 0 / 0
12.03.2004, 13:24
    #32439832
CheKot
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Построчная блокировка в таблицах c разм < page_size
Всем спасибо :)
...
Рейтинг: 0 / 0
Форумы / Informix [игнор отключен] [закрыт для гостей] / Построчная блокировка в таблицах c разм < page_size / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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