Список форумов BOSSForum.RU - Форум. БОСС-Кадровик
Независимый форум, посвященный системе БОСС-Кадровик
и всему, что с ней связано
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 

Deadlock при расчете зарплаты.

 
Начать новую тему   Ответить на тему    Список форумов BOSSForum.RU - Форум. БОСС-Кадровик -> SQL: Администрирование
Предыдущая тема :: Следующая тема  
Автор Сообщение
Mikhail



Зарегистрирован: 16.08.2012
Сообщения: 177
Откуда: Москва

СообщениеДобавлено: Вт Фев 02, 2016 20:22    Заголовок сообщения: Deadlock при расчете зарплаты. Ответить с цитатой

Доброго вечера.

Зарплата рассчитывается одновременно несколькими пользователями, при этом каждый работает со своей группой работников.
Во время расчета стали возникать блокировки (deadlocks) на уровне страницы (page lock) при одновременном выполнении следующих инструкций:

z-процедура _ВО_0311
Код:

/* Заполнить протокол */
sput(st,"DELETE FROM sl_ytax WHERE t=%d and cmonth=%d and id_const_uder=%d;",SY.t,SY.cmonth,SY.id_const_uder);
DO_SQL(st);


и z-процедура _ВО_0306
Код:

sput(
st_13,
"insert into sl_ytax (%s card_id, firm_id, cmonth, tmonth, tyear, t, nt,
n200, n420, n3100, n3100a, n5100, n6001, n6002, n9,
u10, u11, u21, u30, u42, u99, t200, t6001, t6002, t200_3, t6001_3, shop, u_10, n13d, t13d)
values(%s :card,:f,:cm,:tm,:ty,1,:nt,
:n200, :n420, :n3100, :n3100a, :n5100, :n6001, :n6002, :n9,
:u10, :u11, :u21, :u30, :u42, :u99,
:t200, :t6001, :t6002, :t200_3, :t6001_3, :shop_, :u_10, :n_13d, :t_13d)",
id_name, id_value
);


Как решение проблемы, с учетом действующей организации расчета (параллельно в несколько пользователей) и при использовании текущих настроек объектов БК (таблиц и процедур), напрашивается повышение производительности сервера и, возможно, пользовательских рабочих станций.

Возможно, в данном конретно случае, можно применить другой более действенный способ для борьбы с такими блокировками?

Поделитесь, пожалуйста, если у кого-то есть идеи.

Спасибо!
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
DUCKKK
Большой шоколадный орден
Большой шоколадный орден


Зарегистрирован: 16.09.2009
Сообщения: 1681

СообщениеДобавлено: Чт Фев 04, 2016 12:15    Заголовок сообщения: Ответить с цитатой

Попробуйте добавить в таблицу sl_ytax индекс по полю iid_const_uder
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Mikhail



Зарегистрирован: 16.08.2012
Сообщения: 177
Откуда: Москва

СообщениеДобавлено: Чт Фев 04, 2016 14:47    Заголовок сообщения: Ответить с цитатой

DUCKKK, спасибо, попробую только по одному полю id_const_uder.

Пока же я пробовал только добавлять индекс по нескольким полям (t, cmonth, id_const_uder), но это не дало нужных результатов.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
DUCKKK
Большой шоколадный орден
Большой шоколадный орден


Зарегистрирован: 16.09.2009
Сообщения: 1681

СообщениеДобавлено: Чт Фев 04, 2016 14:49    Заголовок сообщения: Ответить с цитатой

Не нужно составного, именно по одному полю.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов BOSSForum.RU - Форум. БОСС-Кадровик -> SQL: Администрирование Часовой пояс: GMT + 4
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Pоwerеd by рhpВB © 2001, 2005 рhpВB Grouр
Русская поддержка phрВB
Rambler's Top100 Рейтинг@Mail.ru Список форумов BOSSForum.RU