BookmarkSubscribeRSS Feed

[SAS 고급] 인덱스 사용하기2 (Using an Index2)

Started ‎06-17-2020 by
Modified ‎06-17-2020 by
Views 109

[SAS 고급] 인덱스 사용하기2 (Using an Index2)

 

안녕하세요^^

 

이번 시간에는 지난 시간 인덱스 사용하는 방법에 이어 두 번째 시간으로, WHERE 문장에서 인덱스 사용을 컨트롤하는 방법에 대해 알아보겠습니다.

 

 WHERE절에서 인덱스 사용을 컨트롤하는 방법입니다. 

 

SE22017041919090270.jpg

 

데이터셋의 옵션을 사용하여 SAS에서 직접적으로 인덱스를 사용할 수 있습니다.

 

 

▷ IDXWHERE=YES 

 

SE22017041919092870.jpg

 

위의 예시와 같이, IDXWHERE=YES를 지정하면, SAS가 인덱스를 사용합니다.

 

위의 코드를 작성한 뒤, 실행시키면 아래와 같은 로그결과를 얻을 수 있습니다.

 

SE22017041919094570.jpg

 

이 과정에서 SAS는 어떤 인덱스가 가장 좋은지 결정합니다. 

 IDXNAME=index-name

 

SE22017041919101470.jpg

 

위의 예시와 같이 IDXNAME= 옵션은 SAS가 특정 인덱스를 사용할 수 있도록 합니다. SAS는 데이터 셋에서 순차적으로 찾는 방법을 무시합니다.

 

마찬가지로 위의 코드를 작성한 뒤, 실행시키면 아래와 같은 로그결과를 얻을 수 있습니다. 

 

SE22017041919103770.jpg

 

IDXWHERE=과 INXNAME=은 상호 배타적인 관계입니다.

 

▶ SAS에서 인덱스를 유지하는 방법에 대해 알아보겠습니다.

SAS는 데이터를 업데이트 하는 방법을 사용하는 한, 인덱스를 유지합니다.

다음과 같은 방법으로 데이터를 같은 위치에서 업데이트 시킬 수 있습니다.


▷ PROC APPEND

▷ PROC SQL의 INSERT INTO 문장

▷ DATA STEP의 MODIFY 문장

 

 

▶ 참고로, SET이나 MERGE 문장에서는 데이터를 대체하기 때문에, SAS는 인덱스를 유지할 수 없습니다.

▶ 또한, 다음과 같은 상황에서 인덱스는 삭제됩니다.


▷ 데이터셋을 삭제할 때

▷ DATA STEP으로 데이터셋을 다시 만들 때

▷ PROC SORT에서 옵션으로 FORCE를 사용하여 데이터 셋을 정렬할 때

 

 

따라서, 인덱스가 있는 정렬된 데이터셋의 복사본을 만들거나, 인덱스를 유지하기 위해서, output file에 INDEX= 옵션을 사용할 수 있습니다.

 

SE22017041919114470.jpg

 

위의 예제처럼, OUT으로 file을 내보내며, INDEX= 옵션을 사용합니다.

 

이상으로 WHERE 문장에서 인덱스 사용을 컨트롤하는 방법에 대해 알아보았습니다.

 

감사합니다^^ 

 

 

 

 

 

 

 

 

 

Version history
Last update:
‎06-17-2020 02:47 AM
Updated by:
Contributors

sas-innovate-wordmark-2025-midnight.png

Register Today!

Join us for SAS Innovate 2025, our biggest and most exciting global event of the year, in Orlando, FL, from May 6-9. Sign up by March 14 for just $795.


Register now!

Article Labels
Article Tags