Oracle的Pctfree
2024-10-21 11:53:09
1、创建一张表
create table student(
student_id number
);
但是在pl/sql中查看却是以下的建表语句:
-- Create table
create table STUDENT
(
student_id NUMBER
)
tablespace SYSTEM
pctfree 10
pctused 40
initrans 1
maxtrans 255;
1)其中下面的几个参数是什么意思呢?
2)假如数据块是8k,但是真的全部都拿来存数据吗?
数据块的结构
1)块头
2)数据
3)空闲空间
高水位线概念
当表刚创建时,HWM明显位于这个表的第一个块中,当插入数据后,水位线会升高。
但当我们删除了一些数据后,甚至删除所有的数据。就会出现一种情况:许多块即使不包含了数据,但依然处于水位下下,而且会一直保持。
因为:HWM永远不会下降,除非使用rebuild、truncate或shrunk这个对象(shrunk是10g的新特性,仅ASSM支持)
ASSM:自动段存储管理
高水位线什么作用呢?
Oracle在全表扫描时会扫描HWM下所有块,即使其中不包含数据。
pctfree
1、数据块大小
2、参数的含义=20 = 不被使用的空间占20%
为一个块保留空间的百分比,表示数据块在什么情况可以被insert。
当数据块的可硬空间低于10%时,就不能被insert了,只能用于update。
即:当一个block在到达pctfree之前,该block处于上升期,可以被insert
3、为什么要留一些空间?
为了留给insert update等操作预留空间
pctused
指当块数据第一是多少百分比时,又可以重新被insert
=40 = 要使用40%,当低于40%时,oracle认为这个数据块使用率比较低了,可以进行insert操作。
当数据低于40%时,改block处于下降期,可以写入新的数据。
==注意:如果表空间上启用了ASSM,建表的时候只能执行PCTFREE,否则可以执行PCTFREE和PCTUSED
查看表空间是否启动了自动段管理
SELECT d.tablespace_name,
d.segment_space_management
FROM dba_tablespaces d
TABLESPACE_NAME SEGMEN
------------------------------ ------
SYSTEM MANUAL
SYSAUX AUTO
UNDOTBS1 MANUAL
TEMP MANUAL
USERS AUTO
SIM_DATA AUTO
最新文章
- Spring mvc 报错:No qualifying bean of type [java.lang.String] found for dependency:
- iOS 电话在后台运行时,我的启动图片被压缩
- MongoDB 基础命令使用学习记录
- $.each(),$.map()归纳
- MySQL 数据库设计 笔记与总结(1)需求分析
- redhat enterprixe 5.0 下DHCP服务器rpm安装配置及其测试
- insert例子
- javascript笔记整理(正则)
- Unity3D脚本使用:Time
- linux 下配置 MAVEN
- python中读取文件数据时要注意文件路径
- Linux中VSFTP的配置
- xcode打包命令
- Python3编译安装以及创建虚拟运行环境
- 【转】《iOS7 by Tutorials》系列:iOS7的设计精髓(上)
- ONVIF让NVR与网络监控摄像机更";亲密";
- Prometheus Node_exporter 之 Memory Detail Vmstat Counters
- C#实现之(自动更新)
- 如何得知当前机器上安装的PowerShell是什么版本的?
- ubuntu发热问题的解决——显卡驱动的安装