PCTFREE 和PCTUSED 用来控制一个block中row的插入和更新,这两个参数在create/alter table或cluster的时候指定。不同的值将影响数据插入或更新时的效率。 语法: SQL> create table test (id number) 2 pctused 80 3 pctfree 20; 表已创建。 PCTFREE用来控制表的数据段中各block已有row的用来更新的空间。比如PCTFREE为20,则block将保留20%的空间用于更新操作 (update)。我们在insert新的row的时候将占用一定空间,如果该空间大于80%,则会申请新的block来存储。 PCTUSED用来控制一个block中可用于插入新数据的可用空间。比如PCTUSED为60,则表示该block中只有60%的空间可用于插入新数据。只有当已用空间(used space)下降到59%或以下时,才允许在该block中插入新的行。 下面这张图可以很清楚的表达出来: Update操作可以减少空闲空间,当小于PCTFREE时,该block不再允许插入新行。