본문 바로가기

2011/118

[오라클] PCT_USED, PCT_FREE segments는 저장공간이 존재하게 되는데 그것을 블록단위로 관리할 수 있다. segment를 만들거나 수정할 때 PCT_USED, PCT_FREE 파라미터를 조정해 어느 시점에서 이 블록에 다시 저장시킬 것인가 등을 결정한다. 아무런 설정없이 segment를 만들게 되면 default로 PCT_FREE는 10, PCT_USED는 40으로 설정 되어있다. 데이터가 가득차게되면 PCT_FREE로 설정된 부분은 차지 않는다. 이는 해당 블록의 데이터가 update되어 더 많은 공간을 차지하게 되었을 때 row migration을 미연에 방지하기 위함이다. 블록은 가득차 있고 해당블록의 내용 중 하나가 update되어 더 많은 공간이 필요할 때 비로서 PCT_FREE를 사용하게 되는 것이다. 점차 데이터가 .. 2011. 11. 1.
[오라클] shrink 블록에 데이터들이 저장되고 빠져나가는 과정에서 fragment가 형성되기 마련이다. 그렇게 형성된 저장공간들은 각 segment들의 PCT_USED 파라미터에 의해 사용이 될 수도 되지 않을 수도 있다. 참고 - [Oracle/work shop 1] - [oracle] PCT_USED, PCT_FREE 따라서 저장공간을 낭비하게 되는데 이것을 해결하는 것이 shrink명령어 이다. shrink 명령어 사용시 주의사항으로 1. 해당 segment의 row movement 가 활성화 되어있어야한다. (row movement가 활성되야 각 row들의 데이터들을 이동시킬 수 있다.) 2. 이동되는 row에 대해서 index의 정보도 같이 변경된다. 3. index의 정보도 같이 변경시키기 위해 많은 시간이 소요.. 2011. 11. 1.