1、
informix数据库中,使用系统表查询一条结果的SQL语句:
SELECT '' FROM SYSTABLES WHERE TABID = 1;
类似于oracle的select * from dual;
2、
SQL脚本中调用存储过程时,语句上面的注释必须是大括号{} informix用/**/注释在存储过程的上面注释时,识别度不高。
例如:
/*调用计算工资的存储过程*/
CALL IFX_SALARY('');
上面这种调用方法,SQL脚本不能识别,导致会报错。必须按下面这种方式修改就行。
{调用计算工资的存储过程}
CALL IFX_SALARY('');
3、INFORMIX统计分析语句:
UPDATE STATISTICS FOR TABLE 表名;
4、查表时越过正在锁表进行增删改的操作的命令:
比如,informix正在update时,不支持查询,需要按以下语句执行命令,才可以正常查询:
set isolation to dirty read;
select count(*) from tablename
4、informix数据,insert时 不写日志,需要用此命令: with no log
只适用于内存表中insert操作:
INSERT INTO TEMP TABLE_NAME SELECT * FROM TABLE_NAME_2 WITH NO LOG;
5、类似于for update 实现锁表
dbaccess登陆数据库后,需要开启事务:
begin work;
lock table xxx in exclusive mode;
6、字段类型不一致,left join时,踩不上索引。必须一致的类型才可以。
7、两张表关联,一个是空表,一个是大表,如果大表上没有关联条件字段的索引的话,会全表扫描,导致查询很慢。有索引的话,分分钟搞定。