当你作为DBA时,很多人会向你抱怨:“这个程序数据加载和蜗牛一样,你看看是不是服务器出问题了?”造成这个问题的原因有很多。可能是程序应用服务器问题,网络问题,程序实现方式问题,数据库服务器负荷过重。不管是哪个问题,数据库总是第一个被抱怨的。我们DBA的职责就是找出问题所在,并解决它们。

问题解决第一步,诊断分析:

SELECT

parent_node_id AS Node_Id,

COUNT(*) AS [No.of CPU In the NUMA],

SUM(COUNT(*)) OVER() AS [Total No. of CPU],

SUM(runnable_tasks_count ) AS [Runnable Task Count],

SUM(pending_disk_io_count) AS [Pending disk I/O count],

SUM(work_queue_count) AS [Work queue count]

FROM sys.dm_os_schedulers WHERE status='VISIBLE ONLINE' GROUP BY parent_node_id

返回结果说明:

如果返回的是一条记录,说明服务器不支持NUMA架构,否则记录数就是NUMA架构的节点数(NUMA:非均匀访存模型)。

Node_id:NUMA节点id。

No.of CPU in the NUMA:分配给NUMA节点的CPU数,或调度数( number of schedulers)。

Total No. of CPU:服务器上可用CPU总数。

Runnable Task Count:在可运行队列里,等待被重现调度的,用于分配任务(tasks)的工作者(workers)数。即,可运行队列里请求数。

Pending disk I/O count:等待被完成的等待IO数。每个调度都有一个等待IO清单,用于判断它们在上下文切换时是否完成。当请求被插入时,这个数字会增加。请求完成后,数字会减少。

Work queue count:等待队列里的任务数。这些任务等待工作者拿走。

我会把这个脚本的输出结果存到一张表,并设置为计划任务每10分钟运行一次,收集运行2天。这样我们对服务器的运行状况就有了基本的了解。在我测试的服务器上,当Runnable Task Count一直在10的时候,用户就是抱怨服务器慢!正常情况,每个节点的这个数字应该低于10。这就给了我们当前系统运行的大致情况。如果这一步的输出结果是正常的,我们就可以排除数据库服务器的问题了,响应慢的问题可能是我们不能控制的阻塞造成的,或者只是部分会话响应慢,而不是整个服务器慢。

附图2张,帮助大家理解任务(tasks)、工作者(works)、调度(schedulers)之间的关系。

对于每个CPU,SQLSERVER都会有一个scheduler与之对应。在每个scheduler里,会有若干个worker,对应于每个线程。在客户端发过来请求之后,SQL会将其分解成一个或多个task。根据每个scheduler的繁忙程度,task会被分配到某个scheduler上。如果scheduler里有空闲的worker,task就会被分配到某个worker上。如果没有,scheduler会创建新的worker,供task使用。如果scheduler里的worker已经到了他的上限值,而他们都有task要运行,那么新的task只好进入等待worker的状态。

参考文章:

初涉SQL Server性能问题(4/4):列出最耗资源的会话

在上3篇文章里,我们讨论了列出反映服务器当前状态的不同查询. 初涉SQL Server性能问题(1/4):服务器概况 初涉SQL Server性能问题(2/4):列出等待资源的会话 初涉SQL Ser ...

初涉SQL Server性能问题(2/4):列出等待资源的会话

在初涉SQL Server性能问题(1/4)里,我们知道了如何快速检查服务器实例上正运行的任务数和IO等待的任务数.这个是轻量级的脚本,不会给服务器造成任何压力,即使服务器在高负荷下,也可以正常获得结 ...

初涉SQL Server性能问题(3/4):列出阻塞的会话

