• sql server xp_readerrorlog引起的CPU爆满100%


    【0】问题操作

    我做了一个监控,

    --监控十分钟内的错误日志信息

    监控语句如下:

    --监控十分钟内的错误日志信息
    
    declare   @start_time datetime,@end_time datetime
                set @start_time = DATEADD(minute,-10,GETDATE())
                set @end_time = GETDATE()
                if OBJECT_ID('tempdb..#tmp_error_log') is not null
                drop table #tmp_error_log
                create table #tmp_error_log
                (
                logdate      datetime,
                processinfo  varchar(100),
                info         varchar(8000)
                )
                insert into #tmp_error_log
                exec dbo.xp_readerrorlog 0,1,NULL,NULL,@start_time,@end_time,N'desc'
                select COUNT(1) as num, MAX(logdate) as logdate,info
                from #tmp_error_log
                where (info like '%ERROR%'
                or info like '%WARN%'
                or info like '%FAIL%'
                or info like '%STOP%')
                and info not like '%CHECKDB%'
                and info not like '%Registry startup parameters%'
                and info not like '%Logging SQL Server messages in file%'
                and info not like '%previous log for older entries%'
                group by info

    【1】故障信息

    我发现,某一个实例上,一直正在运行下面图片的语句;

    等待也是等待 MSQL_XP :当某任务正在等待扩展存储过程结束时出现。 SQL Server 使用该等待状态检测潜在的 MARS 应用程序死锁。 该等待将在扩展存储过程调用结束时停止。

    dm_exec_requests 查看

      

    错误日志大小查看

    好像也没有多大,也就60M左右

    exec xp_enumerrorlog

      

    并行度查看

    好像也没有什么问题

      

    tempdb查看

    如下图:好像也出现一些问题

      

     然后在系统表tempdb.sys.tables里存在,直接select该表名却提示表名不存在(这个应该是正常的,是局部临时表,其他会话无法访问)
    用 sysindexes 查看 使用object_name(obj_id),显示null,rows 也显示0

    我估计这个有点问题,既然是tempdb的问题,那么重启服务就可以了吧

    【3】重启解决

    既然推断是tempdb的问题,那么重启服务就可以了吧,重启服务提示重启失败,最终直接重启服务器,解决了。

    【总结】

    生产环境还是要慎重,不能瞎加东西,尽管已经测过;

    我这个在之前的几个主要库测过,效率非常快才敢上,结果还是在这个次重要实例上载了跟头;

  • 相关阅读:
    VB获取对象成员
    VB一键扫雷
    VBS代码
    C# LINQ GroupBy
    C# 元组和值元组
    数据结构笔记
    DoTween使用
    Unity中常用的数据结构总结
    Unity 坐标系转换
    .Net中C# Dictionary 用法
  • 原文地址:https://www.cnblogs.com/gered/p/14072608.html
Copyright © 2020-2023  润新知