分享
 
 
 

oracle 10g 新特性中文笔记三

王朝oracle·作者佚名  2008-05-31
窄屏简体版  字體: |||超大  

asmm简化了sga的配置.过去,你要手工指定分配给数据库buffer cache,shared pool,Java pool和large pool的大小.

这通常都是一个挑战.假如设置不够大,会导致性能很差,和内存溢出错误,假如设置过大,会导致浪费内存.

这个特性可以让你指定所有sga组件的总大小.Oracle数据库有周期的重新分配这些内存.

在以前的版本中,你不能对sga的总大小进行控制,因为内存的固定的,对其它的内部元数据进行分配,除了这个总大小就是用户指定的sga参数,额外的内出通常是10到20m.

新的sga初始化参数sga_target报告sga所有的内存,包括自动设置组件的,手工设置组件还有启动的时候的其它内部分配.

数据库控制和asmm

你可以使用db control来配置asmm

1.点治理

2.在实例部分选内存参数

3.选sga

4.在asmm点enable,然后输入总的sga大小.

手工配置

自动治理的只有四个部分

db buffer cache

shared pool

large pool

java pool

你可以通过设置sga_target来配置asmm.

假如你为sga_target设置了非零值,下面四个内存池是自动配置大小的:

database buffer cache

shared pool

large pool

java pool

假如你把sga_target设置为零,asmm关闭了.默认的值就是0.

在过去的版本中的单独参数没有作废.

下面的参数还是手工设置大小的:

log buffer

other buffer caches(keep/recycle,other block sizes)

streams pool

fixed sga和其它的内部分配的

自动调整sga参数的行为

当sgs_target没有设置或设置为零的时候

-自动调整的参数向以前那样

-例外:shared_pool_size

select sum(bytes)/1024/1024 from v$sgastat

where pool= 'shared pool';

当sga_target设置了

-默认的自动设置的参数为0

-假如非零值就是下限

假如sga_target没有设或等于零,自动调整的sga参数就向以前的一样.然而,shared_pool_size是个例外:内部分布的元数据(例如用在进程和会话数据)现在已经包括在shared_pool_size参数中.这样,你为了分配这些内存,当升级你的oracle 10g数据库的时候需要加大你的shared_pool_size参数.例如,假如你在以前的版本中的共享池是256m,你的内部分配是32m,那为了得到同样的效果,在你的10g数据库中要设置为288m.上面的查询计算包括内部分配的shared_pool的大小.在运行升级之前,你首先要进行这次查询.

当sga_target设为非0,自动调整的参数默认都是0.他们的大小都是通过asmm算法自动设置的.例如,sga_target设为8g,shared_pool_size是1g,这样就告诉asmm算法不会把共享池设为1g以下,尽管更大的值更好.你也可以使用下面的查询看自动调整组件的大小.

select component,current_size/1024/1024

from v$sga_dynamic_components;

手工调整sga参数的行为

一些组件不是自动调整的:

-keep 和recycle 缓冲区

-块倍数的缓冲

-log 缓冲

-streams池

这些参数是用户指定的

精确的控制这些组件的大小

使用v$parameter视图

select name,value,isdefault

from v$parameter

where name like '%size';

重新设置sga_target的大小

sga_target初始化参数

是动态的

最大可以是sga_max_size的大小

可以减少到所有组件的最小值

sga_target影响仅仅是自动调整的组件

sga_target是动态参数,可以通过db control或alter system命令修改.

sga_target最大可以是sga_max_size的大小.它可以减少到任一个自动调整的组件到达了最小值,要么是用户指定的最小值,

要么是内部决定的最小值.

假如你增加sga_target的大小,增加的内存根据自动调整的测量分布到自动调整的组件上.

假如你减小sga_target的大小,内存就通过自动调整测量从一个或多个自动调整组件上取消.这样,sga_target的变化仅影响自动调整组件的大小.

取消自动共享内存治理

设置sga_target为零取消自动调整

自动参数设置为他们的值

sga的大小不影响

你可以动态的设置sga_target为零来取消自动共享内存治理.这个时候,所有的自动调整的参数都是相应组件当前的大小,即使用户早期设置了不同的非0值.

手工的改变动态sga参数的大小

对于自动调整的参数,手工的改变它的大小:

假如新的值的比当前的值大,马上就会生效.

