ACE Case

10
ACE Case Oracle 11g Release 2 voor ontwikkelaars Rob van Wijk 17 november 2009

description

ACE Case. 17 november 2009. Oracle 11g Release 2 voor ontwikkelaars. Rob van Wijk. Oracle 11g Release 2 voor ontwikkelaars. Wie ben ik. Rob van Wijk Oracle ontwikkelaar sinds 1995 Werkzaam bij CIBER sinds 2003. 15 juli 2014. Oracle 11g Release 2 voor ontwikkelaars. - PowerPoint PPT Presentation

Transcript of ACE Case

Page 1: ACE Case

ACE CaseOracle 11g Release 2 voor ontwikkelaars Rob van Wijk

17 november 2009

Page 2: ACE Case

Oracle 11g Release 2 voor ontwikkelaarsWie ben ik

April 22, 2023

Rob van WijkOracle ontwikkelaar sinds 1995Werkzaam bij CIBER sinds 2003

Page 3: ACE Case

Oracle 11g Release 2 voor ontwikkelaars

• recursieve WITH-clausule• dbms_parallel_execute package• /*+ APPEND_VALUES */• Flashback Data Archives voor journalisering

P A U Z E

• Analytische functies• Drie semantische hints• Edities

Onderwerpen

April 22, 2023

Page 4: ACE Case

Oracle 11g Release 2 voor ontwikkelaars

• “Recursive subquery factoring”• Hierarchische queries• ANSI• Duidelijker, maar …• Lusdetectie “anders”• Nog niet geoptimaliseerd zoals CONNECT BY• Berekeningen met waarden uit voorgaande

iteratieniveaus mogelijk

Recursieve WITH-clausule

April 22, 2023

recursieve_with.sql

Page 5: ACE Case

Oracle 11g Release 2 voor ontwikkelaars

• Parallelliseren van PL/SQL (DIY parallellism)• Taak: dba_parallel_execute_tasks• Verdeel werkvoorraad in porties:

dba_parallel_execute_chunks• Chunks per ROWID, SQL of per numerieke kolom• Onderhuids: dbms_scheduler

dbms_parallel_execute package

April 22, 2023

dbms_parallel_execute.sql

Page 6: ACE Case

Oracle 11g Release 2 voor ontwikkelaars

• Toevoegen aan het einde van de tabel• INSERT /*+ APPEND */ INTO … SELECT …• INSERT /*+ APPEND_VALUES */ INTO … VALUES• Herstel van “aparte” gedrag in 11g Release 1• FORALL

/*+ APPEND_VALUES */

April 22, 2023

append_values.sql

Page 7: ACE Case

Oracle 11g Release 2 voor ontwikkelaars

• Oeps!• … from <table> AS OF TIMESTAMP/SCN …• “Total recall” in Oracle 11g Release 1• Journalisering: wie deed wanneer, wat en met welke

data• JN_USER, JN_TIMESTAMP, JN_OPERATION, …• Flashback Version Query• Nog steeds niet geschikt, maar zal niet lang meer

duren nu.

Flashback data archives voor journalisering

April 22, 2023

fda3.sql

Page 8: ACE Case

Oracle 11g Release 2 voor ontwikkelaars

• LISTAGG• Nummer 1 forumvraag: stringaggregatie• Ook (en met name) als aggregatiefunctie

• NTH_VALUE• Algemenisering van FIRST_VALUE en LAST_VALUE

• LAG en LEAD met IGNORE NULLS

Analytische functies

April 22, 2023

listagg.sql

nth_value.sql

laglead.sql

Page 9: ACE Case

Oracle 11g Release 2 voor ontwikkelaars

• Zelfde syntax als optimizer hints• Beïnvloed uitkomst van DML• IGNORE_ROW_ON_DUPKEY_INDEX• CHANGE_DUPKEY_ERROR_INDEX• RETRY_ON_ROW_CHANGE• Nut van laatste hint?

Drie semantische hints

April 22, 2023

change.sql

retry.sql

ignore.sql

Page 10: ACE Case

Oracle 11g Release 2 voor ontwikkelaars

• Eerst “Online Application Upgrade”• Daarna “Edition Based Redefinition”

Edities

April 22, 2023

ebr1.sql

ebr2.sql

ebr3.sql