0

0

Oracle 数据块优化参数

php中文网

php中文网

发布时间:2016-06-07 17:27:54

|

1474人浏览过

|

来源于php中文网

原创

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 
 
 
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系统。

jQuery制作网页表格数据优化插件
jQuery制作网页表格数据优化插件

jQuery制作网页表格数据展示优化插件,固定的表头和表格的滚动条样式,这样的设计让表单更加清晰。

下载

linux

相关专题

更多
php源码安装教程大全
php源码安装教程大全

本专题整合了php源码安装教程,阅读专题下面的文章了解更多详细内容。

150

2025.12.31

php网站源码教程大全
php网站源码教程大全

本专题整合了php网站源码相关教程,阅读专题下面的文章了解更多详细内容。

88

2025.12.31

视频文件格式
视频文件格式

本专题整合了视频文件格式相关内容,阅读专题下面的文章了解更多详细内容。

90

2025.12.31

不受国内限制的浏览器大全
不受国内限制的浏览器大全

想找真正自由、无限制的上网体验?本合集精选2025年最开放、隐私强、访问无阻的浏览器App,涵盖Tor、Brave、Via、X浏览器、Mullvad等高自由度工具。支持自定义搜索引擎、广告拦截、隐身模式及全球网站无障碍访问,部分更具备防追踪、去谷歌化、双内核切换等高级功能。无论日常浏览、隐私保护还是突破地域限制,总有一款适合你!

61

2025.12.31

出现404解决方法大全
出现404解决方法大全

本专题整合了404错误解决方法大全,阅读专题下面的文章了解更多详细内容。

493

2025.12.31

html5怎么播放视频
html5怎么播放视频

想让网页流畅播放视频?本合集详解HTML5视频播放核心方法!涵盖<video>标签基础用法、多格式兼容(MP4/WebM/OGV)、自定义播放控件、响应式适配及常见浏览器兼容问题解决方案。无需插件,纯前端实现高清视频嵌入,助你快速打造现代化网页视频体验。

16

2025.12.31

关闭win10系统自动更新教程大全
关闭win10系统自动更新教程大全

本专题整合了关闭win10系统自动更新教程大全,阅读专题下面的文章了解更多详细内容。

12

2025.12.31

阻止电脑自动安装软件教程
阻止电脑自动安装软件教程

本专题整合了阻止电脑自动安装软件教程,阅读专题下面的文章了解更多详细教程。

5

2025.12.31

html5怎么使用
html5怎么使用

想快速上手HTML5开发?本合集为你整理最实用的HTML5使用指南!涵盖HTML5基础语法、主流框架(如Bootstrap、Vue、React)集成方法,以及无需安装、直接在线编辑运行的平台推荐(如CodePen、JSFiddle)。无论你是新手还是进阶开发者,都能轻松掌握HTML5网页制作、响应式布局与交互功能开发,零配置开启高效前端编程之旅!

2

2025.12.31

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 6.4万人学习

Django 教程
Django 教程

共28课时 | 2.7万人学习

Excel 教程
Excel 教程

共162课时 | 10.4万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号