数据库性能分析跟踪变化工具:Performance Analysis

      

      在2004年,我能够在示范机中出现的内存故障影响应用性能之前快速地发现它。我们使用这个示范机向客户介绍我们的产品解决方案,所以要求这个示范机有个好的性能。这个机器有两条512M的内存条共计1G的内存。其中一条内存条是完全坏了,这使得系统运行缓慢。首先,我没想到内存坏了。毕竟,我加载"demo"数据和运行一些报表,并且认为虽然系统看起来比平常运行慢多了,但还是可以解释为什么性能下降了。之后,我再一次确认这机器不能合理的解释它的运行状况,因为正常情况下它运行很快,这时我开始怀疑系统是否负荷过载。这个提示我检查一下我的变化跟踪系统(我使用其中一个在常规基楚上),看看是否有重要的变化。毕竟,昨天系统还是运行良好的。什么变化了呢?当我调查监测系统,它立即报告其中一个512M内存条坏了。我通过使用Unix OS命令行很快地确定这个信息,并且真的系统不再注册RAM为1G了,而是512M。这解释了为什么"示范机运行缓慢"。那个下午,我们的MIS部门用一个新的内存条把那个坏的换了下来,准备着再给用户介绍产品。

      我使用什么样的变化跟踪来诊断和解决这个问题呢?答案是:Quest Central Performance Analysis,一个全面的变化跟踪和历史的分析工具,用于帮助解决性能和与性能相关变化的问题。

 

使用性能分析跟踪变化

 

      Quest Central's Performance Analysis提供一套全面的变化跟踪工具,它能自动地跟踪和报告发生在Oracle和Microsoft SQLServer数据库环境中的变化。变化跟踪工具与Performance Analysis监测工具集成在一起,提供以下功能:

       定期地跟踪环境,配置和数据库对象的变化;这些变化可能影响系统和数据库性能

       使用户能够把变化的出现和数据库活动关联一起,用于识别影响系统性能的变化

       包括选择常见输出格式的报表,计划和变化种类过滤器,变化种类过滤器能使用户能够重新定义在任一个给定时间周期中显示一系列的变化。

 

IT是怎样工作的

 

      Performance Analysis Change Tacking没有试图审计系统变化,而是集中于那些以后可能影响系统性能的变化。例如,如果在日常变化跟踪断点之间创建和删除索引,表或数据库对象,这时这些对象的变化将记录在日常变化跟踪报表中。因此从日常的观点看它们对于性能将没有什么影响,只有间隔几天去看才能看出影响。但如果在开始变化跟踪时存在索引,并且在下个变化跟踪事件发生之前被删除了,那么索引删除将被记录在变化跟踪系统中,因为它以后可能影响性能。

 

      事例1-Microsoft SQL Server数据库上的Index Drop

 

      在下面的例子中,由于不小心把索引从数据库系统中删除了。让我们回顾一下Performance Analysis将如何发现,诊断问题,并且是如何使DBA采取措施解决这些问题的。

      但首先让我们快速地看看Performance Analysis监测产品,这样能帮助你更好地理解例子中用到的截图。如果你已经熟悉Quest Central Performance Analysis,那可以跳过下面的例子。

      Performance Analysis是一个功能全面的数据库产品工具,它具有高级在线缩放,钻取和可产生报告特点的易用界面,使DBA可视化分析它们任一时刻的应用工作量。Performance Analysis利用一个低负载的数据收集机制,收集数据库服务器操作系统度量值,数据库会话统计数据,Top SQL,等待事件和IO性能度量值,给DBA提供横跨整个数据库服务器平台的特有性能视图。Performance Analysis也包括了一个日常Change Tracking模块,它通过在工作活动图表中描绘数据库系统变化,把变化和性能关联在一起。这使DBA能够可视化地确定变化和数据库性能之间的可能关系。Performance Analysis在ERP环境中也提供特定的好处,比如Oracle Application E-Business Suite和PeopleSoft。例如,它通过ERP种类报告性能,这些种类像用户,应用,程序,和报表等,使DBA更好的理解谁位于消费者的顶层,哪个用户或程序引起系统响应缓慢。Performance Analysis使DBA能够趋向于性能,在负责改善整个应用时,确保SLA位于SQL和程序层,排除SQL和锁问题确保快速地解决应用问题。下图显示了Performance Analysis History Area。

      1. 历史区域以流行的类型(USER,PROGRAM,SQL,和其它)提供性能数据片断。其它区域是RECENT和REPORTS。

      2. 由Performance Analysis跟踪的工作量等待事件类型。

      3. 简单易用的滚动条和向下钻取的能力使用户能够在任何时候都可以快速地分析。

      4. Wait event饼图使用户能够下钻到等待事件种类和回顾详细的资源使用情况。

      5. 通过点击列名对改列的性能数据进行排序。

      在这个例子中,对于所选择的事件段,已经发生了一些变化,正如下图中颜色指示器所指出的。使用Performance Analysis,DBA能够快速地确定图中提到的最近IO和Latch活动频繁是否由最近的变化引起的。

      这个揭示了Ron Barret运行一个新脚本,这个脚本删除了不需要的索引。Ron使用User-Defined变化机制输入变化到Performance Analysis Change Tracking系统。正如这篇文章前面显示的,User-Defined变化跟踪使公司能够跟踪发生在它们系统中的重要任务和项目。

