Præsentation er lastning. Vent venligst

Præsentation er lastning. Vent venligst

Copyright © 2014, SAS Institute Inc. All rights reserved. make connections share ideas be inspired Skjulte SQL-features Jakob Juul Bak Chefkonsulent, SAS.

Lignende præsentationer


Præsentationer af emnet: "Copyright © 2014, SAS Institute Inc. All rights reserved. make connections share ideas be inspired Skjulte SQL-features Jakob Juul Bak Chefkonsulent, SAS."— Præsentationens transcript:

1 Copyright © 2014, SAS Institute Inc. All rights reserved. make connections share ideas be inspired Skjulte SQL-features Jakob Juul Bak Chefkonsulent, SAS Institute A/S Online feedback/dialog: f www.sas-forum.dk f Se password på dit navneskilt www.sas-forum.dk

2 Copyright © 2014, SAS Institute Inc. All rights reserved.  … eller måske mere korrekt: Ikke så hyppigt anvendte SQL-features Skjulte SQL-features

3 Copyright © 2014, SAS Institute Inc. All rights reserved.  Ofte kan SQL-udskrifter være svære at læse … Lad os komme i gang …

4 Copyright © 2014, SAS Institute Inc. All rights reserved.  DOUBLE indsætter en blank linje mellem rækkerne DOUBLE

5 Copyright © 2014, SAS Institute Inc. All rights reserved.  Hvis man nu også indsætter FEEDBACK-optionen, får man lidt mere information i loggen: FEEDBACK

6 Copyright © 2014, SAS Institute Inc. All rights reserved.  Hvis man søger efter en tekststreng, men kun kender et brudstykke, kan man anvende LIKE-operatoren Anvendelse af ”wild card”-karakterer ved søgning

7 Copyright © 2014, SAS Institute Inc. All rights reserved.  Søger på tekststrenge, der ”lyder som” … Fonetisk match

8 Copyright © 2014, SAS Institute Inc. All rights reserved.  Giver mulighed for at evaluere et udtryk og have flere udfaldsmuligheder  Minder om den traditionelle IF-THEN-struktur, der findes i langt de fleste programmeringssprog CASE

9 Copyright © 2014, SAS Institute Inc. All rights reserved. CASE WHEN when-condition THEN result-expression … END CASE – syntaks

10 Copyright © 2014, SAS Institute Inc. All rights reserved. CASE – eksempel nr. 1

11 Copyright © 2014, SAS Institute Inc. All rights reserved. CASE – eksempel nr. 2

12 Copyright © 2014, SAS Institute Inc. All rights reserved.  Views kan betragtes som virtuelle tabeller  Grunden til at anvende views kan være flere. Her er de vigtigste: Minimere brugeres behov for at kende de underliggende tabelstrukturer Skjule SQL-syntaks og processeringskompleksiteter for brugerne Sikre sensitive dele af en tabel Views

13 Copyright © 2014, SAS Institute Inc. All rights reserved. Views – eksempel

14 Copyright © 2014, SAS Institute Inc. All rights reserved.  SAS opdaterer konstant informationer om Libnames, datasæt, kataloger, makro, optioner etc.  Disse informationer er tilgængelige for PROC SQL gennem DICTIONARY-tabellerne, eksempel: DICTIONARY-tabellerne

15 Copyright © 2014, SAS Institute Inc. All rights reserved.  Følgende DICTIONARIES er tilgængelige: DICTIONARY-tabellerne, fortsat CATALOGSLIBNAMES CHECK_CONSTRAINTSMACROS COLUMNSMEMBERS CONSTRAINT_COLUMN_USAGEOPTIONS CONSTRAINT_TABLE_USAGEREFERENTIAL_CONSTRAINTS DICTIONARIESSTYLES EXTFILESTABLE_CONSTRAINTS FORMATSTABLES GOPTIONSTITLES INDEXESVIEWS

16 Copyright © 2014, SAS Institute Inc. All rights reserved.  Beskrivelse af DICTIONARY-tabellerne DICTIONARY-tabellerne, fortsat

17 Copyright © 2014, SAS Institute Inc. All rights reserved. DICTIONARY-tabellerne, eksempel  Eksempel Data fylder for meget og skal sorteres i de lange tekstfelter i databasen Derfor: Find de tabeller, hvori der indgår en variabel, der har en længde >175 Sorter tabeller og variable efter tekstfelternes relative længde i forhold til hele rækkens længde

18 Copyright © 2014, SAS Institute Inc. All rights reserved. DICTIONARY-tabellerne, eksempel – fortsat Først findes tabellerne med lange tekstfelter Resultatet anvendes til at udtrække de rette tabeller fra DICTIONARY.COLUMNS Der grupperes på libname+memname, og de aggregerede resultater beregnes

