【转】Oracle SQL优化技巧
来源:互联网 发布:知乎spam 编辑:程序博客网 时间:2024/04/24 00:41
我觉得主要应该从5个方面进行调整:
1.去掉不必要的大型表的全表扫描
2.缓存小型表的全表扫描
3.检验优化索引的使用
4.检验优化的连接技术
5.尽可能减少执行计划的Cost
现在简单的举几个例子
Where子句中有“!=”将不使用索引
select account_name from test where amount != 0 (不使用)
select account_name from test where amount > 0 (使用)
Where条件中对字段增加处理函数将不使用该列的索引
select * from emp where to_char(hire_date,'yyyymmdd')='20080411' (不使用)
select * from emp where hire_date = to_char('20080411','yyyymmdd') (使用)
避免在索引列上使用IS NULL
select * from emp where dept_code is null (不使用)
select * from emp where dept_code > 0 (使用)
IS NULL不會用到索引
而IS NOT NULL用到索引全掃描
通配符% 的使用
select * from emp where name like '%A' (不使用索引)
select * from emp where name like 'A%' (使用索引)
可以通过建立反向索引
让select * from emp where name like '%A'
也使用索引
在含有子查询的SQL语句中,要特别注意减少对表的查询.例子:
SELECT EMP_NO FROM EMP WHERE (GROUP,NAME) = ( SELECT
COLUMN1,COLUMN2 FROM TEST WHERE TEST_ID = 604)
最高效的删除重复记录方法 ( 因为使用了ROWID)例子:
DELETE FROM EMP E WHERE E.ROWID > (SELECT MIN(X.ROWID)
FROM EMP X WHERE X.EMP_NO = E.EMP_NO);
sql语句用大写的;因为oracle总是先解析sql语句,把小写的字母转换成大写的再执行
在java代码中用到preparedStatement的時候尽量少用连接符“+”连接字符串!
转自:http://blog.csdn.net/nileel/archive/2010/05/12/5581892.aspx
- 【转】Oracle SQL优化技巧
- Oracle SQL优化技巧
- oracle 技巧 sql 优化
- SQL优化技巧(Oracle)
- [转]Oracle SQL性能优化技巧总结
- Oracle SQL 性能优化技巧(转)
- Oracle SQL 性能优化技巧
- Oracle SQL 性能优化技巧
- Oracle & SQL 性能优化技巧
- Oracle SQL 性能优化技巧
- Oracle SQL 性能优化技巧
- Oracle SQL 性能优化技巧
- Oracle SQL 性能优化技巧
- Oracle SQL 性能优化技巧
- Oracle SQL 性能优化技巧
- Oracle SQL 性能优化技巧
- Oracle SQL 性能优化技巧
- Oracle SQL 性能优化技巧
- HTTP 错误 403.9 - 禁止访问:连接的用户过多 Internet 信息服务
- C# 动态调用类方法和属性
- EXE格式视频专用加密器(最新版V6.2)
- 主机屋使用感受
- Easy way for 16, 8 , 2 decimal switch 10 decimal.
- 【转】Oracle SQL优化技巧
- EXE文件加密网络授权管理方案 - 加密EXE文件并通过服务器端授权运行管理
- 我来教您这样做才叫创业
- php nginx配置手记
- Flex项目中如何实现跨域访问问题
- C++与Java的区别
- EXE文件加密器(最新版V5.3)
- 三大GC
- CEF特快交换