返回首页

gbase数据、南大通用产品文档:GBase8a避免操作字段表达式后进行比较

更新日期:2024年09月11日

1.
使用智能索引且最有效的方法是字段与常量表达式直接操作的形式:
(rownumtag>=100*10);
改成
(rownumtag+1>=100*10+1);
就无法使用智能索引。
2.
其次一边是字段,另一边是常量表达式(常量当然也可以),常量表达式无
论多么复杂都没有问题,因为它只需要计算一遍。
表达式与常量进行比较的条件不能用智能索引。

GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-09-15)
南大通用数据技术股份有限公司
1304
如:
SELECT ... FROM ... WHERE ceil(rownumtag / ceil(TO_NUMBER('100')))
='10' ;
改为:
SELECT ... FROM ... WHERE rownumtag>100*9 AND
rownumtag<=100*10;

onlog 实用程序显示逻辑日志文件(无论在磁盘上或备份上)的内容。
onlog: 显示逻辑日志内容
当您想要跟踪特定事务或查看对特定 tblspace 进行了什么更改的调试情况中,onlog 输
出是有用的。(有关解释逻辑日志文件内容的信息,请参阅 解释逻辑日志记录 。)
任何用户都可以运行 -l 选项除外的所有 onlog 选项。
只有用户 gbasedbt
(在 UNIX™ 上)
或 Gbasedbt-Admin 群组的成员(在 Windows™ 上)可以运行 -l 选项。
如果当您执行 onlog 时数据库服务器处于脱机模式,那么只读取磁盘上的文件。如果数据
库服务器处于静态模式或联机模式,
那么 onlog 还读取存储在共享内存中逻辑日志缓冲区
的逻辑日志记录(在读取磁盘上的所有记录之后)。
当数据库服务器在联机模式下从磁盘中读取具有状态 U 的逻辑日志文件时,
数据库服务器
拒绝对逻辑日志文件的所有访问,有效地停止所有会话的数据库活动。(有关更多信息,
请参阅onstat -l 命令:打印物理和逻辑日志信息。)出于这个原因,建议您等到备份了
文件之后再从备份中读取逻辑日志文件的内容。
onlog 实用程序没有功能等同于 SQL 管理 API 命令 字符串。
onlog 语法

元素
用途
关键注意事项
-q
不显示缺省情况下每 18
个记录出现一次的初始头
和单行头

-V
显示软件版本号及序列号
请参阅 获取实用程序的版本信息

GBase 8s 管理员参考
南大通用数据技术股份有限公司 - 347 -
元素
用途
关键注意事项
-version
显示构件版本、主机、操作
系统、
编号、
日期及 GLS 版

请参阅 获取实用程序的版本信息

当 onlog 索引要显示的记录时,您指示它读取逻辑日志的以下部分:
 存储在磁盘上的记录
 存储在备份介质上的记录
 所指定逻辑日志文件中的记录
缺省情况下,onlog 显示逻辑日志记录头,它描述事务号和记录类型。记录类型标识所执
行操作的类型。
除头之外,您可以使用读取过滤器指示 onlog 显示以下信息:
 逻辑日志记录头和数据(包含存储在 dbspace 或 tblspace 中的简单大对象的副
本)
 blobspace 中 blobpage 的副本
它们是只从逻辑日志备份复制的,它们不可从磁盘上得到。
您可以显示每个逻辑日志记录头或可以基于以下条件指定输出:
 与特定表相关联的记录
 特定用户启动的记录
 与特定事务相关联的记录
如果 onlog 在日志文件中检测到错误(例如无法识别日志类型),那么它以十六进制格式
显示整个日志页并终止。
日志记录读取过滤器
onlog 实用程序使用存储在 root dbspace 保留页中的路径名定位逻辑日志文件。如果使
用 ON-Bar 备份逻辑日志,
那么 onlog 请求存储管理器从备份介质中检索想要的逻辑日志
记录。
语法

元素
用途
关键注意事项

