小议针对Oracle数据库的SQL语句的优化 怎样才能保证我写的SQL语句是执行效率最高的呢?这可是一个世界难题啊?有关SQL优化的资料很多.如果你想借助工具,你可以用TOAD(www.quest.com下载) 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 oracle的优化器,只是将某些格式的sql语句转化为优化的sql语句但不会有质的改变,需要在编写的过程中进行优化 优化还是要在自己的程序里实现所谓优化主要还是语句的执行速度主要看的是在写SQL时有没有走索引表结构的合理定义并不是索引走的越多越好相反走了不该走的索引反而降低查询速度特别注意尽量不要走时间索引,效率很低!如果在有其他条件的情况下,也必须走时间,可以破坏时间索引,不让你的语句走时间索引 要想优化SQL语句,必须了解SQL语句是如何运行的,索引又是怎么回事。一般可以这样考虑,根据表里的具体记录数,如果表里记录数较少,就不要对这个表建立索引,如果表里记录数达到万条以上可以考虑建立索引,以加快查询速度,但会减慢插入速度,(哪些字段需要建立索引,也要注意)。一般一句SQL语句只能利用一个索引,所以建议利用记录数比较多的表的索引比较好(如何利用索引的具体方法可以参考ORACLE的相关电子文档)。efany和fred_的话比较有道理,建议具体情况具体分析比较好 这个问题你还是要先看看书,不如问:"以下SQL在XXX情况下要求达到什么效果应该怎么优化"更有意义 和尚下山老兄说的还是比较实际的,Oracle的优化本身是个特别大的话题空谈没有什么实际的意义 在不同环境下用不同方法,没有绝对可取,看以下:1、有两个索引存在的情况下,from后面大表在前。小表(返回记录少的表,不是记录少的表)在最后,作为驱动表,Oracle处理SQL语句是从左到右2、有一个索引,则顺序无关3、都没有索引,则大表应该在后像以上的规则,也不能绝对. 有道理!看来我对SQL的理解还不够深入。一般情况下,有好几张表建立关联,每一张都有好几万甚至几十万条记录,SQL语句还含有FUNCTION,当初比较急就发帖了。 楼上的,FUCK YOU,我鄙视你。 linux下项目导出windows下的ORACL数据库的数据 分区表空间 在一个SELECT 语句里又查询又统计? 求助动态 游标操作 求一个简单相加查询 怎样写个SQL语句可以将表中的字段个数统计出来? 请问:开发了OCI的应用程序后,如何才能在客户的机器上运行?是否可以不装那么大的Oracle Client? 请问如何实现两Oracle数据库的数据同步,是在DBA Studio的高级复制中设置吗? oracle734的user_jobs不能清空是怎么回事? 如何能从oracle中获得访问信息? 多个存储函数转成一个package 这SQL语句怎么在不能用?
oracle的优化器,只是将某些格式的sql语句转化为优化的sql语句
但不会有质的改变,需要在编写的过程中进行优化
所谓优化主要还是语句的执行速度
主要看的是在写SQL时有没有走索引
表结构的合理定义
并不是索引走的越多越好
相反走了不该走的索引反而降低查询速度
特别注意尽量不要走时间索引,效率很低!
如果在有其他条件的情况下,也必须走时间,可以破坏时间索引,不让你的语句走时间索引
空谈没有什么实际的意义