Отключение зависших сеансов 1с (SQL)

Часто при работе с базами 1с в клиент-серверном варианте появляется проблема зависших сеансов. Из-за них не удается восстановить архив sql, выполнить какие-то обработки, требующие монопольный режим и т.д.

В первую очередь при такой проблемы мы идем на сервер 1с и в консоли администрирования удаляем сеансы или соединения:

Удаление сеансов в консоли администрирования сервера 1с
Удаление сеансов в консоли администрирования сервера 1с

Но этот способ не всегда помогает: на уровне sql могут оставаться сеансы, которые в данной консоли не будут отображаться.

И так, идем значит мы на сервер, где установлен MS SQL и заходим в SQL Server Management Studio” (если конечно администратор вам доверяет и дал к нему доступ). Создаем новый запрос и пишем простой, незамысловатый код:

Результат выполнения метода "sp_who"
Результат выполнения метода “sp_who”

Вариантов получения соединений много, можно так же использовать и такой вариант:

Что бы получить соединения только к интересующей нас базе, просто добавим условие для поля ‘db_name(dbid)’:

Теперь по сути нам осталось убить процессы (метод KILL) по значениям из колонки ‘spid‘:

В результате данного запроса сформируется команда ‘kill 52; kill 54;’ и затем произойдет её выполнение ‘exec’.

Вариантов исполнения может быть много:

Надеюсь благодаря этой статье вы хоть немного прокачаете свой скил в SQL. Ну и как заметка она пригодится.

4+
Можно купить здесь предлагает множество услуг.

4 комментария

  1. Павел

    Очень помогла статья!!! Спасибо!!!

    Я добавил условие у себя, удалить все сеансы с логином sa. Иначе он доходил до моего сеанса и останавливался.
    Получилось так:

    set nocount on
    declare @dbname varchar(100)
    declare @query varchar(max)

    set @query = ”
    set @dbname = ‘TEST_2_fin’

    select @query=coalesce(@query,’,’ )+’kill ‘+convert(varchar, spid)+ ‘; ‘
    from sys.sysprocesses where dbid=db_id(@dbname) and loginame=’sa’

    print @query

    if len(@query) > 0
    begin
    exec(@query)
    end

    2+
    1. Admin (Автор записи)

      Отлично что мои заметки кому-то помогают! Спасибо так же и за свое решение – надеюсь оно тоже кому-то поможет!

      2+
  2. Аноним

    Надо попробовать, тоже пишу на 1с, Sql хочу свой еще сайт сделать

    1+
    1. Admin (Автор записи)

      Правильно! Конечно делай. И для себя будут заметки и для людей!

      0

Оставить комментарий

Ваш адрес email не будет опубликован.