oracle, postgresql에는 고유한 테이블 로우의 값이 있다.
postgresql = ctid
oracle = rowid
postgresql 날짜 변환가 날짜 계산
예시
date1, date2 형식 varchar
20250402151515 2025-04-01 13:13:13
연산을 위하여 형식 변환
date1 = CAST(date2 AS TIMESTAMP)
date2 =
1. CAST(date2 AS TIMESTAMP) or
2. to_timestamp(date, 'YYYYMMDDHH24MISS')
연산 방법
select to_timestamp(date, 'YYYYMMDDHH24MISS') - CAST(date2 AS TIMESTAMP) from newtable;
명령어 DELETE와 TRUNCATE 작동 원리 차이
DELETE: 한 행씩 삭제, DELETE FROM TABLE로 모든 데이터를 지워도
동작 상으로는 항 행씩 삭제하는 구조
TRUNCATE: 일괄 삭제
또한 DELETE의 경우 물리적으로 데이터가 삭제되었지만
데이터가 들어 있던 블럭의 공간 자체는 남아있어 풀 스캔 시 해당 공간도
스캔한다, 대량의 데이터를 주기적으로 DELETE 한다면 추 후 SELECT 시
성능 문제가 발생 할 수 있음으로
전체 데이터 삭제 시에는 TRUNCATE 사용 필요
*오라클의 경우 shrink하여 공간 반환이 가능하다.
POSTGRESQL은 베큠
1.Row Movement Enable
SQL> alter table [테이블명] enable row movement;
->데이터 배치 허용 옵션
2.Compact
SQL> alter table [테이블명] shrink space compact;
-> 데이터 재배치 (빈블록으로 데이터 이동하며 이때 COMMIT은 발생하지 않음)
3.Space
SQL> alter table [테이블명] shrink space;
-> 공간 반환 및 HWM 정리 (COMMIT 발생)