|   |   | 
| 
 | SQL. Как понять что именно вызывает блокировку в базе? | ☑ | ||
|---|---|---|---|---|
| 0
    
        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 
 Ничего не говорят? | |||
| 2
    
        Aswed 30.11.21✎ 11:06 | 
        (1) Неа) В первые вижу)     | |||
| 3
    
        mikecool 30.11.21✎ 11:07 | 
        (0) на курсы эксперта пора ) можно тех жкрнал на базу напустить, глядишь - там понятно будет     | |||
| 4
    
        Aswed 30.11.21✎ 11:07 | 
        А если серьёзно)
 В логин висит пользователь "sa", что логично В команде висит какой то запрос В ласт бач текущее время. | |||
| 5
    
        Aswed 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> | |||
| 7
    
        Kassern 30.11.21✎ 11:19 | 
        (5) "Он безумно тормозит базу." ну так настройте его точечно, тогда не будет так тормозить     | |||
| 8
    
        mistеr 30.11.21✎ 11:21 | 
        (4) А если серьезно, варианта ровно два: либо позвать специалиста, либо потратить время и самому стать немного специалистом. Выбирай.
 Хотя бы сообщение об ошибке покажи, для приличия. | |||
| 9
    
        МихаилМ 30.11.21✎ 11:27 | ||||
| 10
    
        Aswed 30.11.21✎ 11:27 | 
        (8) Я подумаю над этим, может стану) Пока не было необходимости в подобном копании.
 Как будет ошибка скопипащу сюда конечно же. | |||
| 11
    
        Aswed 30.11.21✎ 11:42 | 
        (9) Спасибо. Именно то что нужно!
 Настроил, буду смотреть | |||
| 12
    
        ManyakRus 30.11.21✎ 12:51 | 
        не надо ничё понимать - 1С выдаёт ошибку "Ошибка транзакции..." и пишет имя модуля и номер строки кода - в этом месте и тормозит, в этом месте надо оптимизировать :-)     | |||
| 13
    
        fisher 30.11.21✎ 13:01 | 
        (4) Если виновник блокировки прям сейчас ее блокирует, то вычислить его никакой проблемы нет - в консоли кластера есть инфа о номерах процессов СУБД, которые сеансы прям сейчас юзают.     | |||
| 14
    
        DrZombi гуру 30.11.21✎ 13:20 | 
        (0) Что за конфигурация?
 Как объявлены блокировки? Режим управления блокировкой данных в транзакции по умолчанию Укажи блокировки у всех справочников, регистрах и др. метаданных: Управляемый ...Все, часть проблем решатся, другие проблемы будут, но все в пределе очередности... :) | |||
| 15
    
        Aswed 30.11.21✎ 13:30 | 
        (12) Там ругань тупо на SQL, без указания каких либо отсылок к 1С
 (13) Как посмотреть? Там же блокировках только номер соединения. (14) Альфа-Авто 4.1 | |||
| 16
    
        H A D G E H O G s 30.11.21✎ 13:35 | 
        (15) по большому значению "количество захваченных обьектов субд"     | |||
| 17
    
        Aswed 30.11.21✎ 13:44 | 
        (16) Теперь понял. Спасибо.     | |||
| 18
    
        fisher 30.11.21✎ 14:07 | 
        (15) Я обычно не скриптом смотрю, а тупо мониторингом активности на сервере СУБД, где список активных процессов.
 Там сразу все видно, и даже в отдельной колонке отображается признак "вредителя" - единичка для сеанса СУБД, который является корневым в цепочке взаимоблокировок. А в списке сеансов кластера 1С в колонке "Соединение СУБД" выводится номер активного сеанса СУБД. Часто консоли кластера достаточно - сортируешь по убыванию "Время вызова СУБД (текущее)" и верхний сеанс с большой вероятностью является "вредителем". На сервере СУБД больше смотришь, если интересно разобраться в деталях происходящего. Кто кого на чем ждал. | |||
| 19
    
        Aswed 30.11.21✎ 15:47 | 
        (18) А потом как выяснить из-за какого куска кода эта блокировка возникает? Так то да, увидел грохнул.
 Но потом то опять будет блокировка вылазить. | |||
| 20
    
        Kassern 30.11.21✎ 15:50 | 
        (19) а тут уже нужно читать ТЖ найти в нем что этот процесс делал в определенное время.     | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |