最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

Oracle数据块优化参数

来源:动视网 责编:小采 时间:2020-11-09 10:50:53
文档

Oracle数据块优化参数

Oracle数据块优化参数:Oracle自动管理块空闲空间的条件:当一个插入或者更新操作的行在一个数据块中有足够空闲空间,并且这个空闲空间碎片状态,无法满 用于数据块优化的两个参数:pctfree和pctused一般都是用在OLTP系统当中。两者并没有相互的关系,当满足其中一种条件的时候,
推荐度:
导读Oracle数据块优化参数:Oracle自动管理块空闲空间的条件:当一个插入或者更新操作的行在一个数据块中有足够空闲空间,并且这个空闲空间碎片状态,无法满 用于数据块优化的两个参数:pctfree和pctused一般都是用在OLTP系统当中。两者并没有相互的关系,当满足其中一种条件的时候,


Oracle自动管理块空闲空间的条件:当一个插入或者更新操作的行在一个数据块中有足够空闲空间,并且这个空闲空间碎片状态,无法满

用于数据块优化的两个参数:pctfree和pctused一般都是用在OLTP系统当中。两者并没有相互的关系,当满足其中一种条件的时候,就会被出现/移除free-list列表当中。

Oracle自动管理块空闲空间的条件:当一个插入或者更新操作的行在一个数据块中有足够空闲空间,并且这个空闲空间碎片状态,无法满足一行数据的使用。Oracel不总是自动整理碎片(合并空闲空间)的原因是,这回导致一定的系统资源开销。

pctfree:当数据块中的数据量达到这个值将不允许继续插入数据

pctused:当数据块中数据占用空间小于这个比例时,数据块会被再次使用

行连接:指一行存储在多个块中的情况,这是因为该行的长度超过了一个块的可用空间大小,即行链接是跨越多块的行。一般是Insert操作时候。

行迁移:指一个数据行不适合放入当前块而被重新定位到另一个块(那里有充足的空间)中,但在原始块中保留一个指针的情形。原始块中的指针是必需的,因为索引的ROWID项仍然指向原始位置。一般是update操作的时候。

PCTFREE:为一个块保留的空间百分比,表示数据块在什么情况下可以被insert,默认是10,表示当数据块的可用空间低于10%后,就不可以被insert了,只能被用于update;即:当使用一个block时,在达到pctfree之前,该block是一直可以被插入的,这个时候处在上升期。

PCTUSED:是指当块里的数据低于多少百分比时,又可以重新被insert,一般默认是40,即40%,即:当数据低于40%时,又可以写入新的数据,这个时候处在下降期。

一、计算公式:

PCTFREE=(Average Row Size-Initial Row Size)*100/Average Row Size

PCTUSED=(100-PCTFREE) -Average Row Size * 100/Availabe Data Space

SQL> select table_name,AVG_ROW_LEN from user_tables where table_name in ('TAB1','TAB2');

二、举例说明

假设你一个块可以存放100个数据,而且PCTFREE 是10,PCTUSED是40,则:不断的向块中插入数据,如果当存放到90个时,就不能存放新的数据,这是受pctfree来控制,预留的空间是给UPDATE用的。

当你删除一个数据后,再想插入个新数据行不行?不行,必须是删除41个,即低于40个以后才能插入新的数据的,这是受pctused来控制的。

注意:如果表空间上启用了ASSM,在建立表的时候,只能指定PCTFREE,否则可用指定PCTFREE和PCTUSED。



三、调整pctfree与pctused

1、通过user_tables的pct_free,pct_used来查看

select a.table_name, a.pct_free, a.pct_used, a.* from user_tables a;

说明:

pctfree表示用于保留更新操作的百分比,如果超过该值不能插入数据。

pctused表示数据所占最低百分比,如果达到pctfree时不能插入,delete后如果达到pctused才可以用来insert



2、如果你使用的是自动管理表空间pctused不需要设置

altertable tablename pctfree values;

说明:

pctfree默认是10,主要看更新的数据有多大,,可以查看表的max_row_len如果很大又频繁更新可以考虑增加该值。

pctused主要看删除数据的大小,如果很大可以调大该值,如果不是很频繁可以设置小一些30-40

pctused+pctfree<90



3、查看自动管理表空间

select tablespace_name,segment_space_management from user_tablespaces; --segment_space_management为auto表示自动管理表空间

主要起到节省表空间的作用。


4、pctfree和pctused的使用

较高的pctfree的值大约在20到25之间,较低的值为4或5,可用于静态表或只读表。

除非要严格地管理可用空间,否则不要设置pctused超过40或50。

一般这两个值地和不能达到90,否则会使Oarcle将更多地时间花费在处理空间利用上。下面是几个参考:

pctfree 5,pctused 40 适合于静态表或只读表。

pctfree 10,pctused 50 适合插入行后,更新活动不会增加已有行地长度地综合性OLTP系统。

pctfree 20,pctused 40 适合于插入行后,更新活动会增加已有行地长度地OLTP系统。

文档

Oracle数据块优化参数

Oracle数据块优化参数:Oracle自动管理块空闲空间的条件:当一个插入或者更新操作的行在一个数据块中有足够空闲空间,并且这个空闲空间碎片状态,无法满 用于数据块优化的两个参数:pctfree和pctused一般都是用在OLTP系统当中。两者并没有相互的关系,当满足其中一种条件的时候,
推荐度:
标签: 参数 oracle 优化
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top