学习Oracle24-28
发布时间:2012-07-27 14:16:12
发布时间:2012-07-27 14:16:12
Oracle24_PGA内存作用和构成
Oracle 25_PGA管理和调整
1. PGA作用:
给server process划分内存空间,存储用户会话(session)当中相关的一些数据.
2. PGA构成:word/media/image1.gif.private SQL area
b.Session Memory
c.SQL Work Areas(SQL工作区)
|sort_area_size sort_area_retained_size
|hash_area_size hash_join_enable
|bitmap_merge_area_size create_bitmap_area_size
|open_cuesors(一个会话可以同时执行sql的数量) _pga_max_size
3. PGA管理方式
Auto(自动) Manual(手动)
设置PGA管理方式(自动管理):
alter system set workarea_size_policy = auto scope = both
alter system set pga_aggregate_target = 512m scope = both
注:要关注是否发生磁盘排序,磁盘排序非常慢!
select ksppinm "Name",ksppstvl/1024/1024 || 'M' "Value",ksppdesc "Desc"
from x$ksppi x,x$ksppcv y
where x.indx = y.indx and ksppinm = '_pga_max_size';
4. Dedicated Server、 Shared Server
专用的服务器模式、 共享的服务器模式
5.重要参数
PGA_AGGREGATE_TARGET
在PLTP系统中,典型PGA内存设置应该是总内存的较小部分(例如20%),剩下80%分配给SGA,
OLTP:PGA_AGGREGATE_TARGET = (total_mem *80%)*20%
在DSS系统在,由于会运行一些很大的查询,典型的PGA内存最多分配70%的内存,
DSS:PGA_AGGREGATE_TARGET = (total_mem *80%)*50%
6.重要视图
V$PGASTA
Select * from V$PGASTA;
V$PGA_TARGET_ADVICE
Select pga_target_for_estimate/1024/1024||'M' "Estimate PGA Target",
Estd_pga_cache_hit_percentage "Cache Hit(%)",
Estd_extra_bytes_rw/1024/1024||'M' "Extra Read/Write",
Estd_overalloc_count "Over alloc count"
From V$PGA_TARGET_ADVICE
select (p.PGA_TARGET_FOR_ESTIMATE)/1024/1024,
p.ESTD_PGA_CACHE_HIT_PERCENTAGE
from V$PGA_TARGET_ADVICE p
where p.ESTD_PGA_CACHE_HIT_PERCENTAGE>95;
select round(pga_target_for_estimate/1024/1024) target_mb,
estd_pga_cache_hit_percentage cache_hit_perc,
estd_overalloc_count
from v$pga_target_advice
V$SYSTTAT、V$SESSTAT
Select * from V$SYSSTAT where name like '%sort%' --内存排序、磁盘排序、行排序
Select name,value from v$statname a,v$mystat b where a.statistic# = b.statistic# and a.name like '%pga%' --当前会话session的pga使用情况
V$SQL_WORKAREA
V$SQL_WORKAREA_ACTIVE
V$PROCESS
当前进程:
select spid,program,pga_max_mem,pga_alloc_mem,
pga_used_mem,pga_freeable_mem
from v$process
where spid in(select spid from v$process where addr in(
select paddr from v$session where sid in(
select distinct sid from v$mystat)));
select spid,program,pga_max_mem,pga_alloc_mem,
pga_used_mem,pga_freeable_mem
from v$process
where PROGRAM like '%jiagulun%';
================================================================================
Oracle 26_Oracle存储结构_文件
1.控制文件
select name,value from v$parameter where name like '%control%';
三个控制文件是复用的,最好将这三个控制文件放在3个不同的目录或者磁盘上
2.数据文件:
只要有旧的备份文件+日志文件就可以恢复
3.重做日志文件
4.参数文件:
cd /u01/app/oracle/product/10.2.0/db_1/dbs/spfilejiagulun.ora
5.备份文件(离线文件):千万不能放在存储上,放在带库上.
6.归档日志文件(离线文件--- archived_log): 千万不能放在存储上(占用空间很大),
select * from v$archived_log;
7.口令文件
8.预警和跟踪日志文件(alert_jiagulun.log):
cd $ORACLE_BASE cd admin/jiagulun/bdump/
等同于cd /u01/app/oracle/admin/jiagulun
里面的.trc文件记录的LGWR进程(后台进程)出现问题时PGA的信息.
cd /u01/app/oracle/admin/jiagulun/udump
里面的.trc文件记录的是server process进程的信息.
Oracle27_存储结构_表空间
Oracle28_存储结构_段区块
1. Oracle文件结构
所有文件(控制文件、数据文件、redolog文件)反正存储上。
2. 数据库、表空间、段、区、块
段存在于表空间中,段由区的集合构成,区是数据块的集合,数据块将映射到物理磁盘块。
3. Oracle表空间
select * from dba_tablespaces;
普通表空间
回滚表空间
临时表空间
4. Oracle段
select * from dba_segments;
表段、表分区段、索引段、索引分区段、临时段、撤销段、二进制大对象断
5. Oracle区
高水位线(high-water-mark)最后一个块
全表扫描
6. Oracle块
是数据库最小的IO单元,映射物理磁盘块,默认大小为8K.
Oracle块的物理结构:
块头部:块的物理地址、属于哪个表空间、事务槽(以后讲)、行目录(记录每一行起点的位置)
块底部:是从底往上用的,行与行之间串起来用的,
文件系统块: dumpe2fs /dev/sda1|more
7. 区管理方式:
a) 数据字典
b) 本地管理(选择)
自动(选择)
手工
8. 段管理方式:
手工管理方式
自动管理方式(选择)
建立表空间SQL:
CREATE SMALLFILE TABLESPACE "SPACE1" DATAFILE '/u01/app/oracle/oradata/jiagulun/space1_01.dbf' SIZE 100M REUSE AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED
LOGGING
EXTENT MANAGEMENT
LOCAL SEGMENT SPACE MANAGEMENT AUTO
--查询T2段的信息:
select segment_name,blocks,extents,
bytes,segment_type,tablespace_name from
dba_segments where segment_name = 'T2';
--查询T2块的信息:
select blocks,empty_blocks from dba_tables where table_name = 'T2';
附录:
analyze table t2 compute statistics;
analyze table t2 compute statistics for all indexes;
analyze table t2 delete statistics;
--经常用到下面的:
Exec dbms_stats,gather_table_stats(‘SYS’,’T2);
--SQL语句
==表中记录的统计信息
Select NUM_ROWS 表中的记录数
BLOCKS 表中数据所占的块数
EMPTY_BLOCKS 表中的空块数
AVG_SPACE 数据块中平均使用空间
CHAIN_CNT 表中行连接和行迁移的数量
AVG_ROW_LEN 每条记录行的平均长度
FROM USER_TABLES
==索引的统计信息
SELECT BLEVEL 索引的层数
LEAF_BLOCKS 叶子节点的个数
DISTINCT_KEYS 唯一值的个数
AVG_LEAF_BLOCKS_PER_KEY 每个key的平均叶块个数
AVG_DATA_BLOCKS_PER_KEY 每个key的平均数据块个数
CLUSTERING_FACTOR 群集因子
FROM USER_INDEXES
==列的统计信息
SELECT NUM_DISTINCT 唯一值的个数
LOW_VALUE 列上的最小值
HIGH_VALUE 列上的最大值
DENSITY 选择率因子(密度)
NUM_NULLS 空值的个数
NUM_BUCKETS 直方图的BUCKET个数
HISTOGRAM 直方图的类型
FROM USER_TAB_COLUMNS
相关视图:
1. V$TABLESPACE
2. V$ENCRYPTED_TABLESPACES
3. DBA_TABELSPACES,DBA_USER_TABLESPACES
4. DBA_TABLESPACE_GROUPS
5. DBA_SEGMENTS,USER_SEGMENTS
6. DBA_EXTENTS,USER_EXTENTS