|
Тема
|
MSSQL kill locked process
|
|
Автор | uptime (Нерегистриран) |
Публикувано | 26.09.05 01:09 |
|
Здравейте.
Имам MSSQL база и клиентски софтуер който изпраща заявки написан много калпаво. За жалост не зависи от мен да го пренапиша. Проблемът е следният. При четене от 1 таблица, тя се заключва, т.е. изчаква се даден процес да свърши преди и други да могат да четат. Когато има много такива, базата увисва.
Какво може да се направи по въпроса? Могат ли да се пращат отдалечно команди, с които такива процеси които има статус locked (за някакъв по-голям интервал от време, 15 сек да речем) да се убиват, така че да не увисват всички?
Мерси!
| |
Тема
|
Re: MSSQL kill locked process
[re: uptime]
|
|
Автор |
wqw (непознат
) |
Публикувано | 26.09.05 12:40 |
|
По принцип при четене на таблица от една конекция другите конекции не се блокират, понеже се ползват shared lock-ове. Вероятно по някое време се прави insert/update/delete.
Погледни SET ISOLATION LEVEL и SET LOCK_TIMEOUT като възможност за ограничаване на заключванията. Тук ще трябва да пипаш приложението или някаква негова записана която се вика при отваряне на конекция.
Друг вариант е да погледнеш query governor за ограничаване на сложни заявки - не знам колко ще е полезно в случая.
cheers,
</wqw>
| |
|
|
|
|