2010年(20)
分类: DB2/Informix
2010-07-16 11:37:34
两种方法创建临时表:
1:create temp table temp _tabname(id int) with no log
2,select * from tabname into temp temp_tabname with no log
(一)临时表空间可以在环境变量DBSPACETEMP中设定,也可以在参数DBSPACETEMP中设定。如果两者都设定,则使用环境变量中的值。如果环境变量使用的数据库空间不存在,则数据库不会创建该数据库空间。
(二)如果使用create temp table方式显示创建数据库而没有“in dbspace”则默认将临时表放置于DBSPACETEMP变量设定的临时数据库空间中。使用select * from tabname into temp方式也默认放置于DBSPACETEMP变量设定的临时数据库空间中。
(三)使用group by ,order by语句时,数据库会隐式创建临时表供自己使用。而这些临时表使用的空间按照下列次序来使用临时数据库空间:
1,PSORT_DBTEMP环境变量使用的参数
2,DBSPACETEMP环境变量参数
3, onconfig.cs文件中DBSPACETEMP参数
注意:如果将DBSPACETEMP参数设置为无效值,则临时数据库空间设置为根空间(对于显式临时表)或者/tmp(对于隐式临时表),而不是onconfig.cs中设置的DBSPACETEMP参数指定的值。在此情况下,数据库服务器会填充/tmp直至极限,最终会关闭或者杀死文件系统。
注意:如果创建了临时数据库空间,即:在创建的时候有用-t标识,而且必须在onconfig.cs文件中列出这些数据库空间或者在环境变量中列出。否则,临时表创建在当前使用的数据库中。Eg:在userdbs数据库空间中,select * from user into temp tab with no log, 产生的临时表放在userdbs中。