返回首页

gbase数据、南大通用产品文档:GBase8aPROFILING

更新日期:2024年09月11日

功能说明
sql 语句执行的资源消耗信息,需要设置profiling 参数为1。
表结构说明
表5- 220 表结构信息说明:




QUERY_ID
执行sql 的序号
SEQ
相同QUERY_ID 不同子过程的序号
STATE
每个sql 执行的子状态
DURATION
子状态的执行时间
CPU_USER
用户使用cpu 时间
CPU_SYSTEM
系统使用cpu 时间
CONTEXT_VOLUNTARY
主动的环境切换
CONTEXT_INVOLUNTARY
被动的环境切换
BLOCK_OPS_IN
输入的块数
BLOCK_OPS_OUT
输出的块数
MESSAGES_SENT
发送的交互信息数
MESSAGES_RECEIVED
收取的交互信息数
PAGE_FAULTS_MAJOR
主要的页面错误数量
PAGE_FAULTS_MINOR
次要的页面错误数量
SWAPS
发生了多少次交换

在您可以创建镜像块之前,必须为该用途分配磁盘空间。您可以为镜像块分配原始磁盘空
间或熟文件空间。有关分配磁盘空间的说明,请参阅分配磁盘空间。
始终用不同的控制器(理想情况下)在不同于相应主块的磁盘上为镜像块分配磁盘空间。
可以使用此设置在主块所在磁盘脱机时访问镜像块,反之亦然。
链接块 (UNIX)
使用 UNIX™ 链接 (ln) 命令将镜像块的实际文件或原始设备链接至镜像路径名。如果发
生磁盘故障,您可以将新的文件或原始设备链接至该路径名,而不必实际更换故障磁盘后
再将块恢复联机。
在磁盘故障后将块重新链接至设备
在 UNIX™ 上,如果实际镜像文件或原始设备所在的磁盘脱机,您可以将块重新链接至不
同磁盘上的文件或原始设备。如果执行此操作,那么可在将故障磁盘恢复联机之前恢复镜
像块。您可用于重新链接的常用 UNIX 命令显示在以下示例中。
原始设置由主 Root 块和镜像 Root 块组成,它们被链接至实际的原始磁盘设备,如下所
示:
表 2. 将辅助数据库服务器更改为标准服务器后的自动重新启动步骤假设原始设
备 /dev/rsd2b 所在磁盘已脱机。您可以使用 rm 命令除去相应的符号链接,如下所示:
rm /dev/mirror_root
此时可以将镜像块路径名重新链接至正在运行的磁盘上的原始磁盘设备,并继续恢复块,
如下所示:
ln -s /dev/rab0a /dev/mirror_root

使用 DBACCNOIGN 环境变量,可以指定在发生指定的错误时 DB-Access 实用程序的
行为。
如果在以下某种情况下发生错误,那么 DBACCNOIGN 环境变量会影响 DB-Access 实
用程序的行为:

以非菜单方式运行 DB-Access。

仅在 GBase 8s 中,以菜单方式通过 DB-Access 执行 LOAD 命令。
如果在上述任一情况下运行 DB-Access 实用程序时发生错误,请将 DBACCNOIGN 环
境变量设置为 1,以回滚未完成的事务。

例如,假定 DB-Access 运行以下 SQL 命令:
DATABASE mystore
BEGIN WORK

INSERT INTO receipts VALUES (cust1, 10)
INSERT INTO receipt VALUES (cust1, 20)
INSERT INTO receipts VALUES (cust1, 30)

UPDATE customer
SET balance =
(SELECT (balance-60)
FROM customer WHERE custid = 'cust1')
WHERE custid = 'cust1
COMMIT WORK
此处有一条语句的表名拼写错误:receipt 表不存在。如果未在环境中设置
DBACCNOIGN,那么 DB-Access 会将两条记录插入到 receipts 表中,并更新 customer
表。现在 customer balance 的减少量超过了插入的 receipts 的总和。
但如果将 DBACCNOIGN 设置为 1,那么会打开消息,指示 DB-Access 回滚了所
有 INSERT 和 UPDATE 语句。这些消息还会标识错误原因,以便您能够解决问题。
设置 DBACCNOIGN 时的 LOAD 语句示例

GBase 8s SQL 指南:参考
南大通用数据技术股份有限公司 - 149 -
可在执行 LOAD 语句期间设置 DBACCNOIGN 环境变量来保护数据完整性,即使 DB-
Access 以菜单方式运行 LOAD 语句也是如此。
假定您从 DB-Access SQL 菜单执行 LOAD 语句。正确装入了 49 行数据,但第 50
行数据包含无效值,因而导致错误。如果将 DBACCNOIGN 设置为 1,那么数据库服务
器不会将先前的 49 行插入到数据库中。如果未设置 DBACCNOIGN,那么数据库服务器
会插入前 49 行。