SNAPTBSP_QUIESCER 管理视图和 SNAP_GET_TBSP_QUIESCER 表函数-检索停顿者表空间快照信息

SNAPTBSP_QUIESCER 管理视图和 SNAP_GET_TBSP_QUIESCER 表函数从表空间快照返回有关停顿者的信息。

重要信息: 不推荐使用 SNAPTBSP_QUIESCER 管理视图和 SNAP_GET_TBSP_QUIESCER 表函数,已将其替换为 MON_GET_TABLESPACE_QUIESCER 表函数-获取有关停顿表空间的信息
根据您使用的是管理视图还是表函数,请参阅下列其中一个部分:

SNAPTBSP_QUIESCER 管理视图

此管理视图允许您检索当前连接的数据库的停顿者表空间快照信息。

与 SNAPTBSP_RANGE 管理视图以及 MON_GET_TABLESPACE 和 MON_GET_CONTAINER 表函数配合使用时, SNAPTBSP_QUIESCER 管理视图提供等同于 GET SNAPSHOT FOR TABLESPACES ON database-alias CLP 命令的信息。

模式为 SYSIBMADM。

请参阅 表 1 ,以获取可返回的完整信息列表。

权限

需要下列其中一个权限才能使用该视图:
  • 对 SNAPTBSP_QUIESCER 管理视图的 SELECT 特权
  • 对 SNAPTBSP_QUIESCER 管理视图的 CONTROL 特权
  • DATAACCESS 权限
  • DBADM 权限
  • SQLADM 权限
  • ACCESSCTRL 权限
  • SECADM 权限
需要下列其中一项才能使用表函数:
  • 对 SNAP_GET_TBSP_QUIESCER 表函数的 EXECUTE 特权
  • DATAACCESS 权限
  • DBADM 权限
  • SQLADM 权限
此外,要访问快照监视器数据,还需要下列其中一个权限:
  • SYSMON
  • SYSCTRL
  • SYSMAINT
  • SYSADM

缺省 PUBLIC 特权

在非限制性数据库中,当自动创建视图时,将向 PUBLIC 授予 SELECT 特权。

示例

检索有关当前已连接数据库的所有数据库成员的已停顿表空间的信息。
SELECT SUBSTR(TBSP_NAME, 1, 10) AS TBSP_NAME, QUIESCER_TS_ID, 
   QUIESCER_OBJ_ID, QUIESCER_AUTH_ID, QUIESCER_AGENT_ID, 
   QUIESCER_STATE, DBPARTITIONNUM 
   FROM SYSIBMADM.SNAPTBSP_QUIESCER ORDER BY DBPARTITIONNUM
下列是从此查询输出的示例。
TBSP_NAME  QUIESCER_TS_ID     QUIESCER_OBJ_ID     QUIESCER_AUTH_ID     ..
---------- --------------...- ---------------...- ----------------...- ..
USERSPACE1                  2                   5 SWALKTY              ..
USERSPACE1                  2                   5 SWALKTY              ..

  2 record(s) selected.
此查询的输出(继续)。
... QUIESCER_AGENT_ID    QUIESCER_STATE DBPARTITIONNUM
... -------------------- -------------- --------------
...                    0 EXCLUSIVE                   0
...                65983 EXCLUSIVE                   1

示例: 确定分区表名称

如果表已分区并保持处于停顿状态,那么表空间标识和表标识的不同值表示为 SYSCAT.TABLES。 这些标识将显示为无符号的简短表示。 为了查找已停顿的表名,您需要首先通过计算从 QEUIESCER_TS_ID 中减去 65536 (最大值) 的表空间标识,然后使用此表空间标识来查找已停顿的表,从而找到已签名的简短表示。 (可在 SYSCAT.DATAPARTITIONS 。)
SELECT SUBSTR(TBSP_NAME, 1, 10) AS TBSP_NAME, 
  CASE WHEN QUIESCER_TS_ID = 65530 
    THEN QUIESCER_TS_ID - 65536  
    ELSE QUIESCER_TS_ID END as tbspaceid, 
  CASE WHEN QUIESCER_TS_ID = 65530 
    THEN QUIESCER_OBJ_ID - 65536 
    ELSE QUIESCER_OBJ_ID END as tableid 
  FROM SYSIBMADM.SNAPTBSP_QUIESCER 
  ORDER BY DBPARTITIONNUM
下列是从此查询输出的示例。
TBSP_NAME     TBSPACEID    TABLEID
------------- ------------ --------
TABDATA       -6           -32768
DATAMART      -6           -32765
SMALL         5            17

  3 record(s) selected.
使用从此查询提供的给定 TBSPACEID 和 TABLEID 从 SYSCAT.TABLES。
SELECT CHAR(tabschema, 10)tabschema, CHAR(tabname,15)tabname 
  FROM SYSCAT.TABLES 
  WHERE tbspaceid = -6 AND tableid in (-32768,-32765)
下列是从此查询输出的示例。
TABSCHEMA    TABNAME
------------ --------
SAMP         ORDERS_RP
SAMP         ORDERS_DMART

  2 record(s) selected.
