SQLServer大负载的生产环境下的性能优化:初识元数据优化大负载的生产环境下的性能优化:初识元数据优化
相信朋友对SQL Server性能调优相关的知识或多或少都有一些了解。虽然说现在NOSQL相关的技术非常的火热,但是
RMDB(关系型数据库)与NOSQL是并存的,并且适用在各种的项目中。在一般的企业级开发中,主要还是RMDB占据主导地
位。并且在互联网项目中,也不是摒弃了RMDB,例如MySQL就在很多的互联网应用中发挥着作用。所以,对数据库的调优
是个值得深入学习的课题。本系列文章,主要讲述与SQL Server相关的调优知识,希望能够为朋友们带来一些帮助。
本篇提纲如下:
传统SQL Server调优方式的比较
什么是DMV
DMV简单示例
DMV可以解决哪些问题
传统SQL Server调优方式的比较
我们平时可以采用很多工具对SQL Server的性能进行诊断分析与调优:性能计数器,SQL Server Profiler和Database Engine
Tuning Advisor(数据库引擎优化顾问,简称DTA)。下面我们就来对每一个简单的说明一下,并且讲述各自的优缺点。
性能计数器
对于使用Windows操作系统的开发朋友,对性能计数器已经不陌生了,最简单的方式就是运行”perfmon”,就可以打开性能监
视器的窗口,然后添加对应的计数器,进行监控。如下图所示:
性能计数器每隔一段时间就回去收集相关的数据,并且我们还可以把这些数据保存起来,便于以后的分析。
优点:使用方便,并且数据收集的比较全面。因为这些操作系统是集成的,不需要额外的花费,就可以直接使用。
缺点:数据不够准确,分析数据成本很高,并且对系统的性能产生影响。因为性能计数器在收集数据的时候,要定时的
去抓取系统相关的数据,这样,会对性能造成影响,如果抓取的时间间隔越短,那么对系统的影响就越大。另外,对于
收集到的数据,也需要有经验丰富的人去分析数据,并且如果要准确的分析出结果,需要收集大量的数据,人力和时间
的成本也高。
SQL Server Profiler
每次谈到SQL Server调优,势必要讲到SQL Server Profiler(为了后续的讲述方便,我们将会把它简称为Profiler)。使用
Profiler能够捕获一段时间内SQL执行的每个查询的记录。当数据库服务器上有大量很少运行的查询时,或者有特别的用户查
询运行的时候,这个工具很有用。使用Profiler还能捕获到指定时间段内的工作负荷,然后可以在恢复的数据库系统中进行重
现。
下面就是一个使用下面就是一个使用Profiler的界面:的界面: