Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

SQL. Как понять что именно вызывает блокировку в базе?

SQL. Как понять что именно вызывает блокировку в базе?
Я
   Aswed
 
30.11.21 - 11:02
САБЖ. Есть база. 55 гигов, крутится на SQL.
Периодически выскакивает блокировка. Не могу понять что именно её вызывает. С помощью запроса:

DECLARE @Table TABLE( SPID INT, Status VARCHAR(MAX), LOGIN VARCHAR(MAX), HostName VARCHAR(MAX), BlkBy VARCHAR(MAX), DBName VARCHAR(MAX), Command VARCHAR(MAX), CPUTime INT, DiskIO INT, LastBatch VARCHAR(MAX), ProgramName VARCHAR(MAX), SPID_1 INT, REQUESTID INT)

INSERT INTO @Table EXEC sp_who2

SELECT DISTINCT BlkBy FROM @Table

SELECT * FROM @Table

Нахожу её и киляю.
Но как понять что именно в самой базе 1С её вызывает? Уже всю голову сломал.
   ДенисЧ
 
1 - 30.11.21 - 11:04
LOGIN , Command , LastBatch 
Ничего не говорят?
   Aswed
 
2 - 30.11.21 - 11:06
(1) Неа) В первые вижу)
   mikecool
 
3 - 30.11.21 - 11:07
(0) на курсы эксперта пора ) можно тех жкрнал на базу напустить, глядишь - там понятно будет
   Aswed
 
4 - 30.11.21 - 11:07
А если серьёзно)
В логин висит пользователь "sa", что логично
В команде висит какой то запрос
В ласт бач текущее время.
   Aswed
 
5 - 30.11.21 - 11:08
(3) Пробовал. Он безумно тормозит базу. Пришлось экстренно отключать.
База старючая АльфаАвто 4.1. Она и так не подарок от Раруса, а ещё переписана вхламень разными франчами.
   Партийный членовоз
 
6 - 30.11.21 - 11:17
(5) настраивай blocked process report, потом по именам объектов метаданных в запросе, который виновник, настраивай отбор по контексту в ТЖ типа такого:

<event>
<eq property="Name" value="DBMSSQL"/>
<like property="Sql" value="%Reference5774%"/>
</event>
   Kassern
 
7 - 30.11.21 - 11:19
(5) "Он безумно тормозит базу." ну так настройте его точечно, тогда не будет так тормозить
   mistеr
 
8 - 30.11.21 - 11:21
(4) А если серьезно, варианта ровно два: либо позвать специалиста, либо потратить время и самому стать немного специалистом. Выбирай.

Хотя бы сообщение об ошибке покажи, для приличия.
   МихаилМ
 
9 - 30.11.21 - 11:27
   Aswed
 
10 - 30.11.21 - 11:27
(8) Я подумаю над этим, может стану) Пока не было необходимости в подобном копании.

Как будет ошибка скопипащу сюда конечно же.
   Aswed
 
11 - 30.11.21 - 11:42
(9) Спасибо. Именно то что нужно!
Настроил, буду смотреть
   ManyakRus
 
12 - 30.11.21 - 12:51
не надо ничё понимать - 1С выдаёт ошибку "Ошибка транзакции..." и пишет имя модуля и номер строки кода - в этом месте и тормозит, в этом месте надо оптимизировать :-)
   fisher
 
13 - 30.11.21 - 13:01
(4) Если виновник блокировки прям сейчас ее блокирует, то вычислить его никакой проблемы нет - в консоли кластера есть инфа о номерах процессов СУБД, которые сеансы прям сейчас юзают.
   DrZombi
 
14 - 30.11.21 - 13:20
(0) Что за конфигурация?
Как объявлены блокировки?
    Режим управления блокировкой данных в транзакции по умолчанию

Укажи блокировки у всех справочников, регистрах и др. метаданных: Управляемый

...Все, часть проблем решатся, другие проблемы будут, но все в пределе очередности... :)
   Aswed
 
15 - 30.11.21 - 13:30
(12) Там ругань тупо на SQL, без указания каких либо отсылок к 1С
(13) Как посмотреть? Там же блокировках только номер соединения.
(14) Альфа-Авто 4.1
   H A D G E H O G s
 
16 - 30.11.21 - 13:35
(15) по большому значению "количество захваченных обьектов субд"
   Aswed
 
17 - 30.11.21 - 13:44
(16) Теперь понял. Спасибо.
   fisher
 
18 - 30.11.21 - 14:07
(15) Я обычно не скриптом смотрю, а тупо мониторингом активности на сервере СУБД, где список активных процессов.
Там сразу все видно, и даже в отдельной колонке отображается признак "вредителя" - единичка для сеанса СУБД, который является корневым в цепочке взаимоблокировок.
А в списке сеансов кластера 1С в колонке "Соединение СУБД" выводится номер активного сеанса СУБД. Часто консоли кластера достаточно - сортируешь по убыванию "Время вызова СУБД (текущее)" и верхний сеанс с большой вероятностью является "вредителем". На сервере СУБД больше смотришь, если интересно разобраться в деталях происходящего. Кто кого на чем ждал.
   Aswed
 
19 - 30.11.21 - 15:47
(18) А потом как выяснить из-за какого куска кода эта блокировка возникает? Так то да, увидел грохнул.
Но потом то опять будет блокировка вылазить.
   Kassern
 
20 - 30.11.21 - 15:50
(19) а тут уже нужно читать ТЖ найти в нем что этот процесс делал в определенное время.

Список тем форума
 
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.