`
txf2004
  • 浏览: 6867879 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

数据库DBA复习日志-系统全局区

阅读更多
============================

2008-8-27 日数据库日志 系统全局区<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

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

模式对象

1.

2. 视图

3. 聚簇 聚簇的两个表公用一个数据段

4. 索引:

5. 序列生成器:

6. 同义词

7. 哈希: 哈希是建立快速查询可以选择的一种方法,要使用哈希要建立哈希聚簇。

8. 程序单元 指存储过程、函数 包。包也是存储在数据库中的一种对象,使用包可以提高程序的运行效率。

9. 数据库链:是分布式数据库中的一种对象,通过数据库链可以存取远程数据库服务器中的数据,完成数据的远程复制。

几条常用查询数据库中对象的语句,通过DBA_OBJECT_SIZE数据字典查询对象的大小

SELECT NAME,TYPE,SOURCE_SIZE,PARSED_SIZE,CODE_SIZE FROM DBA_OBJECT_SIZE WHERE OWNER=’SCOTT’;

查询数据库中所有对象的信息

SELECT COUNT(NAME) num_instances,

type,

sum(source_size) source_size,

sum(parsed_size) parsed_size,

sum(code_size) code_size,

sum(error_size) error_size,

sum(source_size) + sum(parsed_size) + sum(code_size) +

sum(error_size) size_required

from dba_object_size

group by type;

NUM_INSTANCES TYPE SOURCE_SIZE PARSED_SIZE CODE_SIZE ERROR_SIZE SIZE_REQUIRED

------------- ------------- ----------- ----------- ---------- ---------- -------------

77 SEQUENCE 0 21269 0 0 21269

306 JAVA DATA 0 0 9061460 0 9061460

80 PROCEDURE 195836 79137 265364 0 540337

843 PACKAGE 5579302 5597328 2592933 0 13769563

787 PACKAGE BODY 16986950 0 20736955 0 37723905

173 TYPE BODY 329124 13013 922380 0 1264517

770 JAVA RESOURCE 0 0 10739625 0 10739625

170 TRIGGER 202051 0 176815 0 378866

264 FUNCTION 91501 163614 286756 0 541871

16417 JAVA CLASS 0 0 79741212 0 79741212

1859 TYPE 900377 1438090 587281 0 2925748

11 rows selected

1. 数据缓冲区

a) 标准数据块用户系统表空间和默认表空间由DB_BLOCK_SIZE参数决定 其他表空间可以使用非标准表空间数据块,这些数据块由参数DB_NK_CACHE_SIZE 决定

i. alter system set db_2k_cache_size = 10 m

b) 缓冲区命中率查询(要求在95%以上)

c) 用这个程序查询缓冲区命中率

select a.value + b.value "logical_reads",

c.value "phys_reads",

round(100 * ((a.value + b.value) - c.value) / (a.value + b.value)) "buffer hit ratio"

from v$sysstat a, v$sysstat b, v$sysstat c

where a.statistic# = 38

and b.statistic# = 39

and c.statistic# = 40

或者通过以下方法

select name,value

from v$sysstat

where name in ( 'session logical reads',

'physical reads',

'physical reads direct',

'physical reads direct (lob)');

得到结果

1 session logical reads 13847549 为读的总量

2 physical reads 215617 数据文件读

3 physical reads direct 168 从缓冲区读

4 physical reads direct (lob) 为从缓冲区读

命中率 = 1-( physical reads- physical reads direct- physical reads direct)/ session logical reads=98.5%

2 日志缓冲区,日志缓冲区用于存储数据库的修改信息,,大小有参数LOG_BUFFER

SQL> SHOW PARAMETER LOG_BUFFER;

NAME TYPE VALUE

------------------------------------ ----------- ------------------------------

log_buffer integer 7028736

可以通过V$LATCH 来查看日志缓冲区的失败率 ,失败率应该小于1%

SELECT NAME,

GETS,

MISSES,

IMMEDIATE_GETS,

IMMEDIATE_MISSES,

DECODE(GETS, 0, 0, MISSES / GETS * 100) RATIO1,

DECODE(IMMEDIATE_GETS + IMMEDIATE_MISSES,

0,

0,

IMMEDIATE_MISSES / (IMMEDIATE_GETS + IMMEDIATE_MISSES) * 100) RATIO2

FROM V$LATCH

WHERE NAME like 'redo%'

此外可以查询用户进程等待日志缓冲区的次数通过数据字段v$sysstat

select * from v$sysstat where name like 'redo buffer%'

value 为次数

3 共享池

共享池是对SQL PLSQL 程序进行语法分析,编译 执行的内存区域,共享池包括库缓冲区,数据字典缓冲区,用户全局区。

select name,value from v$parameter where name like ‘%size’;

show parameter shared_pool_size;

查看共享池中库缓存的失败率

select sum(pins) "total pins",

sum(reloads) "total reloads",

sum(reloads) / sum(pins) * 100 libcache

from v$librarycache;

这个失败率应该小于1%才对。

这个SGA 的大小如下 (包括了 三个组成部分 数据缓冲区,日志缓冲区 以及 共享池。)

SQL> show sga

Total System Global Area 289406976 bytes

Fixed Size 1248576 bytes

Variable Size 104858304 bytes

Database Buffers 176160768 bytes

Redo Buffers 7139328 bytes

通过数据字典v_$sgastat 计算SGA的使用空间和空间的比率

select name,

sgasize/1024/1024 可用,

bytes/1024 空闲,

round(bytes/sgasize*100,2) "百分比(%)"

from (select sum(bytes) sgasize from sys.v_$sgastat) s,sys.v_$sgastat f

where f.name='free memory';

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics