oralce数据库调优

oracle数据库调优培训备注:

 

1:

oracle在执行sql语句时,采用何种优化方式优化由参数 optimizer_mode 来决定。

 

参数查看及设置

 

查看:show parameter optimizer_mode

设置:1:session级别通过alter session set optimizer_mode=all_rows
         2:instance级别我们可以通过在initSID.ora中设置optimizer_mode=all_rows

 

2:oracle块,盘区,段

 

数据块(block) : 是oracle的存储单位,也叫逻辑块,oracle块,是物理磁盘的一个空间。

 

区(extent):一组数据块构成一个区

 

段(Segment):

 

 

由一组区构成,被分配到一个特定的数据结构中,段只能存储于一个表空间中,不能跨表空间存储哦。

                         

另一种解释:每个表在表空间中都留有一块单独的磁盘空间区域,成为段。每一个段依次在表空间中   留 有一块初始的磁

 

盘空间区域,成为初始扩展区(initial  extent)。当段使用完了这个空间,磁盘的 空间的另一个单独区域的下一扩展区

 

(next extent)将被启用。如果这一块区域也使用完,那么还会有另外一个扩展区被启用。这个过程会随着每一个表持续

 

执行,知道整个表空间充满为止。此时,在表继续增长之前,必须为比哦啊空间添加一个新的数据文件,或者扩展表空间文

 

件。
 

 

3:oracle优化器 :分析sql,找到sql在oracle中的最佳执行路径。

 

4:oracle优化方式:

 

    rule:RBO(基于规则的)及查询过来,表默认先找索引。

    choose:oracle默认选择这种方式。有统计分析的表会选择CBO,没有就选择RBO

    first  rows:CBO 一个数据块中有几行,就先返回几行。

    ALL  ROWS:CBO。

 

5:关于oracle共享池参考文章http://www.oracle.com.cn/viewthread.php?tid=90671

   

    当sql在oracle数据库执行,将执行下列步骤。

  

    1)语法检查   检查sql语句拼写是否正确及词序。

    2)检查所有的与数据字典不一致的表和列的名字。

    3)轮廓存储检查。

       检查数据字典,以确定该sql语句的轮廓是否已经存在。

       在SQA系统全局区中有一块sql共享池(缓存)

       sql第一次执行时会保存到共享池中。

       第二次执行时,如果它和之前执行的语句相同时,oracle很快获得已经被解析的语句及最好的执行路径。

 

       静态sql不能缓存。绑定变量才可以。java  preparestatement

      (此时会跳过步骤一和步骤二)

    4)生成执行计划(基于成本的优化规则和数据字典中的统计表)

    5)建立二进制代码

 

 

6:给表建立索引,只有执行统计之后,索引才能被使用到。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值