一、建立表时候,注意PCTFREE参数的作用
PCTFREE:为一个块保留的空间百分比,表示数据块在什么情况下可以被insert,默认是10,表示当数据块的可用空间低于10%后,就不可以被insert了,只能被用于update;即:当使用一个block时,在达到pctfree之前,该block是一直可以被插入的,这个时候处在上升期。
PCTUSED:是指当块里的数据低于多少百分比时,又可以重新被insert,一般默认是40,即40%,即:当数据低于40%时,又可以写入新的数据,这个时候处在下降期。
二、举例说明
假设你一个块可以存放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表示自动管理表空间
主要起到节省表空间的作用。
相关推荐
- `PCTFREE` 和 `PCTUSED` 是存储参数,用来控制行级别的空间预留。 - `TABLESPACE` 指定物化视图存储的表空间。 - `BUILD IMMEDIATE` 表示立即构建物化视图,`DEFERRED` 则是延迟构建。 - `ENABLE QUERY REWRITE` ...
- 物理属性如PCTFREE、PCTUSED和表空间可以不同。 5. 分区独立性: - 即使某些分区不可用,其他分区仍可正常工作,确保高可用性。 6. 分区数量限制: - 最多可创建64000个分区,但含有LONG或LONG RAW列的表不...
### Oracle行链接和行迁移详解 #### 一、概述 Oracle数据库中,行链接和行迁移是两种可能影响数据库性能的现象。了解这两种现象的发生原因及其处理方法对于优化Oracle数据库至关重要。 #### 二、Oracle块 Oracle...
- `PCTUSED` 和 `PCTFREE` 分别设置数据块使用阈值,用于控制空间的重用。 - `SIZE` 指定簇键及其相关行平均需要的字节数。 - `INITRANS` 和 `MAXTRANS` 设置初始和最大事务段事务段的事务级别。 - `TABLESPACE` ...
#### 三、ArcSDE+Oracle配置步骤详解 根据提供的部分文本内容,我们可以了解到具体的配置步骤如下: ##### 1. 创建表空间 首先需要创建用于存储ArcSDE数据的表空间。例如,在示例文本中提到了一个名为“TangShan_...
在应用分区时,重要的是保持分区的逻辑一致性,即所有分区都必须有相同的数据结构,如列名、数据类型和约束,但物理属性如PCTFREE、PCTUSED和表空间可以不同。分区的透明性意味着SQL和DML操作无需了解数据是否已分区...
pctused 和 pctfree 是Oracle数据库中用于控制数据块空间管理的两个重要参数。pctused 设定了一个阈值,当数据块中的自由空间小于这个百分比时,该数据块将从自由链表(freelist)中移除。而pctfree则规定了数据块...
1. pctused和pctfree分别表示数据块的使用和空闲空间百分比,用于控制空间扩展。 2. 表由segment组成,segment由extent组成,extent由多个block组成。 3. tablespace是逻辑存储结构,包含一个或多个datafile,存放表...
Oracle Forms 基础知识点详解 Oracle Forms 是用于创建与 Oracle 数据库交互的软件产品。它有一个集成开发环境(IDE),包括一个属性表、对象导航器和使用 PL/SQL 的代码编辑器。 1. Oracle Forms 组件 Oracle ...
### Oracle DBA 笔试题详解 #### SQL Tuning 类 1. **表连接方式** 表连接在SQL查询中至关重要,常见的连接方式包括: - **Merge Join**: 这种连接方式适用于两个表中都有排序的情况,Oracle将两个已排序的表...
storage_clause => 'TABLESPACE QUEUE_TS PCTUSED 0 PCTFREE 30 INITRANS 30 MAXTRANS 255 STORAGE ( INITIAL 64K NEXT 1M MINEXTENTS 1 MAXEXTENTS UNLIMITED PCTINCREASE 0 BUFFER_POOL DEFAULT )' ); END; ``` ...
### Oracle 分区操作详解 #### 一、Oracle分区概述 Oracle数据库中的分区技术是一种重要的物理组织数据的方法,它能够显著提高大规模数据集的查询性能,同时简化数据管理任务。通过将一个大表或索引分割成更小、更...
### Oracle复习资料知识点详解 #### 一、Oracle数据库的物理存储结构 - **数据文件**:数据文件是数据库中用来存储所有数据的物理文件。在Oracle数据库中,一个表空间可以由一个或多个数据文件组成,这些数据文件...
- 数据块空间管理参数如`PCTFREE`和`PCTUSED`用于控制数据块内的空间使用策略。 **4. 手动分配存储空间:** - 使用`ALTER TABLE <表名> ALLOCATE EXTENT`命令手动分配存储空间。 - 示例:为`Student`表手动分配...
- **ORA-02211**:表示在修改表空间时,指定的PCTFREE和PCTUSED值不合法。 - **ORA-02212**:表示在修改表空间时,PCTFREE的选项不正确。 - **ORA-02213**:表示在修改表空间时,PCTUSED的选项不正确。 - **ORA-...