SAS-ajojen optimoinnista

Slides:



Advertisements
Samankaltaiset esitykset
SkyDrive ja Office Web Apps –sovellusten käyttäminen
Advertisements

 Vuoden 2014 ensimmäinen Tech Club tilaisuus pidettiin SAS Instituten tiloissa Otaniemessä. Päivän teemana oli Proc FCMP ja HASH –objektit. Lisäksi osaanottajia.
Mikä tekijänoikeus?.
Active directory.
Stored Procs Pientä ja yleistä asiaa monelta eri kantilta.
JavaScript (c) Irja & Reino Aarinen, 2007
PSK Kevätseminaari 2013 Risto Koivunen
Julkaisuportaalin prototyyppi Tutki-ohjausryhmä, Jyrki Ilva
Suunnitelma ohjelmiston testaukseen
Toimittaja – Sovellusarkkitehtuuritas on pilkkominen Kalle Launiala, ProtonIT Oy
Kurssilla käytettävät työkalut
Kökkötraktori-verkkokauppa
Menetelmäharjoitus: Kokous- ja kommunikaatiokäytännöt Mikko Rönkkö.
SAS ohjelman suoritusajan mittaaminen ja koodin tehokkuuden parantaminen SAS Technical Clubin kokoontuminen Virpi Virtanen Tieto-Tapiola Oy.
Taulutarkastuksen ohje pahvitauluille SAL, LMjaosto.
Taulutarkastuksen ohje pahvitauluille SAL, Pistoolijaosto.
Tietojen hallinta Alkuperäinen teksti:
Kiintolevyn osiointi.
Pelin suunnittelu Antti-Jussi Lakanen Nuorten peliohjelmointi 2009 /
Olisiko oppineesta rotasta astronautiksi avaruuslennolle Marsiin?
DIS Jouni Javanainen Fennia Technical Club.
Projekti ja siinä työskentely
Antti-Jussi Lakanen Nuorten peliohjelmointi 2009 / Jyväskylän yliopisto.
Korkeakoulujen ja opetusministeriön yhteinen tietohallintohanke, jota CSC koordinoi RAkenteellisen KEhittämisen Tukena TIetohallinto RAKETTI-XDW Käsitemäärittely,
Ohjelman jakaminen useampaan tiedostoon Olio-ohjelmointi (C++) KYAMK, Jarkko Ansamäki 2001.
Siirräntäjärjestelmät. 2 w Siirräntäjärjestelmä Tiedostojärjestelmä ja siirräntä keskusmuistin ja oheislaitteiden välillä w Voidaan käsitellä hierarkkisina.
Copyright 2009 Avarea Oy - Base SAS osaajasta DIS taituriksi Kokemuksia DI Studion käyttöönottoprojekteista.
Windows Presentation Foundation UxE:n näkökulmasta
Suorituskyvyn seuranta. Harjoitustilan seuranta unimäärän ja unenlaadun tarkkailua KOP-projektin yhteydessä osa urheilijoista toteutti unimäärän ja unenlaadun.
Taulutarkastuksen ohje pahvitauluille
Marja Toivonen gsm Tuumasta toimeen – seminaarin päätös Aktiivi
T Personal SE assignment Project progress tracking and control.
Tiedon esittäminen.
2. Vuokaaviot.
13. Hyvä ohjelmointitapa (osa 1)
Internet-projekti - MUM2TM Heikki Hietala Jukka Mutikainen TIKO – Malmi
Java-ohjelmien vianjäljitys Pietu Pohjalainen. Vianjäljitin Vianjäljitin (debuggeri) on ohjelma, jolla voidaan seurata toisen ohjelman suoritusta Tietotekniikan.
GNU-ohjelmointityökalut Jussi Raunio TI09OHJ
Erilaiset liitokset FROM-osassa voidaan määritellä relaatio myös erilaisia liitosoperaatioita käyttäen Vasen, oikea ja täysi puoliliitos eli ulkoliitos.
Identiteetinhallinta – ympäristö pinnan alta
Jatkuvan parantamisen Jp-taulu
Opinnäytetyön tekijä: Etunimi Sukunimi
Nexus Pasi Aho Henrik Härkönen Miikka Lahti Minna Rajala.
Henkilöstöjohtaja Lasse Lintilä Valio Oy
Tietotyypit Tietotyyppi määrittää muuttujan sisältämän datan luonnetta, muistista tarvittavaa tilaa ja sitä, millaisia operaatioita siihen voidaan kohdistaa.
Heikki Salokanto Valvoja: prof. Jukka Manner Ohjaaja: DI Pekka Pajuoja, TEKES Sovelluskehitysympäristön virtualisoinnin tuomat edut ja haitat.
Viestintäsuunnitelma
HAJAUTTAMISEN IDEAA SEPPO RÄSÄNEN SAVONIA-AMMATTIKORKEAKOULU TERVEYSALA, KUOPIO Ohjelmistotekniikka ja projektinhallinta, 4 op.
6. Relaatioalgebra ja relaatiokalkyyli
RTE Ilkka Heinonen VTT Building Technology & Transport INDUSTRY ALLIANCE FOR INTEROPERABILITY Esitys IAI:n osalta perustuu Arto Kiviniemen.
5. Lineaarinen optimointi
Rinnakkaisuus Järjestelmässä, jossa voi olla useita prosesseja rinnakkain suorituksessa voi tulla tilanteita, joissa prosessien suoritusta täytyy kontrolloida.
T Personal SE assignment Static Methods Jaakko Nyrölä, ryhmä TeTe
T Henkilökohtainen SE harjoitus
KANSALLISKIRJASTO - Kirjastoverkkopalvelut Juuli-julkaisutietoportaali Seminaari tutkimuslaitosten ja yliopistollisten sairaaloiden julkaisutiedonkeruusta.
DO NOT PRINT THIS DOCUMENT SQL -valintaehto CREATE TABLE opettaja ( opetunnus varchar(12) NOT NULL, nimi varchar(40) NOT NULL, puhelin varchar(12), tyohuone.
Visual Basic -ohjelmointi
Johdetun luokan olion alustus tMyn1 Johdetun luokan olion alustus määrätyillä arvoilla Kun ohjelmassa esiintyy johdetun luokan olion määrittely, järjestelmä.
S ysteemianalyysin Laboratorio Aalto-yliopiston teknillinen korkeakoulu Ohjaamaton oppiminen– Heikki Vesterinen Optimointiopin seminaari - Syksy 2010 Ohjaamaton.
Tietokannat -kurssi KSAO, Datanomit, käytön tuki kevät 2015 Lauri Tapola.
XSL Teppo Räisänen
Tietokannat -kurssi KSAO, Datanomit, käytön tuki kevät 2015 Lauri Tapola.
PDF –dokumentit Adobe Acrobatilla Taina Joutsenvirta Valtiotieteellinen tiedekunta
DHCP Antti Pöyhönen.
Jenna Nyblom Katri Vanhatalo Oskari Anttalainen
Prosessimallinnuksen kehittäminen JHKA-jaosto Jari Kallela.
OFFICE 365 PERUSTEET MATTI LÄHTEVÄNOJA, KUOPION KASVUN JA OPPIMISEN PALVELUALUE, KALLAVEDEN LUKIO.
Kyrilliikan luetteloinnin uusia tuulia
14. Hyvä ohjelmointitapa.
Jouni Javanainen Fennia Technical Club
Esityksen transkriptio:

SAS-ajojen optimoinnista Asko Kauppinen ja Lauri Mantere Aureolis Oy SUGIF Tech club 09/2012

Aiheet 1. Yleistä 2. BASE-SAS optimointi 2.1 Yleiset käytännöt 2.2 Levyoperaatioiden ja CPU-käytön optimointi 3. SAS DI-Studiolla tehtynä 3.1 Projektin käytännöt 3.2 Compress-optiot 3.3 Hyviä käytäntöjä

1. Yleistä Esityksessä keskitytään hyviin ohjelmointikäytäntöihin (ajojen tai jobien asetukset, toimintatavat) Paremmalla infralla ja/tai rajapinnoilla voidaan toki kasvattaa ajojen tehokkuutta ilman että ohjelmakoodin tehokkuuteen olisi panostettu

2.1 Yleiset käytännöt Käytetään rajausehtoja oikein, käytetään indeksejä, pudotetaan/pidetään tarvittavat muuttujat

2.2 Levyoperaatiot - Compress Tauluja pakkaamalla voidaan pyrkiä vähentämään levyoperaatioiden vaatimaa aikaa, mutta samalla CPU-ajan käyttö lisääntyy Hyödyllistä jos ajon suorituksen kelloajan ja prosessoriajan välillä iso ero kelloajan suhteen Levytilan säästö on ensimmäinen tavoite Esim. SAS-taulu 30GB  9GB

2.2 Levyoperaatiot - jatkoa Jos SAS-taulu sisältää runsaasti sekä merkki että numeerista dataa niin compress=binary on paras pakkausoptio vaikka se on compress=char optiota kalliimpi prosessoriajan mielessä options compress=binary; /* asetus kaikille luoduille tauluille */

3. SAS DI-Studiolla tehtynä BASE-SAS:a käyttäneen on helppo lähteä tekemään projekteja DIS:llä, kyseessä on käyttöliittymä SAS:n toiminnallisuuksiin Joitain käytäntöjä voi olla hyvä muuttaa, varsinkin isommissa projekteissa kun useampia tekijöitä samaan aikaan

3.1 Projektin käytännöt Jaetaan toiminnallisuus loogisiin kokonaisuuksiin, ei tehdä megajobia joka yrittää ratkaista kaiken – ylläpito, tuotannon seuranta ja kehittäminen helpompaa Metadatan hyödyntäminen kuvausten tekemisessä kansiot, kuvaus-kentän käyttö, vastuut

3.1 Jatkoa Määritellään DIS:n käyttämään autoexec.sas tiedostoon automaattinen makrokirjastoviittaus, jonne makrot on SAS-ohjelmina tallennettu Tämän jälkeen jobien Properties/Precode ja postcode kohdassa on mahdollista käyttää näitä makroja Tai precode/postcode kohdissa transformaatiossa

3.2 Compress-optiot Luvun 2 esimerkkeinä esitetyt pakkausoptiot voidaan toteuttaa taulukohtaisesti, jobin asetuksissa tai kirjastokohtaisesti määrityksessä DIS:ssä

3. 2 – Taulukohtainen asetus

3. 2 – Jobikohtainen asetus

3. 2 – Kirjastokohtainen asetus

3.3 Hyviä käytäntöjä - rajaukset Esimerkkitilanne: Jobi, jossa haetaan osajoukko tuote-dimensiosta ja yhdistetään tiedot faktatauluun tai tauluihin inner joinilla. Voitaisiin optimoida tekemällä tuoterivejä rajoittava väliaikainen taulu ja sen jälkeen käyttämällä sitä kyselyissä faktatauluihin

3.3 Hyviä käytäntöjä - esisorttaus Esimerkkitilanteessa samaa taulua tarvitaan useassa kyselyssä Kyselystä saadaan tehokkaampi kun taulu sortataan ensin ja sortattua taulua käytetään kaikissa kyselyissä tämän jälkeen Relaatiokannan taulun käsittely eroaa, edellinen toimii parhaiten SAS-taulujen kohdalla

Bonus - Rinnakkaisajo Moniajo yhdellä koneella Usein SAS ohjelmissa on osia, jotka voidaan ajaa rinnakkain ja jotka vaativat eri resurssia, IO-riippuvaista datan siirtoa, CPU-riippuvaista laskentaa Ajetaan samalla koneella osia, jotka eivät kilpaile samasta resurssista

Bonus - Rinnakkaisajo Moniajo useammalla koneella Jos ohjelmassa on useita osia, jotka vaativat runsaasti CPU:ta jaetaan nämä etäkoneille ja luetaan valmiit tulokset takaisin

Bonus - Rinnakkaisajo Options sascmd='/usr/sasroot/SAS_9.2/SASFoundation/9.2/sas -nosyntaxcheck‘ autosignon comamid=tcp; rsubmit task1 wait=no inheritlib=(datat); /* Steppejä 1*/ endrsubmit; rsubmit task2 wait=no inheritlib=(datat); /* Steppejä 2*/ /* Steppejä 3*/ waitfor task1 task2;