摘要:
步骤1.TempDB压力诊断 等待类型诊断 TempDB的争用压力在等待篇中已经简单介绍,等待的表现为 pagelatch_类等待,等待的资源是 “2: X :X ” tempDB所在磁盘的响应时间 一个实例下只有一个tempdb,也就是当你在一个实例下创建了100个数据库,这100个数据库也只能用 阅读全文
摘要:
前面很多篇不管CPU、内存、磁盘、语句等等等都提到了索引的重要,我想刚刚开始学数据库的在校学生都知道索引对语句性能的重要性。但他们可能不知道,对语句的重要性就是对系统的重要性! 开篇小测验 开篇小测验 下面这样一个小SQL 你该怎么样添加最优索引 你是否一眼就能看出来呢? 答案将在文章中逐步揭晓~~ 阅读全文
摘要:
重中之重 语句执行顺序 我们先看看语句的执行顺序 如果我没记错这是《SQL SERVER 2005技术内幕--查询》这本书的开篇第一章第一节。书的作者也要让读者首先了解语句是怎么样的一个执行顺序,因为不知道顺序何谈写个好语句? 查询的逻辑执行顺序: (1) FROM < left_table> (3 阅读全文
摘要:
等待分类与解决基本流程: 步骤1.定位问题 系统等待往往能直观的反映出系统问题。通过一些常见的等待类型,同样可以找到系统瓶颈,结合性能计数器往往定位更准确。 步骤1.定位问题 如:系统中存在大量IO类等待,那么可能表示你的磁盘或内存是语句运行缓慢的原因,也是系统的瓶颈所在。 常见的等待类型 CXPA 阅读全文
摘要:
磁盘问题定位基本流程: 磁盘的压力分析,主要使用下面几个性能计数器 (针对单独的物理盘,每个物理磁盘都会有一组): Avg. Disk Read Queue Length 读队列(越小越好,理想值 2 以下,队列越高说明一个操作的响应时间越长) Avg. Disk Write Queue Lengt 阅读全文
摘要:
内存问题定位基本流程: 主要用到的性能计数器 Page life expectancy (数据库计数器:主要显示不被使用的页,将在缓存中停留的秒数 ) Lazy writes/sec (数据库计数器:惰性写入器会在内存有压力且有新的内存需求时触发,成批的刷新“老化的缓冲区”) Page Reads/ 阅读全文
摘要:
CPU问题定位基本流程: 性能计数器诊断 主要用到的性能计数器 %Process Time 全实例 (主要用于查看当前服务器的CPU 情况) %Process Time sqlservr (主要用于查看数据库使用的CPU情况 ) 主要用到的性能计数器 步骤1.排除应用影响CPU 步骤1.排除应用影响 阅读全文
摘要:
记得在自己学习数据库知识的时候特别喜欢看案例,因为优化的手段是容易掌握的,但是整体的优化思想是很难学会的。这也是为什么自己特别喜欢看案例,今天也开始分享自己做的优化案例。 最近一直很忙,博客产出也少的可怜,今天整理了一下自己做过优化或各种方案的客户已经超过100家了,今天分享的案例算是在这些客户中比 阅读全文
摘要:
前言 应用系统承载着大量的业务,随之而来的是复杂的业务逻辑,在数据库上的表现就是有着大量的不同种类的SQL语句。 SQL语句执行的快慢又与阻塞等待有着密不可分的原因。 系统慢可能有很多种原因,硬件资源不足,语句不优化,结构设计不合理,缺少必要的运维方式。所有的这些问题都可以在阻塞与等待中看出端倪,发 阅读全文
摘要:
前言 本文旨在帮助SQL Server数据库的使用人员了解常见的问题,及快速解决这些问题。这些问题是数据库的常规管理问题,对于很多对数据库没有深入了解的朋友提供一个大概的常见问题框架。 下面一些问题是在近千家数据库用户诊断时发现的常规问题,本文分为【常见问题诊断流程】-【常见问题】-【常见问题快速解 阅读全文