Aktivieren Sie die Trace-Optionen, um das vom LIBNAME-Modul generierte SQL zu sehen:
options sastrace=',,,d' sastraceloc=SASLOG;
1
options sastrace=',,,d' sastraceloc=SASLOG;
Wenn Sie eine komplexe SQL-Abfrage mit Ihren JOIN und WHERE im Protokoll sehen: Das LIBNAME-Modul funktioniert gut (Implizites Pass-Through erfolgreich). Das Problem könnte an fehlenden Datenbankindizes liegen.
Nachteil: Sie verlieren die Portabilität (der Code wird spezifisch für Oracle/SQL Server/usw.).
proc sql;
connect to oracle (user=... password=... path=...);
create table want as
select * from connection to oracle
(
SELECT A.id, B.value
FROM tableA A
INNER JOIN tableB B ON A.id = B.id
/* Ce code est exécuté par Oracle, pas SAS */
);
disconnect from oracle;
quit;
1
PROC SQL;
2
connect to oracle (user=... password=... path=...);
Verlassen Sie sich nicht auf Ihre Uhr. Verwenden Sie die integrierten Benchmarking-Tools, um Ihre Tests (LIBNAME vs. Pass-Through vs. Data Step) zu vergleichen:
options FULLSTIMER;: Zeigt im Protokoll die CPU-Zeit, die reale Zeit und den verwendeten Speicher für jeden Schritt an.
Es gibt keine Magie, nur vergleichende Tests (FULLSTIMER) in Ihrer spezifischen Umgebung.
Zur Optimierung Ihrer massiven Joins:
Prüfen Sie zuerst mit SASTRACE, ob LIBNAME seine Aufgabe erfüllt.
Testen Sie das explizite Pass-Through, wenn das implizite fehlschlägt.
Schließen Sie die Option nicht aus, Datensubsets abzurufen, um einen lokalen MERGE durchzuführen, falls der Datenbankserver überlastet ist.
Aviso importante
Los códigos y ejemplos proporcionados en WeAreCAS.eu son con fines educativos. Es imperativo no copiarlos y pegarlos ciegamente en sus entornos de producción. El mejor enfoque es comprender la lógica antes de aplicarla. Recomendamos encarecidamente probar estos scripts en un entorno de prueba (Sandbox/Dev). WeAreCAS no acepta ninguna responsabilidad por cualquier impacto o pérdida de datos en sus sistemas.
SAS y todos los demás nombres de productos o servicios de SAS Institute Inc. son marcas registradas o marcas comerciales de SAS Institute Inc. en los EE. UU. y otros países. ® indica registro en los EE. UU. WeAreCAS es un sitio comunitario independiente y no está afiliado a SAS Institute Inc.
Este sitio utiliza cookies técnicas y analíticas para mejorar su experiencia.
Saber más.