Oracle性能调整中的相关要点的介绍

数据库 Oracle
以下的文章是通过Oracle性能调整中的相关要点的应用以及优化的相关代码描述来剖析Oracle性能调整中的相关要点的应用以及优化的实际应用,以下就是相关内容的详细介绍。

以下的文章主要是介绍Oracle性能调整中的相关要点的应用以及优化,如果你在Oracle性能调整中的相关要点的应用方面有想了解的欲望,以下的文章就是满足你对Oracle性能调整中相关要点的知识的概要。

1、概念

为了提高性能,可以使用下列数据访问方法:

 

 

  1. A、Clusters  
  2. B、Indexes  
  3. B-tree(normal or reverse key)  
  4. bitmap  
  5. -function-based  
  6. C、Index-organized tables  
  7. D、Materialized views 

 

 

索引的层次越多,效率越低,如果索引中含有许多已删除的行,这个索引也会变得低效,如果索引数据的15%已经被删除,应该考虑重建索引。

2、应用问题

A、使用可声明的约束而不是通过代码限制

 

B、代码共享

 

C、使用绑定变量而不是文字来优化共享sql

 

D、调整cursor_sharing的值(EXACT/SIMILAR/FORCE)

  1. A、Clusters   
  2. B、Indexes   
  3. -B-tree(normal or reverse key)   
  4. -bitmap   
  5. -function-based   
  6. C、Index-organized tables   
  7. D、Materialized views  

 

1、避免动态分配的缺陷

创建本地管理的表空间;

 

合理设置segment的大小;

 

监控将要扩展的segment:

 

 

  1. SELECT owner, table_name, blocks, 
    empty_blocks FROM dba_tables WHERE empty_blocks / 
    (blocks+empty_blocks) 
    < .1

 

2、high water mark

记录在segment header block中,在segment创建的时候设定在segment的起始位置,当记录被插入的时候以5个block的增量增加,truncate可以重设high water mark的位置,但delete不能。

 

在full table scan中,oracle会读取high water mark以下的所有的数据块,所以high water mark以上的块也许会浪费存储空间,但不会降低Oracle性能。

 

可以通过下列方法收回表中high water mark以上的块:

 

  1. Alter table_name deallocate unused; 

 

对于high water mark以下的块:

 

使用import/export工具:export数据;drop或truncate表;import数据。或者利用alter table tanle_name move命令去移动表的存储位置(此时需要重建索引)。

 

3、表统计

用analyize命令生成表统计,然后到dba_table查询相关信息。

 

 

  1. ANALYZE TABLE ndls.t_wh_shipping_bill COMPUTE STATISTICS;  
  2. SELECT num_rows, blocks, empty_blocks as empty,avg_space, 
    chain_cnt, avg_row_len FROM dba_tables WHERE 
    owner =
    'NDLS' AND table_name='T_WH_SHIPPING_BILL';  
  3. Columns Description   
  4. NUM_ROWS Number of rows in the table   
  5. BLOCKS Number of blocks below the table high-water mark   
  6. EMPTY_BLOCKS Number of blocks above the table high-water mark   
  7. AVG_SPACE Average free space in bytes in the blocks below 
    high-water mark  
  8. AVG_ROW_LEN Average row length, including row overhead   
  9. CHAIN_CNT Number of chained or migrated rows in the table  
  10. block size  

通过下列方法可以最小化block的访问次数:

 

使用更大的block size;紧密压缩行;阻止行镜像。后两者存在冲突,越多的行被压缩在一个block里,越容易产生镜像。Block size 在数据库创建的时候设定,不能被轻易改变,是读取数据文件时最小的IO单元,大小范围是2K-64K,应该设置成OS块的整数倍,小于或等于OS IO时能读取的存储区域。

 

较小的block size的优点:极少block竞争;有利于较小的行和随机访问。缺点是存在相当高的成本,每个block的行数更少,可能需要读取更多的index块。Block size的选择影响系统的Oracle性能,在一个OLTP环境中,较小的block size更合适,而在DSS环境中,适宜选择较大的block size。

 

【编辑推荐】

  1. Oracle JOB间隔时间参考解析
  2. Oracle常用的命令如何查看表的结构
  3. Oracle常用命令的列举
  4. Oracle用户密码的修改
  5. Oracle应用的程序开发趋于向Web的缘由
责任编辑:佚名 来源: 博客园
相关推荐

2010-04-06 12:48:12

Oracle性能

2010-04-12 17:38:51

Oracle性能调整

2009-02-01 10:45:18

Oracle数据库性能调整

2010-04-07 17:04:49

Oracle性能

2010-04-14 12:51:10

Oracle性能

2011-03-21 11:14:21

Oracle性能调整

2010-04-07 09:31:02

Oracle数据库

2009-02-01 13:33:13

Oracle数据库配置

2010-04-16 14:30:13

Oracle 9i

2010-05-07 18:14:08

Oracle性能调整

2010-04-22 10:30:11

Oracle RAC

2010-04-07 16:54:55

Oracle性能

2011-04-08 17:33:07

Oracle性能

2010-04-16 11:39:56

Oracle存储过程

2010-03-31 18:27:14

Oracle培训

2010-10-29 10:22:21

Oracle表空间

2010-04-08 09:27:44

Oracle 安装脚本

2009-12-11 16:01:45

VS 2008性能

2010-04-21 14:45:39

Oracle数据库

2010-04-19 13:37:57

Oracle调整
点赞
收藏

51CTO技术栈公众号