列出 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 查询

IBM Cloud 上的 Db2 的 SQL 格式是啥?

使用 PHP Cloud Foundry 应用程序连接到 IBM zOS 系统/DB2 表

sh Db2 - 列出HWM /使用的页面差异