在 初涉SQL Server性能问题(2/4)里,我们讨论了列出等待资源或正运行的会话脚本.这篇文章我们会看看如何列出包含具体信息的话阻塞会话清单. /************************ ...

SQL Server 无法连接到服务器。SQL Server 复制需要有实际的服务器名称才能连接到服务器。请指定实际的服务器名称。

异常处理汇总-数据库系列  http://www.cnblogs.com/dunitian/p/4522990.html SQL性能优化汇总篇:http://www.cnblogs.com/dunit ...

SQL Server 性能优化(一)——简介

原文:SQL Server 性能优化(一)--简介 一.性能优化的理由: 听起来有点多余,但是还是详细说一下: 1.节省成本:这里的成本不一定是钱,但是基本上可以变相认为是节省钱.性能上去了,本来要投 ...

影响Sql server性能的因素

目前本人在看 ,以下内容是本人看书笔记 数据库性能取决于各方面综合因素: 硬件,操作系统,软件 硬件:内存,CPU,磁盘 当服务器的物理内存不足时,会产 ...

SQL Server 性能优化详解

故事开篇:你和你的团队经过不懈努力,终于使网站成功上线,刚开始时,注册用户较少,网站性能表现不错,但随着注册用户的增多,访问速度开始变慢,一些用户开始发来邮件表示抗议,事情变得越来越糟,为了留住用户, ...

SQL SERVER性能优化综述

SQL SERVER性能优化综述 一个系统的性能的提高,不单单是试运行或者维护阶段的性能调优的任务,也不单单是开发阶段的事情,而是在整个软件生命周期都需要注意,进行有效工作才能达到的.所以我希望按照软 ...

[转]SQL Server 性能调优(内存)

存储引擎自调整 sql server 是如何分配内存的 32bit地址空间的限制 用户模式vas分配和virtualalloc 非boffer pool 分配内存(保留内存) VAS调整 AWE ...

随机推荐

iPhone 6/plus iOS Safari fieldset border 边框消失

问题:iPhone6 plus 手机浏览网页,fieldset border 边框消失. 示例代码:

div与>div区别小结

两者之间的区别:例如div span得到的是div下所有的span元素,而div>span则是取得的div下第一级的span元素. 示例代码如下: & ...

牢记!SQL Server数据库开发的二十一条注意点

如果你正在负责一个基于SQL Server的项目,或者你刚刚接触SQL  Server,你都有可能要面临一些数据库性能的问题,这篇文章会为你提供一些有用的指导(其中大多数也可以用于其它的DBMS). ...

谈谈final, finally, finalize的区别

final 修饰符(关键字)如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承.因此一个类不能既被声明为 abstract的,又被声明为final的.将变量或方法声明为fi ...

peewee 事物 回滚

peewee 事物 回滚 #!/usr/bin/env python # coding=utf-8 from peewee import * db = MySQLDatabase(host='123. ...

MongoDB 的 upsert

MongoDB 的update 方法的三个参数是upsert,这个参数是个布尔类型,默认是false.当它为true的时候,update方法会首先查找与第一个参数匹配的记录,在用第二个参数更新之,如果 ...

深入浅出的webpack构建工具---webpack基本配置(一)

深入浅出的webpack构建工具---webpack基本配置(一) 阅读目录 一:webpack入门构建: 1. 安装webpack到全局 2. 安装webpack到本项目. 3. 如何使用webpa ...

【Java并发核心七】计划任务ScheduleExecutorService

Java中定时任务Timer工具类提供了计划任务的实现,但是Timer工具类是以队列的方式来管理线程的,并不是以线程池的方式,这样在高并发的情况下,运行效率会有点低. ScheduleExecutor ...

sql server服务器 性能,初涉SQL Server性能问题(1/4):服务器概况相关推荐

  1. 初涉SQL Server性能问题(1/4):服务器概况

    原文:初涉SQL Server性能问题(1/4):服务器概况 当你作为DBA时,很多人会向你抱怨:"这个程序数据加载和蜗牛一样,你看看是不是服务器出问题了?"造成这个问题的原因有很 ...

  2. 初涉SQL Server性能问题(3/4):列出阻塞的会话

    原文:初涉SQL Server性能问题(3/4):列出阻塞的会话 在 初涉SQL Server性能问题(2/4)里,我们讨论了列出等待资源或正运行的会话脚本.这篇文章我们会看看如何列出包含具体信息的话 ...

  3. SQL Server 占用内存太高,查找占用内存高以及影响其性能的sql语句

    今天公司的线上网站崩溃,登陆不了,结果查看服务器的性能的时候发现SQL Server 占用的cup 高达97%,之前没有出现过这样的状况,直觉感觉重启SQL Server就好,可是重启之后依然如此.接 ...

  4. oracle迁移性能对比,SQL Server 2015与Oracle性能对比.doc

    SQL Server和Oracle 性能相关对比 对比概述 Microsoft SQL Server 已经成为客户在Microsoft Windows平台上数据库应用的首选.经过Windows平台的优 ...

  5. Sql Server RowNumber和表变量分页性能优化小计

    直接让代码了,对比看看就了解了 当然,这种情况比较适合提取字段较多的情况,要酌情而定 性能较差的: WITH #temp AS ( Select column1,column2,column3,col ...

  6. t–sql pl–sql_不正确SQL Server统计信息– SQL查询性能的杀手–基本知识

    t–sql pl–sql 什么是SQL Server统计信息? (What are SQL Server statistics?) SQL Server statistics are a collec ...

  7. 智能SQL优化工具--SQL Optimizer for SQL Server(帮助提升数据库应用程序性能,最大程度地自动优化你的SQL语句 )...

    SQL Optimizer for SQL Server 帮助提升数据库应用程序性能,最大程度地自动优化你的SQL语句 SQL Optimizer for SQL Server 让 SQL Serve ...

  8. php多表查询性能优化,MSSQL_SQL Server多表查询优化方案集锦,SQL Server多表查询的优化方案是 - phpStudy...

    SQL Server多表查询优化方案集锦 SQL Server多表查询的优化方案是本文我们主要要介绍的内容,本文我们给出了优化方案和具体的优化实例,接下来就让我们一起来了解一下这部分内容. 1.执行路 ...

  9. SQL SERVER数据库datediff函数引发的性能问题

    今天,一哥们反馈系统很慢,很卡,让我远程看一下.我远程过去查了一下数据库系统,发现很多阻塞,语句都基本相似,并且表的数据也不大,只有10多万条记录. 1.问题分析: 本系统是sql server数据库 ...

最新文章

  1. MySQL(mysql 5.7)用户密码的管理
  2. java 制作报表案例_javaweb项目报表案例
  3. 直播回顾丨拆解 LTV:增长焦虑,企业如何诊断黄金流量?
  4. jieba 词典 词频_在Hanlp词典和jieba词典中手动添加未登录词
  5. python模型_python 模型的释义
  6. 使用Rancher搭建K8S测试环境
  7. python创建数据库计算机积极拒绝、无法连接_Python3 请求网页源码 目标计算机积极拒绝,无法连接...
  8. Django restframework 嵌套关系处理
  9. 滑动转向机器人轮间距校准
  10. shiro的详细讲解
  11. linux下grub的设置密码,grub设置密码
  12. 【渝粤教育】国家开放大学2018年秋季 2312T旅行社经营管理 参考试题
  13. 1、DSP28335 硬件概述与寄存器描述
  14. NSA永恒之蓝病毒,如何通过360工具修复?
  15. Spring Boot 2.1.8.RELEASE集成UReport2 (四) 添加Mysql存储器
  16. python 余弦值,Python向量余弦值 Python 求向量的余弦值操作
  17. 启动Vue项目发生的错误总结
  18. R902520808、AA10VSO140DRS/32R-VPB22U00E液压变量柱塞泵
  19. 微信公众号开发(十)——扫描带参数二维码事件
  20. uart_ops结构体分析之amba_pl011_pops

热门文章

  1. 亚马逊SP-API自发货标记发货对接
  2. 我的留英日记[转载]
  3. 收敛交叉映射(convergent cross mapping,CCM)滥觞、2012年Science论文方法部分:Detecting Causality in Complex Ecosystems
  4. Cocos2d-x地图随精灵无限滚动与边缘检测----之游戏开发《赵云要格斗》(3)
  5. Mask to Polygons mask转Polygons并展示
  6. [生存志] 第55节 吴公子札巡访中原
  7. 支付机构客户备付金存管办法
  8. 51单片机C语言访问外ram,C51中访问外部RAM的方法
  9. eclipse下载安装、配置tomcat、Maven、lombok
  10. HaaS云端一体智能语音交互方案