返回首页

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

更新日期:2024年09月11日

DBSPACETEMP 环境变量指定在其中构建临时表的数据库空间。该列表可能包含标准数
据库空间和/或临时数据库空间。

dbspace 是现有的标准或临时数据库空间的名称。
您可以列出数据库空间(用冒号 ( : ) 或逗号 ( , ) 符号来分隔),以便为跨物理
存储设备的临时表指定空间。例如:用来设置 DBSPACETEMP 环境变量的以下命令为临时
表指定三个数据库空间:
setenv DBSPACETEMP sorttmp1:sorttmp2:sorttmp3
DBSPACETEMP 覆盖 DBSPACETEMP 参数在数据库服务器配置文件中指定的任何
缺省数据库空间。对于 UPDATE STATISTICS 操作,只有在指定 HIGH 关键字选项时才
使用 DBSPACETEMP。
在 UNIX™ 平台上,如果 DBSPACETEMP 中的数据库空间列表是由作为原始设备
来分配的块所组成的,那么就可能获得更好的性能。
就象操作系统定义的那样,环境变量的最大大小限制数据库空间的数目。如果该环境
变量指定的数据库空间不存在,那么数据库服务器不会创建该数据库空间。
两类临时表包括用户创建的显式临时表和数据库服务器创建的隐式临时表。使用
DBSPACETEMP 为这两种类型的临时表指定数据库空间。
如果使用 CREATE TEMP TABLE 语句创建显式临时表,且不在 IN dbspace 子句或
FRAGMENT BY 子句中为该表指定数据库空间,那么数据库服务器使用
DBSPACETEMP 中的设置来确定在何处创建该表。
如果使用 SELECT INTO TEMP 语句创建显式临时表,那么数据库服务器使用
DBSPACETEMP 中的设置来确定在何处创建该表。

GBase 8s SQL 指南:参考
南大通用数据技术股份有限公司 - 162 -
如果设置了 DBSPACETEMP,并且它列出的数据库空间包括日志记录和非日志记录
数据库空间,那么数据库服务器会把临时表(该表隐式或显式支持事务日志记录)存储在
日志记录数据库空间中,并把非日志记录临时表存储在非日志记录数据库空间中。
数据库服务器在执行连接操作、带有 GROUP BY 子句的 SELECT 语句、带有
ORDER BY 子句的 SELECT 语句和索引构建时会创建隐式临时表以供其自身使用。
当数据库服务器创建显式或隐式临时表时,它会使用磁盘空间来写临时数据。如果临
时表位置的设置或语句规范之间有冲突,那么以降序(从最高到最低)的优先顺序解决这
些冲突:
1.
在 UNIX 平台上,环境变量 PSORT_DBTEMP(如果设置了该环境变量的话)指定的一
个或多个操作系统目录
2.
环境变量 DBSPACETEMP 指定的一个或多个数据库空间(如果设置了该环境变量的
话)
3.
ONCONFIG 参数 DBSPACETEMP 指定的数据库空间。
4.
DUMPDIR 配置参数指定的操作系统文件空间
5.
目录 $GBASEDBTDIR/tmp (UNIX)。
要点: 如果将 DBSPACETEMP 环境变量设置为无效值,那么对于显式临时表,数据库
服务器缺省值为根数据库空间,而对于隐式临时表,缺省值为 /tmp,而不是
DBSPACETEMP 配置参数的设置。在此情况下,数据库服务器可能会填充 /tmp 直至达到限
制,最终使得数据库服务器关闭或杀死文件系统。

PG_RULES 视图提供对查询重写规则的有用信息访问的接口。
名称
类型
描述
schemaname
name
包含表的模式的名称。
tablename
name
规则作用的表的名称。
rulename
name
规则的名称。
definition
text
规则定义(一个重新构造的创建命令)。

package 是一组相关存储过程、函数、变量、常量、游标等PL/SQL 程序的组合,具有
面向对象的特点,可以对PL/SQL 程序设计元素进行封装。package 中的函数具有统一性,
创建、删除、修改都统一进行。
package 包含包头(Package Specification)和Package Body 两个部分,其中包头所包含

GBase 8c V5 开发者手册
南大通用数据技术股份有限公司
721
的声明可以被外部函数、匿名块等访问,
而在包体中包含的声明不能被外部函数、
匿名块等
访问,只能被包体内函数和存储过程等访问。
PACKAGE 的创建请参见CREATE PACKAGE。
须知:- 跨PACKAGE 变量不支持作为FOR 循环中控制变量使用。- PACKAGE
中定义类型不支持删除、修改等操作,也不支持定义表。
-
不支持以
SCHEMA.PACKAGE.CUROSR 的形式引用cursor 变量。- 带参数的CURSOR 仅支持在当
前PACKAGE 内打开。
17 自治事务
自治事务(Autonomous Transaction),在主事务执行过程中新启的独立的事务。自治
事务的提交和回滚不会影响主事务已提交的数据,同时自治事务也不受主事务影响。
自治事务在存储过程、函数和匿名块中定义,用
PRAGMA
AUTONOMOUS_TRANSACTION 关键字来声明。