19 Copyright © 2014, SAS Institute Inc. All rights reserved.  PROC SQL giver mulighed for at gemme resultater direkte i makrovariable PROC SQL og makrosproget

20 Copyright © 2014, SAS Institute Inc. All rights reserved.  Man kan gemme flere makrovariable i en query PROC SQL og makrosproget, fortsat

21 Copyright © 2014, SAS Institute Inc. All rights reserved.  Med SEPARATED BY har man mulighed for at gemme flere værdier i samme makrovariabel PROC SQL og makrosproget, fortsat

22 Copyright © 2014, SAS Institute Inc. All rights reserved.  Med makrosproget og SQL-proceduren kan man danne fleksible og generaliserede makroværktøjer Makro-tools

23 Copyright © 2014, SAS Institute Inc. All rights reserved.  Ved at tilknytte makroen til en funktionstast kan man gøre anvendelsen endnu lettere Makro-tools, fortsat For overskueligheden er selve SQL’en gengivet her:

24 Copyright © 2014, SAS Institute Inc. All rights reserved.  PROC SQL vælger mellem flere JOIN-algoritmer Nested Loop Join – Vælges f.eks., når der ikke er angivet et join- kriterium, hvorved SQL læser hele indholdet af "højre" tabel for hver række i "venstre" tabel Merge Join – Når tabellerne, der skal joines, allerede er sorterede, anvendes der ikke ekstra ressourcer på at sortere tabellerne Hash Join – Hvis der er angivet et join-kriterium, og den mindste af tabellerne kan være i memory, foretages der ingen sortering, og hver tabel læses kun en gang JOIN med PROC SQL

25 Copyright © 2014, SAS Institute Inc. All rights reserved.  Det er med en smule ”magi” muligt at påvirke PROC SQL til at vælge en specifik join-algoritme JOIN med PROC SQL, fortsat OptionBeskrivelse MAGIC=101SQL vælger Nested Join-algoritme MAGIC=102Sort-Merge-algoritme MAGIC=103Hash Join-algoritme

26 Copyright © 2014, SAS Institute Inc. All rights reserved. JOIN med PROC SQL, eksempel  MAGIC=101

27 Copyright © 2014, SAS Institute Inc. All rights reserved. JOIN med PROC SQL, eksempel  Det er muligt, at SAS ”kommenterer” på brugerens algoritmevalg …  ”Jeg ville have valgt et merge join, men ændrer det nu til et hash join”

28 Copyright © 2014, SAS Institute Inc. All rights reserved.  Ofte kan det være svært at gennemskue, hvordan en PROC SQL-query udføres  PROC SQL indeholder mulighed for at debugge den eksekverede query gennem to optioner: _METHOD beskriver hierarkiet i processeringen af query’en _TREE illustrerer afviklingen af query’en gennem en træstruktur af sammenhænge DEBUG i PROC SQL

29 Copyright © 2014, SAS Institute Inc. All rights reserved.  _METHOD DEBUG i PROC SQL, eksempler _METHOD-forkortelser Name codeDescription SqxCRTACreate table as select SqxSLCTSelect SqxJSLStep loop join (Cartesian) SqxJMMerge Join SqxINDXIndex Join SqxHASHHash Join SqxSORTSort SqxSRCSource rows from table SqxFILFilter rows SqxSUMGSummary stats with group by SqxSUMMSummary stats with NO group by

30 Copyright © 2014, SAS Institute Inc. All rights reserved.  _TREE DEBUG i PROC SQL, eksempler Note: Hjælp til læsning og fortolkning af træstrukturen findes i referencematerialet (næste slide)

31 Copyright © 2014, SAS Institute Inc. All rights reserved.  Man kan naturligvis kombinere optionerne MAGIC-eksemplet igen …

32 Copyright © 2014, SAS Institute Inc. All rights reserved.  For mere info om PROC SQL-join, debugging etc. The SQL Optimizer Project: _Method and _Tree http://www2.sas.com/proceedings/sugi30/101-30.pdf http://www2.sas.com/proceedings/sugi30/101-30.pdf SQL Joins -- The Long and The Short of It http://support.sas.com/techsup/technote/ts553.html http://support.sas.com/techsup/technote/ts553.html  Spørgsmål? Mere info?

33 Copyright © 2014, SAS Institute Inc. All rights reserved. make connections share ideas be inspired Tak Håber vi ses igen næste år!


Download ppt "Copyright © 2014, SAS Institute Inc. All rights reserved. make connections share ideas be inspired Skjulte SQL-features Jakob Juul Bak Chefkonsulent, SAS."

Lignende præsentationer


Annoncer fra Google