作者·2012-10-18 23:57
·数据仓库监控
字数 903阅读 1325评论 0赞 0
监控性能较差的语句
1)‘性能较差’的定义:
其实在数据仓库中很难对‘性能较差’下一个十分明确的定义。因为一个汇总很多数据的报告在数据仓库中运行几个小时以上也是很正常的,并不能说明它性能差。
对我来说,下面的情况可以视为‘性能较差’
• 语句运行失常。
• 语句迅速挤占大量资源,造成系统资源紧张。
在数据仓库中一般会存在以下几种查询
1. ETL的查询
2. Business经常要定期运行的报告
3. Business和系统维护人员随意运行的ad-hoc 查询
第1,2类查询往往是由开发人员编写的,一般会经过一定的性能调试,所以对其运行时间的长短有一个预期。如果运行时间突然大大超出预期,我称之为‘运行失常的语句’。
第3类查询的编写随意性很强,很多时候不是出自专业技术人员之手,所以其运行有可能变成脱缰的野马,无法控制,从而造成‘迅速挤占大量资源’。
2)有了‘性能较差’的定义,就可以谈监控了。
• 对于‘语句运行失常’很难做到预警,因此我们更多的是希望问题发生后,可以回到发生现场,找出问题症结所在。
所以会建立一套监视系统,对CPU, I/O, process,dbm, db, application, lock等定期进行快照并留档。
• 对于‘挤占大量资源’的ad-hoc语句,由于其随意性临时性,很难也不值得对其做进一步的性能调整,因此监控的目的是避免它对系统造成伤害,避免它影响其它重要查询的运行。
所以会使用workload manager或自制script来监控其运行时间,消耗资源。当时间和资源超过某个预设的threshold,就将它force掉。
如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!
赞0
添加新评论0 条评论