0
SQL 데이터베이스를 쿼리하는 데 걸리는 시간을 줄이기 위해 SQL 통과에 SAS 테이블을 병합하려고합니다. 지금은 그냥 그대로 통과를 사용하고 있으며 이후에 원하는 것을 선택하기 전에 테이블에서 모든 것을 가져 오는 데 대략 8-9 시간이 걸립니다.SQL 테이블을 병합하여 SAS 테이블 병합
proc sql;
connect to ODBC as CAW(datasrc = "CAW_ULI_STATIC");
create table test as
select aelref, aelprdtyp, aelsubtyp, aelloc, aelopndte,
hdscontrolopendate, hdscontrolclosedate, hdscontrolaction,
from connection to CAW (
select aelref, aelprdtyp, aelsubtyp, aelloc, aelextnbr, aelbrnpfx, aelitnnbr, aelopndte,
aelclddte, hdscontrolopendate, hdscontrolclosedate, hdscontrolaction
from PUBLIC_withpersonal_short.Vwhdscisagrmnt (nolock)
where HDSControlACTION <> 'D'
and aelsubtyp in (1, 2, 3, 4, 5, 10, 20, 21)
order by aelref, hdscontrolopendate, hdscontrolclosedate
);
disconnect from CAW;
;
quit;
하지만 지금은 제가 왼쪽을 수행하여 통과에서 당기는거야 그래서 가입 좁힐 다른 SAS 데이터 세트를 사용하려고 해요 :
는 순간에 통과는 다음과 같이보고있다 다음과 같이 보입니다 :proc sql;
connect to ODBC as CAW(datasrc = "CAW_ULI_STATIC");
create table test as
select a.*, aelref, aelprdtyp, aelsubtyp, aelloc, aelopndte,
hdscontrolopendate, hdscontrolclosedate, hdscontrolaction,
from Import1 a left join connection to CAW (
select aelref, aelprdtyp, aelsubtyp, aelloc, aelextnbr, aelbrnpfx, aelitnnbr, aelopndte,
aelclddte, hdscontrolopendate, hdscontrolclosedate, hdscontrolaction
from PUBLIC_withpersonal_short.Vwhdscisagrmnt (nolock)
where HDSControlACTION <> 'D'
and aelsubtyp in (1, 2, 3, 4, 5, 10, 20, 21)
order by aelref, hdscontrolopendate, hdscontrolclosedate
);
disconnect from CAW b;
on a.ANUM = b.aelextnbr
;
quit;
하지만 연결 전에 결합을 추가하는 것 같지 않습니다. 이것이 올바른 방법일까요, 아니면 제가 빠진 것이 있습니까?
감사합니다.
SAS 시스템이 느린 경우가 아니면 원격 처리 및 데이터 전송에 거의 8-9 시간이 소요됩니다. 사실을 필터링하면 성능에 큰 도움이되지 않습니다. –
RDMS는 무엇입니까? SQL Server, Oracle, DB2, Postgres, MySQL? DBMS 콘솔에서 쿼리는 얼마나 걸리나요? SAS는 데이터베이스 또는 원격으로 동일한 서버에 상주합니까? – Parfait