db2如何实现对表级的数据库查询,变更做记录?

想实现对库中某个表的访问记录,包含查询,插入,修改等。显示全部

想实现对库中某个表的访问记录,包含查询,插入,修改等。

收起
参与9

查看其它 1 个回答atpeace331的回答

atpeace331atpeace331数据库管理员银行

如果您的需求只是 “对某一张表的DML语句、SELECT语句做记录” 的话,有下面几种方案:

  1. 开审计记录
  2. 使用语句的 snapshot 快照接口筛选访问该表的 sql语句
  3. 创建个 SQL语句的事件监视器, “CREATE EVENT MONITOR stmt1.env FOR STATEMENTS WHERE ....” 然后,从事件监视器的记录中搜索该表的sql语句。为了减少事件监视器记录的数据量和潜在的性能损耗,可以针对访问该表的应用程序名创建事件监视器。
  4. 或者,使用 DB2v9.7以后提供的轻量级表函数 MON_GET_PKG_CACHE_STMT 直接从监视内存中检索访问该表的动态和静态sql 语句。
    我比较喜欢第 4 种方法,将包含特定表的sql 语句抓到监控服务器,对数据库服务器的压力小。审计、事件监视器在数据库服务器上记录,会影响性能,不太喜欢。
银行 · 2019-04-10
  • 目前是使用对单表的审计功能,但不知道对性能影响如何,能否帮解答下,谢谢
    2019-04-10
  • 你可以测试下 “开审计”前后访问该表的应用性能差异变化,就可以知道了。但是,肯定会有性能损耗的,至于性能下降多少,你得根据具体环境进行性能测试。
    2019-04-10

回答者

atpeace331
数据库管理员银行

atpeace331 最近回答过的问题

回答状态

  • 发布时间:2019-04-10
  • 关注会员:3 人
  • 回答浏览:2125
  • X社区推广