![]() |
![]() |
![]() |
|
Deadlock в TempDB, 1С 8.2 + MSSQL 2005 | ☑ | ||
---|---|---|---|---|
0
Baker_it
01.02.11
✎
12:50
|
Добрый день. Последнее время пользователи начали жаловаться на часто выскакивающее сообщение следующего вида:
Ошибка при выполнении обработчика - 'ПриЗаписи' по причине: {ОбщийМодуль.ПолныеПрава(919)}: Ошибка при вызове метода контекста (Записать) по причине: по причине: Конфликт блокировок при выполнении транзакции: Microsoft OLE DB Provider for SQL Server: Lock request time out period exceeded. HRESULT=80040E31, SQLSrvr: SQLSTATE=HYT00, state=38, Severity=10, native=1222, line=1 Полез в SQL Profiler, запустил трассировку событий на сервере. Нашел дедлоки, причем 90% их - в базе TempDB. Как с ними бороться? Где искать узкие места? Есть у кого опыт? |
|||
1
Baker_it
01.02.11
✎
12:51
|
Да, забыл упомянуть - конфигурация УТ 10.3, чуть-чуть допиленная, но проблемы возникают при проведении оставшихся типовыми документов (ПКО, платежки, даже счет-фактуры).
|
|||
2
Axel2009
01.02.11
✎
12:53
|
Lock request time out period exceeded.
это не дедлоки. дедлок так и пишется. включайте управляемые блокировки. вон товарищи из рауза делают это за 2-5 дней. |
|||
3
Живой Ископаемый
01.02.11
✎
12:54
|
рауза?
|
|||
4
Axel2009
01.02.11
✎
12:57
|
(3) заболтался. рарус =)
|
|||
5
Живой Ископаемый
01.02.11
✎
12:59
|
если он просто включит для всей базы режим блокировок управляемый, то велика вероятность что у него уже это пройдет - потому что блокировка-то у него выскакивает еще до проведения, пр записи.. То есть на сам объект и его его ТЧ.
|
|||
6
Axel2009
01.02.11
✎
13:00
|
ну если просто включить режим блокировок управляемый и при этом не озаботиться блокировками 1сными, то велик шанс грязного чтения при контроле остатков..
|
|||
7
Живой Ископаемый
01.02.11
✎
13:01
|
да, это да... все верно
|
|||
8
Baker_it
01.02.11
✎
13:16
|
(2) Есть и сообщения о взаимоблокировке:
[URL=http://www.radikal.ru][IMG]http://s009.radikal.ru/i310/1102/d5/bd4494837166.jpg[/IMG][/URL] |
|||
9
Baker_it
01.02.11
✎
13:36
|
Пардон, http://s009.radikal.ru/i310/1102/d5/bd4494837166.jpg
Вопрос о методике поиска причин взаимных блокировок остается в силе :) |
|||
10
Axel2009
01.02.11
✎
13:37
|
ну можно ЦУП использовать. а если на коленках, то смотришь что за таблица (номер). ищешь в метаданных. понимаешь что за объект в конфигураторе. и меняешь запись и/или удаление этих объектов местами. надо смотреть по месту. чтобы блокировки накладывались последовательно, а не крестнакрест
|
|||
11
Axel2009
01.02.11
✎
13:38
|
(9)+ переходить на управляемые блокировки тоже в силе.
|
|||
12
Живой Ископаемый
01.02.11
✎
13:44
|
||||
13
Baker_it
01.02.11
✎
13:59
|
Ясно, благодарю :) Проблема была в том, чтобы по событию в профайлере найти таблицу БД. Буду копать.
|
|||
14
Живой Ископаемый
01.02.11
✎
14:00
|
если ты настроишь ТЖ, то не нужно будет терзать профайлер. Ты сразу получишь лог с блокировкой и со всем контекстом исключения.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |