月度归档:2017年07月

mssql sql server获取正在运行的进程的方法


一、可以使用sp_who2查看当前运行的进程


sp_who2 可返回以下列信息
Spid (系统进程ID)
status (进程状态)
loginame (用户登录名)
hostname(用户主机名)
blk (阻塞进程的SPID)
dbname (进程正在使用的数据库名)
Cmd (当前正在执行的命令类型)
CPUTime (进程占用的总CPU时间)
DiskIO (进程对磁盘读的总次数)
LastBatch (客户最后一次调用存储过程或者执行查询的时间)
ProgramName (用来初始化连接的应用程序名称,或者主机名)


二、可以通过查询系统进程表 sys.sysprocesses 和 系统执行内容表 sys.dm_exec_sql_text,获取运行进程 的内容信息

 SELECT   spid,
         blocked,
         DB_NAME(sp.dbid) AS DBName,
         program_name as [应用程序名],
         waitresource,
         lastwaittype,
         sp.loginame as [登录名],
         sp.hostname as [客户端名称],
         a.[Text] AS [命令文本],
         SUBSTRING(A.text, sp.stmt_start / 2 
FROM     sys.sysprocesses AS sp OUTER APPLY sys.dm_exec_sql_text (sp.sql_handle) AS A  where a.text is not null 

相关阅读:
如何查询MSSQL 当前进程及数据库中的并发进程

mssql sql server存储过程的优缺点


一、存储过程简介

存储过程是由一组sql组成的集合,具有完成指定功能的sql集合,用户通过存储过程名和输入相应的参数,
存储过程返回相应的结果。


二、存储过程优点

2.1 使用存储过程可以减少服务器/客户端交互时间
由于客户端调用服务器端时,只需输入存储过程名称和参数名,可减少服务器和客户端的之间交互的网络流量
2.2 更强的安全性
由于存储过程是作为db服务器中的一个对象,我们可以设置存储过程权限,增强db数据库服务器的安全,
也可以对存储过程进行加密,避免非系统开发人员查看系统逻辑
2.3 sql代码可重复使用
将相同的功能进行封装为存储过程,方便客户端多次调用,达到sql代码的重复利用
2.4 更高的执行效率
由于采用存储过程运行,代码在首次运行时,已经编译并缓存至db服务器,方便下次调用,缩短sql执行时间
2.5 易于维护
应用程序如果需改变数据操作逻辑,只需变更存储过程中的内容, 而无需变更应用程序,所以方便程序修改。


三、存储过程缺点

3.1 不便于底层数据库切换,因为每种数据库存储过程的写法都一致,所以采用存储过程编写的程序,使程序无法快速移置。
3.2 当底层表变化后,需要将存储过程重新编译,存储过程才能得到正确的运行。

mssql sql server 其它系统函数 parsename 点语法字符串分割函数应用简介


一、 parsename函数功能简介

parsename函数的主要功能是:可以快速的使用”.”关键字分解字符串,并返回.分解后指定部分

parsename 函数语法简介
参数:
参数1(待分解字符串): nvarchar(128)位字符串
参数2(指定部分):int类型
返回值:
nchar字符串或null
 


二、parsename函数举例应用

  /* 域名拆解 parsename快速拆解字符串, 从右边依次向左边排列
 从1 开始编号 当无返回对象时,返回null 
  */
 declare @a varchar(100)
 set @a ='www.maomao365.com'
 select PARSENAME(@a,0),PARSENAME(@a,1),PARSENAME(@a,2),PARSENAME(@a,3),
 PARSENAME(@a,4)