Dev@Free

zJun's Tech Weblog

Informix技巧4则

本文内容均来自网络,这里仅是组织整理,方便记忆和查阅,以及供更多的人学习,如果有兴趣可到文中的“出处”查看原文。


1. UPDATE STATISTICS FOR TABLE tablename(
出处:ChinaUnix )
     Informix 数据库服务器中的优化器为SQL语句的查询提供最有效的策略,估计查询策略的代价需要准确的统计信息(包括:记录数,表空间的页数,记录长度,字段不同值个数,索引的层数,索引叶结点数目,索引是升序还是降序或聚类索引),但是由于维护这些统计信息的代价是很大的,所以informix系统不是在每次修改时对统计值更新.因此当我们对数据库进行了大量的数据库操作(删除)时,如果想提高查询的效率,最好手动的更新系统表的统计信息,命令格式如下:
UPDATE   STATISTICS   FOR   TABLE  tablename

2." could not do a physical order read to fetch next row" ( 出处:JavaYou )
      在大数据量操作数据库的时候,容易出现异常:"could not do a physical order read to fetch next row",这是
是因为Informix默认锁等待时间为0,即在操作(update、delete等)数据库的时候,如遇到其他操作也在使用同一张表的情况时,则不等待和返回异常。
       最简单的解决方法就是每次在获取新的(注意是新的,原有的连接也无妨,但影响效率)数据库连接时,首先执行设置连接的锁等待时间的Sql:
SET  LOCK MODE  TO  WAIT  10    -- 意思是设置锁等待时间为10ms


3."DBSERVERNAME不在sqlhosts文件中 " ( 出处:JavaYou )
      在Windows下如果碰到问题:当初始化数据库或者做其它操作的时候提示DBSERVERNAME不在sqlhosts文件中,事实上Windows操作系统的Informix是不需要sqlhosts文件的,该文件仅存于UNIX操作系统。
       解决办法是:检查这样一个服务是否启动,该服务的名称是:Remote Registry Service,必须保证该服务启动。因为Informix数据库很多配置信息都存放在注册表中,如果没有启动该服务,则数据库无法读取注册表的信息。

4.导入导出
[导出]
UNLOAD  TO  dataFile.dmp  SELECT   *   FROM  tablename

[导入]
LOAD   FROM  dataFile.dmp  INSERT   INTO  tablename

posted on 2006-07-06 16:05 zJun's帛罗阁 阅读(1863) 评论(0)  编辑  收藏 所属分类: 数据库


只有注册用户登录后才能发表评论。


网站导航:
 

导航

<2006年7月>
2526272829301
2345678
9101112131415
16171819202122
23242526272829
303112345

统计

常用链接

留言簿(15)

随笔分类

随笔档案

相册

收藏夹

博客

文档

站点

论坛

搜索

积分与排名

最新评论

阅读排行榜

评论排行榜