要形容一個 block 的運作,我們可以把一個 block 想成一個水杯。侍者把水倒入放在我們面前的水杯,要多滿呢,我們要求他倒 9 分滿好了,這時候 pctfree 代表著設定為 10 ,意思就是說,當 block 使用到達 90% 的時候,就不可以在使用了,這個 block 應該從 freelist 列表中移除 (un-link) 。為何要保留 10% 的空間呢?這是為了提供 update 資料時所可能增加的空間使用,如果空間保留的太小,就容易發生 row chaining 。
pctused 代表著這杯水什麼時候可以添加,假設 pctused 為 40 ,代表當我們把水杯的水喝到剩下 40% 以下時,侍者就會知道需要加水了。你想想看,如果說在餐廳裡妳每喝一口水侍者就來加水,你會不會覺得很煩,對餐廳來說,也要派很多人不斷幫每桌客人加水,這生意還能做嗎?所以說, pctused 代表著 re-link 回 freelist 的意義,如果說 pctused 設的太大,例如 70 好了,代表這杯水你隨便喝一口侍者就要來加水了,這隱含的意義是,這個杯子的利用率增加,但是侍者頻繁的服務造成了負荷 (i/o overhead) 。 pctused 設小一點,例如 10 ,代表當水喝到剩下 10% 的時候 ( 如同 delete 事務操作 ) ,才須要放回 freelist ,代表可以加水了 ( 如同 insert 事務操作 ) 。
簡單的說,如果希望儲存空間發揮最大使用效益,可以把pctused設大一點,相反的,如果想要提高io效能,應該把pctused設定小一點。
--------------------------
pctfree是控制一个块什么时候从freelist中移除,
pctused是控制一个块什么时候进入freelist
from : http://www.itpub.net/233546,1.html
阅读(956) | 评论(0) | 转发(0) |