> delete를 이용해 데이타를 삭제하면, 실제DB에서는 데이타 자체가 삭제되는게 아니고,
> 인덱스(?, 뭐라표현해야하는지 모르겠네요..) 여하튼, 연결상태만 끊어주는건가요?
> 대량의 데이타를 삭제해도 ..DB 파일의 사이즈는 줄어들지않네요.
> 데이타를 완전히 없애버리고 싶은데 어찌해야하나요?
>
이건 오라클의 경우인데 비슷하지 않을까 해서 몇 자 적습니다.
오라클의 경우 DELETE 절을 사용하면 ROW들만 삭제되고 테이블의 저장공간은 그대로 유지됩니다.
TRUNCATE 절은 테이블 내의 모든 ROW를 삭제하고 저장공간을 돌려주지만 DROP 절과 다른 점은 테이블과 관련된 오브젝트(제약조건, 인덱스)는 그대로 유지됩니다. 즉 테이블 구조는 그대로 유지되고 단지 ROW들만 삭제하고 저장공간을 돌려주며 롤백할 수 없습니다..
당연히 DELETE 절로 삭제하면 롤백이 가능하겠죠....
기능이 비슷해 보이는 예약어들이 사실은 각각의 고유한 용도가 있기때문에 겉에 드러나는 변화만을 생각하기보다는 용도를 파악하고 그에 맞는 예약어를 사용하는 것이 좋다고 생각합니다.
> 인터베이스를 사용중인 초보입니다.
> DB데이타 삭제시 의문점이 있어 질문드립니다.
> delete를 이용해 데이타를 삭제하면, 실제DB에서는 데이타 자체가 삭제되는게 아니고,
> 인덱스(?, 뭐라표현해야하는지 모르겠네요..) 여하튼, 연결상태만 끊어주는건가요?
> 대량의 데이타를 삭제해도 ..DB 파일의 사이즈는 줄어들지않네요.
> 데이타를 완전히 없애버리고 싶은데 어찌해야하나요?
>
이건 오라클의 경우인데 비슷하지 않을까 해서 몇 자 적습니다.
오라클의 경우 DELETE 절을 사용하면 ROW들만 삭제되고 테이블의 저장공간은 그대로 유지됩니다.
TRUNCATE 절은 테이블 내의 모든 ROW를 삭제하고 저장공간을 돌려주지만 DROP 절과 다른 점은 테이블과 관련된 오브젝트(제약조건, 인덱스)는 그대로 유지됩니다. 즉 테이블 구조는 그대로 유지되고 단지 ROW들만 삭제하고 저장공간을 돌려주며 롤백할 수 없습니다..
당연히 DELETE 절로 삭제하면 롤백이 가능하겠죠....
기능이 비슷해 보이는 예약어들이 사실은 각각의 고유한 용도가 있기때문에 겉에 드러나는 변화만을 생각하기보다는 용도를 파악하고 그에 맞는 예약어를 사용하는 것이 좋다고 생각합니다.