SQL SERVER 2005邮件

来源:网络 责任编辑:栏目编辑 发表时间:2013-07-02 00:36 点击:

作为一个数据库管理员,如果每天的日常监控的结果可以使用一种方式能提醒到你的话,这样可以避免总是远程连接上SQL SERVER每隔一段时间就去运行个操作,然后再看结果。SQL SERVER 2005中自带的邮件功能可以实现这个需求哦。
今天介绍下如果通过邮件和计划任务来实现每隔1小时得到数据库缓存中平均操作最耗时的50个T-SQL语句。具体的操作分两步:
1.设置SQL SERVER的邮件功能
2.制定计划任务
我们先开始第一步操作:
1)登录数据库,在【对象资源管理器】里面按下图箭头操作

2)右键点击【数据库邮件】,选择【配置数据库邮件】,下一步操作后选择下图选项后继续下一步:

3)在出现的界面中执行下图中的操作

4)点击【添加】按钮后,再出现的对话中进行如下操作

5)下一步后,将SQLSERVEREMAIL前面的复选框选中后,下一步,完成。
这时数据库的邮件就配置好了。下面我们使用T-SQL语句来实现邮件的发送,此时用到一个存储过程msdb.dbo.sp_send_dbmail。该存储过程的具体用法见MSDN。
使用如下语句来查看缓存中平均操作时间前50的操作。
Exec msdb.dbo.sp_send_dbmail 
    @profile_name='SQLSERVEREMAIL1',    --使用的数据库邮件配置文件
    @recipients='huangzhf@fabao.cn',    --收件人地址,多个收件人可用分号分隔
    @subject='每小时缓存中执行时间最长的50个语句',  --邮件主题 
    @query='SELECT TOP 50
total_worker_time/execution_count/1000 AS [Avg CPU Time(ms)],deqs.execution_count,
(SELECT SUBSTRING(text,statement_start_offset/2+1,(CASE WHEN statement_end_offset = -1 then LEN(CONVERT(nvarchar(max), text)) * 2 ELSE statement_end_offset end -statement_start_offset)/2+1) FROM sys.dm_exec_sql_text(sql_handle)) AS query_text 
FROM sys.dm_exec_query_stats deqs
ORDER BY [Avg CPU Time(ms)] DESC',  --具体的查询T-SQL
@attach_query_result_as_file = 1,   --查询结果以附件形式发送
@query_no_truncate = 1  --不截断长字段值
将上面的T-SQL做成计划任务,并设置成每小时执行一次。
这样每小时邮箱里面就能收到需要的信息了。
本文出自 “怒放的生命” 博客

    相关新闻>>

      发表评论
      请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
      用户名: 验证码:点击我更换图片
      最新评论 更多>>

      推荐热点

      • sql常见面试题
      • SQL SERVER 2005性能之跟踪
      • SQL编程(一)
      • LINUX上RMAN自动备份脚本
      • sql server面试题
      • 浅谈SQL Server中的事务日志(三)----在简单恢复模式下日志的角色
      • 如何将多个SQL查询统计结果一次显示出来
      • SQL小技巧系列 --- 行转列合并
      • sql server 列转行
      网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
      Copyright © 2008-2015 计算机技术学习交流网. 版权所有

      豫ICP备11007008号-1