不确定是否可行,但是有一种方法,最好是我可以以管理员身份运行的SQL查询,以找出执行了哪些SQL语句,由哪些用户以及他们运行了多长时间,在一段时间内。
答案 0 :(得分:1)
您要的内容通常称为“审核”。您可以在云实例中启用Db2审核工具,例如
create audit policy exec_policy categories execute status both error type normal;
audit database using policy exec_policy;
您不能将语句执行审核限制为仅查询; DML和DDL语句也将被捕获。
然后,您将定期将审核记录从日志移至审核表中:
call audit.update()
并选择数据:
select * from audit.execute
您会找到更多详细信息in the manual。
请注意,由于每个审核事件都是同步记录的,因此审核对性能有一定影响。
很显然,您无法返回过去并捕获已经完成的事件。仅记录启用审核后发生的事件。
答案 1 :(得分:1)
您可以创建或使用现有的event monitor for activities。
表中收集了有关具有很多性能指标的已完成SQL语句的信息。
您可以收集整个数据库,特定WLM对象(工作负载,服务类)甚至特定会话的此类信息。