SQL执行过程
1.应用层-应用向数据库发生SQL请求
2.数据库代码层-oracle软件解析并优化SQL,管理锁、安全、并发等
3.内存层-SGA(数据缓存)、PGA(排序和散列 )
4.磁盘层-读写表、索引的数据,读写临时工作区,重做以及其他日志IO
SQL生命周期
1.创建游标
2.在内存中检索是否缓存该SQL
3.没有缓存则解析SQL,包括语法、对象引用、确定查询计划
4.变量绑定
5.执行SQL
6.提取记录
7.关闭游标
优化过程
1.最小化请求
- 优化应用代码,如缓存技术
- 数据结构化以免数据库过载
- 保证网络质量
- 优化数据库物理设计,如索引、分区
- 优化查询器
- 优化单条SQL语句性能
2.降低挣用
3.降低物理IO
- 确保给oracle足够的内存
- 开启AMM
- 适当调整排序和连接数
4.优化磁盘IO
oracle内存
SGA
shared pool--最近执行的SQL以及执行计划
buffer cache--缓存常用的数据
log buffer--redo日志等
PGA--排序、hash、bitmap merge等
查看AWR报告
--登陆sqlplus
[oracle@bspdev test]$ sqlplus /nolog
SQL> conn / as sysdba
Connected.
--调用脚本,生成文件
SQL> @?/rdbms/admin/awrrpt.sql
查看oracle相关性能参数
select count(*) from v$session; #当前的连接数
select value from v$parameter where name = 'processes'; --数据库允许的最大连接数
show parameter processes; #最大连接
alter system set processes = 300 scope = spfile;#修改最大连接数
select * from v$logfile;#日志文件路径
#重启数据库:
shutdown immediate;
startup;