BookmarkSubscribeRSS Feed

[SAS 프로그래밍 고수 백승민] 물리적 삭제(Physical deletion) 와 논리적 삭제(logical deletion) 차이

Started ‎06-11-2020 by
Modified ‎06-12-2020 by
Views 117

* 물리적 삭제 : 실제 데이터를 삭제를 위하여 컴퓨터 자원이 많이 필요함;

 

* 논리적 삭제 : PROC SQL의 DELETE구문, MODIFY와 REMOVE 구문
*              삭제 필드에 대하여 체크를 통하여 사용을 못하게 함
*              대용량 테이블에 대하여 일부 관측치 삭제시 논리적 삭제가 권장
*              실제 데이터가 삭제 된것이 아니라 삭제 필드를 체크한 것으로, 향후 테이블 재생성 필요
*              삭제 필드를 저장하고 있으므로 용량은 삭제전과 동일
*              만약 인덱스가 존재하는 파일에서 인덱스 변수의 해당값을 삭제시 더 좋은 성능을 보임;

 

* 확인방법
*   1. 탐색기창 - 테이블 속성 - 상세정보의 삭제된 행(Deleted Observations)
*   2. Proc contents 의 삭제된 관측치(Deleted Rows);
*   3. ATTRN 함수의 NDEL 옵션;


*************************************************************************************************;

 

* 대상건수중 삭제건수의 비율이 높은 경우는 물리적 삭제가 더 빠를 수 있음

 

* ( 전체를 읽는 것 보다 일부를 작성하는 것이 더 빠를 수 있을 듯 합니다.)

 

* [참고]논리적 삭제 필요성;

* ※ 물리적/논리적 삭제가 필요한 이유
   -> 물리적 삭제의 경우 삭제를 하면 해당 행에 대해 rock이 걸려 업무 시 방해가 많이 된다.
   -> 따라서 기본적으로 왠만하면 업무중에 column을 삭제를 하지 않고 삭제를 할 경우 논리적 삭제를
      먼저 한 뒤 업무 종료 후 물리적삭제를 사용하는 것이 좋다.

 

* 논리적 삭제 확인;

 

data BACK;
 INPUT VAR;
CARDS;
1
1
2
2
2
;
run;

 

* 논리적 삭제;
proc sql;
  DELETE from BACK
  WHERE  VAR=2;
quit;

 

* 논리적으로 삭제된 필드를 포함하여 출력;
DATA _NULL_;
    SET BACK NOBS=N1;
    PUT N1=;
RUN;

 

* 삭제된 관측치 : 3;
PROC CONTENTS DATA=BACK;
RUN;

 

 * ATTRN 함수 이용하여 확인;
data BACK;
 INPUT VAR;
CARDS;
1
1
2
2
2
;
run;

DATA BACK;
 MODIFY BACK;
  IF VAR=2 THEN REMOVE;
RUN;

 DATA ATTRN;
     DSID   = OPEN("BACK");
     NDEL   = ATTRN(DSID,"NDEL");   * 논리적 삭제 레코드;
     NLOBS  = ATTRN(DSID,"NLOBS");  * 논리적 관측치(삭제 제외);
     NLOBSF = ATTRN(DSID,"NLOBSF"); * 논리적관측치(삭제 제외);
     NOBS   = ATTRN(DSID,"NOBS");   * 물리적관측치수(논리적 삭제 포함);
     rc     = close(dsid);
RUN;


* 물리적 삭제;
data BACK;
 INPUT VAR;
CARDS;
1
1
2
2
2
;
run;

DATA BACK;
 SET BACK;
  IF X=2 THEN DELETE;
RUN;

 

*  삭제된 관측치  0;
PROC CONTENTS DATA=BACK;
RUN;
 

 

* 출처 : http://cafe.daum.net/statsas/3F8j/204

Version history
Last update:
‎06-12-2020 04:19 AM
Updated by:
Contributors

sas-innovate-white.png

🚨 Early Bird Rate Extended!

Join us for SAS Innovate 2025, our biggest and most exciting global event of the year, in Orlando, FL, from May 6-9.

 

Lock in the best rate now before the price increases on April 1.

Register now!

Article Labels
Article Tags