GBase 8s 管理员参考
南大通用数据技术股份有限公司 - 348 -
元素
用途
关键注意事项
-b
显示与 blobspace
blobpage 相关联的逻
辑日志记录
数据库服务器将这些记录作
为 blobspace 日志记录的一
部分存储在逻辑日志备份介
质上
-d device
给出所需逻辑日志备份
安装到的存储设备的路
径名
如果使用 ontape ,
那么所指
定的设备必须与指定给配置
参数 LTAPEDEV 的设备的路
径名相同。
如果未使用 -d 选
项,那么 onlog 读取存储在
磁盘上的逻辑日志文件
(以具
有最低 logid 的逻辑日志文
件开始)。
如果您使用 ON-Bar 来备份
逻辑日志,请使用 onbar
-P
命令来查看逻辑日志文件的
内容。请参阅 GBase 8s 备
份与恢复指南 。
有关路径名语法,请参阅操
作系统文档
-n
starting_uniqid-ending_uniqid
指示 onlog 读取包含
在您指定的日志文件中
从 starting uniqid 到
ending uniqid 的所有
的逻辑日志记录
starting_uniqid 和
ending_uniqid 都是逻辑日
志的唯一 ID 。要确定特定
逻辑日志文件的 uniqid ,
请使用 onstat -l 命令。
如果您没有使用 -n 选项,
那么 onlog 将读取所有可
用的逻辑日志文件(在磁盘

GBase 8s 管理员参考
南大通用数据技术股份有限公司 - 349 -
元素
用途
关键注意事项
上或磁带上)。
有关 onstat 实用程序的信
息,
请参阅 监视数据库服务
器状态

日志记录显示过滤器
语法

元素
用途
关键注意事项
-l
显示逻辑日志记录的
长列表
日志记录的长列表包含整个日志记录的复合
十六进制和 ASCII 转储。
该列表不是供随意
使用的。
-ttblspace_num
显示与所指定
tblspace 相关联的
记录
无符号整数。编号(大于 0 )必须在
systables 系统目录的 partnum 列中。
将该值指定为整数或十六进制值(如果不
使用 0x 前缀,那么该值作为整数解释)。
要确定特定 tblspace 的 tblspace 编
号,
请查询 systables 系统目录表,
它在
Tblspace 编号 中进行描述。
-u username
显示特定用户的记录 用户名必须是现有的登录名。用户名必须符
合特定于操作系统的登录名规则

GBase 8s 管理员参考
南大通用数据技术股份有限公司 - 350 -
元素
用途
关键注意事项
-x transaction_id
只显示与所指定事务
相关联的记录
值必须是 0 和 TRANSACTIONS - 1(包括 0
和 TRANSACTIONS - 1)之间的无符号整数。

只在前滚过程中生成了错误的情况(不太
可能发生的情况)下才能使用 -x 选项。
当发生这种情况时,数据库服务器向消息
日志发送消息,消息包含出错事务的事务
ID 。
可以使用此事务 ID 和 onlog 的 -x
选项调查错误原因
-c
compression_diction
ary_file
使用压缩字典来扩展
压缩数据并显示未压
缩的数据
如果 onlog 命令包含 -l 选项和 -c 选项
并且日志记录中有压缩图像,
那么 onlog 实
用程序使用压缩字典扩展该日志记录中的所
有可扩展的图像。
压缩图像只在压缩字典文件中具有有效压
缩字典的日志记录的条件下是可扩展的。
如果 -c 没有被指定或压缩字典文件没有
一个该压缩图像的有效压缩字典,那么
onlog 实用程序将显示其压缩格式中的行
图像。

如果您没有压缩字典文件,可以使用 UNLOAD 命令加载该压缩字典给压缩字典文件,它将
包含在 sysmaster 数据库的 syscompdicts_full 表中,示例如下:
UNLOAD TO 'compression_dictionary_file'
SELECT * FROM sysmaster:syscompdicts_full;
如果未指定任何选项,onlog 显示日志记录中所有记录的简单列表。可以将这些选项与任
何其他选项组合使用,以生成更有选择性的过滤器。例如:如果同时使用 -u 和 -x 选项,
那么 onlog 只显示在指定事务过程中指定用户启动的活动。如果同时使用 -u 和 -t 选
项,那么 onlog 只显示由指定用户启动并与指定 tblspace 相关联的活动。

创建连接一节显示如何在 SELECT 语句中包括 WHERE 子句以在一个列或多个列上连接
两个或多个表。它说明了自然连接和等值连接。
本章讨论如何使用两种更复杂的连接:自连接和外连接。如对简单连接描述的那样,可以
为表定义别名并将显示标号指定给表达式以缩短多表查询时间。还可以带 ORDER BY 子
句发出 SELECT 语句,这将把数据排序到临时表中。


GBase 8s SQL 指南:教程
南大通用数据技术股份有限公司 - 119 -