欢迎 swordlu 加入本站!
 免费注册  用户登陆  汇款方式  汇款确认  产品报价  联系我们  帮助中心
加入收藏
设为首页
会员体系
申请VIP
网站首页 光盘超市 软件下载 技术文章 专题 用户中心 VIP会员 技术论坛 网站留言 娱乐中心 卓越资源
今天是:2008年11月21日 星期五  您现在位于: 首页 → 技术文章 → informix临时表...
   informix临时表的存放位置
作者:whitecrewhouse  出处:www.cublog.cn  更新时间: 2007年05月13日 
 
根据informix的语法手册,create temp table或者select ... into temp语句,会显式创建临时表,如果在语句中没有包含存放位置子句的话,临时表的存放位置应该放在环境变量DBSPACETEMP或者ONCONFIG 参数DBSPACETEMP所指定的Dbspace中。 

但是在实践中,发现事实并非如此,如果create temp table没有带with no log子句,那么该临时表不会放到DBSPACETEMP所指定的Dbspace,而是放到informix的系统Dbspace——rootdbs。

经过查询资料,终于弄明白原因所在。

通常用户创建的Dbspaces(相当于oracle中的tablespace)都是带日志功能的,但临时类型Dbspace(创建时指定Temp标志为Y)例外,是不带日志功能的。

创建临时表时,如果没有指定with no log子句,那么informix就会根据表所在数据库的日志模式,来设定表的日志模式。大多数情况下,我们用户为了保证数据可靠性,都会开放数据库日志模式。于是,informix只能选择那些带日志功能的Dbspaces来存放临时表,而不幸的是,管理员总是把一些临时类型Dbspace列在 DBSPACETEMP变量中。这就出现——虽然指定DBSPACETEMP,但informix仍然把临时表放在rootdbs的问题。

解决方法就是在DBSPACETEMP变量中,添加一些非临时类型的Dbspace(临时和非临时Dbspaces可以共存)。

另:DBSPACETEMP变量应该还要放一些临时类型的Dbspace,用于那些非显式生成临时表的情况,例如:大表join,排序等等。
 (本文已被浏览 3797 次)
 发布人:sdccf
 → 推荐给我的好友
上篇文章:设置 GLS 环境变量
下篇文章:informix审计功能的配置
 相关文章:
Sybase 临时数据库 关于Sybase数据库tempdb的优化

相关搜索
查看百度中关于informix临时表的存放位置的更多内容
查看google中关于informix临时表的存放位置的更多内容
   文章分类
操作系统 |
SCO_UNIX  Sun_Solaris  IBM_AIX  HP_UX  Linux  BSD  Tru64_UNIX 
通用UNIX知识  Windows  Minix 
程序设计 |
Shell编程  C/C++  汇编  PHP  JAVA  Perl  Python 
ASP/HTML  XML  中间件 
数据库 |
Oracle  Informix  Sybase  Fox  DB2  SQL  MySQL 
PostgreSQL 
网络应用 |
网络应用 
计算机硬件 |
计算机主机  打印机  路由器  交换机  终端  磁带机  MO 
刻录机  终端服务器  调制解调器 
   文章评论
  → 评论内容 (点击查看)   共0条评论,每页显示5条评论   浏览所有评论
(没有相关评论)
  → 发表我的评论
您的姓名: 您的Email:
评论内容:
250字内
发表评论:      发表评论须知 →
  • 尊重网上道德,遵守《全国人大常委会关于维护互联网安全的决定》及中华人民共和国其他各项有关法律法;
  • 本站有权保留或删除您发表的任何评论内容;
  • 关于我们 ┋  网站留言 ┋  网站地图 ┋  友情链接 ┋  与我在线 ┋  汇款确认 ┋  管理 ┋  TOP
    Linux.Unix爱好者家园  http://www.unix-cd.com/
    联系我们:sdccf@163.com
    腾讯QQ: 7644599
    备案序号:鲁ICP备05000455号
    Copyright (c) 2001-2008 Unix-cd.com. All Rights Reserved.