优化哪些内容
数据库吞吐量
数据库用户响应时间
性能优化过程
1. 调整数据结构的设计
2. 调整应用程序结构设计
3. 调整数据库SQL语句
4. 调整服务器内存分配
5. 调整硬盘I/O
6. 调整操作系统参数
SGA(全局共享内存) 共享池
共享池是PL/SQL程序进行语法分析、编译、执行的内存区域,共享池的大小直接影响数据库的性能。保存了对SQL分析结果,减少了分析相同SQL的时间,提高SQL执行效率。
SELECT子句中避免使用 ‘ * ‘
、*‘是一个方便的方法但也是一个非常低效的 方法. 实际上,ORACLE在解析的过程中, 会将’*’ 依次转换成所有 的列名, 这个工作是通过查询数据字典完成的, 这意味着将耗费更多的时间.不必每次取出所有的数据规则:
not exists,not in,表连接。
规则:not exists代替not in
规则:用表连接替换EXISTS
1、查询一个表有,而另一个表没有的记录,用not exists最快。
2、查询多个表都有的记录,用表的对待联接最快
select * from dept where dept.deptno not in
(select emp.deptno from emp);
优化方式
select * from dept where not exists -- not exists 性能比not in好
(select 'a' from emp where emp.deptno = dept.deptno)
表连接
select * from emp where emp.deptno in (select dept.deptno from dept)
select * from emp where exists (select 'd' from dept where dept.deptno = emp.deptno);
优化方式
select * from emp join dept on emp.deptno = dept.deptno;
索引使用注意事项
索引的本质就是通过创建一个内部的索引表来达到快速搜索的目的。
索引可以提高在该表上执行SELECT语句的速度,但是会降低数据增删改语句执行的速度。
应该使用索引的地方
不应该使用索引的地方
尽快使用COMMIT,但是要注意事务完整性。
财务1部为张三加500块,财务2部为张三减500块。
张三给李四转帐500块。
对经常修改的字段使用char类型