指引网

当前位置: 主页 > 数据库 > SQLServer >

读取SQL SERVER日志及代理日志

来源:网络 作者:佚名 点击: 时间:2018-03-14 17:59
[摘要] 读取SQL SERVER日志及代理日志[sql]最近闲的没事,为了以后的工作提高效率,其实是不想让自己的眼睛和手 太累。于是写了如下脚本 来解放自己。 www.2cto.com ---查看每个磁盘剩余空间大小(M)

读取SQL SERVER日志及代理日志   [sql]  最近闲的没事,为了以后的工作提高效率,其实是不想让自己的眼睛和手 太累。于是写了如下脚本 来解放自己。       www.2cto.com     ---查看每个磁盘剩余空间大小(M)   Exec master.dbo.xp_fixeddrives    --或者   declare @Fixed_tb table(Drive_NO char(1),Remainder_M bigint)   INSERT INTO @Fixed_tb exec master.dbo.xp_fixeddrives   select Drive_NO '驱动盘符',Remainder_M'剩余M',cast(((Remainder_M/1024)+0.001*(Remainder_M%1024))as dec(18,2))'剩余G' from @Fixed_tb   GO      -----SQL SERVER 日志        www.2cto.com   declare @tmp table  (LogDate datetime,ProcessInfo varchar(32),Text nvarchar(max))      insert into @tmp   EXEC master.dbo.xp_readerrorlog 0, 1, NULL, NULL, NULL, NULL, N'desc'---读取SQL Server 日志      select * from @tmp where 1=1   /*    一共有7个参数:       1. 存档编号   2. 日志类型(1为SQL Server日志,2为SQL Agent日志)   3. 查询包含的字符串   4. 查询包含的字符串   5. LogDate开始时间   6. 结果排序,按LogDate排序(可以为降序"Desc" Or 升序"Asc")   7. 结果排序,按LogDate排序(可以为降序"Desc" Or 升序"Asc")        www.2cto.com   在输入第5和第6个参数的时候,使用时间里包含有秒、毫秒时候,有时候查询速度非常慢,而且导致CPU占用率为100%。   */      --作业活动监视器 详细内容      SELECT c.job_id,a.name,case when a.enabled =1 then '是' else '否' end '是否启用',    a.date_created '创建时间',a.date_modified '修改时间',    left(b.last_run_date,4)+'/'+SUBSTRING(convert(varchar(8),b.last_run_date),5,2)+'/'+right(b.last_run_date,2)+'  '+    case when b.last_run_time=0 then '0:00:00'          when LEN(b.last_run_time)=3 then '0:0'+SUBSTRING(convert(varchar(6),b.last_run_time),1,1)+':'+RIGHT(b.last_run_time,2)         when LEN(b.last_run_time)=4 then '0:'+LEFT(b.last_run_time,2)+':'+RIGHT(b.last_run_time,2)           when len(b.last_run_time)=5 then left(b.last_run_time,1)+':'+SUBSTRING(convert(varchar(6),b.last_run_time),2,2)+':'+right(b.last_run_time,2)         else left(b.last_run_time,2)+':'+SUBSTRING(convert(varchar(6),b.last_run_time),3,2)+':'+right(b.last_run_time,2)end'上次运行时间',    left(c.next_run_date,4)+'/'+SUBSTRING(convert(varchar(8),c.next_run_date),5,2)+'/'+right(c.next_run_date,2)+'  '+    www.2cto.com    case when c.next_run_time=0 then '0:00:00'          when LEN(c.next_run_time)=3 then '0:0'+SUBSTRING(convert(varchar(6),c.next_run_time),1,1)+':'+RIGHT(c.next_run_time,2)           when LEN(c.next_run_time)=4 then '0:'+LEFT(c.next_run_time,2)+':'+RIGHT(c.next_run_time,2)         when len(c.next_run_time)=5 then left(c.next_run_time,1)+':'+SUBSTRING(convert(varchar(6),c.next_run_time),2,2)+':'+right(c.next_run_time,2)         else left(c.next_run_time,2)+':'+SUBSTRING(convert(varchar(6),c.next_run_time),3,2)+':'+right(c.next_run_time,2)end '下次运行时间',     case   when substring(b.last_outcome_message,1,CHARINDEX('。', b.last_outcome_message)) is NULL then     '未知' else substring(b.last_outcome_message,1,CHARINDEX('。', b.last_outcome_message)) end '上次运行结果'       www.2cto.com   FROM   [msdb].[dbo].[sysjobs_view] a    join    [msdb].[dbo].[sysjobservers] b   on a.job_id =b.job_id    join [msdb].[dbo].[sysjobschedules] c   on a.job_id =c.job_id    where a.category_id =0 or a.category_id =3      ----每个作业详细运行步骤及结果      select a.name ,a.description,a.date_created,a.date_modified,     b.message,       left(b.run_date,4)+'/'+SUBSTRING(convert(varchar(8),b.run_date),5,2)+'/'+right(b.run_date,2)+'  '+      case when b.run_time=0 then '0:00:00'        when LEN(b.run_time)=3 then '0:0'+SUBSTRING(convert(varchar(6),b.run_time),1,1)+':'+RIGHT(b.run_time,2)    www.2cto.com       when LEN(b.run_time)=4 then '0:'+LEFT(b.run_time,2)+':'+RIGHT(b.run_time,2)       when len(b.run_time)=5 then left(b.run_time,1)+':'+SUBSTRING(convert(varchar(6),b.run_time),2,2)+':'+right(b.run_time,2)       else left(b.run_time,2)+':'+SUBSTRING(convert(varchar(6),b.run_time),3,2)+':'+right(b.run_time,2)end'运行时间',       case when b.run_status=1 then '成功' else '失败' end '状态'       FROM [msdb].[dbo].[sysjobs_view] a ,[msdb].[dbo].[sysjobhistory] b    where a.job_id =b.job_id and (a.category_id =0 or a.category_id =3)  
 
------分隔线----------------------------