Meet the Masters 2019

Tijdens Meet the masters, een door Qualogy georganiseerd Oracle congres, 30 oktober jl. ontbrak het niet aan bekende namen. Chris Saxon, één van de mensen achter asktom.oracle.com, was aanwezig met een presentatie over indexen en full table scans en een presentatie over pattern matching. Steven Feuerstein was voor twee presentaties middels een videoverbinding aanwezig, één over performance (BULK en FORALL) en één over error management. Patrick Barel, Oracle Ace Director, net terug van een tournee door Azië, zou het programma aftrappen met een selectie SQL-features. Alex Nuijten, ook Oracle Ace Director, verdedigde als laatste programma-onderdeel de ANSI syntax in een duel met Chris Saxon die opkwam voor de Oracle klassieke syntax.
Patrick Barel
Zoals gezegd bijt Patrick Barel het spits af. Geroutineerd bespreekt Patrick een aantal features van Oracle. Met flashback queries (as of timestamp) kun je terug in de tijd een eerdere versie van data ophalen. Met temporal validity kun je een houdbaarheidsdatum aan je records mee geven (valid from, valid till). Met het aanmaken van een policy in een schema kun je een Virtual Private Database creëren, waarbij je in de policy aangeeft hoe een bepaalde gebruiker bepaald soort gegevens te zien krijgt (bijvoorbeeld een creditcard nummer versleuteld). Patrick benoemt het voordeel van query result cache en het trefwoord deterministic. Natuurlijk de top-3 feature: fetch first 3 rows only. Al gebruikt, de with function? Ik ben het nog niet tegen gekomen, maar dat zegt vast meer over mij. Dat geldt ook voor virtual en invisible columns.
Chris Saxon
Na een kop koffie vervolgde Chris Saxon het programma. De avond voorafgaand heeft hij zich vast van zijn huiswerk gekweten, want hij had een aantal lege zakjes m&m’s bij zich als illustratie-materiaal om “Why isn’t my Query using an index?” te bespreken. Hoe ga je te werk als je alle rode m&m’s wilt vinden. Hoe ga je te werk als er maar één zilveren m&m in tien zakjes zit die je wilt vinden? Dat vond ik best een lastig verhaal. Het gaat over costs, over cost based optimizer die ook maar estimations doet. Die een plan maakt, maar dat soms ten onrechte gebruikt. Dat het afhangt van hoevéél rijen je verwacht als resultaat. Het motto: tunen, explain plan bestuderen, costs bekijken en dit herhalen tot je tevreden bent. En dan nog. Haast tegen beter weten in liet Chris (“I would allways recommend relational database”) een aantal json functions zien.
Steven Feuerstein
Aansluitend was een videoverbinding tot stand gebracht met Amerika waar Steven Feuerstein (grijze baard!) erg vroeg was opgestaan om een presentatie te verzorgen over performance. Natuurlijk stipte hij eerst de context-switches aan als reden om vooral over te stappen op BULK COLLECT operations.
Hierna besprak hij result cache en dan m.n. onverwachte resultaten die je hierbij kunt krijgen en dat je deze kunt vermijden door bepaalde gegevens als timezone, user of role als parameter op te nemen in de result cache function.
De lunch was goed verzorgd, de herfstzon scheen uitbundig en de wandeling voerde over een 400-meter hardloopbaan. Dat sloot mooi aan bij de presentatie van Chris, die hardlopen als voorbeeld gebruikte om te laten zien hoe je met pattern matching opeenvolgende rijen kunt ophalen, net als met de Tabibitosan methode. Recommended reading: Complete Guide to SQL Pattern Matching – Volume 1, van Keith Laker.
Inmiddels had Steven ontbeten en onderhield hij ons over exceptions en het gebruik van save_exceptions bij FORALL statements. Bezoek vooral livesql.oracle.com voor voorbeelden.
Alex Nuijten & Chris Saxon
Als afsluiting van de dag kregen we een speels duel tussen Alex Nuijten en Chris Saxon: Chris verdedigde de klassieke Oracle syntax en Alex de ANSI syntax. Zoals te verwachten was, kwam hier niet echt een winnaar uit, al was de publiekswinnaar duidelijk ANSI. Het blijft een kwestie van smaak, toepassing en standaarden. Onder de motorkap vertaalt Oracle ANSI overigens gewoon terug naar klassieke syntax.
Kortom, een volle dag, altijd leuk, een ontspannen dag tussen vak(idi/gen)-oten, maar wie zat te wachten op nieuwe features van Oracle kwam bedrogen uit.
Interessante links
www.youtube.com/c/TheMagicofSQL
community.oracle.com/community/database/developer-tools/sql_and_pl_sql