如果您的需求只是 “对某一张表的DML语句、SELECT语句做记录” 的话,有下面几种方案:开审计记录使用语句的 snapshot 快照接口筛选访问该表的 sql语句创建个 SQL语句的事件监视器, “CREATE EVENT MONITOR stmt1.env FOR STATEMENTS WHERE ....” 然后,从事件监视器的记录中...
显示全部如果您的需求只是 “对某一张表的DML语句、SELECT语句做记录” 的话,有下面几种方案:
- 开审计记录
- 使用语句的 snapshot 快照接口筛选访问该表的 sql语句
- 创建个 SQL语句的事件监视器, “CREATE EVENT MONITOR stmt1.env FOR STATEMENTS WHERE ....” 然后,从事件监视器的记录中搜索该表的sql语句。为了减少事件监视器记录的数据量和潜在的性能损耗,可以针对访问该表的应用程序名创建事件监视器。
- 或者,使用 DB2v9.7以后提供的轻量级表函数 MON_GET_PKG_CACHE_STMT 直接从监视内存中检索访问该表的动态和静态sql 语句。
我比较喜欢第 4 种方法,将包含特定表的sql 语句抓到监控服务器,对数据库服务器的压力小。审计、事件监视器在数据库服务器上记录,会影响性能,不太喜欢。
收起