PCTUSED和PCTFREE对数据操作的影响
1概念理解
首先PCTUSED和PCTFREE都是针对数据块的存储属性,单位都是%。其中PCTFREE决定了数据块什么时候从free list中移除,系统就不可以再往该数据块中插入数据,对于数据块中已有数据的更新可以使用数据块的保留空间(当update数据块时,剩余空间不足于满足update后的空间要求时,将会发生行迁移)。
PCTUSED决定了数据块什么时候被重新放置于free list中去,系统又可以往该块总插入数据(当insert数据到数据块时,剩余空间不满足insert 时的空间要求且重开一个新数据块也不满足时,就发生数据块行链接)。需要注意的是PCTFREE和PCTUSED是两个相互独立的属性,在手动管理的表空间中两个属性都有效,在自动管理的表空间中,PCTUSED已经被废弃,只保留了PCTFREE属性。
举个例子:
假设当前此两属性分别设置为PCTFREE=10,PCTUSED=40,则表示:
ü 当数据块的剩余空间小于10%时,数据块将不再置于free list中,相应的数据块也不会再有新数据插入。
ü 当数据块的已使用空间小于40%时,数据块将重新置于free list中,相应的数据块又可以进行数据的插入。
2环境准备
由于PCTFREE和PCTUSED是两个相互独立的属性,下面我们将分别演示这两个属性的对数据块的影响。
3演示PCTFREE对数据块影响
查看当前TEST表PCTFREE/PCTUSED设置:
从上图中可以看到TEST属于TEST表空间,PCTFREE值为10%,PCTUSED为空说明当前TEST表空间是采用段自动管理的 (ASSM)。
验证表空间的管理方式:
现在我们修改TEST表的PCTFREE和PCTUSED属性(其实修改PCTUSED属性在ASSM管理方式也不会起到效果):
创建一个用于测试的ASSM表空间:
验证新创建的表空间的管理方式:
修改属性后移动TEST表到TEST2表空间:
对表再做一次分析:
查看目前的表属性及数据块的大小:
从上图中可以明显看到目前TEST表属于TEST2的表空间,PCT_FREE参数变成了50,PCT_USED参数为空没有发生改变,数据块占用了增加到了1894个,
TEST表占用的数据块由1050增加到了1894个,这是因为我们更改PCTFREE参数,原来PCTFREE为10%时有90%的空间可以插入数据,而改为50%时只有50%的空间可以插入数据,在数据量没有发生改变的情况下,单个数据块可使用的空间减少了,相应的就需要更多的数据块来存储数据。
4演示PCTUSED对数据块影响
创建一个手工段管理(MSSM)管理的表空间:
验证新创建的表空间:
从上面的图中可以看见新创建的表空间TEST_MSSM的段空间的管理类型是manual。
在手动管理的表空间上创建一张表:
查询TEST1表上PCTFREE\PCTUSED属性设置:
从上图中可以看到默认TEST1表PCT_REE为10,PCT_USED为40,可以发现我们这次PCT_USED有了数值,这是因为TEST1所在的表空间为手动管理的表空间,目前的数据块为1023个。
更改PCTFREE和PCTUSED参数:
再次收集统计信息及查看表属性情况:
从上面的图中可以发现PCT_FREE和PCT_USED参数已经发生了改变,这说明之前我们能的修改已经生效,而数据锁占用的数据块没有发生改变,这说明PCT_USED的变化并不会影响第一次加载的数据。
现在我们要比较PCT_USED参数发生改变时对数据块的影响:
在TEST_MSSM表空间下创建两张一样的测试表:
对表TEST2和TEST3进行分析:
查看TEST2和TEST3表属性信息:
从上面的图中可以看出两张测试表属性信息相同。
修改TEST2和TEST3表的PCTUSED属性,其他比变:
现在再确认一下TEST2和TEST3表属性:
从上图中可以看到我们的更改已经生效,数据块没有发生改变,这是正常的(PCTUSED属性不会影响表第一次插入时分配的block数量)。
分别在TEST1和TEST2表执行删除操作,删除相同部分数据:
分别在TEST1和TEST2表插入相同部分的数据:
执行表分析:
查看两张表属性:
此时发现两张表由于PCT_USED不同,在插入相同数据时,表所占用的数据块数据发生了变化,这是因为再删除了一批数据后,ORACLE会根据所操作数据块的PCTUSED属性来判断数据块是否可以在此被使用,当TEST2表删除后PCTUSED降到30%后才可以往表TEST2中继续插入数据,当TEST3表删除后PCTUSED降到60%后才可以往表TEST3中继续插入数据,由此可见TEST3表数据块的利用率较高,所以存储相同数据的时候它的数据块使用最少。
PCTUSED和PCTFREE对数据操作的影响的更多相关文章
- SQL不同服务器数据库之间的数据操作整理(完整版)
---------------------------------------------------------------------------------- -- Author : htl25 ...
- C#利用SqlDataAdapte对DataTable进行批量数据操作
C#利用SqlDataAdapte对DataTable进行批量数据操作,可以让我们大大简化操作数据的代码量,我们几乎不需要循环和不关心用户到底是新增还是修改,更不用编写新增和修改以及删除的SQL语句, ...
- JavaScript数据操作--原始值和引用值的操作本质
我的一句话总结:原始值不管是变量赋值还是函数传递都不会改变原值,引用值不管是变量赋值还是函数传递,如果新变量重新赋值,则不会影响原引用值,如新变量是直接操作,就会影响原引用值. 首先明确,值和类型是两 ...
- [SQL]SQL语言入门级教材_SQL数据操作基础(二)
SQL数据操作基础(初级) netnova 于 -- :: 加贴在 数据库探讨: 为了建立交互站点,你需要使用数据库来存储来自访问者的信息.例如,你要建立一个职业介绍服务的站点,你就需要存储诸如个人简 ...
- SQLServer服务器数据库之间的数据操作(完整版)
分类: 数据库开发技术 ---------------------------------------------------------------------------------- -- Au ...
- 转载-SQL不同服务器数据库之间的数据操作整理(完整版) .
---------------------------------------------------------------------------------- -- Author : htl25 ...
- veridata实验举例(6)验证agent启动先后顺序是否对捕获update操作有影响
veridata实验举例(6)验证agent启动先后顺序是否对捕获update操作有影响 续接veridata实验系列 上篇:"veridata实验举例(5)改动主键上的列值.update ...
- SQL语言-----数据操作
数据操作 增加数据,insert into 标准格式 insert into 表名 (字段的列表)value(数据列表): 使用set insert into 表名 set 字段1=值,2.....: ...
- Oracle篇 之 数据操作
一.DML 数据操作语言(Data Manipulation Language) 1.insert insert into student values(1,'briup1',20,'Male'); ...
随机推荐
- 廖雪峰js教程笔记5 Arrow Function(箭头函数)
为什么叫Arrow Function?因为它的定义用的就是一个箭头: x => x * x 上面的箭头函数相当于: function (x) { return x * x; } 箭头函数 阅读: ...
- js简版图片左右切换功能
function leftMove(obj,direction,lis){ var num = 0; var liWidth = lis[0].offsetWidth; setInterval(fun ...
- delphi override、overload、reintroduce的区别-0613.txt
http://blog.csdn.net/honglixx/article/details/3624934 1.override overload reintroduce的中文叫法是什么? overr ...
- http://blog.csdn.net/iamshaofa/article/details/7877785/
http://blog.csdn.net/iamshaofa/article/details/7877785/
- Codeforces Round #344 (Div. 2)
水 A - Interview 注意是或不是异或 #include <bits/stdc++.h> int a[1005], b[1005]; int main() { int n; sc ...
- Robotium原理初探
本文转载于:http://blog.csdn.net/jack_chen3/article/details/41927395 测试框架图: Android测试环境的核心是Instrumentation ...
- UVa1212 Duopoly(最小割)
题目大概说有两家通讯公司,它们分别有几个投标,投标各有价值且各个投标都包含几个频道,相同公司的各个投标包含频道都是互不相同的,而频道不能被同时选用.问怎么选择采取哪家公司哪些投标使得价值最大. 如此建 ...
- 【原】iOS学习之XML与JSON两种数据结构比较和各自底层实现
1.XML与JSON两种数据结构的优缺点 1> XML 优点: 格式统一, 符合标准 容易与其他系统进行远程交互, 数据共享比较方便 缺点: XML文件格式文件庞大, 格式复杂, 传输占 ...
- 争夺 & KM思想
题意: 给一张二分图,每个点与两个特定点又一条边相连,边权非负,让你给这个二分图每个点一个顶标,让每一条边两端顶标和大于等于这条边.求出最小顶标和. 这当然是翻译过的题目... 原题: 小Y和小P无聊 ...
- BZOJ 1013 & 高斯消元
题意: 告诉你一个K维球体球面上的K+1个点问球心坐标. sol: 乍一看还以为是K维的二分答案然后判断距离...真是傻逼了...你看乱七八糟的题目做多了然后就会忘记最有用的基本计算... 我们可以看 ...