Wenn man versucht, SAS©-Verarbeitungen zu optimieren oder die Leistung einer Produktionskette zu überwachen, können die Standardinformationen im "Log"-Fenster frustrierend sein.
Standardmäßig zeigt SAS© die Leistungsstatistiken (Echtzeit, CPU-Zeit, Speicher) nach jedem Schritt (DATA step oder PROC) an.
Die wiederkehrende Frage ist: Wie erhält man die Summe dieser Statistiken für ein gesamtes Programm, das Dutzende aufeinanderfolgender Schritte enthält?
Hier sind die drei Hauptmethoden, von der einfachsten bis zur fortgeschrittensten.
Methode 1: Die Ausführung im "Batch"-Modus (Die native Methode)
Dies ist die unmittelbarste Lösung, wenn Sie keine Interaktivität benötigen. Wenn Sie ein SAS©-Programm im Batch-Modus (über die Befehlszeile oder einen Scheduler) ausführen, ändert SAS© sein Protokollierungsverhalten geringfügig.
Am Ende der generierten .log-Datei fügt SAS© automatisch eine statistische Zusammenfassung der gesamten Sitzung ein.
So geht's:
Anstatt SAS© Enterprise Guide oder SAS© Base interaktiv zu öffnen:
Starten Sie Ihr Programm über das System-Executable (z.B. sas©.exe -sysin mein_programm.sas©).
Öffnen Sie die resultierende Log-Datei (mein_programm.log).
Gehen Sie ganz nach unten in der Datei, um den Block "SAS© Session Statistics" zu finden.
Methode 2: Das "Log Scraping" (Die Log-Analyse)
Wenn Sie diese Leistungen historisieren müssen (z.B. um die Ausführungsgeschwindigkeit einer Verarbeitung Tag für Tag zu vergleichen), reicht das manuelle Lesen des Logs nicht aus. Die von Experten empfohlene Lösung ist die Erstellung eines kleinen Programms, das Ihre Logs "liest".
Die Idee ist, SAS© zu verwenden, um seine eigenen Textausgabedateien zu lesen.
Das Konzept:
Aktivieren Sie die Option FULLSTIMER am Anfang Ihres Hauptprogramms, um maximale Details zu erhalten.
Nach Abschluss des Programms starten Sie ein "Scraping"-Skript, das die .log-Datei liest.
Suchen Sie nach Zeilen, die mit "real time" oder "cpu time" beginnen.
Extrahieren Sie die numerischen Werte und summieren Sie sie.
Dies ist die ideale Methode, um Leistungs-Dashboards (Performance Monitoring) zu erstellen.
Methode 3: Das ARM-Subsystem (Die Pro-Methode)
Für komplexere Anforderungen (z.B. die Messung der Zeit eines spezifischen Codeabschnitts ohne Initialisierung) empfehlen wir die Verwendung von ARM (Application Response Measurement).
ARM ist ein Industriestandard für die Leistungsmessung, der in SAS© über spezifische Makros integriert ist. Dies ermöglicht die Definition benutzerdefinierter "Start"- und "End"-Transaktionen.
Konzeptionelles Beispiel:
Die Ergebnisse werden dann sauber in einer dedizierten Log-Datei oder einer Tabelle gespeichert, was eine präzise Analyse ohne das Parsen von Rohdaten ermöglicht.
Schnelle Alternative: Zeitmarker
Wenn Sie nicht die CPU-/Speichergenauigkeit, sondern nur die tatsächliche Dauer ("Wall clock time") für einen Codeblock benötigen, können Sie einfach Makrovariablen am Anfang und Ende Ihres Skripts verwenden: