描述

最新我们一个稳定运行快一年的项目突然出现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_querysys.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. python 时间对应计算

    import re import time def parse_time(date): if re.match('刚刚', date): date = time.strftime('%Y-%m-%d ...

  2. View相关面试问题-事件分发面试问题讲解

    为什么会有事件分发机制: 安卓上面的View是树形结构的,View可能会重叠在一起,当我们点击的地方有多个View都可以响应的时候,这个点击事件应该给谁呢?为了解决这一问题,就有了事件分发机制.用图来 ...

  3. JAVA面试/笔试经典题

    1.short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错? 对于short s1 = 1; s1 = s1 + 1; 由于s1+1运算时 ...

  4. vue 中echart折线自适应

    前端时间做一个vue的项目,echart是按需引入的如下: // 引入 ECharts 主模块 import echarts from 'echarts/lib/echarts' // 引入折线图 i ...

  5. webpack打包工具之ts版开发框架搭建

    本文用两个框架,一个是threejs,一个是phaser3,其实流程都是一样. nodejs.npm是基础,不再多说! 首先新建一个文件夹命名three-study,然后npm init -y 用we ...

  6. Codevs 1017 乘积最大 2000年NOIP全国联赛普及组NOIP全国联赛提高组

    1017 乘积最大 2000年NOIP全国联赛普及组NOIP全国联赛提高组 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题目描述 Description 今年是国 ...

  7. 灰度图像--图像分割 Scharr算子

    学习DIP第46天 转载请标明本文出处:http://blog.csdn.net/tonyshengtan ,出于尊重文章作者的劳动,转载请标明出处!文章代码已托管,欢迎共同开发: https://g ...

  8. Python与开源GIS

    https://www.osgeo.cn/pygis/ 这里列出了与 GIS 相关的 Python 开源类库与工具. 基础类库(抽象库) • GDAL/OGR 是大部分开源GIS的基础,也包括如Arc ...

  9. mysql5.7提示密码过期的解决方法

    首先把MySQL关闭 打开一个终端,输入 sudo /usr/local/mysql/bin/mysqld_safe --skip-grant-tables 执行完命令后,再打开一个新的终端 sudo ...

  10. 也谈Tcp/Ip协议

    一. 计算机网络体系结构分层 一图看完本文 计算机网络体系结构分层 计算机网络体系结构分层 不难看出,TCP/IP 与 OSI 在分层模块上稍有区别.OSI 参考模型注重“通信协议必要的功能是什么”, ...