返回首页

gbase数据、南大通用产品文档:GBase8sSQLTRACE 配置参数

更新日期:2024年09月11日

使用 SQLTRACE 参数来控制 SQL 跟踪的启动环境。
onconfig.std 值
UNIX™ 上:未设置。禁用 SQL 跟踪。
Windows™ 上:#SQLTRACE level=low,ntraces=1000,size=2,mode=global

请参阅“用法”部分。
生效
编辑 onconfig 文件并重启数据库服务器之后。
运行带有 set sql tracing 参数的 SQL 管理 API task() 或 admin() 函数之后。
用法

GBase 8s 管理员参考
南大通用数据技术股份有限公司 - 152 -

从 onconfig 移除 # 符号来保持关于任何用户运行的最后 1000 个 SQL 语句的基本信
息,大小最多 2 KB。通过调整 SQLTRACE 配置参数的域值,您可定制 SQL 跟踪信息的范
围。
SQLTRACE 配置参数语法图

表 1. SQLTRACE 配置参数值的选项.


level
跟踪的信息量:
l Low = 缺省。捕获语句统计信息、语句文本和语句迭代器。

l Medium
= 捕获包括在 low 级别跟踪中的所有信息,外加表
名、数据库名和存储过程堆栈。
l High = 捕获包括在 medium 级别跟踪的所有信息,外加主
机变量。
l Off = 指定无 SQL 跟踪。
ntraces
number_traces 值是重新使用资源之前 SQL 语句跟踪的数目。
缺省
是 1000。范围是 500 - 2147483647。
size
buffer_size 值是要存储的可变长度数据大小的最大值,以 KB 为
单位。缺省是 2。范围是 1
-100。如果超过这个缓冲区大小,则数
据库服务器丢弃保存的数据。
mode
执行跟踪的范围:
l Global = 缺省。所有用户。
l User = 通过 SQL 管理 API task() 或 admin() 函数启用
跟踪的用户。如果您想要得到一小部分用户正在运行的
SQL 样例,请指定这个模式。
onstat -g his 命令显示 SQL 跟踪信息。

GBase 8s 管理员参考
南大通用数据技术股份有限公司 - 153 -

ifx_int8mul() 函数将两个 int8 类型值相乘。
语法

mint ifx_int8mul(n1, n2, product)
ifx_int8_t *n1;
ifx_int8_t *n2;
ifx_int8_t *product;
n1
指向包含第一个操作对象的 int8 结构的指针。
n2
指向包含第二个操作对象的 int8 结构的指针。
product
指向包含 n1 * n2 的乘积的 int8 结构的指针。

用法
product 可与 n1 或 n2 相同。

返回代码
0
运算成功。
-1284
运算导致溢出或下溢。

示例
demo 目录中的文件 int8mul.ec 包含下列样例程序。
/*
* ifx_int8mul.ec *

The following program multiplies two INT8 numbers and

GBase 8s ESQL/C 编程指南
南大通用数据技术股份有限公司
- 742 -
displays the result.
*/

#include

EXEC SQL include "int8.h";

char string1[] = "480,999,777,666,345";
char string2[] = "80";
char result[41];

main()
{
mint x;
ifx_int8_t num1, num2, prd;

printf("IFX_INT8MUL Sample ESQL Program running.\n\n");

if (x = ifx_int8cvasc(string1, strlen(string1), &num1))
{
printf("Error %d in converting string1 to INT8\n", x);
exit(1);
}
if (x = ifx_int8cvasc(string2, strlen(string2), &num2))
{
printf("Error %d in converting string2 to INT8\n", x);
exit(1);
}
if (x = ifx_int8mul(&num1, &num2, &prd))
{
printf("Error %d in multiplying num1 by num2\n", x);
exit(1);
}

GBase 8s ESQL/C 编程指南
南大通用数据技术股份有限公司
- 743 -
if (x = ifx_int8soasc(&prd, result, sizeof(result)))
{
printf("Error %d in converting product to string\n", x);
exit(1);
}
result[40] = '\0';
printf("\t%s * %s = %s\n", string1, string2, result);

printf("\nIFX_INT8MUL Sample Program over.\n\n");
exit(0);
}
输出
IFX_INT8MUL Sample ESQL Program running.

480,999,777,666,345 * 80 = 38479982213307600

IFX_INT8MUL Sample Program over.

Scheduler 表存储了 sysadmin 数据库中有关任务和传感器的五个表。它们分别是:
ph_task 、ph_run 、ph_group 、ph_alert 和ph_threshold 。
Scheduler 是一个管理工具,它是数据库服务器可以在预定义的时间或有服务器内部驱动
的时间执行功能和过程。它所使用的这五个表包含了自动运行的内置任务和传感器。您也
可以通过往这些表中插入数据来添加您自己的任务和传感器。这些表有它们在下图中描述
的列之间的关系。
图: Scheduler 表之间的关系

GBase 8s 管理员参考
南大通用数据技术股份有限公司 - 236 -


