【DB2】表函数监控数据库

时间:2023-12-30 10:07:20

1.快照表函数

在DB2 V9中能够使用SQL表函数捕获快照,以下是部分表函数列表:

快照表函数                           返回的信息

SNAPSHOT_DBM             数据库管理信息

SNAPSHOT_AGENT            返回代理程序信息

SNAPSHOT_CONTAINERS       返回表空间容器信息

SNAPSHOT_TBS              返回表空间的信息

SNAPSHOT_DATABASE         数据库信息(至少一个应用程序连接至数据库时)

SNAPSHOT_APPL             连接至分区上数据库的应用程序上的有锁等待的应用程序信息(需要监视器开关)

SNAPSHOT_APPL_INFO        每个连接至分区上数据库的应用程序的常规应用程序标志信息

SNAPSHOT_LOCKWAIT         有关锁等待连接至分区上数据库的应用程序的应用程序信息

SNAPSHOT_STATEMENT        有关连接至分区上的数据库的应用程序的语句的应用程序信息

SNAPSHOT_TABLE            每个表的活动信息(需要监视器开关)

SNAPSHOT_LOCK             数据库级别上的锁信息(需要监视器开关)

SNAPSHOT_TBS              表空间信息(需要缓冲池开关)

SNAPSHOT_TBS_CFG          表空间的配置信息

SNAPSHOT_BP               数据库缓冲池的活动计数器

SNAPSHOT_DYN_SQL          来自用于数据库的SQL语句高速缓存的某个时间点的语句信息

以上只是部分表函数信息,想要返回所有的表函数信息,使用下面语句即可获取:

db2 "select distinct funcname from syscat.functions where funcname like 'SNAPSHOT%'"

2.捕获快照表函数

例子为捕获表活动数据的快照

语法示例:

select * from table(<FunctionName>(<DBName>,<PartitionNum>)) as CorrelationName

  • FunctionName为表函数
  • DBName指从哪个数据库的快照监控中收集
  • PartitionNum设置为-1,表示收集当前连接的快照信息,设置为-2,表示获取所有分区的快照监视器数据

特殊说明:如果收集当前数连接的快照信息,可以将DBName设置为CAST(NULL AS CHAR)

(1)连接至数据库

db2inst1@Linux:/qinys> db2 connect to qindb user db2inst1 using db2inst1

Database Connection Information

Database server        = DB2/LINUXX8664 9.7.6
SQL authorization ID   = DB2INST1
Local database alias   = QINDB

(2)激活TABLE监视器开关

db2inst1@Linux:/qinys> db2 update dbm cfg using DFT_MON_TABLE ON
DB20000I  The UPDATE DATABASE MANAGER CONFIGURATION command completed
successfully.

(3)使用表函数查询

【DB2】表函数监控数据库