SQL语句的优化策略_Android, Python及开发编程讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  Android, Python及开发编程讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 3145 | 回复: 0   主题: SQL语句的优化策略        下一篇 
鲲鹏展翅
注册用户
等级:少校
经验:1148
发帖:79
精华:9
注册:2012-11-19
状态:离线
发送短消息息给鲲鹏展翅 加好友    发送短消息息给鲲鹏展翅 发消息
发表于: IP:您无权察看 2012-11-19 12:50:08 | [全部帖] [楼主帖] 楼主

1.sql语句的优化(sql  tuning)问题

1.尽量使用列名的方式来代替*的方式来进行查询

因为使用*的话,由于*表示任意的意思,所以当数据库读到*的时候就要去解析到底*是代表什么,这个解析的过程必然要消耗一定的时间,同时还会占用一定的cpu资源,然而,如果使用列名的话就不会有这些问题了,直接就可以进行查询了。所以尽量要使用列名来进行查询。

但是要注意了,这个问题只是在9i之前有效,9i之后的版本就没有这个问题了。因为使用*比较简单,所以oracle*进行了优化,使得二者的性能基本一样,但通俗的讲,列名方式还是比较有的,不过相对比较复杂。

2.在对结果集进行排序时,当order by后边有很多个条件的时候,如果是用and连接的话,应该把最可能假的条件放在最右边,如果是用or 连接的话应该把最真的条件放在最右边,因为oracle是从右至左来进行判断的。


北京联动北方科技有限公司

3.sql的优化的第三点,尽量使用显式转换,而减少使用隐式转换,但前提是被转换对象要是能够转换的对象


北京联动北方科技有限公司

4.在分组过滤时,当wherehaving都可以使用时,应该尽量使用where,即,先使用where进行过滤,然后在分组或其他的操作。


北京联动北方科技有限公司

5.多表查询和子查询都可以时,尽量使用子查询


6.对于大表,当数据表中的数据非常多时,要使用分区、索引等加快查询

对数据进行分区,然后建立索引,这样就会加快查询的速度




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论