更多有关如何使用 Scheduler 的详细信息,请参阅 GBase 8s 管理员指南 。
ph_task 表
ph_task 表包含关于调度任务和传感器的信息。ph_task 表所包含内置任务和传感器是按
计划自动运行的。

类型
描述
tk_id
serial
顺序任务 ID
由系统更新;不要修改
引用于 ph_alert 表中的 alert_task_id 列
和表 ph_run 中的 run_task_id 列
tk_name
char(36)
任务名称。
在该列上有一个唯一索引确保没有
两个名称是相同的。
引用于 ph_threshold 表中的 task_name 列
tk_description
lvarchar
关于该任务的描述
tk_type
char(18)
任务的类型:
l TASK: 以特定的时间和频率调用操
作。
l SENSOR: (缺省)一个从结果表中收
集、存储和清除数据的任务
l STARTUP TASK: 仅在服务器启动时运
行的任务
l STARTUP SENSOR: 仅在服务器启动时
运行的传感器
tk_sequence
integer
当前的数据收集号

GBase 8s 管理员参考
南大通用数据技术股份有限公司 - 237 -


类型
描述
由系统更新;不要修改
引用于 ph_alert 表中的 alert_task_id 列
和 ph_run 表中的 run_task_seq 列
tk_result_table
varchar
传感器用来收集数据的结果表名称。该表由
tk_create 列中的 CREATE TABLE 语句创建
tk_create
lvarchar
用于创建传感器收集数据的结果表的 CREATE
TABLE 语句。
表中必须有一名为 ID 的列,该列用来存储
tk_sequence 值。
此值用来表示该行的年龄和
清除行
tk_dbs
varchar(250)
运行任务的数据库
缺省值 sysadmin 数据库
tk_execute
lvarchar
要执行的 SQL 语句
命令长度限制在 2048 字节内
tk_delete
interval day(2)
to second
删除结果表中早于该时间间隔的数据
缺省值 1:00:00 (一天)
tk_start_time
datetime hour to
second
任务或传感器启动的时间
缺省值 08:00:00
tk_stop_time
datetime hour to
second
该任务或传感器应停止运行的时间 数据库服
务器在下一个有效日调度下一个执行
缺省值 19:00:00 。
可以为 NULL ,
表示没有
停止时间
tk_frequency
interval day(2)
to second
该任务或传感器运行的频率
缺省值 1 (一天一次)
tk_next_execution datetime year to
second
该任务或传感器下次执行时间.
如果已启动的任务或传感器已经运行,
该值为
NULL 。当一个任务或传感器启动时,数据库
服务器用 tk_start_time 、
tk_stop_time 和
tk_frequency 列的值来计算此次时间。并根
据 tk_monday 、tk_tuesday 、
tk_wednesday 、
tk_thursday 、
tk_friday 、
tk_saturday 和 tk_sunday 列来计算启动当
天的星期数。例如:在

GBase 8s 管理员参考
南大通用数据技术股份有限公司 - 238 -


类型
描述
new_next_execution_time 比
current_next_execution_time 长的情况下,

new_next_execution_time =
current_next_execution_time +
tk_frequency 。如果 tk_frequency 没有指
示,任务只运行一次
tk_total_executions
integer
该任务或传感器运行的总次数
由系统更新;不要修改
缺省值为 0
tk_total_time
float
执行该任务或传感器所使用的时间
由系统更新;不要修改
缺省值为 0.0 秒
tk_monday
boolean
该任务或传感器是否在星期一执行
缺省值为 T (true)
tk_tuesday
boolean
该任务或传感器是否在星期二执行
缺省值为 T (true)
tk_wednesday
boolean
该任务或传感器是否在星期三执行
缺省值为 T (true)
tk_thursday
boolean
该任务或传感器是否在星期四执行
缺省值为 T (true)
tk_friday
boolean
该任务或传感器是否在星期五执行
缺省值为 T (true)
tk_saturday
boolean
该任务或传感器是否在星期六执行
缺省值为 T (true)
tk_sunday
boolean
该任务或传感器是否在星期日执行
缺省值为 T (true)
tk_attributes
integer
标志
由系统更新;不要修改
tk_group
varchar(128)
组名

GBase 8s 管理员参考
南大通用数据技术股份有限公司 - 239 -


类型
描述
必须与 ph_group 表中的列 group_name 的
值相同。
缺省值 MISC
tk_enable
boolean
该任务或传感器是否已启用
缺省值为 T(该任务已启用)
tk_priority
integer
作业优先级,数值范围为 0-
5 ,数字越大级
别越高。
如果有几个作业要同时执行,
则具有
最高优先级的作业先执行。
缺省值为:0 (低优先级)

ph_run 表
ph_run 表包含关于每个调度程序任务或传感器的运行方式和运行时间的信息。

