SNAPBP 管理视图和 SNAP_GET_BP 表函数-检索缓冲池逻辑组快照信息
SNAPBP 管理视图和 SNAP_GET_BP 表函数从缓冲池快照 (尤其是缓冲池逻辑数据组) 返回有关缓冲池的信息。
重要信息: 不推荐使用 SNAPBP 管理视图和 SNAP_GET_BP 表函数,已将其替换为 MON_GET_BUFFERPOOL 表函数-获取缓冲池指标。
根据您使用的是管理视图还是表函数,请参阅下列其中一个部分:
SNAPBP 管理视图
此管理视图允许您检索当前连接的数据库的缓冲池逻辑组快照信息。
与 MON_GET_BUFFERPOOL 表函数配合使用, SNAPBP 管理视图提供等同于 GET SNAPSHOT FOR BUFFERPOOLS ON database-alias CLP 命令的数据。
模式为 SYSIBMADM。
请参阅 表 1 ,以获取可返回的完整信息列表。
权限
需要下列其中一个权限才能使用该视图:
- 对 SNAPBP 管理视图的 SELECT 特权
- 对 SNAPBP 管理视图的 CONTROL 特权
- DATAACCESS 权限
- DBADM 权限
- SQLADM 权限
需要下列其中一项才能使用表函数:
- 对 SNAP_GET_BP 表函数的 EXECUTE 特权
- DATAACCESS 权限
- DBADM 权限
- SQLADM 权限
此外,要访问快照监视器数据,还需要下列其中一个权限:
- SYSMON
- SYSCTRL
- SYSMAINT
- SYSADM
缺省 PUBLIC 特权
在非限制性数据库中,当自动创建视图时,将向 PUBLIC 授予 SELECT 特权。
示例
检索当前连接的数据库的所有缓冲池的数据和索引写入。
SELECT SUBSTR(DB_NAME,1,8) AS DB_NAME,SUBSTR(BP_NAME,1,15)
AS BP_NAME,POOL_DATA_WRITES,POOL_INDEX_WRITES
FROM SYSIBMADM.SNAPBP下列是从此查询输出的示例。
DB_NAME BP_NAME POOL_DATA_WRITES POOL_INDEX_WRITES
-------- --------------- -------------------- --------------------
TEST IBMDEFAULTBP 0 0
TEST IBMSYSTEMBP4K 0 0
TEST IBMSYSTEMBP8K 0 0
TEST IBMSYSTEMBP16K 0 0
TEST IBMSYSTEMBP32K 0 0
5 record(s) selected SNAP_GET_BP 表函数
SNAP_GET_BP 表函数返回与 SNAPBP 管理视图相同的信息,但允许您检索特定数据库成员上的特定数据库的信息,聚集所有数据库成员或所有数据库成员。
与 SNAP_GET_BP_PART 表函数配合使用时, SNAP_GET_BP 表函数提供与 GET SNAPSHOT FOR ALL BUFFERPOOLS CLP 命令等效的数据。
请参阅 表 1 ,以获取可返回的完整信息列表。
语法
模式为 SYSPROC。
表函数参数
- dbname
- 类型为 VARCHAR (128) 的输入参数,用于指定与当前连接的数据库在同一实例中的有效数据库名称。 指定目录条目类型为 "Indirect" 或 "Home" 的数据库名称,如 LIST DATABASE DIRECTORY 命令所返回。 指定空字符串以从当前连接的数据库获取快照。 指定 NULL 值以从与当前连接的数据库相同的实例中的所有数据库获取快照。
- 成员
- 类型为 INTEGER 的可选输入参数,用于指定有效数据库成员编号。 对当前数据库成员指定 -1 ,或对所有活动数据库成员的聚集指定 -2 。 如果 dbname 未设置为 NULL ,并且 member 设置为 NULL,那么将为 member隐式设置 -1 。 如果未使用此输入选项,即仅提供 dbname ,那么将从所有活动数据库成员返回数据。 活动数据库成员是数据库可供应用程序连接和使用的成员。
如果 dbname 和 member 都设置为 NULL,那么将尝试从 SNAP_WRITE_FILE 过程创建的文件中读取数据。 请注意,此文件可能是在任何时候创建的,这意味着数据可能不是最新的。 如果不存在具有相应快照 API 请求类型的文件,那么 SNAP_GET_BP 表函数将为当前连接的数据库和数据库成员号生成快照。
权限
需要下列其中一个权限:
- 对 SNAP_GET_BP 表函数的 EXECUTE 特权
- DATAACCESS 权限
此外,要访问快照监视器数据,还需要下列其中一个权限:
- SYSMON
- SYSCTRL
- SYSMAINT
- SYSADM
缺省 PUBLIC 特权
在非限制性数据库中,当自动创建该功能时,将向 PUBLIC 授予 EXECUTE 特权。
示例
检索当前连接的数据库成员的所有活动数据库的所有缓冲池的总物理和逻辑读取数。
SELECT SUBSTR(T.DB_NAME,1,10) AS DB_NAME,
SUBSTR(T.BP_NAME,1,20) AS BP_NAME,
(T.POOL_DATA_L_READS+T.POOL_INDEX_L_READS) AS TOTAL_LOGICAL_READS,
(T.POOL_DATA_P_READS+T.POOL_INDEX_P_READS) AS TOTAL_PHYSICAL_READS,
T.DBPARTITIONNUM
FROM TABLE(SNAP_GET_BP(CAST(NULL AS VARCHAR(128)), -1)) AS T下列是从此查询输出的示例。
DB_NAME BP_NAME TOTAL_LOGICAL_READS ...
---------- ------------...- -------------------- ...
SAMPLE IBMDEFAULTBP 0 ...
TOOLSDB IBMDEFAULTBP 0 ...
TOOLSDB BP32K0000 0 ...
3 record(s) selected.
此查询的输出(继续)。
... TOTAL_PHYSICAL_READS DBPARTITIONNUM
... -------------------- --------------
... 0 0
... 0 0
... 0 0
