MS SQL 日常维护管理常用脚本(下)

监控数据库运行

下面是整理、收集监控数据库运行的一些常用脚本,也是MS SQL 日常维护管理常用脚本(上)的续集,欢迎大家补充、提意见。

查看数据库登录名信息

Code Snippet

查看数据库用户信息

SELECT * FROM sysusers;

查看用户拥有的服务器角色

方法1: 用SSMS管理工具查看
方法2: 脚本查询

查看用户角色

查看最大工作线程数

Code Snippet

查看当前用户进程的会话ID

SELECT @@SPID

查询当前会话使用哪种协议

Code Snippet

查看当前连接的会话信息

–进程号1–50是SQL Server系统内部用的

SELECT * FROM sys.dm_exec_sessions WHERE session_id >=51

–查看某台机器的连接会话信息

SELECT * FROM sys.dm_exec_sessions WHERE session_id >=51 AND host_name=’PO130018801′

–查看某个登录名的连接会话信息

SELECT * FROM sys.dm_exec_sessions WHERE session_id >=51 AND login_name=’username’

–查看活动的连接会话信息

SELECT * FROM sys.dm_exec_sessions WITH(NOWAIT) WHERE session_id >=51 AND status =’running’

–查找连接到服务器的用户并返回每个用户的会话数

SELECT login_name ,
COUNT(session_id) AS session_count
FROM sys.dm_exec_sessions
GROUP BY login_name ;

查看正在执行的SQL语句

方法1: 选择数据库实例,单击右键,选择”活动监视器“,监控/查看正在执行的SQL
方法2: profile去跟踪,比较耗费资源。

方法3:
Code Snippet

方法4:

Code Snippet

–查看某个会话ID正在执行的SQL

Code Snippet

查看SQL SERVER进程执行的语句

Code Snippet

查找TOP N语句

按平均 CPU 时间返回排名前十个的查询的相关信息。此示例将根据查询的查询哈希对查询进行聚合,以便按照查询的累积资源消耗来分组在逻辑上等效的查询。
–注意:SQL 2005 某些版本,没有sys.dm_exec_query_stats系统动态视图没有query_hash视图。

Code Snippet

查看会话阻塞/死锁信息

方法1:查看那个引起阻塞,查看blk不为0的记录,如果存在阻塞进程,则是该阻塞进程的会话 ID。否则该列为零。

EXEC sp_who active

方法2:查看那个引起阻塞,查看字段BlkBy,这个能够得到比sp_who更多的信息。

EXEC sp_who2 active

方法3:sp_lock 系统存储过程,报告有关锁的信息,但是不方便定位问题
方法4:sp_who_lock存储过程

Code Snippet

方法5:右键服务器-选择“活动和监视器”,查看进程选项。注意“任务状态”字段。

方法6:右键服务名称-选择报表-标准报表-活动-所有正在阻塞的事务。

小结:总结之后,才发现居然有这么多方法,MGD,系统的整理、梳理知识点是非常有必要的,你能更全面、深入的了解。

查看内存状态

dbcc memorystatus
具体如何分析,请查看官方文档http://support.microsoft.com/kb/907877/zh-cn

查看脚本执行时间

方法1: 查看SSMS管理器,查询窗口右下角
方法2:

Code Snippet

方法3:

SET STATISTICS TIME ON

–SQL 语句

查看进程正在执行的SQL语句

dbcc inputbuffer ()

查看那些表缺少索引

下面语句功能强大,执行结果受统计信息的影响

Code Snippet

查看应该被移除的索引

查看那些多余的、应该被移除的索引

SQL 1:

Code Snippet

SQL 2: 分析下面语句,移除那些没有必要的索引

Code Snippet

1 收藏 评论

相关文章

可能感兴趣的话题



直接登录
跳到底部
返回顶部