怎样才能保证我写的SQL语句是执行效率最高的呢?
这可是一个世界难题啊?有关SQL优化的资料很多.如果你想借助工具,你可以用TOAD
(www.quest.com下载)

解决方案 »

  1.   


    oracle的优化器,只是将某些格式的sql语句转化为优化的sql语句
    但不会有质的改变,需要在编写的过程中进行优化
      

  2.   

    优化还是要在自己的程序里实现
    所谓优化主要还是语句的执行速度
    主要看的是在写SQL时有没有走索引
    表结构的合理定义
    并不是索引走的越多越好
    相反走了不该走的索引反而降低查询速度
    特别注意尽量不要走时间索引,效率很低!
    如果在有其他条件的情况下,也必须走时间,可以破坏时间索引,不让你的语句走时间索引
      

  3.   

    要想优化SQL语句,必须了解SQL语句是如何运行的,索引又是怎么回事。一般可以这样考虑,根据表里的具体记录数,如果表里记录数较少,就不要对这个表建立索引,如果表里记录数达到万条以上可以考虑建立索引,以加快查询速度,但会减慢插入速度,(哪些字段需要建立索引,也要注意)。一般一句SQL语句只能利用一个索引,所以建议利用记录数比较多的表的索引比较好(如何利用索引的具体方法可以参考ORACLE的相关电子文档)。efany和fred_的话比较有道理,建议具体情况具体分析比较好
      

  4.   

    这个问题你还是要先看看书,不如问:"以下SQL在XXX情况下要求达到什么效果应该怎么优化"更有意义
      

  5.   

    和尚下山老兄说的还是比较实际的,Oracle的优化本身是个特别大的话题
    空谈没有什么实际的意义
      

  6.   

    在不同环境下用不同方法,没有绝对可取,看以下:1、有两个索引存在的情况下,from后面大表在前。小表(返回记录少的表,不是记录少的表)在最后,作为驱动表,Oracle处理SQL语句是从左到右2、有一个索引,则顺序无关3、都没有索引,则大表应该在后像以上的规则,也不能绝对.
      

  7.   

    有道理!看来我对SQL的理解还不够深入。一般情况下,有好几张表建立关联,每一张都有好几万甚至几十万条记录,SQL语句还含有FUNCTION,当初比较急就发帖了。
      

  8.   

    楼上的,FUCK YOU,我鄙视你。