informix 临时表空间

informix临时表空间
                
       在 Informix 数据库中,我们经常会创建一些临时表来处理应用中的临时信息。系统可以采用如下两种方式创建临时表:
          使用 SELECT INTO TEMP 语句隐含地创建临时表
          使用 CREATE TEMP TABLE 语句显示地创建临时表
       如果数据库采用非日志模式,DBSPACETEMP 环境变量或配置参数设置后,临时表会自动创建在由 DBSPACETEMP 环境变量或配置参数指定的数据空间上;如果数据库采用日志模式,那么创建      的临时表缺省情况下是记日志的,不会被创建在由 DBSPACETEMP 环境变量或配置参数指定的数据空间上,那么由 SELECT ... INTO TEMP 语句创建的临时表将被创建在根数据空间(Root           dbspace)上,由 CREATE TEMP TABLE 语句创建的临时表将被创建在数据库所在的数据空间上。如果希望临时表创建在由 DBSPACETEMP 环境变量或配置参数指定的数据空间上,我们需要使用       SELECT INTO TEMP with no log 语句或 CREATE TEMP TABLE with no log 语句来创建临时表。

         临时表按照如下优先顺序创建在相应的数据空间上:
          由 DBSPACETEMP 环境变量指定的数据空间
          由 DBSPACETEMP 配置参数指定的数据空间
         如果设置了 DBSPACETEMP 环境变量,那么临时表会创建在由 DBSPACETEMP 环境变量指定的数据空间上,如果没有设置 DBSPACETEMP 环境变量,那么临时表会创建在由 DBSPACETEMPP 配        置参数指定的数据空间上。

        出于性能考虑,一般我们建议在多个物理磁盘上创建多个临时表空间,这样,当创建临时表时,它会分片到所有临时表空间上,提高并发处理效率。
        在采用日志模式的数据库中,对临时表的所有 DML 操作都要记日志,而且不加 with no log 选项,临时表不会创建在由 DBSPACETEMP 环境变量或配置参数指定的临时数据空间上,往往        数据会写到根数据空间(Root dbspace)上,影响系统性能,而且用户在创建临时表时,往往总是忘记 with no log 选项。为了解决上述问题,Informix 11 版本开始提供了关闭对临时表记       日志的方法,这样,建临时表时,即使没加 with no log 选项,临时表也会创建在由 DBSPACETEMP 环境变量或配置参数指定的临时数据空间上。

        我们可以采用下述两种方法来关闭对临时表记日志:
          修改 onconfig 配置参数         TEMPTAB_NOLOG 1
        通过 onmode 命令动态改变
                onmode -Wf "TEMPTAB_NOLOG =1" 
                onmode -Wm "TEMPTAB_NOLOG =1"
        其中,-Wm 选项改变参数值后立即生效; -Wf 选项改变参数值后立即生效,同时将新的参数值写到 onconfig 配置文件中。
        使用 TEMPTAB_NOLOG 参数来禁用临时表上的日志记录。该参数可以改进应用程序的性能,尤其是在有 HDR 辅助服务器、RS 辅助服务器或 SD 辅助服务器的数据复制环境中,因为其防止         Informix 通过网络传输临时表。

你可能感兴趣的:(informix,数据库,服务器,table,磁盘,网络)