返回首页

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

更新日期:2024年09月11日

IFX_DEF_TABLE_LOCKMODE 环境变量可在未显式指定 LOCKMODE PAGE 或 LOCKMODE
ROW 关键字的情况下对后续创建的数据库表指定缺省锁定方式。 如果必须创建同一锁定
方式的几个表,此功能是非常方便的。使用 C shell 的 UNIX™ 系统支持以下语法:

PAGE 缺省锁定方式是页级粒度的。该值禁用 COMMITTED READ 的 LAST
COMMITTED 功能。
ROW 缺省锁定方式是行级别粒度的。
可通过将 ONCONFIG 文件的 DEF_TABLE_LOCKMODE 参数设置为 PAGE 或 ROW 来获取
类似功能。 创建或修改表时,会根据以下优先级的降序(最高至最低)来解析所有冲突
的锁定方式规范。
1.
CREATE TABLE 或 ALTER TABLE 的显式 LOCKMODE 指定
2.
IFX_DEF_TABLE_LOCKMODE 环境变量设置
3.
ONCONFIG 文件中的 DEF_TABLE_LOCKMODE 参数设置
4.
系统缺省所订方式(= 页方式)
要将 DEF_TABLE_LOCKMODE 设置为缺省方式(或者要在未设置 DEF_TABLE_LOCKMODE
的情况下复原系统缺省值),请使用以下命令:
unsetenv IFX_DEF_TABLE_LOCKMODE
如果在运行 oninit 之前在数据库服务器的环境中设置了
IFX_DEF_TABLE_LOCKMODE,那么它的作用域是数据库服务器的所有会话(就如同在
ONCONFIG 文件中设置了 DEF_TABLE_LOCKMODE 一样)。如果在 shell 又或者在
$HOME/.gbasedbt 或 $GBASEDBTDIR/etc/gbasedbt.rc 文件中设置了
IFX_DEF_TABLE_LOCKMODE,那么作用域被限制为当前会话(如果在 shell 中设置了它的
话)或个别用户。

GBase 8s SQL 指南:参考
南大通用数据技术股份有限公司 - 170 -
要点: 这对现有表没有任何影响。如果指定 ROW 作为锁定方式,那么数据库将使用
它来复原、恢复或复制数据。对于以 PAGE 方式创建的表,这可能会导致锁定表溢出或性
能下降。

GBase 8s 数据库服务器产品提供了 Global Language Support (GLS)功能部件。除了 U.S.
ASCII 英语之外,GLS 允许您在其它语言环境中工作并在 SQL 数据和标识中使用非
ASCII 字符。可以使用 GLS 功能来与特定语言环境定制保持一致。语言环境文件包括特
定于文化的信息。如货币和日期格式以及整理顺序。有关更多 GLS 信息,请参阅《GBase
8s GLS 用户指南》。

使用 OPTCOMPIND 来指定信息,帮助优化器选择一个对您的应用适当的查询计划。
提示: 您可认为此变量名出自“OPTimizer COMPare (the cost of using) INDexes (with
other methods)。”
onconfig.std 值
OPTCOMPIND 2

0 = 当表的每一排序的对存在适当的索引时,用户器选择索引扫描(嵌套循环联接),不
计成本,不选择表扫描(散列联接)。
1 = 如果隔离级别不是 Repeatable Read,则优化器根据成本来确定执行路径。否则,优
化器选择索引扫描(效果与值 0 相同)。此设置是优化性能的推荐设置。
2 = 优化器根据成本来确定任何隔离级别的执行路径。索引扫描不优先于表扫描;优化器
纯粹地根据成本做决定。如果未设置变量,则该值是缺省值。
生效
编辑 onconfig 文件并重启数据库服务器之后。
当您通过运行 onmode -wf 命令在 onconfig 文件中动态地重置该值时。
当您通过运行 onmode -wm 命令重置内存中的该值时。
用法
由于散列联接的本质,一个隔离模式设置为 Repeatable
Read 的应用可能临时地锁定表中
的所有记录,这些表参与表的每一排序集的联接(即使那些记录不符合联接条件)。这种

GBase 8s 管理员参考
南大通用数据技术股份有限公司 - 117 -
情况导致联接中发生较高的争用。相反地,嵌套循环联接锁定较少记录,但当数据库服务
器检索大量行时性能较差。因此,两种联接方式都各有利弊。客户端应用也可影响优化器
对联接方式的选择。