Informix技巧

来源:互联网 发布:淘宝开店商品选择 编辑:程序博客网 时间:2024/06/08 03:11

Informix技巧 收藏 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 *********************************************************************************************** 使用3大数据库开发时的问题在使用过的三大数据库Informix、DB2、Oracle中,因为涉及到不同的项目,所以都接触过,其中在开发使用中,出现不少最让人记忆深刻的问题,基本上都和数据库的不同实现特性有关,但一不小心还是让你深陷重围,下面举例一二,供大家参考: 本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/amaryh/archive/2010/04/01/5441422.aspx

原创粉丝点击