Performance Analysis数据库性能

      在下面的图中,运行Ron脚本几分钟后,在ORDER_LINE表中的索引被删除了。这单独不应该引起报警。毕竟,假设Ron脚本用于清理不再使用的索引,所以我们应该看到被删除的索引。

      要查看所有被Ron脚本删除的索引,我们能够发现他的工程在位于History Area中的"program",接着选择与"SQL Statement"相关的尺寸。这将在"Change Tracking"标签中显示所有由Ron脚本删除的索引。

Performance Analysis数据库性能

      在下面的图中,SQL语句的执行计划相对于ORDER_LINE表的运行已经变化。SQL执行计划的变化可能是由于索引被删除了。

Performance Analysis数据库性能

      点击彩色的气球,指出SQL执行计划已经变化,显示执行计划之前和之后对于相关的SQL。下面这种图指出索引的删除对这个SQL查询的性能产生了负面影响。以前,SQL语句使用索引和执行"Index Seek"选项。现在SQL语句使用全局"Table Scan",结果是SQL计划用于这个操作的成本从0.67上升到了156.90,并且SQL执行时间全部增长。应采取的行动:要求Ron恢复删除的索引,进一步的调查研究,为什么这个索引会被删除

Performance Analysis数据库性能

      在这个例子中,我们已经显示了跟踪与变化相关的性能,这些变化能够影响整个数据库系统的整个响应时间,并且能够帮助DBA识别这些变化是否会引起数据库活动的增长。有时候,这些工作量增长将是有理由的,但这种情况,DBA能够快速确定删除的索引导致SQL性能下降和删除的索引应该恢复。跟踪"有计划地"变化和这些变化是如何影响数据库和应用性能是有价值的工具,它能用于证明改善系统和应用性能的调优努力是否正确,并且给管理部门显示了IT调优结果的好处。

 

事例2-Oracle 数据库上参数的变化

 

      在下面的例子中,OLAP系统执行缓慢,并且已经被确定大量的IO资源等待是由于不正常的IO活动频繁引起的。

      在这个例子中,DBA再一次检查系统的数据库参数,确定数据库参数star_transformation_enabled没有设置为TRUE,它是特定类型应用的关键性能设置。

      变化完这个参数值,并且监测一下对于数据库系统性能的改善,DBA能够整理出一个报告,说明参数的变化极大地改善了IO响应,最终消除了IO等待。

Performance Analysis数据库性能

 

结论

 

      在今天竞争的市场中,公司正在寻找附加方法用于很好地调优它们的业务过程,并且正在转向它们的IT部门以获得额外的收获。现代化的公司把它们传统的IT成本中心转变为可行的竞争优势。方法很简单:通过引进更好的监测,报警和审计解决方案,IT专家能够主动地提出并解决性能问题,改善整个系统健康。通过历史地跟踪和分析他们数据库环境中的变化,他们能过很好地理解这些变化对他们系统的影响。这些信息给IT管理部门用于内部项目和有计划地变化事件执行正确的ROI分析提供了所需要的数据。


 

(北京铸锐数码科技有限公司 www.InnovateDigital.com

Taxonomy upgrade extras: