设为首页 收藏本站
查看: 689|回复: 0

[经验分享] <<让oracle跑得更快2>>读书笔记2

[复制链接]

尚未签到

发表于 2016-8-6 19:17:17 | 显示全部楼层 |阅读模式
对于OLTP系统,应该关注以下的对象属性
   pct_free  一个数据块空闲空间的最小百分比
   pct_used  一个数据块中存储数据的最小百分比
   ini_trans  一个数据块中最初分配的事务数
  max_trans   一个数据块中最大分配的事务数
  initial_extent  第一个EXTENT的大小
  next_extent  下一个extent的大小
   min_extents    段首次分配的extent数量
   max_extents   段最大可分配的extent数量
  pct_increase   extent扩展时,每次增加的百分数
    freelists   段中空闲数据块列表
   cache   是否缓存到内存中

2 并行度--oracle在并行处理时,会启动多少个并行进程来同时执行任务,并行度越高,

并行进程越多,执行速度
会越快
  查看某个表的并行度:select degree from user_tables where table_name='XXX'
   如果设置并行度为默认值,则使用下面的公式计算:
    服务器CPU数*每个CPU启用的线程数=并行度
  如果是RAC,则所有参与并行处理的实例CPU数*每个CPU启用的线程数=并行度
    set autotrace off;
    show parameter parallel_server_instances;

      show parameter cpu;


3  默认表不使用并行处理,可以用hint的方式强制使用并行处理
     select /*+parallel(t1 4) */ * from t1 ,使用4的并行

4 索引上的并行度
    create index t1_idx on t1(object_id) parallel;
  oracle当认为当允许多数据块读取是,才会使用并行
5  分区表或者分区索引是可以单独压缩的
  1)  比如:一个分区表中,如果设置表级压缩,则所有分区都会被压缩
     alter table t1 compress;

    也可以一个分区表中,其中若干个分区使用压缩属性,另外1个不使用。
    create  .......

      partition p1 values ...... compress,
      不用的分区不加compress属性
     单单对某个分区压缩:
        alter table t1 modify partition p1 compress;
  //可以为表的索引先压缩,然后才能对分区表的索引进行压缩(注意,否则出错)
    create index t1_idx on t1(object_id) local compress;
   2) 对于索引压缩,只有键值重复高的时候才有意义,对于主键类的压缩,作用不大,

反而消耗更多空间。
   3)压缩表后,数据的查询性能各方面都会有不少提升
  

6 CBO的分析中,当表的数据变化后,应该尽可能及时对表进行重新分析
7 分析CBO
   exec dbms_stats.gather_table_stats(user,'表名',cascade=>true);
   set autotrace trace exp stat;
删除T表上的分析信息
    exec dbms_stats.delete_table_stats

(ownername=>user,tablename=>'T',cascade_indexes=>true);
  要注意的是:要是数据表中一旦有了分析数据,不论如何,oracle将不采用动态采样技

术,而如果数据表字段发生了改变,也应该用CBO分析技术重新分析下。

8) RAC:一个数据库对应多个实例,数据库以共享的方法被多个实例打开
   ,两个实例分别安装到服务器中,而数据库服务器,则被部署到一个SAN存储系统中,

实例之间通过
oracle cache fusion通道访问。

9) RAC不是一种高效的内存结构,oracle要通过一系列手段来保证数据块的版本一致。
     
10) 可以将某类或几类的业务分配到某一个或者几个实例上,避免cache fuson导致的等

待事件发生
  
11) dataguard保护模式
   1) 最高保护模式
       即假如日志写不入standby数据库,会关闭
    2) 最高性能模式
        该方式对性能影响最小,为默认保护模式,不需要日志实时复制到standby数据

库,如果日志无法传递到standby,则一直尝试知道成功为止
    3)最高可用性
        正常情况下,跟最高保护模式一样,但当日志无法写入时,会切换到最高性能模

式,主数据库不会DOWN。
OK后又切换为最高保护模式。

    4)standby的类型,分为物理,逻辑。
      A)物理standby: 物理结构上跟主数据库完全一致,包括数据块到文件,再到数据

库中的对象和主数据库
都保持一致,通过REDO日志去备份,可以以只读方式打开,当重新MOUNT后,才继续接收

主数据库的REDO日志

     B)逻辑standby: 从REDO日志中提取SQL执行,可以允许对STANDBY数据库修改,比

物理STANDBY要慢
   

12) ASM:只需要创建一个ASM实例来管理ASM存储即可,剩下的就是将所有表空间的数据文

件指向ASM存储。ASM使用后,不需要关心每个磁盘的利用率,也不需要关心表空间的使用

率,这种情况下,表空间可以设置为自动扩展。ASM的实例状态永远为start状态,没控制

文件,ASM也不会有mount和open状态。

13) ASM可以通过rebalance操作,将数据在所有磁盘中重新分布,

14) 内存相关参数
     SGA_TARGET:希望把SGA的目标大小控制在某个范围内。可以使用oracle的分析建议

器,sga增大,物理读次数会减少,但不能无限制增大SGA,要衡量下相关的平衡问题。

15)io参数
   1、db_file_multiblock_read_count:oracle在一次连续扫描时,允许IO读取的最大
数据块数,但每次I/O大小不能超过oracle运行的操作系统最大IO值(通常1MB)
      在OLTP中,每次读取的记录数少,可以设置该值小点;而OLAP,因为查询量大,
可以设置大些,但多数据块的读取只发生在以下两种情况下:
     FULL TABLE SCAN、INDEX FAST FULL SCAN
    在ORCLE 10G R2以后的版本中,oracle不建议修改它的默认值
  2 db_writer_process
       参数意思是:设置多个db_write进程,加快数据从缓冲区向磁盘写入速度。
,负责将数据缓冲区的脏数据(修改过的数据块)写入磁盘中,

  3、disk_asynch_io:
        允许oracle在数据写入时以异步方式写入,效果更高,不用等操作系统反馈,
继续下一个块的读入;
  4 DBWR_io_slaves:
        模拟一个异步IO系统的,当只有一个db_writer时有意义,即只有一个
DBW0后台进程。
  5 db_files:用来约束数据库打开的文件数,默认值为200

  6 cursor_sharing:告诉ORACLE什么情况下可以用共同游标,三个值:
     EXACT:orcle的推荐值。要求SQL语句完全相同时,才重用。
     SIMILAR:oracle认为某条SQL语句的谓词条件可能影响执行计划时,才会被重新分


      force:无条件重用SQL
      OLAP中,应该使用EXACT,因为不大需要SQL重用。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-253866-1-1.html 上篇帖子: Oracle Enterprise Pack for Eclipse 中的 Web 服务支持 下篇帖子: ORA-16000: Oracle数据库:db link与read only
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表