显示 IQ 主存储库的版本使用情况。
sp_iqversionuseSAP IQ 服务器和 Multiplex。
您必须具有系统过程的 EXECUTE 特权。您还必须具有 MONITOR 系统特权。
sp_iqversionuse 系统存储过程可帮助解决由于存在多个表版本而导致的数据库使用存储空间过多的情况。
如果出现空间不足状况,或者 sp_iqstatus 显示 Multiplex 服务器中有较高百分比的主块正在使用时,请运行 sp_iqversionuse 查明正在使用哪些版本以及通过释放这些版本可以恢复的空间大小。
该过程为版本的每位用户生成一行。先在协调器上运行 sp_iqversionuse 以确定应释放哪些版本,以及当版本不再使用时要释放的空间大小(以 KB 为单位)。连接至协调器的用户的连接 ID 显示在 IQConn 列中。由辅助服务器引致的版本使用显示为连接 ID 为 0 的辅助服务器名。
空间大小用一个范围来表示,因为实际大小通常取决于释放的其它版本。释放的实际空间大小可以是 MinKBRelease 和 MaxKBRelease 之间的任意一个值。最旧版本的 MinKBRelease 总是等于 MaxKBRelease。
WasReported 列用于 Multiplex 设置中。WasReported 指示版本使用情况信息是否已从辅助服务器发送至协调器。新版本在协调器上的 WasReported 最初为 0。数据库服务器将版本使用情况信息复制回协调器后,WasReported 便更改为 1。
在 Multiplex 辅助服务器上运行 sp_iqversionuse 以确定指向辅助服务器的各个连接。来自其它服务器的用户不会显示在辅助服务器上。
sp_iqversionuse 过程返回:
列名说明VersionID在 SAP IQ 数据库中,VersionID 显示为零。对于 Multiplex 协调器,VersionID 与活动事务的 TxnID 相同,VersionID 与已提交事务的 CmtID 相同。在 Multiplex 辅助服务器中,VersionID 是在 Multiplex 协调器上创建数据库版本的事务的 CmtID。它由product-name 内存目录和 SAP IQ 事务管理器在内部使用,以对 Multiplex 数据库中的所有节点唯一标识数据库版本。 Server该版本的用户所连接的服务器。IQConnID使用该版本的连接 ID。WasReported指示服务器是否已接收到该版本的使用情况信息。MinKBRelease该版本不再使用时返回的最小空间量。MaxKBRelease该版本不再使用时返回的最大空间量。
sp_iqversionuse 系统过程的样本输出:
VersionID Server IQConnID WasReported
========= ====== ======== ===========
0 ab2ab_iqdemo 9 0
MinKBRelease MaxKBRelease
============ ============
0 0
以下示例显示 Multiplex 输出。在协调器 (
在协调器上,版本 42715 和 42728 的 WasReported 为 0,因为这些是尚未复制的新版本。由于版本 42728 没有显示在辅助服务器的输出中,因此它尚未由辅助服务器使用。
sp_iqversionuse 在协调器 mpxw 上执行时,返回输出:
call dbo.sp_iqversionuseVersionIDServerIQConnWasReportedMinKBReleaseMaxKBRelease42648'mpxw'10817920792042686'mpxq'01792030442702'mpxq'01068842715'mpxq'00068842728'mpxq'000688 sp_iqversionuse 在辅助服务器 ( mpxq ) 上执行时,返回输出:
call dbo.sp_iqversionuseVersionIDServerIQConnWasReportedMinKBReleaseMaxKBRelease42686'mpxq'3110042715'mpxq'00100