oracle 笔记

select * from v$sga 
-- sga_max_size参数必须大于所有pool的尺寸综合
--SGA_TARGET的大小不能大于sga_max_size

show parameters shared_pool_size --共享池(数据字典池,执行计划池)
show parameters buffer_pool_keep --数据库缓冲池,保持池
show parameters buffer_pool_recycle  --数据缓冲池,回收池,对于大的对象.如ntext
show parameters buffer_pool_default --数据缓冲池,默认池
show parameters large_pool_size --大池,主要是在备份时用到
show parameters streams_pool_size --流池,在共享服务器和复制时用到
show parameters java_pool_size --java池,主要是用来缓存java代码的
show parameters log_buffer  --日志缓存 写到在线重做日志4个条件,1,超过1/3时或1M 2,3秒钟
--3,事务提交 4,lgwr切换日志 .在DBWn写之前

show parameters pga_aggregate_target

--pga 进程全局区,对单个session设置的
show parameters workarea_size_policy --pga的手动管理方式,manual手动,auto自动管理
show parameters sort_area_size --进程区,排序内存区域大小,
--一个query只有一个sort_area_size区域,
--如果排序还需要更大的内存空间,临时段将用来保存中间排序的结果
show parameters sort_area_retained_size  --进程区,排序完成,
--SORT_AREA_RETAINED_SIZE定义的空间不释放,每个query分配多个retained区域
show parameters hash_area_size --内存中散列表的大小,就是小表散列


--当直接读取(Direct Read)数据到PGA(而不是到Buffer Cache)中去时,会发生Direct Path Read等待事件
select * from v$parameter where name like '%hash%'

--Hash Area是用于hash join的内存区域。Hash Area过小会引起Direct Path Read, Direct Path Write等待
--当WORKAREA_SIZE_POLICY为TRUE时,可以考虑增加PGA_AGGREGATE_TARGET大小。

select 65536/1024 from dual=6.69921875

select
  o.object_name, blsiz , count(*) blocks
from x$bh b , dba_objects o
where b.obj = o.data_object_id
  and b.ts# > 0
group by o.object_name, blsiz
order by blocks desc

select * from v$sgainfo where name in ('Fixed SGA Size','Redo Buffers','Granule Size')
select * from v$sgainfo where name in ('Fixed SGA Size','Redo Buffers','Granule Size')
--进程监控器pmon   在出现异常后,重启操作。入事务提交或取消,回收锁和相关资源
--smon 系统监控器   系统进程,清理临时表空间,崩溃系统启动时,恢复异常数据
--dbwr 数据写进程 将脏数据写到数据文件,在写之前,必须先执行lgwr写日志进程
--ckpt 检查点进程  把日志文件的内容写到数据文件中
--lgwr 日志写入器 将日志缓冲写到重做日志里
--ARCN 归档进程 日志填满,将日志拷贝到另一地方

select cast(buffer_gets/decode(EXECUTions,0,10000,EXECUTions) as int) 平均IO ,
EXECUTions 执行次数,buffer_gets 总逻辑IO,disk_reads 硬盘读取, parsing_schema_name,
sql_text SQl语句 from v$sqlarea
order by buffer_gets desc

--表空间
--系统表空间 system表空间
--工具表空间  sysaux 存放awr数据
--临时表空间  Temp
--用户表空间  USERS
--数据和索引表空间
--回滚段表空间:运行IUD时存放的数据信息,用于数据恢复 UNDO
--块,区,段,表空间
--最小单元,查询
--分配的连续块
--数据对象使用的空间的集合:表段,lob段,索引段,回滚段,临时段和高速缓存段
--一个或多个数据文件的集合
-- 多块读:1,是全表扫描 2,全索引扫描
--10053 为什么这么执行
-- 10046 怎么执行的
--tkprof 解析10046文件
select * from v$session where service_name='orcl';

--六个文件
--密码文件
--参数文件  spfile.ora
--控制文件  contrl.ctl
--重做日志文件 redo01.log
--数据文件 data.log

--free buffer waits 是指搜索可用的buffer,
--buffer busy waits 是指buffer全部被占用,等待释放。f
--free buffer wait,说明buffer cache中可用的free buffer不够了,
--可能是buffer cache不够大,或者是dbwr忙不过来了
--buffer busy wait?表示多个session在同时读同一个block,或者是多个session再等某个block更新完毕

--free buffer waits是当需要把一个block读到cache的时候,oracle 进程必须寻找空闲块,但进程在LRU list上无法获得块是,进程挂起,产生一个free buffer waits
--buffer busy waits则是块已经存在于cache中,一个会话尝试去pin 住它,在它要执行read 或者write以前,这个时候如果当前块已经被pin住,就会发生竞争,产生一个buffer busy waits

--初始文件
--密码文件
--参数文件
--数据文件
--控制文件
--重做日志文件


--sga  数据缓冲池,重做日志缓冲池,共享池(执行计划,数据字典),大池(备份),java池(java代码),流池(复制)
--pga hash区 sort排序区 只对一个session而言
--sga_max_size sga最大值
--sga——target sga的目标值
--lock 找到对象
--pin  执行对象

--行链接: 插入后,数据太大,多的数据放在其他块中  rowid不变
--行迁移 :更新后,数据太大,将整行数据迁移到一块或多块,rowid变了
--一般的内存对象存放形式为:一个对象的句柄(handle),一个是具体的对象相关信息
--是先lock这个内存句柄,在执行这个句柄上的对象
--liabrary cache lock 有三种,一个是共享,二是排他 
--liabrary cache pin也有三种,一个是共享,二是排他 执行语句:通常是发生在编译或重新编译PL/SQL,VIEW,TYPES等object时发生
--未共享
--一般sql执行时,执行计划和sql语句,对象都放到字典池里。
--库高速缓存和字典高速缓存
select sum(sharable_mem)/1024/1024  from v$sqlarea;
select sum(sharable_mem)/1024/1024   from v$db_object_cache;
select *   from v$db_object_cache;
select sum(250*users_opening)/1024/1024 from v$sqlarea;

select tablespace_name,bytes/1024/1024 可用空间 from sm$ts_free;
select tablespace_name,bytes/1024/1024 使用空间 from sm$ts_used;

posted @ 2010-03-02 08:57  zping  阅读(503)  评论(0编辑  收藏  举报