zoukankan      html  css  js  c++  java
  • 摘:DBA案例CPU占用100%的问题

    1.操作系统:排除可能是木马或病毒等。

    2.应用系统:(a)重要表的索引建立和使用,(b)执行效率低的SQL导致查询或更新进程的阻塞,直至引发的死锁现象。

    这都将成为引发SQL Server响应异常缓慢,CPU占用率高居不下的主要原因。

    (1).首先执行sp_lock,排除X锁和IX锁。

    (2).查询是否是由于重要表引起的CPU占用率高:

    SELECT TOP 5 total_worker_time, last_worker_time,
    max_worker_time, min_worker_time,
    SUBSTRING(st.text, (qs.statement_start_offset/2) + 1,
    ((CASE statement_end_offset WHEN -1 THEN DATALENGTH(st.text)
    ELSE qs.statement_end_offset END - qs.statement_start_offset)/2) + 1)
    as statement_text
    FROM sys.dm_exec_query_stats as qs
    CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) as st
    ORDER BY max_worker_time DESC 

    (3).开启SQL Server Profiler进行跟踪。

    (a)通过trc文件可得知,Duration出现较大值的次数及objectType对象类型。

    (b)有了trc文件,可让数据库引擎优化顾问分析并得出优化报告。

    (c)择其善者而从之,执行一些重建索引和静态信息的语句等。

    (d)更改备份计划,让备份完成后自动进行索引碎片重新组织的任务等。

  • 相关阅读:
    AWVS——windows下扫描(上)
    中介者模式
    设计模式-类型2
    设计模式=类型
    C++ 1
    字符占字节
    编程规范
    位运算相关规律
    十进制转二进制
    递归理解
  • 原文地址:https://www.cnblogs.com/Ammy/p/1430960.html
Copyright © 2011-2022 走看看