sql server 查询任务管理器数据

本文涉及的产品
云数据库 RDS SQL Server,独享型 2核4GB
简介:
复制代码
 
USE master
go
IF OBJECT_ID ( ' tempdb..#temp ' ) IS NOT NULL
DROP TABLE # temp
CREATE TABLE # temp
(
id
INT IDENTITY ( 1 , 1 )
NOT NULL
,Proc_info
NVARCHAR ( MAX ) NULL
,
CONSTRAINT pk_id PRIMARY KEY ( id ASC )
)
-- insert data into temp table
INSERT INTO # temp
( Proc_info )
EXEC master..xp_cmdshell ' tasklist /v '

-- delete the wrong records
DELETE FROM # temp
WHERE Proc_info IS NULL
OR Proc_info LIKE ' %==========% '
OR ID = 2
GO
-- create a splite function
CREATE FUNCTION F_split_V2 ( @S NVARCHAR ( 4000 ), @i INT )
RETURNS NVARCHAR ( 100 )
AS
BEGIN
IF @i = 1 -- Image_name
BEGIN
IF PATINDEX ( ' %.exe% ' , @s ) = 0
SET @s = RTRIM ( LEFT ( @s , PATINDEX ( ' %[0-9]% ' , @s ) - 1 ))
ELSE
SET @s = RTRIM ( LEFT ( @s , PATINDEX ( ' %.exe% ' , @s ) + 4 ))
END
ELSE
IF @i = 2 -- Pid
BEGIN
IF PATINDEX ( ' %.exe% ' , @s ) = 0
SET @s = STUFF ( @s , 1 , PATINDEX ( ' %[0-9]% ' , @s ) - 1 , '' )
ELSE
SET @s = LTRIM ( SUBSTRING ( @s ,
PATINDEX ( ' %.exe% ' , @s ) + 4 ,
LEN ( @s )))

SELECT @s = RTRIM ( LEFT ( @s , PATINDEX ( ' %[^0-9]% ' , @s ) - 1 ))
END
ELSE
IF @i = 3 -- Session_name
BEGIN
IF PATINDEX ( ' %.exe% ' , @s ) = 0
SET @s = STUFF ( @s , 1 , PATINDEX ( ' %[0-9]% ' , @s ) - 1 ,
'' )
ELSE
SET @s = LTRIM ( SUBSTRING ( @s ,
PATINDEX ( ' %.exe% ' , @s )
+ 4 , LEN ( @s )))
SELECT @s = STUFF ( @s , 1 , PATINDEX ( ' %[^0-9]% ' , @s ) - 1 ,
'' )
,
@s = RTRIM ( LEFT ( @s ,
PATINDEX ( ' %[0-9]% ' , @s ) - 1 ))
END
ELSE
IF @i = 4 -- Session#
BEGIN
IF PATINDEX ( ' %.exe% ' , @s ) = 0
SET @s = STUFF ( @s , 1 ,
PATINDEX ( ' %[0-9]% ' , @s ) - 1 , '' )
ELSE
SET @s = LTRIM ( SUBSTRING ( @s ,
PATINDEX ( ' %.exe% ' , @s )
+ 4 , LEN ( @s )))
SELECT @s = STUFF ( @s , 1 ,
PATINDEX ( ' %[^0-9]% ' , @s ) - 1 ,
'' )
,
@s = STUFF ( @s , 1 ,
PATINDEX ( ' %[0-9]% ' , @s ) - 1 , '' )
,
@s = RTRIM ( LEFT ( @s ,
PATINDEX ( ' % % ' , @s ) - 1 ))
END
ELSE
IF @i = 5 -- memory
BEGIN
IF PATINDEX ( ' %.exe% ' , @s ) = 0
SET @s = STUFF ( @s , 1 ,
PATINDEX ( ' %[0-9]% ' , @s ) - 1 ,
'' )
ELSE
SET @s = LTRIM ( SUBSTRING ( @s ,
PATINDEX ( ' %.exe% ' ,
@s ) + 4 , LEN ( @s )))

