欢迎来到天天文库
浏览记录
ID:8980106
大小:315.50 KB
页数:6页
时间:2018-04-13
《sqlserver大负载的生产环境下的性能优化初识元数据优化》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、SQLServer大负载的生产环境下的性能优化:初识元数据优化相信朋友对SQLServer性能调优相关的知识或多或少都有一些了解。虽然说现在NOSQL相关的技术非常的火热,但是RMDB(关系型数据库)与NOSQL是并存的,并且适用在各种的项目中。在一般的企业级开发中,主要还是RMDB占据主导地位。并且在互联网项目中,也不是摒弃了RMDB,例如MySQL就在很多的互联网应用中发挥着作用。所以,对数据库的调优是个值得深入学习的课题。本系列文章,主要讲述与SQLServer相关的调优知识,希望能够为朋友们带来一些帮助。本篇提纲如下:传统SQLServer调优方式的
2、比较什么是DMVDMV简单示例DMV可以解决哪些问题传统SQLServer调优方式的比较我们平时可以采用很多工具对SQLServer的性能进行诊断分析与调优:性能计数器,SQLServerProfiler和DatabaseEngineTuningAdvisor(数据库引擎优化顾问,简称DTA)。下面我们就来对每一个简单的说明一下,并且讲述各自的优缺点。性能计数器对于使用Windows操作系统的开发朋友,对性能计数器已经不陌生了,最简单的方式就是运行”perfmon”,就可以打开性能监视器的窗口,然后添加对应的计数器,进行监控。如下图所示:性能计数器每隔一段时
3、间就回去收集相关的数据,并且我们还可以把这些数据保存起来,便于以后的分析。优点:使用方便,并且数据收集的比较全面。因为这些操作系统是集成的,不需要额外的花费,就可以直接使用。缺点:数据不够准确,分析数据成本很高,并且对系统的性能产生影响。因为性能计数器在收集数据的时候,要定时的去抓取系统相关的数据,这样,会对性能造成影响,如果抓取的时间间隔越短,那么对系统的影响就越大。另外,对于收集到的数据,也需要有经验丰富的人去分析数据,并且如果要准确的分析出结果,需要收集大量的数据,人力和时间的成本也高。SQLServerProfiler每次谈到SQLServer调优,
4、势必要讲到SQLServerProfiler(为了后续的讲述方便,我们将会把它简称为Profiler)。使用Profiler能够捕获一段时间内SQL执行的每个查询的记录。当数据库服务器上有大量很少运行的查询时,或者有特别的用户查询运行的时候,这个工具很有用。使用Profiler还能捕获到指定时间段内的工作负荷,然后可以在恢复的数据库系统中进行重现。下面就是一个使用Profiler的界面:在使用Profiler的时候,在哪里启动Profiler以及将跟踪的数据保存在何处,是一个特别需要考虑的问题。下面,我们就用来对比地看看各种不同的情况。启动Profiler的
5、位置跟踪文件说明在正在监视的数据库服务器上启动Profiler的跟踪将跟踪的数据文件保存到服务器的文件系统或共享目录中优点:这种方式适用于非生产环境和低负载服务器上的开发和对数据库应用进行性能诊断和跟踪。缺点:加大了服务器的I/O读写操作在本机开启Profiler,连接远程的数据库服务器将跟踪的数据文件保存在本地优点:减小了数据库服务器的I/O操作。缺点:加大了网络传输的压力,占用数据库服务器的网络资源和CPU资源。因为需要将大量的跟踪数据传送到本机,这样占用了网络资源;而数据在传输的时候,需要CPU将之序列化,加大了CPU的操作。数据库引擎优化顾问(DTA
6、)DTA一般需要和SqlServerProfiler结合在一起使用。DTA主要是对Profiler中收集到的数据进行纯数据的综合分析,所以它分析结果的准确性非常依赖于Profiler收集的数据量的多少。Profiler收集的数据越多,那么DTA分析的就越准确,但是这样也对数据库服务器的压力越大,反之。所以,一般不建议在大负载或者生产环境下的数据库服务器上面采用。如果有需要在大负载,或者生产环境下对数据库的性能进行分析与调优,那如何处理?这就是我们本次系列文章要讨论的话题。什么是DMV使用过SQLServer的朋友,对DMV(DynamicManagement
7、Views,动态管理视图)或多或少都有一些了解或者耳闻。其实DMV就是SQLServer内核的元数据,通过对内部的元数据的分析,我们快速而准确获取很多与SQLServer内部相关的信息,从而进行性能分析。当查询在SQLServer中运行时,SQLServer会自动的将此次活动的相关信息记录下来,并且保存在内存之中,这些活动信息,就称之为:DMV。不同类型的DMV信息,有不同的用途,例如,可以相关的DMV来对性能进行诊断,从而提升性能,或对数据库的运行进行监控,或解决故障等。DMV是以SQLServer实例为级别进行保存的。也就说,如果在服务器上面,安装了一个
8、SQLServer,那么此时这个SQLServer就
此文档下载收益归作者所有