SAS 설정에 대해 더 알고 싶습니다. 분명히 당신과 같은 결과를 보지 못했습니다. 이것은 내가 테스트하는 데 사용되는 코드입니다 :
테스트 코드
0과 1000 사이의 임의의 정수와 테스트 데이터, 불에 행을 만듭니다
data x;
do cnt=1 to 10000000;
x = floor(rand("Uniform") * 1000);
output;
end;
drop cnt;
run;
IT 및 유지를 정렬 시도 proc sort를 사용하는 고유 값. 여러 번 실행하여 평균 시간을 얻으십시오.
proc sort data=x out=test1 nodupkey;
by x;
run;
proc SQL 메소드를 사용해보십시오. 평균 시간을 얻으려면 여러 번 실행하십시오.
proc sql noprint;
create table test2 as
select distinct x
from x
order by 1
;
quit;
'삽입 방법'방법을 사용해보십시오.여러 번 실행
proc sql noprint;
create table b like x;
insert into b (x) select distinct (x) from x;
quit;
내 컴퓨터, SAS9.4, 윈도우 64 비트에
결과, proc 디렉토리 정렬은 평균적으로 약 4 초를 가져다가 SQL 종류는 약 5 초 걸렸습니다. 그래서 네, proc sort는이 데이터 세트에 대해 좀 더 빠르게 실행되었습니다. 정렬 할 행, 열, 필드 유형 및 키의 카디널리티를 변경하면 이러한 결과가 모두 변경 될 수 있습니다.
insert into 문은 3.2 초가 가장 빠릅니다. SAS 데이터 세트에 귀하의 테이블을 쓰고 있습니까? 또는 다른 데이터베이스에 있습니까? 이것은 결과에 가장 큰 영향을 주며 실행할 단계를 선택할 때 결정적인 요인이되어야합니다.
DISTINCT를 실행하면 속도가 느려집니다. – jarlh
감사합니다. @Jardh. SAS 측에서 더 많은 답변을 찾고 있다고 가정 해 봅시다. –