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)使用表函数查询