返回首页

gbase数据、南大通用产品文档:GBase8sIFX_UPDDESC 环境变量

更新日期:2024年09月11日

必须先在执行时设置 IFX_UPDDESC 环境变量,才能执行 UPDATE 语句的 DESCRIBE。

Value 是非 NULL 的值。
NULL 值(此处意味着未设置 IFX_UPDDESC)禁用 describe-for-update 功能。任何
非 NULL 的值都会启用该功能。

分段存储的一个好处是可以在 I/O 操作期间跳过不可用的表分段。例如,即使当分段位
于当前由于磁盘故障而脱机的块上时,查询也可继续。发生这种情况时,磁盘故障仅影响
分段表中的部分数据。相较而言,如果未分段的表位于故障磁盘上,它们可能会变得完全
不可访问。
如下所示控制此功能:
l
由数据库服务器管理员使用 DATASKIP 配置参数
l
由各个应用程序使用 SET DATASKIP 语句
DATASKIP 配置参数
可将 DATASKIP 参数设置为 OFF、ALL 或 ON dbspace_list。OFF 表示数据库服务器不
跳过任何分段。如果分段不可用,查询将返回错误。ALL 指示跳过所有不可用的分段。
ON dbspace_list 指示数据库服务器跳过任何位于指定数据库空间中的分段。

onspaces 的数据跳过功能

GBase 8s 管理员指南
南大通用数据技术股份有限公司
- 219 -
使用 onspaces 实用程序的 dataskip 功能来指定要跳过的数据库空间(当这些数据库空间
不可用时)。 例如,以下命令设置 DATASKIP 参数,使数据库服务器跳过 dbspace1 和
dbspace3 中的分段,但不跳过 dbspace2 中的分段:
onspaces -f ON dbspace1 dbspace3
有关此 onspaces 选项的完整语法,请参阅《GBase 8s 管理员参考》中有关 onspaces 实
用程序的信息。

使用 onstat 检查数据跳过状态
使用 onstat 实用程序列出当前受 dataskip 功能影响的数据库空间。-f 选项同时列出使用
DATASKIP 配置参数以及使用 onspaces 实用程序的 -f 选项设置的数据库空间。
运行 onstat -f 时,您会收到消息,通知您 DATASKIP 配置参数是对所有数据库空间设置
为 on、对所有数据库空间设置为 off,还是对特定数据库空间设置为 on。

SQL 语句 SET DATASKIP
应用程序可以使用 SQL 语句 SET DATASKIP 来控制在某个分段不可用时是否跳过该分
段。 应用程序必须仅在有限情况下包含此语句,因为它会使查询根据底层分段的可用性
而返回不同结果。与配置参数 DATASKIP 类似,SET DATASKIP 语句接受那些向数据
库服务器指示要跳过哪些分段的数据库空间列表。例如,假设某应用程序的编程人员将以
下语句包含在应用程序的开始:
SET DATASKIP ON dbspace1, dbspace5
该语句使数据库服务器在以下两个条件都满足时就跳过 dbspace1 或 dbspace5:

应用程序尝试访问这两个数据库空间之一。

数据库服务器发现这两个数据库空间之一不可用。
如果数据库服务器发现 dbspace1 和 dbspace5 均不可用,它会跳过这两个数据库空间。
数据库服务器管理员可使用 SET DATASKIP 语句的 DEFAULT 设置来控制数据跳过功
能。假设应用程序开发者将以下语句包含在应用程序中:
SET DATASKIP DEFAULT
如果在此 SQL 语句之后紧接着运行查询,那么数据库服务器会检查配置参数
DATASKIP 的值。数据库服务器管理员可鼓励用户使用此设置,以便指定当数据库服务
器管理员注意到一个或多个数据库空间不可用时,要立即跳过的数据库空间。

数据跳过功能对事务的影响
如果打开 dataskip 功能,那么 SELECT 语句将始终执行。另外,如果表由循环分段且至
少有一个分段联机,那么 INSERT 语句将始终成功执行。但是,当写入数据库的操作可
能会影响数据库的完整性时,数据库服务器不会完成这类操作。以下操作失败:

当数据库服务器无法消除脱机的分段时,为所有的 UPDATE 和 DELETE 操作

GBase 8s 管理员指南
南大通用数据技术股份有限公司
- 220 -
如果数据库服务器可以消除脱机的分段,那么更新或删除操作成功,但结果与
DATASKIP 设置无关。

当相应分段脱机时,根据基于表达式的分布方案对已分段的表的 INSERT 操作

当约束包含脱机的分段中的数据时,任何包含参阅约束检查的操作
例如,如果应用程序删除具有子行的行,那么子行必须是可用的,以便删除。

当所提到的索引位于脱机的块中时,任何影响索引值的操作(例如,对已建立索
引的列的更新)

确定何时使用数据跳过
要少用该功能且使用时要谨慎,因为该结果始终是不可靠的。可考虑在以下情况中使用该
功能:

您可以接受事务完整性受影响。

您可以确定事务完整性未受影响。
后一任务可能很难且很耗时。
确定何时跳过选定的分段
在某种情况下,您可能希望数据库服务器跳过某些分段而不是其他分段。这通常会发生在
以下情况中:
l
因为分段对查询结果没有重要作用,所以可以跳过这些分段。
l
某些分段脱机,并且您断定跳过这些分段并返回有限数量的数据将比取消查询要
好。
当要跳过分段时,请使用 ON dbspace-list 设置来指定包含数据库服务器必须跳过的分段
的数据库空间列表。
确定何时跳过所有分段
将 DATASKIP 配置参数设置为 ALL 将使数据库服务器跳过所有不可用的分段。请谨慎
使用此选项。如果数据库空间变得不可用,那么在执行前未发出 SET DATASKIP OFF 语
句的应用程序启动的所有查询均可能发生错误。

监视分段存储使用
数据库管理员可能会发现分段存储的以下方面对监视是有用的:
l
分段上的数据分发
l
分段上的 I/O 请求均衡
l
包含分段的块的状态
管理员可以监视表分段上的数据分发。如果分段存储的目标是提高管理响应时间,那么数
据要均匀分布在分段上是很重要的。要监视分段存储磁盘使用,您必须监视数据库服务器
表空间,因为分段的磁盘存储单位是表空间。(有关如何监视分段表的数据分发的信息,
请参阅监视表空间和扩展数据块。)

GBase 8s 管理员指南
南大通用数据技术股份有限公司
- 221 -
管理员必须监视包含在分段中的数据的 I/O 请求队列。当 I/O 队列变得不平衡时,管理
员必须使用 DBA 来调整分段存储策略。(有关如何监视块使用的说明,包括如何监视每
个块的 I/O 队列,请参阅监视块。)
管理员必须为可用性而监视分段,并在包含一个或多个分段的数据库空间发生故障时采取
适当的步骤。有关如何确定块是否脱机,请参阅监视块。

展示存储过程的一些信息。