SELECT @s = STUFF ( @s , 1 ,
PATINDEX ( ' %[0-9]% ' , @s ) - 1 ,
'' )
,
@s = STUFF ( @s , 1 ,
PATINDEX ( ' %[^0-9]% ' , @s )
- 1 , '' )
,
@s = STUFF ( @s , 1 ,
PATINDEX ( ' %[0-9]% ' , @s ) - 1 ,
'' )
,
@s = STUFF ( @s , 1 ,
PATINDEX ( ' %[1-9]% ' , @s ) - 1 ,
'' )
,
@s = RTRIM ( LEFT ( @s ,
PATINDEX ( ' %k% ' , @s )
- 1 ))
END
ELSE
IF @i = 6 -- user_name
SELECT @s = STUFF ( @s , 1 ,
PATINDEX ( ' %[0-9]% ' , @s ) - 1 ,
'' )
,
@s = STUFF ( @s , 1 ,
PATINDEX ( ' %[^0-9]% ' , @s )
- 1 , '' )
,
@s = STUFF ( @s , 1 ,
PATINDEX ( ' %[0-9]% ' , @s ) - 1 ,
'' )
,
@s = STUFF ( @s , 1 ,
PATINDEX ( ' %[1-9]% ' , @s ) - 1 ,
'' )
,
@s = RTRIM ( SUBSTRING ( @s ,
PATINDEX ( ' %\% ' ,
@s ) + 1 , 18 ))
ELSE
IF @i = 7 -- cup_time
SELECT @s = SUBSTRING ( @s ,
PATINDEX ( ' %[0-9]:[0-9][0-9]:[0-9][0-9]% ' ,
@s ), 8 )
ELSE
SELECT @s = RIGHT ( @s ,
CHARINDEX ( ' ' ,
REVERSE ( @s ), 3 )
- 1 )
RETURN @s
END
go

SELECT dbo.F_split_V2(Proc_info, 1 ) AS image_name
,dbo.F_split_V2(Proc_info,
2 ) AS PID
,dbo.F_split_V2(Proc_info,
3 ) AS session_name
,dbo.F_split_V2(Proc_info,
4 ) AS session#
,dbo.F_split_V2(Proc_info,
5 ) + ' K ' AS Memory
,dbo.F_split_V2(Proc_info,
6 ) AS User_name
,dbo.F_split_V2(Proc_info,
7 ) AS cpu_time
,
' xp_cmdshell '' taskkill -IM ' + dbo.F_split_V2(Proc_info, 1 ) + ' /f ''' AS script
FROM # temp
复制代码
    本文转自 Fanr_Zh 博客园博客,原文链接: http://www.cnblogs.com/Amaranthus/archive/2011/06/03/2072038.html ,如需转载请自行联系原作者




相关实践学习
使用SQL语句管理索引
本次实验主要介绍如何在RDS-SQLServer数据库中,使用SQL语句管理索引。
SQL Server on Linux入门教程
SQL Server数据库一直只提供Windows下的版本。2016年微软宣布推出可运行在Linux系统下的SQL Server数据库,该版本目前还是早期预览版本。本课程主要介绍SQLServer On Linux的基本知识。 相关的阿里云产品:云数据库RDS SQL Server版 RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License费用,减少额外支出。 了解产品详情: https://www.aliyun.com/product/rds/sqlserver
相关文章
|
4月前
|
SQL 存储 运维
Windows server 2016——SQL server T-SQL查询语句
Windows server 2016——SQL server T-SQL查询语句
45 0
Windows server 2016——SQL server T-SQL查询语句
|
9月前
|
SQL XML 数据格式
【SQL server 2008】操作查询
【SQL server 2008】操作查询
106 0
|
9月前
|
存储 SQL 数据库
查询SQL server状态的三种方法
查询SQL server状态的三种方法
|
SQL 数据库 索引