ACE Case
description
Transcript of ACE Case
ACE CaseOracle 11g Release 2 voor ontwikkelaars Rob van Wijk
17 november 2009
Oracle 11g Release 2 voor ontwikkelaarsWie ben ik
April 22, 2023
Rob van WijkOracle ontwikkelaar sinds 1995Werkzaam bij CIBER sinds 2003
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
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
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
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
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
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
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
Oracle 11g Release 2 voor ontwikkelaars
• Eerst “Online Application Upgrade”• Daarna “Edition Based Redefinition”
Edities
April 22, 2023
ebr1.sql
ebr2.sql
ebr3.sql