浏览 1652 次
锁定老帖子 主题:写SQL要注意的问题
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2012-03-05
引用 优化SQL三点:减少工作量、平衡工作量、并行工作量
尽量不要使用LIKE ‘%..%’,他会走全表扫描,请使用LIKE ‘…%’,在一个范围内扫描是可以使用索引的。 用NOT EXISTS代替NOT IN,因为NOT IN不使用表索引。 <>符号也不会使用索引,建议用> or <,而>和<也不被建议使用,要用最好使用>=和<=。 IS NULL或IS NOT NULL,空值在B-Tree中是不索引的,所以查询空值时是不走索引扫描的 UNION在合并是去掉重复值,会用到排序段,如果结果很大的话,会导致sort area不够用而使用临时段,造成磁盘读写。建议尽量使用UNION ALL,或等到查询结果集到最小的时候再进行UNION操作。 分布式查询用一次返回remote database的数据以减少网络消耗。 COMMIT一次提交多笔DML提高效率 通过ORACLE内部函数(例如:sysdate)取值,请只取一次值。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |