您的位置:首页 > 数据库 > Oracle

oracle ERP开发总结2:开始熟悉开发流程,接触到Form开发(2013-11-11)

2013-12-07 23:59 405 查看
====================================<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

2008-8-28 日晚数据库日志 程序全局区 排序区
大池 JAVA池 ORACLE 10G 自动共享内存管理

====================================
程序全局区:单个用户或服务器数据和控制信息的内存区域。由ORACLE 自动分配。

排序区:为由拍训的SQL语句提供内存空间 sort_area_size

select name,value from v$parameter where name like 'sort%size';

NAME VALUE

1 sort_area_size 65536

2 sort_area_retained_size 0

内存的排序量 和磁盘的排序量 通过V$SYSSTAT数据字典查询

select name ,value from v$sysstat where name like '%sort%'

sorts (memory) 305634

sorts (disk) 0

sorts (rows) 16529326

大池:用于数据库备份工具----- 恢复管理器(RMAN) 由large_pool_size 确定

select name ,value from v$parameter where name like 'share%size'

NAME VALUE

1 shared_pool_size 0

2 shared_pool_reserved_size 4823449

ORACLE 10G 自动共享内存管理

oracle 10g 中只要将参数statistics_level 设置为TYPICAL 或者ALL ,使用新参数SGA_TARGET 指出SGA内存区的总大小就可以了,不需要定义SGA数据库的每个参数的大小,数据库会根据需要在各个组件之间自动分配内存的大小

select ((select sum(value) from v$sga) -

(select current_size from v$sga_dynamic_free_memory)) "sga_target"

from dual

==============================================================

ORACLE 的进程结构

==============================================================

ORACLE 实例 实例包括两个部分 ,一个部分是内存中的系统全局区, 一个部分是后台进程。

oracle 实例进程结构

单进程ORACLE实例(一般不用)在一台机器上与性,只能一个用户

多进程ORACLE 实例 unix /windows 2000 系统的进程分为用户进程 服务器进程 和后台进程

数据库所占用的操作系统进程总数受参数PORCESSES 的限制

show parameter processes 或者 select value from v$paramter where name like '%processes'

在系统中所有进程不能超过PORCESSES的数量PROCESSES可以在参数文件中修改,在UNIX中这个数量收到系统参数semmns设置制约。

用户进程和服务器进程

通过 数据字典 V$PROCESS,V$SESSTAT,S$SESSION 查询进程

select substr(s.sid, 1, 3) sid,

substr(s.SERIAL#, 1, 5) ser,

spid,

substr(schemaname, 1, 10) schema,

substr(type, 1, 3) typ,

substr(decode((consistent_gets + block_gets),

0,

'none',

(100 * (consistent_gets + block_gets - physical_reads) /

(consistent_gets + block_gets))),

1,

4) "%hit",

value cpu,

substr(block_changes, 1, 5) bchng

from v$process p, v$sesstat t, v$session s, v$sess_io i

where i.sid = s.sid

and s.sid = t.sid

and p.ADDR = s.PADDR(+)

SID :回话ID 号

SER :会话 序列号

SPID:对应操作系统进程

schma:数据库用户名

typ:进程类型 USE 用户 BAC 后台进程

%hit:数据缓冲区命中率

CPU: 使用CPU的时间

PCHNG:修改数据块的个数

后台进程结构

数据写入进程DBWR

日志写入进程LGWR

检查点进程CKPT

系统监控PMON

归档进程ARCH

恢复进程RECO

封锁进程LCKn

调度进程dnnn

服务器进程snnn

作业进程snp

select * from v$bgprocess

后台进程跟踪信息

设置参数文件sql_trace=true

或者alter session set sql_trace=true

tkprof 工具

background_dump_dest 所制定的目录下

select * from v$parameter where name like '%background_dump_dest%'

然后用tkprof 工具将TRC 文件生成 txt 文件 例如:

F:\>cd F:\oracle\product\10.2.0\admin\yu10\bdump

F:\oracle\product\10.2.0\admin\yu10\bdump>tkprof yu10_lgwr_3112.trc 1.txt

锁等待问题

保持读一致性

查看数据库中目前正在等待所资源的用户,可以查询数据字典v$session v$lock

select a.username, a.sid, a.serial#, b.id1

from v$session a, v$lock b

where a.LOCKWAIT = b.kaddr

然后用

alter system kill session ‘sid,serial#’;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: