我不是 DBA,而且是 DB2 的新手,所以即使是“显而易见”的答案也欢迎回答这个问题:
我喜欢 db2top,但如果 db2 LUW 上的平均负载很高,有时我无法让它运行。
今天早上我正在研究一个负载平均突然上升的问题,我无法让 db2top 出现,我需要找出发生了什么。
在这种情况下,我能做些什么来找出谁在做什么?我怀疑某人正在运行一个非常糟糕的查询……有没有一种好方法可以在这种情况下即时查找有关性能不佳的 SQL 的信息?
如果平均负载如此之高,是否有任何好的方法可以收集好的、可操作的统计数据,坏 sql 的来源/来源?我知道 db2pd,但我不确定如何有效地使用它,并且在数万行原始数据中苦苦挣扎可能不是解决问题核心的最有效方法。
任何提示或资源?
我也不是 DB2 人。但我的好福很强大。正在寻找
找到大量出色的数据,包括看起来完全符合您要求的数据,这是一篇关于如何学习的编写良好的教程:
http://www.dbisoftware.com/blog/db2_performance.php?id=122
他们还出售一些价格高得离谱的软件,为您做同样的事情。这是多汁的部分:
这将提示您当前正在执行哪些连接以及是否有多个连接处于锁定等待状态。
如果您观察到锁等待,您接下来应该使用以下命令更深入地查看锁争用:
此详细报告将向您显示哪些应用程序连接正在持有锁,哪些正在等待。更复杂的是,一些正在等待的连接可能有其他连接在等待它们。如果您将 LOCKTIMEOUT 设置为 -1(无穷大,永不超时)或设置高于 30 秒,则可能会出现真正的滚雪球效应。
在锁竞争的情况下,您的补救措施通常包括使用以下命令杀死大象: