Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Как всё же работают курсоры? Отчёт по и продолжение темы "ОН версионник или из-за чего .." / 1 сообщений из 1, страница 1 из 1
25.11.2004, 14:19
    #32799691
mwolf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как всё же работают курсоры? Отчёт по и продолжение темы "ОН версионник или из-за чего .."
Ну что ж, некоторые результаты есть. Не особенно радостные, но всё же.

Итак, главную причину ожиданий вроде бы вычислил - это оказались хранимые данные. Вернее их очень малое количество. В базе присутствует некоторое число сущностей - рекламодатели, рекламные кампании, показываемые баннеры, а так же рекламоразмещатели, сайты, места под банеры. Для своих тестов джависты набили небольшое число этих сущностей. Банермест - 10 штук и баннеров 3 штуки.

При показе банера происходит большое число действий-апдейтов - увеличиваются счётчики кол-ва показов у всех этих сущностей, перераспределяются деньги и пр. Когда я взялся за тесты на производительность базы, то данные я оставил те же. Систему начали нагружать и начиная с некоторой нагрузки - более 20 банеров\сек при 40 подсоединений к базе - начались тормоза, поскольку системе приходилось апдейтить одни и те же строки. При этом естественно были ожидания.

Увеличив количество данных ожидания удалось убрать. Правда возникли дедлоки, но это уже другая история.

Теперь о плохом.
Почему ожидания были именно на селектах а не на апдейтах я так и не понял. Правда есть подозрение, что это не просто селекты, а селекты для апдейтов. Об этом как раз и говорил Sad Spirit. Проверив лог запросов я нашёл некоторое количество таких селектов. Запросов правда было мало (хотя кто его знает - может и они). Но тут возникает новый вопрос - откуда взялись эти запросы?

Можно опять таки потыкать пальцами в JBoss, EJB и пр - дескать они виноваты. Но есть и другой вариант. Я не знаю механизма реализации курсора. Не блокирует ли часом курсор строк из которых собирался итоговые данные?

Темы о курсорах я поднимал в этих топиках:
Как получить количество строк, которые выбрал запрос в курсор? и Курсор не скролируется!!! - В продолжение курсорной эпопеи

К сожалению, некоторые курсорные механизмы так и не заработали (MOVE, SCROLL CURSOR). И я боюсь, что я выбрал не очень эффективную реализацию алгоритмов. Мне дважды приходится открывать курсор (дедлоки отсюда?). Происходит всё это быстро, но что творится внутри сервера, не ясно.

Итак, спасибо всем ответившим.
И...
Уважаемые коллеги, подскажите ваши методы работы с курсорами. Удавалось ли делать скролируемы курсоры. Покажите, пожалуста, примеры кода. Подскажите где можно почитать об реализации курсоров.
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Как всё же работают курсоры? Отчёт по и продолжение темы "ОН версионник или из-за чего .." / 1 сообщений из 1, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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