《第6部分 系统监视与性能调整.doc》由会员分享,可在线阅读,更多相关《第6部分 系统监视与性能调整.doc(15页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、理论部分一. SQL性能监视1.性能监视的过程首先要排除因为事物死锁导致的问题,然后是数据组织不合理导致硬盘I/O过多的问题,接着考虑是否是内存过小导致硬盘I/O过多的问题,下一步是排除查询不够优化的性能问题,最后是排除CPU性能过低的问题2.SQL活动目录监视器活动监视器显示活动的摘要信息,通过活动监视器可以发现活动是否被堵塞而导致性能低下,可以发现内存正在运行的活动占用的内存情况,磁盘I/O的情况3.系统监视器系统监视器也叫性能监视器,不仅可以监视整个系统的情况,而且还可以监视运行的SQL Server实例的运行情况(1)SQL Server关键性能对象SQL Server提供了对象和计数
2、器,可以在性能监视器中使用它们监视SQL Server的活动,监视的对象可以是任何SQL Server资源,并且每个对象有一个或多个计数器,用于收集所要监视对象的各方面信息,例如:SQL Server的对象包含名为Date File(s) Size和Log File(s) Size的计数器,一些对象会以一个,而某些对象只有一个实例(2)系统性能对象CPU;磁盘;内存(3)设置监视器可以直接打开性能监视器,在性能监视器中添加计数器,但是如果需要跟踪的时间较长且需要事后进行分析,应该捕获系统性能对象的数据到日志中,步骤如下:在性能监视器窗口中,选择计数器日志,右击选择新建日志设置,输入名称确定,接
3、下来就是添加计数器和日志路径和计划任务的一些设置,完成后,在性能监视器窗口中,右击刚建立的日志,选择启动,切换到系统监视器,在工具栏里打开系统属性窗口,选择日志文件,设置日志文件显示的时间范围和计数器的颜色与线型确定即可4.SQL Server Profiler通过使用SQL Server Profiler可以跟踪SQL Server和数据库的活动,可以执行的操作有:创建基于可重用模板的跟踪当跟踪运行时监视跟踪记录建跟踪记录存储在表中根据需要启动,停止,暂停和修改跟踪记录重播跟踪记录(1)定义跟踪:跟踪信息分别记录到不同的时间类中,时间类中包括一组相关的事件,事件是指在SQL Server实例
4、中发生的操作可以模板用于跟踪,默认提供3个模板(2)示例:打开SQL Server Profiler,在菜单栏中选择,文件新建跟踪在跟踪属性窗口中,进行相应的设置,确定即可在SQL Server management studio窗口中执行语句当跟踪完成后,使用SQL Profiler打开跟踪文件二. 使用数据库引擎优化顾问1.数据库引擎优化顾问介绍在不精通数据库结构和SQL Server的情况下,可以通过数据库引擎优化顾问对数据库负荷提出优化建议,在通过系统管理员的修改,使得数据库达到一个比较优化的状态,使用数据库引擎优化顾问时要求先输入工作负荷文件,工作负荷文件可以是优化的SQL语句或者是
5、SQL Profiler跟踪文件或者数据表,可以在运行引擎优化顾问之前,是有SQL Profiler记录一些事件,然后将跟踪结果存储为文件以供数据库引擎优化顾问使用(2)使用数据库引擎优化顾问优化数据库在SQL Server Profiler中新建跟踪,得到一个文件,称为负荷文件跟踪显示执行的SQL语句打开数据库引擎优化顾问,新建会话,导入刚得到的负荷文件设置负荷文件选择分析的数据库和数据表设置优化选项优化顾问给出建议和建议总结报告三. 数据库性能优化的常见问题1.事务占用资源的时间过长,造成阻塞(1)如何监视事务通过SQL Server活动监视器,监视事务是否被阻塞如果被阻塞,查看那个进程被
6、阻塞分别查看阻塞和被阻塞进程的详细命令查看访问的数据库表和锁记录详细命令和数据对象,并提供给公司开发人员杀掉阻塞的进程(2)工作中常见的情况多表联接查询在查询期间会占用多个表,容易导致锁定事务需要占用太多资源,容易出项多个事务互相占用对方资源的现象,从而导致死锁(3)解决办法避免多表查询SQL语句使用同一规范,特别是访问表的顺序哟啊保持一致对于更新频繁的场合,不允许执行查询操作2.不合理的数据文件设置,影响事务处理的性能当事务处理产生大量数据的时候,数据文件的大小设置不合理导致数据文件不断地扩展,影响事务处理的性能,该如何去做(1)如何监视通过SQL Server Database下的文件Fv
7、ile Seze计数器可以实现,但必须的结合实际情况,需要监视的对象参数如下:数据文件:性能对象(sql server databases);计数器(data file(s) size);范例(选择要监视数据库)日志文件:性能对象(sql server databases);计数器(log file(s) size); 范例(选择要监视数据库)Tempdb: 性能对象(sql server databases);计数器(data file(s) size); 范例(选择要监视数据库为Tempdb)(2)常见解决的办法a.常见的文件大小设置不合理需要关注的情况如下:当数据维护操作比较频繁的时候,
8、日志文件增长的回非常快查询操作比较频繁的时候,Tempdb增长得会比较快大量地插入数据时,数据文件会增长得比较快b.不要设置数据文件的自动收缩3.磁盘数据组织不合理导致磁盘的访问次数过多数据库的磁盘访问时按照页来访问数据的,无论访问数据再少都是以页为单位读取的,所以把经常访问的数据放在一起,减少读取硬盘的次数(1)如何监视通过监视Avg.Disk Queue Length计数器的值来检测磁盘子系统中的瓶颈,如果Avg.Disk Queue Length计数器的值过高,则可能是内存不够导致访问磁盘次数过多,页可能是数据组织不合理导致访问磁盘次数过多(2)常见的解决办法把经常写的数据放置在不同的磁
9、盘上,因为是不同德磁盘控制器,所以可以同时写数据,提高写数据的并行性将经常在一起被多表查询的表方在同一文件组上(是SQL中一个或多个文件的集合)将事务日志文件创建在物理上单独的磁盘或RAID设备上,将tempdb数据库放在快速I/O子系统上以确保好的性能使用DDBC PINTABLE将关键表常驻内存中语法如:DDBC PINTABLE (db_id,table_id)Db_id可以通过函数DB_ID(数据库名称)获得Table_id可以同过函数Bbjict_ID(表名)获得4.给数据库Tariffsmall设置文件组SECOND,并将表,索引和其他数据对象都存放到该文件组的位置,步骤如下:选择
10、数据库属性,添加文件组打开数据库属性,选择文件设置文件otherfile到文件组SECOND选择表属性,将表存储到文件组中实验一:建立监视并跟踪记录到文件实验过程:1. 添加计数器2.建立监视日志文件monitariffall,并添加计数器3.启用monitariffall4.启动监视计算器5.打开查询分析器,运行脚本6.在SQL Server活动监视器里查看进程状态,应用程序,网络地址(在执行代码前打开活动监视器)试验二:打开监视文件,分析运行结果试验过程:1运行脚本2结果如下试验三:使用SQLProfiler跟踪系统运行,优化系统实验过程:1打开SQLProfiler,建立跟踪文件tracetariffsmall2.打开查询分析器,运行脚本3在SQLProfiler查看如下4.打开数据库引擎优化顾问,文件选择tracetariffsmall,表选择accountbill和historyacc_ountbill.运行优化,并记录追踪结果5.得到优化方案,如下