论坛首页 综合技术论坛

Oracle 常用SQL技巧收藏

浏览 29188 次
精华帖 (0) :: 良好帖 (11) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2010-11-17  
华为的SQL优化还有好多,呵呵。
0 请登录后投票
   发表时间:2010-11-17  
yuhang_java 写道
--高效  
SELECT REGION,AVG(LOG_SIZE)  FROM  LOCATION WHERE REGION REGION != ‘SYDNEY’ ND REGION != ‘PERTH’ GROUP BY REGION


LZ  不觉得这个写错了么?
ND REGION != ‘PERTH’ ??

难道不是AND REGION != ‘PERTH’?


不好意思,已更正!
0 请登录后投票
   发表时间:2010-11-19  
额  那<,<=该用哪个呢?
0 请登录后投票
   发表时间:2010-11-24   最后修改:2010-11-24
很不错...
   当然了还有其他的优化技巧
      1. 用UNION替换OR (适用于索引列)
     2. 避免在索引列上使用IS NULL和IS NOT NULL
...
0 请登录后投票
   发表时间:2010-11-24  
严东军 写道
华为的SQL优化还有好多,呵呵。


贴出来让大伙多学习学习
0 请登录后投票
   发表时间:2010-11-24  
做着不要误导人 

用下面这个
3.删除重复记录
   最高效的删除重复记录方法 ( 因为使用了ROWID)

Sql代码
1.DELETE FROM EMP E WHERE E.ROWID > (SELECT MIN(X.ROWID) FROM EMP X WHERE X.EMP_NO = E.EMP_NO);

会死的很惨
0 请登录后投票
   发表时间:2010-11-24   最后修改:2010-11-24
aladdin181 写道
做着不要误导人 

用下面这个
3.删除重复记录
   最高效的删除重复记录方法 ( 因为使用了ROWID)

Sql代码
1.DELETE FROM EMP E WHERE E.ROWID > (SELECT MIN(X.ROWID) FROM EMP X WHERE X.EMP_NO = E.EMP_NO);

会死的很惨


请说出你的观点?OK? 这个语句我在 oralce 下十万级数据进行删除测试过.  是目前我所知删除重复数据最快的方法。
0 请登录后投票
   发表时间:2010-11-25   最后修改:2010-11-25
HuangSui.cn 写道
EXISTS和IN我的理解:
如果主查询数据量比较大,且子查询结果可以将主查询数据通过索引快速过滤
而子查询的数据量不是很大,即便进行排序合并性能也不成问题
那么Exists的效率相对会减弱,IN的效率相对会提升,到一定程度时,IN的效率比EXISTS的效率会高。

并不是EXISTS总是比IN好。

支持。
  EXISTS和IN 跟数据量,条件等因素有关,没有绝对的好。
0 请登录后投票
   发表时间:2010-11-26  
很强大,不过说到数据库优化,真的是太多的话题了
0 请登录后投票
   发表时间:2010-11-28  
不错!~~
0 请登录后投票
论坛首页 综合技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics