Esittely latautuu. Ole hyvä ja odota

Esittely latautuu. Ole hyvä ja odota

SAS-ajojen optimoinnista

Samankaltaiset esitykset


Esitys aiheesta: "SAS-ajojen optimoinnista"— Esityksen transkriptio:

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

2 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ä

3 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

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

5 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

6 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 */

7 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

8 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

9

10 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

11

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

13 3. 2 – Taulukohtainen asetus

14 3. 2 – Jobikohtainen asetus

15 3. 2 – Kirjastokohtainen asetus

16 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

17 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

18

19

20 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

21 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

22 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;


Lataa ppt "SAS-ajojen optimoinnista"

Samankaltaiset esitykset


Iklan oleh Google