pctfree
概念:1.数字是一个百分比。
2.一个数据块最少有多少百分比FREE SPACE 。
eg:pctfree=10,指当一个数据库INSERT 数据时,当used space 达到90%时,会有一部分插入其他数据块,剩余10%不会使用。10% FREE SPACE 用于update 时,数据增大时使用。
3.每次调整后, ALTER TABLE ... MOVE 才可以作用于老数据。
PCTFREE = 0
好处:
1.一个数据块可以存满数据,减少数据库使用数量、空间。减少扫描范围。
坏处
1.会出现热快冲突(一个块存入的数据就少,数据少那同时需要访问这个块的机会就小)
如果该block上同时有事务并发超过 initrans 设置的时候,会使用一部分空间用于 存储事务信息
如果maxtrans-initrans>0,那么当对用一个块的并发事务超过initrans,这时就要分配新的空间。如果pctfree为0,block上已经无法分配空间,则并发事务只能等待。
pctused 确保的是block重新回到 freelist 上来的阀值
即使使用空间没有达到 pctfree处 ,也可能被从freelist上摘掉
只要尝试往block插入一条记录发现不能容纳就会被从freelist上摘掉,所以,并不是一定要达到 pctfree 。可能接近它,一插入记录就超过的话,block就被从freelist摘掉了,该记录也就插入新的块了
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/21861353/viewspace-758579/
,如需转载,请注明出处,否则将追究法律责任。