网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > 数据库 > Oracle教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
数据库:数据库教程,数据库技巧,Oracle教程,MySQL教程,Sybase教程,Access教程,DB2教程,数据库安全,数据库文摘
本月文章推荐
.深入了解Oracle 10g新的多重集运.
.设置不使用spfile.
.Oracle数据库的热备份与完整恢复.
.开机流程与关机、档案系统.
.使用Windows工具管理Nt上的Oracl.
.个人经验总结:Oracle数据库SCN号.
.轻松学习贯穿Oracle的25条基本知.
.经典的问题与解答(1).
.Oracle数据的异地自动备份.
.ORACLE中LONG类型字段的存取.
.由于控制文件计划不当而导致数据.
.一般应用程序的oracle配置.
.Oracle 数据库系统使用经验六则.
.手工设定 LILO.
.NULL 小议.
.Oracle与MSSQL过程之间的转化.
.关于VB与Oracle数据库中的日期转.
.优化Oracle停机时间及数据库恢复.
.Oracle内存结构:Shared Pool的详.
.配置Oracle Enterprise Manager过.

oracle 10g 新特性中文笔记三

发表日期:2008-2-9



  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
上一篇:oracle 10g 新特性中文笔记二 人气:716
下一篇:Oracle弱智900问九 人气:611
浏览全部Oracle教程的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