假如新的值比当前值小,就会改变到最小值

手工改变参数的大小影响sga的可调部分

当重新设置了sga_target的大小的时候,只有新值比当前组件的值大的时候才会马上改变.假如你设置sga_target为8g,设置shared_pool_size为2g,你确信为了容纳必要的内存,共享池至少2g.当你把共享池调为1g的时候,不会马上改变共享池的大小.它只会告诉自动内存调整算法在需要的时候,会把共享池改为1g.另外,假如一开始共享池是1g,你把它设置为2g,那么马上就生效.在重新改变操作中使用的内存是从一个或几个其它的自动调整的组件中得到了,手工的组件不受影响.

手工改变大小的组件也可以动态的修改,但是他们的不同就是马上就是设置的值.这样,假如手工组件的值增加,额外的内存就是从一个或多个自动调整的组件中获得的.假如手工组件的值减少了,释放出来的内存就给了自动调整大小的组件.

自动优化统计收集:概览

oracle8i提供dbms_stats包

dba决定怎么去收集统计

dba决定什么时候去收集统计

oracle9i决定怎么去收集统计

统计可以使用单个命令仅此收集

dba决定什么时候去收集统计

oracle10g完全自动收集统计的

dba不用去收集统计

默认就进行表监控

为了查询优化器产生更好的执行计划,在对象上必要有合法的统计.在过去,统计收集(或让作业去做)是典型的dba的责任.另外,有必要对改变的对象进行跟踪,来看什么时候有必要进行统计收集.假如对象的统计很陈旧或没有统计,就可能产生无效的sql执行计划.

在oracle9i(假定使用了监控)下面的dbms_status命令可以用来产生相应的统计"

dbms_stats.gather_schema_stats(schema_name,options='GATHER AUTO');

这个命令收集优化的统计,包括柱状图,对那些对象那些当前的统计是陈旧的.然后,你必须打开监控,并且有计划的执行这个命令.

在oracle10g中,自动优化统计收集自动这些任务,减少了你的收集统计的必要.

这个特性减少了由于sql语句统计失效或陈旧而导致性能很差的可能性,通过提高查询优化器的最家的输出提高了sql执行的性能.

GATHER_STATS_JOB

默认的,在数据库创建的时候就创建了gather_stats_job,执行dbms_stats.gather_database_stats_job_proc过程,使用schedular.

默认的定义了两个窗口.

WEEKENIGHT_WINDOW定义在下午10点到上午六点.从周一到周五.

WEEKEND_WINDOW定义从上午12电到周一12点.

默认的,MAINTENANCE_WINDOW_GROUP组包含这两个窗口也已经邓菁来源.

gather_stats_job使用特定的计划任务叫auto_tasks_job_class.这个类是自动创建的,而且跟特性的资源消费者组联系,这个消费者组叫做auto_task_consumer_group.这样确保任务使用auto_task_consumer_group.假如你想控制gather_stats_job的资源使用,你之需要为maintenance_window_group定义一个资源治理者组来为auto_task_cousumer_group分配资源.

为了让gather_stats_job工作正常,你必须确定statistics_level初始化参数设置为typical.

改变gather_stats_job的计划任务

你可以为定义的治理窗口来自定义开放时间.例如,你可以改变他们的时间间隔和重复的频度.你也可以添加资源计划到这些窗口中,来控制gather_stats_job使用的资源.

从db control主页,点击治理标签,然后在scheduler部分点击windows链接.就让你到了scheduler windows页.这里你可以选中一个窗口,并且可以点edit来修改它的特性.在这页,你还可以打开或关闭特定的窗口.只要你在下拉框为特定的窗口选择相应的行为,点ok就可以了.

锁定统计

阻止自动收集

主要用在可变的表中

-没有统计的锁定,意味着动态的取样.

-锁定代表值的统计

在oracle10g,你可以看到特定表的统计,通过新的dbms_stats包的lock_table_stats过程.你可以锁定一个表的统计,来阻止自动统计收集,这样你就可以使用动态的取样.你也可以在某个时间点锁定可变的表的统计,当它满了的时候.

你可以可以使用lock_schema_stats跑在sechma基本锁定统计.

你可以查看user/all/dba_tab_statistics视图来看stattype_locked列来看一个表是不是锁定了.

你也可以使用unlock_table

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有