描述

最新我们一个稳定运行快一年的项目突然出现CPU方面的性能问题,该项目使用的azure sql database  P2 500DTU,运维同事监控到CPU使用非常高,客户反馈系统运行也比较卡。看到CPU高我们的第一感觉一般就是数据库缺少索引、执行计划重编译过度。该项目稳定运行快一年了,按道理不会突然出现这种现象,可能与客户有业务变动有关,具体要与项目经理沟通了解才清楚。
 

数据库环境

Microsoft SQL Azure (RTM) - 12.0.2000.8 
Mar 30 2017 01:30:03 
Copyright (C) 2016 Microsoft Corporation. All rights reserved.
 

处理过程

接到故障报警之后,我们马上查看了当前的sys.dm_db_resource_stats 查看到当前的CPU占比情况,发现当前的CPU占比并不高而且数据库链接也比较少,当前情况是很正常的,估计是我们错过事故现场。azure sql database 的性能调优跟我们平常使用的sql server 可能会有些不同,相对来说会有比较多的限制,我们通常情况是使用DMVs来处理比较多一些。像这种CPU情况我们先查看top 20 的sys.dm_exec_query_stats 的 total_worker_time 相同sql_handle 的情况,大概也能定位到问题点。这次CPU性能问题,我们更想体验一下query store 优势,看能否快速解决我们当前的情况,前提是我们已提前配置好了query_store,使用SSMSv17链接azure sql database 查看该库的属性。
如图

首先我们先查看前几个资源使用查询

我们一目了然就知道哪些语句是有问题,我们可以选择个人认为性能比较好的执行计划强制使用,这个选择可以快速让DBA做出决策;

我们当时遇到的问题是客户最近新增了一个数据对接接口,我们直接点中性能比较差的执行计划就可以看到具体的执行代码,恰好需更新的表上缺少索引造成本次事故,,新增缺少索引对比效果如下:
修改前的CPU情况

新增缺少索引后CPU情况

查看资源情况如下:

再通过我们的实施工程师的验证以及客户的反馈,本次故障已解决。

当然上述操作不想通过UI界面操作也可以直接查看query store对应的DMVs ,如sys.query_store_query、sys.query_store_query_text 等

总结

1.提前管控好客户业务功能变动带来的影响;
2.提前部署好相关监控能为后续的快速问题处理提供指引;
 

参考

azure sql database CPU troubleshooting的更多相关文章

  1. Azure SQL Database (26) 使用Query Store对Azure SQL Database监控

    <Windows Azure Platform 系列文章目录> 我们在使用Azure SQL Database的时候,需要对数据库的性能进行监控,这时候就可以有两种方法: 1.第一种方法, ...

  2. [Windows Azure] Windows Azure SQL Database library

    Microsoft Windows Azure SQL Database extends SQL Server capabilities to the cloud. SQL Database offe ...

  3. 通过本地Agent监控Azure sql database

    背景: 虽然Azure sql database有DMVs可以查看DTU等使用情况,但记录有时间限制,不会一直保留.为了更好监控Azure_sql_database上各个库的DTU使用情况.数据库磁盘 ...

  4. Azure SQL Database (19) Stretch Database 概览

    <Windows Azure Platform 系列文章目录>  Azure SQL Database (19) Stretch Database 概览      Azure SQL Da ...

  5. Azure SQL Database (20) 使用SQL Server 2016 Upgrade Advisor

    <Windows Azure Platform 系列文章目录>  Azure SQL Database (19) Stretch Database 概览      Azure SQL Da ...

  6. Azure SQL Database (21) 将整张表都迁移到Azure Stretch Database里

    <Windows Azure Platform 系列文章目录>  Azure SQL Database (19) Stretch Database 概览      Azure SQL Da ...

  7. Azure SQL Database (22) 迁移部分数据到Azure Stretch Database

    <Windows Azure Platform 系列文章目录>  Azure SQL Database (19) Stretch Database 概览      Azure SQL Da ...

  8. Azure SQL Database Active Geo-Replication简介

    笔者在<迁移SQL Server 数据库到 Azure SQL 实战>一文中,介绍了如何把一个本地版的 SQL Server 数据库迁移到 Azure SQL Database.迁移虽然顺 ...

  9. How to Use Lucene.NET with Windows Azure SQL Database

    http://social.technet.microsoft.com/wiki/contents/articles/2367.how-to-use-lucene-net-with-windows-a ...

随机推荐

  1. Linux用户组管理及用户权限4

    权限管理:    ls -l        rwxrwxrwx:            左三位:定义user(owner)的权限            中三位:定义group的权限           ...

  2. MongoDB本地安装与启用(windows 7/10)

    MongoDB的安装与MongoDB服务配置 Mongo DB 是目前在IT行业非常流行的一种非关系型数据库(NoSql),其灵活的数据存储方式备受当前IT从业人员的青睐.Mongo DB很好的实现了 ...

  3. TF启程

    我第一次开始接触到TensorFlow大概是去年五月份,大三下,如果一年多已过,我却还在写启程..这进度,实在汗颜.. 一个完整的tensorflow程序可以分为以下几部分: Inputs and P ...

  4. httpleaks及url的小技巧(http:evil)

    HTTP Leak攻击简介 当前Web技术下包含了大量HTML元素和属性,这些HTML元素和属性会请求一些外部资源,而在它们的HTTP请求过程中,可能存在潜在的敏感信息泄露.为此,德国著名网络安全公司 ...

  5. Codeforce Round #424

    A 略 B 略 C: 先对Ai数列预处理前缀和 然后把Bi的每个都加一次 最终得到的结果为ans[sum]++; 最后如果有一个ans[sum]>=k即满足所有K个条件就输出(注意!!前缀和要进 ...

  6. 记录一个关于 Document.on绑定事件后,导致页面卡顿的情况

    假设当前页面的js文件中有如下函数: function A(){ function B(); } function B(){ $(document).on("click",&quo ...

  7. 部署LVS-NAT模式调度器

    创建集群服务器 [root@proxy ~]# yum -y install ipvsadm [root@proxy ~]# ipvsadm -A -t -s wrr 添加真实服务器 [root@pr ...

  8. Springboot的resources下资源访问的问题

    对于路径问题,是让我一直感到痛苦的事情,首先是因为我的眼高手低,感觉路径这么简单根本没必要去看,但是昨天项目组长的冷嘲热讽让我无地自容:“你竟然连linux和window的路径的区别都不知道,呵呵”. ...

  9. js的三种异步处理

    js的三种异步处理   Promise 对象 含义: Promise是异步编程的一种解决方案, 优点: 相比传统回调函数和事件更加合理和优雅,Promise是链式编程(后面会详细讲述),有效的解决了令 ...

  10. Subarray Sorting (线段树)

    题意:给你两个长度为 n 的序列 a 和 b , 可以对 a 进行 操作: 选择一段区间[ l, r ] ,使得序列a 在这段区间里 按升序排序. 可以对a 进行任意多次操作,问 a是否有可能变成b序 ...