如何在 SAP 系统中监控和分析 DB2 UDB 性能
2010-02-04 00:00:00 来源:WEB开发网监控
我们进入 SAP 的 DBA Cockpit,然后在 Performance 的目录下双击 Database, 在 Sorts 的标签内,可以看到当前数据库的排序状况。
图 6. 数据库排序状况
查看原图(大图)
可以从图中看出,共享排序堆的大小为 1676KB, 私有排序堆的大小为 1340KB。如果没有索引满足所取的行的要求顺序,或者 DB2 查询优化器认为排序的代价低于索引扫描,那么就需要在排序堆中进行排序。DB2 的排序分为私有排序和共享排序。私有排序发生在代理的私有代理内存中,而共享排序发生在数据库的数据库共享内存中。我们还可以看出,排序堆溢出次数 1174 次,总的排序次数为 310642 次。
分析
如果数据库分配的排序堆大小不够大,就会出现排序溢出的情况,这样就需要动用临时表空间来辅助排序的进行,由于临时表空间存在于磁盘,这将大大影响排序的速度。理想情况下,排序溢出率 ((Sort overflows * 100) / Total sorts ) 不应该超过 1%。如果这个溢出率过高,那么数据库中很可能发生了大的排序,我们就需要调查出现过度排序的原因。在发现根源之前,一个简易的解决方案是增加 SORTHEAP 的大小。然而,这样做通常是治标不治本并且掩盖了真实的性能问题。比较彻底的解决方案应该是确定引起排序的 SQL 并更改该语句,或通过增加索引来避免或减少排序开销。
并发性和锁的监控
概念
数据库的锁是数据库管理器用来控制应用程序并发访问数据库数据并且保证数据库数据的一致性的重要机制,数据库中行和表都可以上锁。数据库的锁在保证了数据库数据一致性同时也在一定程度上降低了数据库的响应速度。锁等待和死锁是影响数据库相应速度的重要因素,糟糕的应用程序设计和不合理的 SQL 查询计划的生成都会导致锁等待和死锁。
更多精彩
赞助商链接