锁定老帖子 主题:Oracle 常用SQL技巧收藏
精华帖 (0) :: 良好帖 (11) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2010-11-17
华为的SQL优化还有好多,呵呵。
|
|
返回顶楼 | |
发表时间: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’? 不好意思,已更正! |
|
返回顶楼 | |
发表时间:2010-11-19
额 那<,<=该用哪个呢?
|
|
返回顶楼 | |
发表时间:2010-11-24
最后修改:2010-11-24
很不错...
当然了还有其他的优化技巧 1. 用UNION替换OR (适用于索引列) 2. 避免在索引列上使用IS NULL和IS NOT NULL ... |
|
返回顶楼 | |
发表时间:2010-11-24
严东军 写道 华为的SQL优化还有好多,呵呵。
贴出来让大伙多学习学习 |
|
返回顶楼 | |
发表时间: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); 会死的很惨 |
|
返回顶楼 | |
发表时间: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 下十万级数据进行删除测试过. 是目前我所知删除重复数据最快的方法。 |
|
返回顶楼 | |
发表时间:2010-11-25
最后修改:2010-11-25
HuangSui.cn 写道 EXISTS和IN我的理解:
如果主查询数据量比较大,且子查询结果可以将主查询数据通过索引快速过滤 而子查询的数据量不是很大,即便进行排序合并性能也不成问题 那么Exists的效率相对会减弱,IN的效率相对会提升,到一定程度时,IN的效率比EXISTS的效率会高。 并不是EXISTS总是比IN好。 支持。 EXISTS和IN 跟数据量,条件等因素有关,没有绝对的好。 |
|
返回顶楼 | |
发表时间:2010-11-26
很强大,不过说到数据库优化,真的是太多的话题了
|
|
返回顶楼 | |
发表时间:2010-11-28
不错!~~
|
|
返回顶楼 | |