SELECT CHAR(tabschema, 10)tabschema, CHAR(tabname,15)tabname 
  FROM SYSCAT.TABLES 
  WHERE tbspaceid = 5 AND tableid = 17
下列是从此查询输出的示例。
TABSCHEMA    TABNAME
------------ --------
SAMP         NATION

  1 record(s) selected.

SNAP_GET_TBSP_QUIESCER 表函数

SNAP_GET_TBSP_QUIESCER 表函数返回与 SNAPTBSP_QUIESCER 管理视图相同的信息,但允许您检索特定数据库成员 (所有数据库成员或所有数据库成员的聚集) 上特定数据库的信息。

与 SNAP_GET_TBSP , SNAP_GET_TBSP_PART , SNAP_GET_TBSP_RANGE , SNAP_GET_CONTAINER 表函数配合使用, SNAP_GET_TBSP_QUIESCER 表函数提供等同于 GET SNAPSHOT FOR TABLESPACES ON database-alias CLP 命令的信息。

请参阅 表 1 ,以获取可返回的完整信息列表。

语法

Read syntax diagramSkip visual syntax diagramSNAP_GET_TBSP_QUIESCER(dbname , member)

模式为 SYSPROC。

表函数参数

dbname
类型为 VARCHAR (128) 的输入参数,用于指定与当前连接的数据库在同一实例中的有效数据库名称。 指定目录条目类型为 "Indirect" 或 "Home" 的数据库名称,如 LIST DATABASE DIRECTORY 命令所返回。 指定 NULL 或空字符串以从当前连接的数据库获取快照。
成员
类型为 INTEGER 的可选输入参数,用于指定有效数据库成员编号。 对当前数据库成员指定 -1 ,或对所有活动数据库成员的聚集指定 -2 。 如果 dbname 未设置为 NULL ,并且 member 设置为 NULL,那么将为 member隐式设置 -1 。 如果未使用此输入选项,即仅提供 dbname ,那么将从所有活动数据库成员返回数据。 活动数据库成员是数据库可供应用程序连接和使用的成员。

如果 dbnamemember 都设置为 NULL,那么将尝试从 SNAP_WRITE_FILE 过程创建的文件中读取数据。 请注意,此文件可能是在任何时候创建的,这意味着数据可能不是最新的。 如果不存在具有相应快照 API 请求类型的文件,那么 SNAP_GET_TBSP_QUIESCER 表函数将为当前连接的数据库和数据库成员号生成快照。

权限

需要下列其中一个权限:
  • 对 SNAP_GET_TBSP_QUIESCER 表函数的 EXECUTE 特权
  • DATAACCESS 权限
此外,要访问快照监视器数据,还需要下列其中一个权限:
  • SYSMON
  • SYSCTRL
  • SYSMAINT
  • SYSADM

缺省 PUBLIC 特权

在非限制性数据库中,当自动创建该功能时,将向 PUBLIC 授予 EXECUTE 特权。

示例

检索有关当前已连接数据库的数据库成员 1 的已停顿表空间的信息。
SELECT SUBSTR(TBSP_NAME, 1, 10) AS TBSP_NAME, QUIESCER_TS_ID, 
   QUIESCER_OBJ_ID, QUIESCER_AUTH_ID, QUIESCER_AGENT_ID, 
   QUIESCER_STATE, DBPARTITIONNUM 
   FROM TABLE( SYSPROC.SNAP_GET_TBSP_QUIESCER( '', 1)) AS T
下列是从此查询输出的示例。
TBSP_NAME  QUIESCER_TS_ID     QUIESCER_OBJ_ID     QUIESCER_AUTH_ID     ...
---------- --------------...- ---------------...- ----------------...- ...
USERSPACE1                  2                   5 SWALKTY              ...

  1 record(s) selected.                                                     
此查询的输出(继续)。
... QUIESCER_AGENT_ID    QUIESCER_STATE DBPARTITIONNUM
... -------------------- -------------- --------------
...                65983 EXCLUSIVE                   1

返回的信息

表 1. SNAPTBSP_QUIESCER 管理视图和 SNAP_GET_TBSP_QUIESCER 表函数返回的信息
列名 数据类型 描述或相应的监视元素
snapshot_timestamp TIMESTAMP 获取快照的日期和时间。
tbsp_name VARCHAR(128) tablespace_name - 表空间名称
quiescer_ts_id BIGINT quiescer_ts_id - 停顿者表空间标识
quiescer_obj_id BIGINT quiescer_obj_id - 停顿者对象标识
quiescer_auth_id VARCHAR(128) quiescer_auth_id - 停顿者用户授权标识
quiescer_agent_id BIGINT quiescer_agent_id - 停顿者代理程序标识
quiescer_state VARCHAR(14) quiescer_state-停顿者状态 。 此接口返回基于 sqlutil.h 中的定义的文本标识,并且是下列其中一项:
  • EXCLUSIVE
  • UPDATE
  • SHARE
DBPARTITIONNUM SMALLINT dbpartitionnum -“数据库分区号”监视元素
MEMBER SMALLINT member -“数据库成员”监视元素