SQL: Сортировка и фильтрования вывода sp_who2

25 январь 2018, Четверг
9 173
0
0 0
Кто хоть раз использовал хранимую процедуру: sp_who2, заметили одну не очень удобную вещь, вывод результатов этой процедуры нельзя отсортировать по какому-либо полю, и нет возможности отфильтровать результаты.
В Microsoft SQL Management Studio результат выполнения команды sp_who2 может выглядеть подобным образом:
Если к базе данных много подключений, то проанализировать информацию будет не просто.
Один из способов оперативно получать необходимую информацию в нужном разрезе, это иметь на готове скрипт T-SQL, который будет передавать результаты во временную таблицу и сортировать, например, по базе данных. Итак, все сводится к 4 шагам:

  1. Создание временной таблицы,назовем ее: #sp_who2
    CREATE TABLE #sp_who2 
    (
       SPID INT,  
       Status VARCHAR(250) NULL,  
       Login SYSNAME NULL,  
       HostName SYSNAME NULL,  
       BlkBy SYSNAME NULL,  
       DBName SYSNAME NULL,  
       Command VARCHAR(250) NULL,  
       CPUTime INT NULL,  
       DiskIO INT NULL,  
       LastBatch VARCHAR(250) NULL,  
       ProgramName VARCHAR(250) NULL,  
       SPID2 INT NULL,
       REQUESTID INT NULL
    ) 
    GO
  2. Вставка во временную таблицу результатов выполнения хранимой процедуры: sp_who2
    INSERT INTO #sp_who2 EXEC sp_who2
    GO
  3. Вывод результатов в требуемом разрезе (Исключить из результатов БД Master, отсортировать БД по имени)
    SELECT * FROM #sp_who2
    WHERE       DBName <> 'master'
    ORDER BY    DBName ASC
    GO
  4. Удаление временной таблицы
    DROP TABLE #sp_who2
    GO
В итоге, получившийся набор команд можно использовать как универсальный скрипт, для оперативного получения информации о подключениях к серверу баз данных.
Комментарии:
Прокомментировать
При использовании материалов ссылка на сайт UserMan.ru обязательна.
Политика конфиденциальности
Пользовательское соглашение
UserMan.ru © 2017-2024
Соцсети: VK