Informix数据库临时表的一些总结

来源:互联网 发布:centos教程 编辑:程序博客网 时间:2024/05/18 17:41
    在Informix数据库中,创建临时表来处理应用中的临时数据,并且临时表数据存储在临时表空间中,Informix系统不记录临时表的字典信息
从数据库系统表中查询不到临时表的任何相关信息,可以在临时表上创建索引,临时表的作用域为session,当session结束(应用程序断开数据库)、数据库实例关闭、系统异常关闭后,重新启动时,临时表由数据库自动进行删除。
    临时表SQL语法的创建方式
(1)SELECT INTO TEMP 语句隐式着创建临时表;
SELECT * FROM TABLE1 INTO TEMP TMP1;
或者
SELECT * FROM TABLE1 INTO TEMP TMP1 WITH NO LOG;
(2)CREATE TEMP TABLE 语句显式地创建临时表;
    注意事项
命名规则:
1.临时表只作用于一个session中;
2.在同一个session中,临时表必须不同于当前数据库中其它table、view、sequence、synonym的名称;
3.可以与其它session中的临时表名称相同;
4.在同一session中,不能创建相同名称的临时表,可以先删除后创建;
WITH NO LOG;在日志数据库中,该临时表不记录事务日志;
如:
     CREATE TEMP TABLE(
        ........

        );
或者
     CREATE TEMP TABLE(
        ........
        ) WITH NO LOG;
临时表的优化
取消日志
   1.在日志数据库中,通过with no log,选项取消临时的DML操作日志,这样大大提高数据处理效率;
   2.       利用临时表空间
通过如下原则利用临时表空间提高临时表的性能:
         创建独立的临时表空间,防止与root dbspace及默认表空间的I/O争用情况;
         创建多个临时表空间,并正确配置DBSPACETEMP参数;
         为临时表空间分配足够大的存储空间,防止出现临时表空间不足的情况;
         大数据临时表以round-robin模式分布在多个临时表空间上。并且设置PDQ priority>0,可以提高临时表数据并发处理效率;
         根据临时表存储表空间使用原则,使用with no log选项;
         临时表空间不能使用direct I/O,所以你需要分配足够的AIO VPs
原创粉丝点击