| Gzu521.com我的学习网 |
|
要么是内部决定的最小值. 如果你增加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 huHX#h@oPbk2J [ 本 资 料 来 源 于 贵 州 学 习 网 IT认证ORACLE/CIW认证 http://Www.gzU521.com ] huHX#h@oPbk2J |
责任编辑:gzu521