学习Oracle24-28

发布时间: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

OLTPPGA_AGGREGATE_TARGET = (total_mem *80%)*20%

DSS系统在,由于会运行一些很大的查询,典型的PGA内存最多分配70%的内存

DSSPGA_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$SYSTTATV$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%' --当前会话sessionpga使用情况

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

学习Oracle24-28

相关推荐