随笔分类 - 06.性能监控与故障排除
Performance Monitoring & Troubleshooting
摘要:上周微软发布了SQL Server的历史性公告:SQL Server 标准版的SP1提供你和企业版一样得功能。你不信的话?可以点击这里。 这改变了整个关系数据库市场,重重打击了Oracle。在今天的文章里我想具体谈下这个令人激动的发布——标准版和企业版之间还是有区别的,在某些情况下还是需要企业版。
阅读全文
摘要:在SQL Server交流会,经常被问到的一个问题,SQL Server在几个NUMA节点上运行。因此,在今天的文章里,我想向你展示下几个方法和技术,找出你的SQL Server有几个NUMA节点。 需进一步了解NUMA,我推荐你看下NUMA Deep Dive Series from Frank
阅读全文
摘要:经常被问到的一个问题:对于SQL Server,我需要多少内存?这个问题还是有同样的典型的“看情况而定”答案。在今天的文章里,我们来详细看下“看情况而定的”的不同方面。 全新SQL Server安装 首先,对于全新的SQL Server安装,我想谈下你如何估计你需要的内存大小。然后我会详细谈下你如何
阅读全文
摘要:在实际工作中,我经常看到——有时人们定期重启SQL Server!我们都希望接受,SQL Server的定期重启并不真的是一个好主意。但在今天的文章里,我想进一步讨论下,当你定期重启你的SQL Server时,有哪些副作用。 缓冲池(Buffer Pool) 一旦你重启你的SQL Server,你会
阅读全文
摘要:我被反复问到的一个问题是,通过各个DMV和DMF返回的数据,SQL Server在哪里存放? 很多人认为这类数据会存放在像mater这样的系统数据库里。但事实并非如此。各个系统数据库(master和msdb)只存储配置数据。那么现在的问题是:DMV或DMF的数据存放在哪里呢? 这个问题的答案非常简单
阅读全文
摘要:我已经写了好几次内存中OLTP的文章和”为什么我还不推荐内存中OLTP给用户”。今天我想进一步谈下内存中OLTP背后的内存需求,还有如果你内存不够的话会发生什么。 一切都与内存有关! 我们都知道很久之前有个名人说过对于任何人,640K的内存应该足够了。他错了!对于内存中OLTP,内存需求非常高: 哈
阅读全文
摘要:在你的DBA职业里,你们谁有用过DBCC INPUTBUFFER命令,来获得已经提交到SQL Server特定会话的最后SQL语句?请举手!大家都用过! 我们都知道DBCC命令有点尴尬,因为你不能在T-SQL查询里调用它们,你也不能关联它们的输出到其它DMV/DMF。例如你想为每个用户会话返回最后一
阅读全文
摘要:SQL Server 2016真的让人眼前一亮。几天前微软就提供了RCO(候选发布版)版本的下载。我已经围观了一圈RCO版本,其中一个最拽的功能是数据库范围内的配置(Database Scoped Configuration),在今天的文章里我想谈谈它。补充几句:装好之后,居然发现没有SSMS,崩溃
阅读全文
摘要:作为一个DBA,排除SQL Server问题是我们的职责之一,每个月都有很多人给我们带来各种不能解释却要解决的性能问题。我就多次听到,以前的SQL Server的性能问题都还好且在正常范围内,但现在一切已经改变,SQL Server开始糟糕, 疯狂的事情不能解释。在这个情况下我介入,分析下整个SQL...
阅读全文
摘要:在今年的8月份,我写了篇文章,介绍了我还不推荐用户使用内存OLTP的各个理由。近日很多人告诉我,他们有一些性能的问题,并考虑使用内存OLTP来解决它们。众所皆知,在SQL Server里内存OLTP是个非常特别的技术,在很多情况下并不适用,但这是在SQL Server 2014里的首次实现,它有很多...
阅读全文
摘要:几个星期前,SQL Server 2016的最新CTP版本已经发布了:CTP 2.4(目前已经是CTP 3.0)。这个预览版相比以前的CTP包含了很多不同的提升。在这篇文章里我会谈下对于SQL Server 2016,TempDb里的显著提升。TempDb定制在SQL Server 2016安装期间...
阅读全文
摘要:我们每个人都知道是个不好的做法,但有时我们还是要这样做:我们执行SELECT * 语句。这个方法有很多弊端:你从你的表里返回每个列,甚至后期加的列。想下如果你的查询里将来加上了VARCHAR(MAX)会发生什么……对于指定的查询,你不能定义覆盖非聚集索引来克服执行计划里的查找(lookup)运算符,...
阅读全文
摘要:哇哦,光阴似箭!欢迎回到性能调优培训的最后一期。今天我会详细讲下SQL Server里的数据库维护,尤其是索引维护操作,还有如何进行数据库维护。索引维护作为一个DBA,数据库维护是你工作中非常重要的一部分,让数据库获得最佳性能。一个SQL Server数据库就像一辆车:它需要经常的检查来保证运行没有...
阅读全文
摘要:在今天的性能调优培训里我们讨论下TempDb——SQL Server的公共厕所,在SQL Server里我是这样描述它的。我们的每个人都会经常使用TempDb。有些人直接使用它,有些人不直接使用它。今天我想给你概括介绍下SQL Server里TempDb的用法,另外我会给你为了更好的性能,如何配置T...
阅读全文
摘要:大家好,欢迎回到性能调优培训的第22周。上周我谈了SQL Server里的基线,今天我们继续,谈下SQL Server里的等待和I/O延迟统计。当我进行SQL服务器健康检查时,我总会使用这2个维度全局掌握下SQL Server的健康状况。等待统计(Wait Statistics)在SQL Serve...
阅读全文
摘要:大家好,欢迎来到性能调优培训的最后一个月。在过去的5个月里,我们谈了SQL Server的各种性能相关的话题,包括性能调优的技术和问题。但当在你面前,SQL Server没有按你预想的运行时,你会怎么办?为了帮你处理这个情况,今天我们会谈到下性能监控技术,下周我们会详细谈到SQL Server里所谓...
阅读全文
摘要:我经常会被反复问到这样的问题:”我有一个性能很差的SQL Server。我如何找出最差性能的查询?“。因此在今天的文章里会给你一些让你很容易找到问题答案的信息向导。问SQL Server!SQL Server的一个优点是它本身能回答几乎所有你的问题,因为SQL Server在各个DMV和DMF里存储...
阅读全文
摘要:在今天的文章里我想详细谈下SQL Server里的统计等待(Wait Statistics),还有她们如何帮助你立即为什么你的SQL Server当前很慢。一提到性能调优,对我来说统计等待是SQL Server了最重要的概念。查询为什么等待在SQL Server里每次你执行1个查询,查询总需要等待。...
阅读全文
摘要:嗯,有些人在看玩这篇文章后会恨我,但我还是要说。1个月来我在内存中OLTP这个里领域里做了大量的工作,很多用户都请求使用这个惊艳的新技术。遗憾的是,关于内存中OLTP没有一个是真的令人激动的——看完你就知道了。内存中OLTP有问题么?没有!真的!我喜欢这个惊艳的新技术,但我还不能推荐它给任何用户。就...
阅读全文
摘要:在今天的文章里,我想详细讨论下内存中OLTP里的事务日志如何写入事务日志。我们都知道,对于你的内存优化表(Memory Optimized Tables),内存中OLTP提供你2个持久性(durability)选项:SCHEMA_ONLYSCHEMA_AND_DATA今天我不想更多讨论SCHEMA_...
阅读全文