类型
描述
run_id
serial
在执行期间生成的顺序 ID
由系统更新;不要修改
run_task_id
integer
任务 ID
引用于 ph_task 表的 tk_id 列
run_task_seq
integer
该任务或传感器的唯一顺序编号
引用于表 ph_task 的 tk_sequence 列
run_retcode
integer
用户定义例程或存储过程的返回码或 SQL 命
令的 SQLCode
run_time
datetime year to
second
该任务或传感器的执行时间
run_duration
float
执行改作业所使用的是案件(以秒为单位)
run_ztime
integer
服务器统计(onstat -z 命令)上次运行的时

GBase 8s 管理员参考
南大通用数据技术股份有限公司 - 240 -


类型
描述

run_btime
integer
服务器启动的时间
run_mttime
integer
服务器的内部计数器

ph_group 表
ph_group 表包含有关调度程序组名的信息。它包含内置任务和传感器的分类组以及 MISC
中缺省的组。

类型
描述
group_id
serial
组 ID
由系统更新;不要修改
group_name
varchar(128)
组的唯一名称
引用于 ph_task 表中的 tk_group 列
group_description lvarchar
组的描述

ph_alert 表
ph_alert 表包含调度程序的关于错误、警告或参考消息的信息。与内置任务和传感器有关
的警报将自动添加到 ph_alert 表内。

类型
描述
id
serial
警报 ID
由系统更新;不要修改
alert_task_id
serial
任务或传感器 ID
必须与 ph_task 表中 tk_id 列的值相同
事件报警的任务 ID 为 15
alert_task_seq
integer
识别出哪些调度程序任务创建警报
由系统更新;不要修改

GBase 8s 管理员参考
南大通用数据技术股份有限公司 - 241 -


类型
描述
引用于 ph_task 表的the tk_sequence 列
alert_type
char(8)
警报的类型:
l INFO (缺省的)
l WARNING
l ERROR
警报和事件报警的严重程度是由警报的类型
和颜色综合确定的。
alert_color
char(15)
警报的颜色:
l 绿色 (默认)
l 黄色
l 红色
警报和事件报警的严重程度是由警报的类型
和颜色综合确定的。
alert_time
datetime year to
second
产生警报的时间
由系统更新;不要修改
alert_state
char(15)
指示对象当前所处的状态:
NEW
(默认)警报是新添加的,对该警报尚未发生
任何其他操作
IGNORED
警报已由 DBA 确认,但未执行任何操作
ACKNOWLEDGED
警报已由 DBA 确认
ADDRESSED
警报已由 DBA 处理
alert_state_changed
datetime year to 最近一次状态被更新的时间

GBase 8s 管理员参考
南大通用数据技术股份有限公司 - 242 -


类型
描述
second
由系统更新;不要修改
alert_object_type char(15)
发生警报对象的类型:
l ALARM
l CHUNK
l DATABASE
l DBSPACE
l INDEX
l MISC (Default)
l SERVER
l SQL_STATEMENT
l TABLE
l USER
alert_object_name varchar(255)
警报对象或事件报警类 ID 的名称
alert_message
lvarchar
警报或事件报警的详细消息
alert_action_dbs
lvarchar(256)
用于修正操作的数据库名称
缺省值为 sysadmin
alert_action
lvarchar
修正操作
可调用 SQL 脚本来修正该问题。
该脚本必须
符合所有多语句准备规则。
如果没有可用的操作,那么为 NULL
alert_object_info bigint
事件报警的事件ID

下表为 3 种不同类型的消息定义的警报颜色。
消息类型
绿色
黄色
红色

GBase 8s 管理员参考
南大通用数据技术股份有限公司 - 243 -

消息类型
绿色
黄色
红色
Informative
指示组件操作
状态的状态消

事件报警的严
重程度为 1
(不值得注
意)
重要的状态消息
事件报警的严重
程度为 2
(可供
参考)
需要执行操作的状态信息
Warning
自动处理的来
自数据库的警

需要处理的未来
事件
事件报警的严重
程度为 3(需要
注意)
即将发生预测的故障。
需要立即执行操

Error
组件中的故
障,由组件自
身修正
组件中的故障,
由组件自身修
正,但可能需要
DBA 操作
组件中故障,需要 DBA 操作
事件报警的严重程度为 4(紧急)或
5(致命)

ph_alerts 表显示了警报的信息和与之相关的任务和传感器的信息。
ph_threshold 表
ph_threshold 表包含关于调度程序任务阈值的信息。
ph_threshold 表包含了与内置任务和传感器相关联的内置阈值。例如:名为 COMMAND
HISTORY RETENTION 的阈值决定了在 command_history 表中应保留的时间行长度。

类型
描述
id
integer
阈值 ID
name
char
阈值的名称
task_name
varchar
与阈值相关联的调度程序任务名称

GBase 8s 管理员参考
南大通用数据技术股份有限公司 - 244 -


类型
描述
必须与 ph_task 表中 tk_name 列的值相同
value
lvarchar
阈值的值
value_type
char
值列的数据类型:
l STRING
l NUMERIC
l NUMERIC(p,s)
description
lvarchar
阈值的描述