杂记111111111111111

1.oracle体系结构

2.Oracle管理精通

3.sql

4.备份恢复

5.Oracle rac

6.调优

主机调优

存储调优

网络调优

db调优

应用调优

7.灾备  goldengate dataguard sharepelx

14.数据字典:v$动态性能视图

                        静态性能视图:dba_:所有视图

                                                   all_:可访问的对象

                                                   user_  :自己所拥有的对象                                                                  

14 数据字典:v$动态性能视图

1.关闭数据库

shutdown immediate;

2.启动数据库

2.1startup

oracle数据库文件:数据文件,日志文件,控制文件

Oracle数据库:实例(数据库内存+进程)+文件

SGA中主要:shared_pool,redolog,db_

查看oracle内存:ipcs

查看oracle进程:ps -ef|grep ora

软硬解析的具体情况(数据库自启动以来的解析次数,解析时间):select name,value from v$sysystat where name like 'parse%';

sharedpool有3个空间:free(容易出错),library(容易出错),row cache,

清空shared pool内存的语句:alter system flush shared_pool;该语句可以解决4031错误,但是会产生大量的硬解析。

共享sql可以减少硬解析的次数,共享sql需要:sql语句完全一样(空格,回车,大小写,数值不一致,统统任务sql不一样);

针对数值不一样的sql,可以使用绑定变量来达到共享sql语句的目的,以减少硬解析的次数。

如下案例:

declare

v_sql varchar2(50);

begin

for i in 1..100

loop

v_sql:='insert into test values(:1)';

execute immediate v_sql using i;

end loop;

commit;

end;

1.找出没有共享的sql语句:

select sql_fulltext from v$sql where executions=1 order by sql_text;

2.解析命中率

select sum(pinhints)/sum(pins)*100 from v$librarycache;

select sum(gets),sum(getmisses),100*sum(gets-getmisses)/sum(gets) from v$rowcache where gets>0;

3.解决4031错误的方法

1)alter system flush shared_pool;

2)  共享SQL:绑定变量

3)增加shared pool空间

show parameter sga_target;

show parameter sga_max_size;

select component,current_size from V$sga_Dynamic_Components;

alter system set shared_pool_size=150M scope=both;

4)将librarycache中的有内容的chunk情况,重新挂回free cache中

5)保留区(专门用来存放大对象的)

select request_misses from v$shared_pool_reserved;

查看sql执行计划

select * from table(dbms_xplan.display_cursor('sql_id'));

查看buffer cache的大小:

select  component,current_size,miin_size from v$sga_dynamic_components;

buffer cache大小的设置:

1)设置sga_max_size:alter system set sga_max_size=xxM scope=spfile;

2) 设置sga_target_size:alter system set sga_target_size=xxM scope=spfile;

3)重启数据库

4)设置buffer cache的大小:alter system set db_cache_size=20M scope=memory;

2.整个数据库所有文件中block的总和:

select sum(blocks) from dba_data_files;

3.查看某个文件的某个块所属的对象:

select object_name,dbafil,dbablk from x$bh a,dba_objects b where a.obj=b.object_id

and dbafil=1 and dbablk=338;

4.查看buffer cache中各种状态的块拥有几个

空闲空间的比例最好控制在10%以内

select  decode(state,0,'free',1,decode(lrba_seq,0,'available','begin used'),3,'begin used',state) as block_status,count(*) from x$bh

group by decode(state,0,'free',1,decode(lrba_seq,0,'available','begin used'),3,'begin used',state);

5.找出消耗物理IO资源最大的SQL语句:

select disk_reads,substr(sql_text,1,4000) from v$sqlarea order by disk_reads asc;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值