WEBINAR@LUNCHTIME THEMA: „SAS FÜR SCHNELLE – PERFORMANCEFALLEN ERFOLGREICH UMGEHEN" THOMAS WENDE C op yr i g h t © 2 0 1 2 , S A S I n s t i t u t e I n c . A l l r i g h t s r es er v e d . WEBINAR@LUNCHTIME HERZLICH WILLKOMMEN BEI WEBINAR@LUNCHTIME Moderation Training Anne K. Bogner-Hamleh Tom Wende SAS Institute GmbH Education Consultant SAS Institute GmbH Senior Technical Trainer Xing-Profil: Xing-Profil: http://www.xing.com/profile/AnneKatrin_BognerHamleh?key=0.0 https://www.xing.com/profile/Thomas_Wende2?key=0.0 Hinweise zum Ablauf des Webinars: • Teilnehmer sind automatisch “stumm” geschaltet • Sie können Nachrichten an den Moderator senden und Fragen stellen • die Veranstaltung wird aufgezeichnet C op yr i g h t © 2 0 1 2 , S A S I n s t i t u t e I n c . A l l r i g h t s r es er v e d . EFFIZIENZBAUSTEINE CPU Zeit Zeit für die Programmerstellung I/O Operationen Netzwerk Bandbreite RAM-Speicher Speicherplatz C op yr i g h t © 2 0 1 2 , S A S I n s t i t u t e I n c . A l l r i g h t s r es er v e d . EFFIZIENZBAUSTEINE • CPU Zeit ist die Zeit, die es dauert, um eine Anwendungsroutine auszuführen. • Berechnungen • Daten lessen und schreiben • Bedingte Verarbeitung • Schleifen C op yr i g h t © 2 0 1 2 , S A S I n s t i t u t e I n c . A l l r i g h t s r es er v e d . CPU Zeit EFFIZIENZBAUSTEINE • I/O misst die Lese- und Schreibprozesse. I/O ist das Nadelör, wenn es um Geschwindigkeit beim Programmablauf geht • Transfer vom Datenspeicherplatz in den Arbeitsspeicher • Ausgabe aus dem Arbeitsspeicher in die neue Datei C op yr i g h t © 2 0 1 2 , S A S I n s t i t u t e I n c . A l l r i g h t s r es er v e d . I/O Operationen EFFIZIENZBAUSTEINE • Memory ist der verfügbare Arbeitsspeicher (RAM). • Weil die Preise für RAM Speicher seit Beginn des Computerzeitalters quasi stetig fallen, werden InMemory Lösungen immer beliebter. • Ausführbare Programm-Module • Daten • Bufferspeicher C op yr i g h t © 2 0 1 2 , S A S I n s t i t u t e I n c . A l l r i g h t s r es er v e d . RAM-Speicher KENNEN SIE IHRE TECHNISCHE UMGEBUNG? • Sie machen sich Gedanken über Performance? Dann sollten Sie die Umgebung, in der Sie arbeiten, kennen! Systemauslastung Hardware Betriebssystem SAS Installation Technische Voraussetungen C op yr i g h t © 2 0 1 2 , S A S I n s t i t u t e I n c . A l l r i g h t s r es er v e d . ... TRACKINGOPTIONEN FÜR DIE RESSOURCENVERWENDUNG C op yr i g h t © 2 0 1 2 , S A S I n s t i t u t e I n c . A l l r i g h t s r es er v e d . ... FULLSTIMER OPTION • FULLSTIMER liefert zusätzliche Statistiken, • wie User CPU und System CPU Zeit. z/OS OPTIONS NOFULLSTATS | FULLSTATS; Windows and UNIX OPTIONS NOFULLSTIMER | FULLSTIMER; C op yr i g h t © 2 0 1 2 , S A S I n s t i t u t e I n c . A l l r i g h t s r es er v e d . ... SAS DATEIEN VERARBEITEN Memory I/O Messpunkt Input SAS Datei Buffer CacheSpeicher PDV D JobTitle D Salary Outpu t SAS Datei C op yr i g h t © 2 0 1 2 , S A S I n s t i t u t e I n c . A l l r i g h t s r es er v e d . Manager ID Bonus Buffer I/O Messpunkt ... WOHER KOMMT DIE WARTEZEIT? • Die Real time, die bei der Programmausführung gemessen wird, wird am stärksten von den Input/Output (I/O) Prozessen beeinflusst! I/O C op yr i g h t © 2 0 1 2 , S A S I n s t i t u t e I n c . A l l r i g h t s r es er v e d . Real time (Wartezeit) PROGRAMMOPTIMIERUNG Wenn man also die I/O Prozesse minimiert, spart man die meiste Zeit! Schritte reduzieren I/O minimieren C op yr i g h t © 2 0 1 2 , S A S I n s t i t u t e I n c . A l l r i g h t s r es er v e d . Datenmenge reduzieren 3 EINFACHE WEGE UM I/O ZU MINIMIEREN I/O minimieren Drop- oder Keep bei SET-Dateien verwenden C op yr i g h t © 2 0 1 2 , S A S I n s t i t u t e I n c . A l l r i g h t s r es er v e d . Where statt Subsetting-if, wenn möglich Komprimierung / Dateigrößenreduktion TECHNIK 1 UND 2: DEN PDV SCHONEN I/O minimieren Drop- oder Keep bei SET-Dateien verwenden C op yr i g h t © 2 0 1 2 , S A S I n s t i t u t e I n c . A l l r i g h t s r es er v e d . Where statt Subsetting-if, wenn möglich DATENINPUT VERRINGERN Spaltenanzahl verringern DROP oder KEEP Anweisungen DROP= or KEEP= Dateioptionen Anzahl der Durchläufe verringern WHERE Anweisung WHERE= Dateioption OBS= und FIRSTOBS= Dateioptionen C op yr i g h t © 2 0 1 2 , S A S I n s t i t u t e I n c . A l l r i g h t s r es er v e d . I/O minimieren REDUKTION DER I/O PROZESSE I/O minimieren Datenmenge verringern C op yr i g h t © 2 0 1 2 , S A S I n s t i t u t e I n c . A l l r i g h t s r es er v e d . Komprimierung / Dateigrößenreduktion DATEIGRÖßE VERRINGERN: KOMPRIMIERUNG Wenn man eine große Datei komprimiert, reduziert sich die Anzahl der Data Set Pages, d.h. es müssen während der Verarbeitung weniger I/O-Prozesse durchgeführt werden. Beim Entpacken im Arbeitsspeicher wird mehr CPU Power benötig, aber CPU ist immer schneller als I/O I/O C op yr i g h t © 2 0 1 2 , S A S I n s t i t u t e I n c . A l l r i g h t s r es er v e d . DATEN KOMPRIMIEREN • Es gibt in SAS zwei Komprimierungsalgorithmen RLE (Run-Length Encoding) RDC (Ross Data Compression) COMPRESS= Option C op yr i g h t © 2 0 1 2 , S A S I n s t i t u t e I n c . A l l r i g h t s r es er v e d . DATEN KOMPRIMIEREN: WAHL DER METHODE Viele Alphanumerische Variablen – am Besten mit vielen sich wiederholenden Zeichen, wie Leerzeichen. Viele numerische Variablen Alphanumerische Daten mit wiederkehrenden Mustern Beobachtungen > 1000 bytes CPU Time RLE (Run-Length Encoding) COMPRESS=CHAR COMPRESS=YES C op yr i g h t © 2 0 1 2 , S A S I n s t i t u t e I n c . A l l r i g h t s r es er v e d . RDC (Ross Data Compression) COMPRESS=BINARY DATEN ODER BIBLIOTHEKEN IN-MEMORY VERWENDEN PRINT TABULATE FREQ MEANS C op yr i g h t © 2 0 1 2 , S A S I n s t i t u t e I n c . A l l r i g h t s r es er v e d . IN-MEMORY TECHNIKEN • Die SASFILE Anweisung und die MEMLIB Libname Option können sowohl I/O als auch CPU Zeit sparen. Rechenzeit verkürzen SASFILE Anweisung MEMLIB Option Memory I/O C op yr i g h t © 2 0 1 2 , S A S I n s t i t u t e I n c . A l l r i g h t s r es er v e d . CPU Zeit IN-MEMORY TECHNIKEN In Memory Techniken funktionieren nur, wenn die Daten komplett in den Hauptspeicher passen. Wenn man mit mehreren Usern auf einem Server arbeitet, hat man den Arbeitsspeicher des Servers meistens nicht für sich allein C op yr i g h t © 2 0 1 2 , S A S I n s t i t u t e I n c . A l l r i g h t s r es er v e d . SASFILE ANWEISUNG sasfile orion.customerdim load; proc freq data=orion.customerdim; SASFILE SAS-data-set LOAD; tables CustomerCountry CustomerType; run; proc print data=orion.customerdim noobs; where CustomerType='Orion Club Gold members high activity'; var CustomerID CustomerName CustomerAgeGroup; run; proc means data=orion.customerdim mean median max min; var CustomerAge; class CustomerGroup; run; proc tabulate data=orion.customerdim format=8.; class CustomerAgeGroup CustomerType; table CustomerType All=Total, CustomerAgeGroup*n=' ' All=Total*n=' '/rts=45; SASFILE SAS-data-set CLOSE; run; sasfile orion.customerdim close; p303d06 C op yr i g h t © 2 0 1 2 , S A S I n s t i t u t e I n c . A l l r i g h t s r es er v e d . MEMLIB OPTION Mit der MEMLIB Option in einer Libname Anweisung, kann man den kompletten Inhalt einer Bibliothek in den Arbeitsspeicher laden C op yr i g h t © 2 0 1 2 , S A S I n s t i t u t e I n c . A l l r i g h t s r es er v e d . WEBINAR@LUNCHTIME DEMO C op yr i g h t © 2 0 1 2 , S A S I n s t i t u t e I n c . A l l r i g h t s r es er v e d . ... UND SONST? C op yr i g h t © 2 0 1 2 , S A S I n s t i t u t e I n c . A l l r i g h t s r es er v e d . Mit Views arbeiten Formate anstatt Variablen für Gruppierung verwenden Daten effizient sortieren Mehrfaches Einlesen von Rohdaten verhindern (Speicherung als SAS-Datei) Indizes oder Hashtables (in-memory) für Joins oder Table Lookups verwenden Proc Datasets anstelle des Data Step verwenden, um bestehende Dateien zu modifizieren oder zu kopieren Programmentwicklung mit Stichproben High-Performance Prozeduren (z.B. Proc HPDS2) SAS Systemoptionen zur Performanceoptimierung DATEN EFFIZIENT SORTIEREN C op yr i g h t © 2 0 1 2 , S A S I n s t i t u t e I n c . A l l r i g h t s r es er v e d . NOSORTEQUALS verwenden, wenn die Reihenfolge der Zeilen innerhalb einer Sortierung egal ist. GROßE SAS DATEIEN MIT HILFE VON INDIZES DURCHSUCHEN Vorteil: I/O und CPU Zeit wird gespart. Nachteil: Indexdateien sind wartungsaufwändig. Wenn die Ursprungsdatei sich ändert, muss auch die IndexDatei neu erstellt werden! C op yr i g h t © 2 0 1 2 , S A S I n s t i t u t e I n c . A l l r i g h t s r es er v e d . HASH TABELLEN • Hash Tabellen sind Lookup-Tabellen (ähnlich einer IndexTabelle). Sie werden im Arbeitsspeicher erstellt und während der Table Lookups gehalten. Vorteil: Hoch effektiv Nachteil: Größenbeschränkung durch Memory DATA Step C op yr i g h t © 2 0 1 2 , S A S I n s t i t u t e I n c . A l l r i g h t s r es er v e d . PROC DATASETS ZUM DATEN KOPIEREN, ANHÄNGEN UND MODIFIZIEREN C op yr i g h t © 2 0 1 2 , S A S I n s t i t u t e I n c . A l l r i g h t s r es er v e d . Anstelle den Data Step zu verwenden, kann man ganz viele Operationen an bestehenden Daten mit Proc Datasets durchführen, z.B. Daten anhängen, Variablennamen oder Labels ändern oder Dateien kopieren. Proc Datasets ist hierbei immer schneller. MULTITHREADING – NICHT NUR MIT SPDS • SAS Systemoptionen zur Ressourcensteuerung • Es gibt im SAS System zahlreiche System Optionen, um die Verwendung von Ressourcen zu steuern: CPUCount -Anzahl der von SAS genutzten Prozessoren MemSize - Max. Hauptspeicher SortSize - Hauptspeicherfestlegung für Sortierschritte SumSize - Hauptspeicherfestlegung für Aggregationen BufSize - Größe eines Datenpaketes in einem I/O Step BufNo - Anzahl der Datenpakete Threads – Aufteilung von SAS-Steps in Threads Aber Vorsicht: Meistens sind diese Optionen schon vom Systemadministrator optimiert. Eine Veränderung könnte eventuell auch die Performance verschlechtern!!! C op yr i g h t © 2 0 1 2 , S A S I n s t i t u t e I n c . A l l r i g h t s r es er v e d . QUELLEN UND LINKS • SAS Programmierung 3: Effiziente Techniken des Datenmanagements • Andreas Bachert: Performancetuning für SAS Programme 1 in SAS WIKI • Kirk Paul Lafler: Top Ten SAS Performance Tuning Techniques (SUGI Paper 2012) • Advanced Performance Tuning Techniques – in der SAS Hilfe auf support.sas.com • Tom Wende: In-memory auch mal ganz klassisch mit In-Memory Bibliotheken (Im SAS Mehr Wissen Blog) C op yr i g h t © 2 0 1 2 , S A S I n s t i t u t e I n c . A l l r i g h t s r es er v e d . FRAGEN? C op yr i g h t © 2 0 1 2 , S A S I n s t i t u t e I n c . A l l r i g h t s r es er v e d . WEBINAR@LUNCHTIME VIELEN DANK FÜR IHRE TEILNAHME Interesse an weiterem Austausch? • Diskutieren Sie mit uns in der XING-Gruppe Business Analytics mit SAS • Sprechen Sie uns direkt an: [email protected] • SAS® Visual Analytics, SAS® Visual Statistics, SAS® Enterprise Guide: Neue Live-Webinare zu aktuellen Themen C op yr i g h t © 2 0 1 2 , S A S I n s t i t u t e I n c . A l l r i g h t s r es er v e d . WEBINAR@LUNCHTIME WEITERE INFORMATIONEN UND KURSE ZU DIESEM THEMA… • SAS® Programmierung 3: Effiziente Techniken des Datenmanagements 09.12. - 11.12.15 Wien 18.01. - 20.01.16 Heidelberg 14.03. - 16.03.16 Heidelberg C op yr i g h t © 2 0 1 2 , S A S I n s t i t u t e I n c . A l l r i g h t s r es er v e d . NÄCHSTES WEBINAR@LUNCHTIME: SPECIAL: 16. DEZEMBER 2015 STATE OF THE ART IN CREDIT RISK MODELING BY PROF. BART BAESENS C op yr i g h t © 2 0 1 2 , S A S I n s t i t u t e I n c . A l l r i g h t s r es er v e d . FOLIEN ZUM DOWNLOAD UNTER WWW.SAS.DE/LUNCHTIME WIE HAT IHNEN UNSER WEBINAR GEFALLEN? C op yr i g h t © 2 0 1 2 , S A S I n s t i t u t e I n c . A l l r i g h t s r es er v e d . www.SAS.com
© Copyright 2024 ExpyDoc