
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
02.08.2002, 16:57:37
|
|||
|---|---|---|---|
|
|||
Deadlock'и в MsSQL 7 |
|||
|
#18+
При обращении к SQL 7 с ASP-страниц вылезает (время от времени) сообщение: Your transaction (process ID #8) was deadlocked with another process and has been chosen as the deadlock victim. Rerun your transaction. Эта страница перегружается каждые 15-120 секудн. Примерно каждые 2-3 минуты вылетает с указанной ошибкой... Запрос на этой странице работает только на чтение данных. Есть одно но - таблица из которой считываются данные, всё время (ежесекундно) меняется - добавляются новые записи... Может кто знает, как этому можно помочь? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
02.08.2002, 17:18:48
|
|||
|---|---|---|---|
|
|||
Deadlock'и в MsSQL 7 |
|||
|
#18+
Тщательно проанализируйте код, который проводит изменения на предмет потенциальных deadlock\'ов - триггера, хр. процедуры. Продумайте расстановку хинтов на блокировки при запросах. Постарайтесь свести к минимуму количество блокируемых данных и "облегчить" типы блокировок - т.е. поменьше эксклюзивных, побольше shared. Если "на глазок" побороть неудалось, то попробуйте потрассировать сами deadlock\'и - что с чем конфликтует. В BOL это есть, там нужно установить некоторые trace флаги и потом покопаться в полученном логе. Похожие темы:\r /topic/9704\r /topic/9703 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
02.08.2002, 17:49:58
|
|||
|---|---|---|---|
|
|||
Deadlock'и в MsSQL 7 |
|||
|
#18+
Вся проблема в том, что там всё просто до не могу... :) Вообще говоря, это всего лишь счётчик рейтинга сайтов... Т.е. посещения сайтов ежесекундно обновляют базу (просто добавление записи)... Но когда я пытаюсь выполнять запрос на просмотр онлайновых посетителей... время от времени эти процессы сталкиваются... Хотя не понятно с чего -- в одном запросе идёт просто insert, а в другом только select... :/ Я смотрел на Спайлоге -- они там показывают псевдоонлайновых посетителей -- с задержкой в несколько минут... А у меня - всё в реальном масштабе времени... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
02.08.2002, 18:03:39
|
|||
|---|---|---|---|
|
|||
Deadlock'и в MsSQL 7 |
|||
|
#18+
Можно поступить как эти парни со Спалога - пишешь в файло а потом засасываешь его разом с определенным интервалом. Разве плохо так? И еще поменьше всяких хинтов импользуй - сервер всяко лучше знает что ему надо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
02.08.2002, 18:38:02
|
|||
|---|---|---|---|
Deadlock'и в MsSQL 7 |
|||
|
#18+
Если ошибка не так страшна, используй with (nolock) в селекте, правда данные будут получаться чуть грязноватые. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
05.08.2002, 11:06:25
|
|||
|---|---|---|---|
Deadlock'и в MsSQL 7 |
|||
|
#18+
>Если ошибка не так страшна, используй with (nolock) в >селекте, правда данные будут получаться чуть >грязноватые. Я думаю, что в такой системе количество откатов приблизительно равно нулю, поэтому with (nolock) - хороший, если не лучший выбор, который не требует анализа и переделки остального кода с целью минимизации длительности блокировок. Но по хорошему нужно сделать то, что советует GreenSunrise. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=46&tablet=1&tid=1821373]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
79ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
34ms |
get tp. blocked users: |
2ms |
| others: | 234ms |
| total: | 396ms |

| 0 / 0 |
