0
SQLテーブルをSQLパススルーにマージして、SQLデータベースのクエリに要する時間を短縮しようとしています。現時点では、そのままパススルーを使用しています。テーブルからすべてを引き出すにはおよそ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