informix数据库相关


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、两张表关联,一个是空表,一个是大表,如果大表上没有关联条件字段的索引的话,会全表扫描,导致查询很慢。有索引的话,分分钟搞定。
 

转载于:https://my.oschina.net/meSpace/blog/3004750

你可能感兴趣的:(数据库)