近期热点
·企业网络安全的规划设计与实践
·网络安全之我见
·制造执行系统(MES)的应用与发展
·基于PDM的工作流程管理
·<连载>Protel二次开发从入门到精通
·PDM选型决策支持系统的研究与实现
 相关文章
 相关博客
· 平民的价格,贵族的享受--致力协同OA打造专业Oracle数据库版
·分支机构稳定接入 库存信息实时掌握 ——沟通CTBS助风帆股份打造信息统一平台
·掌握了七大秘籍,公司上下刮目相看
·数据库加密技术概述
 相关新闻
 相关热贴
 相关商城商品
 
 
当前位置:基础信息化 -> 综合
 
教你快速掌握Informix SQL的11个使用技巧
发表时间:2007-9-18 ziyi   来源:赛迪网
关键字:Informix SQL 掌握 数据库 
给学习、使用Informix SQL的朋友提供有效的经验和交流。


    一、加快sql的执行速度

    1.select 语句中使用sort,或join

    如果你有排序和连接操作,你可以先select数据到一个临时表中,然后再对临时表进行处理。因为临时表是建立在内存中,所以比建立在磁盘上表操作要快的多。

    如:

    SELECT time_records.*, case_name 

    FROM time_records, OUTER cases 

    WHERE time_records.client = "AA1000" 

    AND time_records.case_no = cases.case_no 

    ORDER BY time_records.case_no
 
    这个语句返回34个经过排序的记录,花费了5分钟42秒。而:

    SELECT time_records.*, case_name 

    FROM time_records, OUTER cases 

    WHERE time_records.client = "AA1000" 

    AND time_records.case_no = cases.case_no 

    INTO temp foo; 

    SELECT * from foo ORDER BY case_no 

    返回34条记录,只花费了59秒。
 
    2.使用not in 或者not exists 语句

    下面的语句看上去没有任何问题,但是可能执行的非常慢:

    SELECT code FROM table1 

    WHERE code NOT IN ( SELECT code FROM table2

    如果使用下面的方法:

    SELECT code, 0 flag 

    FROM table1 

    INTO TEMP tflag; 

    然后:

    UPDATE tflag SET flag = 1

    WHERE code IN ( SELECT code  FROM table2 

    WHERE tflag.code = table2.code ;

    然后:

    SELECT * FROM 

    tflag 

    WHERE flag = 0;
 
    看上去也许要花费更长的时间,但是你会发现不是这样。

    事实上这种方式效率更快。有可能第一种方法也会很快,那是在对相关的每个字段都建立了索引的情况下,但是那显然不是一个好的注意。

 
<<首页 <上一页  1  2  3  下一页>  末页>>  
3页,当前第1
责任编辑:郑兆丰