返回首页

gbase数据、南大通用产品文档:GBase8sSQLProcedureColumns(仅限二级)

更新日期:2024年09月11日

SQLProcedureColumns 返回输入和输出参数的列表,和组成特定过程的结果集的列。
驱动程序将返回的信息作为特定 hstmt 的结果集。
下表描述了 SQLProcedureColumns 的 SQLSTATE 和错误值。
SQLSTATE
错误值
错误消息
01000
-11001
General warning
08S01
-11020
Communication link failure
24000
-11031
Invalid cursor state
IM001
-11040
Driver does not support this function
S1000
-11060
General error
S1001
-11061
Memory-allocation failure
S1008
-11065
Operation canceled
S1010
-11067
Function sequence error
S1090
-11071
Invalid string or buffer length

GBase 8s ODBC Driver 程序员指南
南大通用数据技术股份有限公司
- 236 -

SQLSTATE
错误值
错误消息
S1C00
-11092
Driver not capable
S1T00
-11094
Time-out expired
S1C00
-11300
SQL_DEFAULT_PARAM not supported
08S01
-11301
A protocol error has been detected. Current connection is
closed.
S1000
-11310
Create and Drop must be executed within a ServerOnly
Connection
S1000
-11320
Syntax error
S1000
-11323
The statement contained an escape clause not supported by
this database driver

无转义的文本格式(format=3)

行与行之间默认使用'\n '进行分隔(一次加载的文本文件中行分隔符必须一
致),用户可以自定义行分隔符;

任何字段的内容中都不能包含行分隔符;

字段之间使用指定的字段分隔符进行分隔;

使用指定的字符串代表空值;

字段可以被包围符包围,导入时支持全部字段带有包围符、部分字段带有包
围符、不带包围符三种类型;

字段内容不能被转义。
定长文本格式(format=4)

行与行之间默认使用'\n'进行分隔(一次加载的文本文件中行分隔符必须一
致),用户可以自定义行分隔符;

任何字段的内容中都不能包含行分隔符;

所有行中的相同字段都以定长方式存储,字段数据尺寸不足字段宽度的,使
用空格符补齐;

使用指定的字符串代表空值;

字段内容不能被包围符包围,也不能被转义。

可监视外部表的装入或卸载操作的状态。
您可能希望在以下情况监视装入或卸载操作:
• 如果希望经常装入和卸载同一个表,以构建数据集市或数据仓库,那么监视作业
的进度可估算类似作业的时间,供将来使用。
• 如果从命名管道装入或卸载,那么监视 I/O 队列可确定是否有足够数量的 FIFO
虚拟处理器。
监视常用装入和卸载操作
可使用 onstat -g iof 命令查找要查看的文件中的全局文件描述符 (gfd)。然后使用 onstat -
g sql 命令来监视装入和卸载操作。
以下示例显示了样本 onstat -g iof 命令输出。
AIO global files:
Gfd path name bytes read page reads bytes write page writes io/s
3 rootdbs 1918976 937 145061888 70831 36.5

op type count avg. time
seeks 0 N/A
reads 937 0.0010
writes 4088 0.0335
kaio_reads 0 N/A
kaio_writes 0 N/A
要确定装入或卸载操作是否可使用并行执行,请在执行 INSERT 语句之前执行 SET
EXPLAIN ON 语句。SET EXPLAIN 输出显示以下计数:
• 优化器为 INSERT 语句选择的并行 SQL 运算符的数量
• 每个 SQL 运算符要处理的行数
要监视装入操作,请运行 onstat -g sql 来获取会话标识。

监视 FIFO 虚拟处理器
可使用 onstat 命令监视 FIFO VP 的有效使用。

GBase 8s 管理员指南
南大通用数据技术股份有限公司
- 259 -
可使用 onstat -g ioq 选项显示正在等待执行 I/O 请求的每个 FIFO 队列的长度。以下示
例显示样本输出。
AIO I/O queues:
q name/id len maxlen totalops dskread dskwrite dskcopy
fifo 0 0 0 0 0 0 0
adt 0 0 0 0 0 0 0
msc 0 0 1 153 0 0 0
aio 0 0 9 3499 1013 77 0
pio 0 0 2 3 0 2 0
lio 0 0 2 2159 0 2158 0
gfd 3 0 16 39860 38 39822 0
gfd 4 0 16 39854 32 39822 0
gfd 5 0 1 2 2 0 0
gfd 6 0 1 2 2 0 0
...
gfd 19 0 1 2 2 0 0
以上示例中样本输出内的 q name 字段显示了队列的类型,如 fifo 表示 FIFO VP,或
aio 表示 AIO VP。 如果 q name 字段显示 gfd 或 gfdwq,说明这是其全局文件描述符
与输出的 id 字段匹配的文件的队列。磁盘文件在一个队列中同时包含读写请求。每个磁
盘文件在 onstat -g ioq 输出中显示一行。 管道有单独的读写队列。每个管道在输出中显
示两行:gfd 针对读请求,gfdwq 针对写请求。
len 或 maxlen 字段的值最高为 4(对于装入)或 4 * number_of_writer_threads(对于卸
载)。xuwrite 运算符控制写程序线程的数量。
请使用 totalops 字段中的值,而不是 len 或 maxlen 字段中的值,监视对文件或管道执
行的读或写请求的数量。totalops 字段表示从该文件中读取了 34 KB 的数据,或将 34
KB 的数据写入了该文件。如果 totalops 不增加,说明已停止对文件或管道执行读或写操
作(因为 FIFO VP 正忙)。
要提高性能,请使用 onmode -p 命令增加更多 FIFO VP。FIFO VP 的缺省数量为 1。在
该样本输出中,FIFO 队列内不包含任何数据。例如,如果通常定义两个以上的管道来装
入或卸载,请使用以下样本 onmode 命令增加 FIFO VP 的数量:
onmode -p +2 FIFO
也可以使用 onmode -p 命令除去 FIFO VP。 但是,不能将 FIFO VP 的数量设置为低于
1。
有关更多信息,请参阅《GBase 8s 管理员参考》。