source

오라클에서 대량 삭제 후 공간 회수

ittop 2023. 8. 30. 22:04
반응형

오라클에서 대량 삭제 후 공간 회수

내 애플리케이션에서 우리는 큰 데이터를 업로드합니다. 잘못 업로드된 데이터가 있으면 데이터를 삭제할 수 있습니다.그렇다면, 그 공간을 삭제한 데이터는 언제 데이터를 회수할 수 있습니까?성능에 영향이 있습니까? 오라클에서 대량 삭제 후 공간을 회수할 방법이 있습니까?공간을 되찾는 방법은?

오라클에서 데이터를 삭제해도 Disk 공간이 자동으로 회수되지 않습니다.데이터베이스는 사용자가 테이블스페이스를 관리할 때까지 저장소를 유지합니다.이 동작은 스토리지가 한 번에 필요한 경우 다시 필요할 가능성이 높기 때문에 단순히 할당을 유지하는 것이 더 효율적일 것으로 예상됩니다.

성능에 영향을 미치는 한, 처리할 데이터가 적으면 일반적으로 쿼리 속도가 빨라집니다.:)

공간을 다시 확보하려면 몇 가지 선택사항이 있습니다.Oracle-BASE의 이 기사는 이러한 상황에 대해 매우 포괄적으로 설명합니다.

또한 데이터를 삽입한 후 삭제하는 것이 "나쁘다"고 판단하는 이유는 무엇입니까?처음부터 데이터를 넣는 것은 피하는 것이 좋지 않을까요?

HWM(고수위 마크)을 조사해야 합니다.

기본적으로 이는 특정 테이블에서 사용한 최대 블록 수입니다. 대량의 데이터를 로드하는 경우 HWM을 늘릴 수 있습니다. 이러한 레코드를 삭제해도 HWM이 줄어들지 않습니다.

다음은 HWM을 조정하는 방법에 대한 훌륭한 기사입니다. HWM을 이해한 후 환경에 영향을 미칠 수 있다고 생각되는 경우 HWM을 줄이기 위해 포함된 팁을 사용하십시오.

도움이 되길...

삭제 후 공간을 회수할 수 없습니다.그러나 나머지 데이터의 크기가 상대적으로 작으면 데이터로 새 테이블을 만들고 이전 테이블을 삭제한 후 새 테이블의 이름을 이전 이름으로 변경합니다.

오래된 질문인 것은 알지만, 향후 참조를 위해:

  • DELETE는 테이블을 비우지만 공간이 나중에 채울 수 있도록 이미 "잠김" 상태입니다.
  • TRUNKATE TABLE은 트릭을 수행합니다(테이블을 참조하는 모든 외부 키를 비활성화해야 작동).

언급URL : https://stackoverflow.com/questions/9432465/reclaim-the-space-after-a-large-delete-in-oracle

반응형