列出 DB2 Warehouse on Cloud 中的 SQL 语句历史记录
Posted
技术标签:
【中文标题】列出 DB2 Warehouse on Cloud 中的 SQL 语句历史记录【英文标题】:List History of SQL Statements in DB2 Warehouse on Cloud 【发布时间】:2019-04-03 12:21:34 【问题描述】:不确定这是否可行,但有没有一种方法,最好是我可以作为管理员运行的 SQL 查询,以找出执行了哪些 SQL 语句、由哪些用户执行以及它们运行了多长时间,一段时间内。
【问题讨论】:
您正在运行哪个版本/类型的 DB2? @MichaelS。我正在使用类型:企业计划 - 单节点 如果你只寻求短期的,如果你的authid有相关的授权,并且你的工作量配置得当,MON_GET_ACTIVITY表函数对你有帮助吗? 【参考方案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。
请注意,审计具有一定的性能影响,因为每个审计事件都是同步记录的。
显然,您无法回到过去并捕捉已经完成的事件。只有启用审核后发生的事件才会被记录。
【讨论】:
【参考方案2】:您可以创建或使用现有的event monitor for activities。 其表中收集了具有大量性能指标的已完成 SQL 语句的信息。 您可以收集整个数据库、特定 WLM 对象(工作负载、服务类)甚至特定会话的此类信息。
【讨论】:
以上是关于列出 DB2 Warehouse on Cloud 中的 SQL 语句历史记录的主要内容,如果未能解决你的问题,请参考以下文章
Db2 Warehouse:如何使用 V2 或 V3 REST 接口加载表数据
Db2 Warehouse:如何使用 SSL 与 ibm 数据服务器驱动程序进行连接
如何在 ibm_cloud 上的 db2 中编写 sql 查询