Upgrade Albtraum. Lothar Flatz Senior Principal Consultant Dr. Markus Eberling Managing Consultant. Diso AG Der Schweizer Daten- und Cloud-Experte

Größe: px
Ab Seite anzeigen:

Download "Upgrade Albtraum. Lothar Flatz Senior Principal Consultant Dr. Markus Eberling Managing Consultant. Diso AG Der Schweizer Daten- und Cloud-Experte"

Transkript

1 Upgrade Albtraum Lothar Flatz Senior Principal Consultant Dr. Markus Eberling Managing Consultant

2 Ich stelle mich vor... Wer bin ich?» Über 25 Jahre Oracle Database Erfahrung (beginnend mit Version 5)» 15 Jahre Oracle Mitarbeiter» Oak Table Mitglied» Ex-Real World Performance Group» Oracle ACE» Signatur Project: PVSS (CERN)» Patent US B2 zusammen mit Björn Engsig 2

3 Über die Diso AG» Gründung 1996, 36 Mitarbeiter» Sitz in Gümligen (Bern), Schweiz» Portfolio: Cloud-Computing Entwicklung IT-Beratung Managed Services Projektumsetzung Systemoptimierung 3

4 Der Vorstellung Dr. Markus Eberling Studium der Information von in Paderborn Wissenschaftlicher Mitarbeiter an der Uni Paderborn von im Fachbereich Wissensbasierte System Promotion in 2011 Seit 10/2011 Mitarbeiter der S&N AG; Managing Consultant und Head of Software Design & Engineering der Region West Copyright 2015 S&N Invent GmbH All rights reserved. 4

5 Der S&N Invent GmbH 2014 Gründung der S&N Invent als Joint Venture und Shared Service Gesellschaft der S&N AG und der A:gon Solutions GmbH. 350 Mitarbeiterinnen und Mitarbeiter, davon 230 fest angestellt und zusätzlich ca. 120 externe Consultants. 38 Millionen Euro Gesamtumsatz in 2015, davon ca. 70% in der Finanz- und Versicherungswirtschaft. 7 Standorte in Deutschland, damit sind wir stets kundennah und flexibel. 3 Strategische Säulen: Consulting, Lösungen, Services für die umfassende Betreuung im IT-Lifecycle Copyright 2015 S&N Invent GmbH All rights reserved. 5

6 Der Ausgangsposition: Zunahme von Laufzeiten Mit leichter zeitlicher Verzögerung sind die Laufzeiten dramatisch gestiegen Mehrere Batchprogramme betroffen Analysen wurden durchgeführt, ohne nennenswerte Informationen an den Tag zu bringen Copyright 2015 S&N Invent GmbH All rights reserved. 6

7 Der Ausgangsposition: Zunahme von Laufzeiten Copyright 2015 S&N Invent GmbH All rights reserved. 7

8 Der Missionsziel Finde die Ursache der Laufzeit Verschlechterung und beseitige diese Copyright 2015 S&N Invent GmbH All rights reserved. 8

9 Einsatz Übersicht» Der Einsatz dauerte insgesamt 45 Arbeitstage» Er begann Mitte September 2016 und endete im Mai 2017» In der ersten Phase bis Anfang Dezember 2016 ging es vor allem darum, den Grund der Laufzeitverschlechterung zu finden» Dies war besonders wichtig, weil der Monatslauf November (im Gegensatz zu den Monaten vorher) Mitten in der Woche stattfand» Diese Präsentation berichtet von der ersten Phase 9

10 Interpretation AWR - Top Statements» Zum Glück gab es die Baselines der Monatsend batches noch» Mittels Abfragen auf die DBA Hist Tabellen konnten die Läufe vor und nach dem Upgrade verglichen werden» Der letzte Lauf vor dem Upgrade war das Monatsende April» Es wurde ein batch herausgegriffen, der sich besonders signifikant verändert hatte 11

11 Vergleich Logical Reads per Second Monatsende Monatsende Hour April Oktober , , , , , , , , , , , , ,79 Total , ,68 Buffergets: der Aktivitätsmassstab , , , , ,00 0, Monthend October Monthend April 13

12 Vergleich auf Statement Ebene Monthend April Monthend October Elapsed Sec Cpu Sec IO Wait Sec Calls Buffer gets Rows Processed Elapsed Sec Cpu Sec IO Wait Sec Calls Buffer gets Rows Processed aa1wwcxa13qc aa1wwcxa13qc bvcyz9w9cvavn bvcyz9w9cvavn chkm477ptzq1p chkm477ptzq1p da3vznaf3w3hd d7hwd0qqgp38a d7hwd0qqgp38a d9c3jx56j3hmy d9c3jx56j3hmy fdwv58w0yk8yh fdwv58w0yk8yh gmmbma98kx70n gmmbma98kx70n g3s17jqd9an2b g3s17jqd9an2b aamr6fwhnnxa aamr6fwhnnxa ra4u4ak1uc jfrynu4mp6x jfrynu4mp6x ua1yfy7tutg ua1yfy7tutg d4mh2rktwpk d4mh2rktwpk cdrmkf6up03v cdrmkf6up03v c888t8cgqy c888t8cgqy j9b2js4fzh j9b2js4fzh h874urqj2mff jza15j jza15j xf7q750j4st xf7q750j4st vj504f580c vj504f580c vy4k5t73a x330rjpw6wf Total Seconds Total Hours 1,36 0,78 0,58 2,03 0,73 1,29 15

13 Vergleich auf Statement Ebene» Wir sehen eindeutig eine Verschlechterung der Pläne mit Version 12» Die Laufzeiten der Top Statements addieren sich aber nicht annähernd auf die Gesamtlaufzeit des Batches -> In diesem Bild fehlt etwas» Um auch das feinste Detail zu untersuchen haben wir auf der Abnahmeumgebung einen Lauf getraced 16

14 Auswertung des Traces auf der Abnahme Overall runtime: select toid from type$ where package_obj#=:1 order by typ_name ; select count(*) from type$ where package_obj#=:1 8388,28 Seconds 4861,87 Seconds 2044,58 Seconds» Die Laufzeit dominiert von rekursiven Statements» Der Lauf war schnell, nicht unbedingt repräsentativ» dennoch: die rekursiven Statements müssen jetzt angegangen werden 17

15 Woher kommen die rekursiven Statements? rekursiv, aber es fehlt der Parentcursor 18

16 Event V8 Bundled Exec Call» Dank an Stefan Köhler, für den Hinweis es mit Event zu versuchen» Jetzt wird der Parent cursor sichtbar» Die Antwort: Es war gar kein SQL oder PL/SQL 19

17 V8 Bundled Exec Call in ASH» Oracle Program Interface (OPI) calls.» for each OCI call in the client side (like, OCIStmtExecute, OCIStmtFetch, etc) there s a corresponding server side OPI function (like opiexe(), opifch2() etc). 20

18 Erzeugt vom Framework» Anscheinend werden die Aufrufe über das Framework Rouge Wave erzeugt, welches OCI describe aufruft» Mit Version 12c werden bei describe auch die genannten rekursiven Statements erzeugt 21

19 Zwei Statements SQL_ID 7avz6006nq0yj SELECT toid FROM type$ WHERE package_obj#=:1 ORDER BY typ_name ; SQL_ID 9zstv91ddy78q SELECT COUNT(*) FROM type$ WHERE package_obj#=:1;» Index Skip Scan (trotz unique Spalte am Anfang), 2/3 der Zeit» Full Index scan, 1/3 der Zeit Kein passender Index INDEX "sys"."i_type6" ON "sys"."type$ ("toid","version#", "package_obj#" ); 22

20 Bestehender Bug» Der Kunde fragte den richtigen Index nach» Oracle Support s Vorschlag: Erweiterung des bestehenden Indexes um eine Spalte vor» Tests ergaben, dass es danach schneller lief (??)» Development übernahm den Vorschlag von Support ohne Überprüfung an (as you already tested it) 23

21 Kontakt mit Oracle Support» Anhand des Testcases konnte die Situation endlich geklärt werden» Ein Testcase kann die Kommunikation schon sehr vereinfachen und bringt eine neue Qualität» Hardnäckigkeit hilft» Eskalation nicht scheuen» Support entgegen kommen (Arbeitsüberlastung, Zeitdruck, Leistungsziele) -> Dank an Mike Dietrich» Für mich eine positive Überraschung 24

22 Der Ausgangsposition: Weiteres Problem Neben der Laufzeitzunahme war der temp-tablespace nicht mehr ausreichend Batchprozesse brachen ab Copyright 2015 S&N Invent GmbH All rights reserved. 25

23 Der Problem mit temp-tablespace Copyright 2015 S&N Invent GmbH All rights reserved. 26

24 Der Analyse SQL-Monitor Copyright 2015 S&N Invent GmbH All rights reserved. 27

25 Der Erster Versuch der Problemlösung Anhand des ausgeführten Statements wurde auf die Filterund Zugriffsprädikate geschaut. Auffällig: RAWTOHEX(NLSSORT("TAB_A_C1" TO_CHAR("TAB_A_C2"),'nls_sort=''GERMAN'''))>= :B3 AND RAWTOHEX(NLSSORT("TAB_A_C1" TO_CHAR("TAB_A_C2"),'nls_sort=''GERMAN'''))<= :B Copyright 2015 S&N Invent GmbH All rights reserved. 28

26 Der Mögliche Lösungen Virtuelle Spalte Belegt keinen Speicherplatz; Berechnung zur Laufzeit Spalte ist grundsätzlich im Dictionary vorhanden und setzt saubere Programmierung voraus Hidden column (Function-based Index ) Hidden column belegt Speicherplatz Spalte muss explizit benannt werden in Selektionen Expression Statistik Statement umschreiben Ggfs. nicht möglich bei Fremdsoftware Durchlaufzeit der Umsetzung zu lange Copyright 2015 S&N Invent GmbH All rights reserved. 29

27 Der Entscheidung: virtuelle Spalte alter table TABLE_A add ( V_COL_A generated always as (RAWTOHEX(NLSSORT("TAB_A_C1" TO_CHAR("TAB_A_C2"), 'NLS_SORT = GERMAN' )) ) virtual ); Copyright 2015 S&N Invent GmbH All rights reserved. 30

28 Der Schätzung kritischer Zugriff Schritt 1 select count(*) from TABLE_A A where ((:B5 IS NULL OR "A"."TAB_A_C3"=:B5) AND "A"."TAB_A_C4" ' '='OK ' AND "A"."TAB_A_C5"=:B6 AND RAWTOHEX(NLSSORT("TAB_A_C1" TO_CHAR("TAB_A_C2"),'nls_sort=''GERMAN'''))>=:B3 AND RAWTOHEX(NLSSORT("TAB_A_C1" TO_CHAR("TAB_A_C2"),'nls_sort=''GERMAN'''))<=:B2) / Id Operation Name Starts E-Rows A-Rows A-Time Buffers SELECT STATEMENT :00: SORT AGGREGATE :00: * 2 FILTER 1 247K 00:00: * 3 TABLE ACCESS FULL TABLE_A K 00:00: Predicate Information (identified by operation id): filter(:b2>=:b3) 3 - filter(((:b5 IS NULL OR "A"."TAB_A_C3"=:B5) AND "A"."TAB_A_C4" ' '='OK ' AND "A"."TAB_A_C5"=:B6 AND RAWTOHEX(NLSSORT("TAB_A_C1" TO_CHAR("TAB_A_C2"),'nls _sort=''german'''))>=:b3 AND RAWTOHEX(NLSSORT("TAB_A_C1" TO_CHAR("TAB_A_C2"), 'nls_sort=''german'''))<=:b2)) Copyright 2015 S&N Invent GmbH All rights reserved. 31

29 Der Alter Null-Transformation Trick select count(*) from TABLE_A A where ((:B5 IS NULL OR "A"."TAB_A_C3"=:B5) AND "A"."TAB_A_C4" ' '='OK ' AND "A"."TAB_A_C5"=:B6 AND RAWTOHEX(NLSSORT("TAB_A_C1" TO_CHAR("TAB_A_C2"),'nls_sort=''GERMAN'''))>=:B3 AND RAWTOHEX(NLSSORT("TAB_A_C1" TO_CHAR("TAB_A_C2"),'nls_sort=''GERMAN'''))<=:B2) Sollte vermieden und umgeschrieben werden: select count(*) from TABLE_A A where ((:B5 IS NULL OR "A"."TAB_A_C3"=:B5) AND "A"."TAB_A_C4"='OK' AND "A"."TAB_A_C5"=:B6 AND RAWTOHEX(NLSSORT("TAB_A_C1" TO_CHAR("TAB_A_C2"),'nls_sort=''GERMAN'''))>=:B3 AND RAWTOHEX(NLSSORT("TAB_A_C1" TO_CHAR("TAB_A_C2"),'nls_sort=''GERMAN'''))<=:B2) Copyright 2015 S&N Invent GmbH All rights reserved. 32

30 Der Schätzung kritischer Zugriff Schritt 2 select count(*) from TABLE_A where ((:B5 IS NULL OR "A"."TAB_A_C3"=:B5) AND "A"."TAB_A_C4"='OK' AND "A"."TAB_A_C5"=:B6 AND RAWTOHEX(NLSSORT("TAB_A_C1" TO_CHAR("TAB_A_C2"),'nls_sort=''GERMAN'''))>=:B3 AND RAWTOHEX(NLSSORT("TAB_A_C1" TO_CHAR("TAB_A_C2"),'nls_sort=''GERMAN'''))<=:B2) / Id Operation Name Starts E-Rows A-Rows A-Time Buffers SELECT STATEMENT :00: SORT AGGREGATE :00: * 2 FILTER 1 247K 00:00: * 3 TABLE ACCESS FULL TABLE_A K 00:00: Predicate Information (identified by operation id): filter(:b2>=:b3) 3 - filter(((:b5 IS NULL OR "A"."TAB_A_C3"=:B5) AND "A"."TAB_A_C4"='OK' AND "A"."TAB_A_C5"=:B6 AND RAWTOHEX(NLSSORT("TAB_A_C1" TO_CHAR("TAB_A_C2"),'nls_sort= ''GERMAN'''))>=:B3 AND RAWTOHEX(NLSSORT("TAB_A_C1" TO_CHAR("TAB_A_C2"),'nls_sort Copyright 2015 S&N Invent GmbH All rights reserved. 33

31 Der Mutter aller SQL-Antipatterns select count(*) from TABLE_A A where ((:B5 IS NULL OR "A"."TAB_A_C3"=:B5) AND "A"."TAB_A_C4"='OK' AND "A"."TAB_A_C5"=:B6 AND RAWTOHEX(NLSSORT("TAB_A_C1" TO_CHAR("TAB_A_C2"),'nls_sort=''GERMAN'''))>=:B3 AND RAWTOHEX(NLSSORT("TAB_A_C1" TO_CHAR("TAB_A_C2"),'nls_sort=''GERMAN'''))<=:B2) Im vorliegenden Fall ist :B5 immer null Kondition entfernen Copyright 2015 S&N Invent GmbH All rights reserved. 34

32 Der Mutter aller SQL-Antipatterns Man versucht ein Problem zu lösen durch einen Trick und macht es noch schlimmer Typische Formen: (:B5 IS NULL OR "A"."TAB_A_C3"=:B5) "A"."TAB_A_C3" = nvl(:b5, "A"."TAB_A_C3") Ausführungsplan zerfällt in zwei Teile und macht es dem Optimizer schwer eine korrekte Schätzung zu liefern Ausführungszeit verlängert sich dramatisch Beide Formen sollten vermieden werden und durch konditionale Programmierung ersetzt werden Weitere Informationen finden sich in einem Artikel von Iggy Fernandez: Copyright 2015 S&N Invent GmbH All rights reserved. 35

33 Der Schätzung kritischer Zugriff Schritt 3 select count(*) from TABLE_A A where ( "A"."TAB_A_C4"='OK' AND "A"."TAB_A_C5"=:B6 AND RAWTOHEX(NLSSORT("TAB_A_C1" TO_CHAR("TAB_A_C2"),'nls_sort=''GERMAN'''))>=:B3 AND RAWTOHEX(NLSSORT("TAB_A_C1" TO_CHAR("TAB_A_C2"),'nls_sort=''GERMAN'''))<=:B2) / Id Operation Name Starts E-Rows A-Rows A-Time Buffers SELECT STATEMENT :00: SORT AGGREGATE :00: * 2 FILTER 1 247K 00:00: * 3 TABLE ACCESS FULL TABLE_A 1 247K 247K 00:00: Predicate Information (identified by operation id): filter(:b2>=:b3) 3 - filter(("a"."tab_a_c4"='ok' AND "A"."TAB_A_C5"=:B6 AND RAWTOHEX(NLSSORT("TAB_A_C1" TO_CHAR("TAB_A_C2"),'nls_sort=''GERMAN'''))>=:B3 AND RAWTOHEX(NLSSORT("TAB_A_C1" TO_CHAR("TAB_A_C2"),'nls_sort=''GERMAN'''))<=:B2 )) Copyright 2015 S&N Invent GmbH All rights reserved. 36

34 Der Aber: es ist immer noch etwas im Argen Id Operation Name Starts E-Rows A-Rows A-Time Buffers Reads SELECT STATEMENT :09: M SORT ORDER BY :09: M UNION-ALL 1 182K 00:09: M * 3 FILTER :00: K NESTED LOOPS OUTER :00: K * 5 HASH JOIN OUTER :00: K * 6 HASH JOIN :00: K NESTED LOOPS :01: K NESTED LOOPS M 00:01: K * 9 HASH JOIN K 00:01: K MERGE JOIN K 00:01: K * 11 TABLE ACCESS BY INDEX ROWID TABLE_B K 00:01: K * 12 INDEX FULL SCAN IX_TABLE_B_ K 00:00: K 2093 * 13 SORT JOIN 289K K 00:00: VIEW index$_join$_ :00: * 15 HASH JOIN :00: INDEX FAST FULL SCAN IX_TABLE_C_ :00: INDEX FAST FULL SCAN IX_TABLE_C_ :00: * 18 TABLE ACCESS FULL TABLE_A 1 247K 247K 00:00: * 19 INDEX RANGE SCAN IX_TABLE_D 289K 1 10M 00:00: K 0 * 20 TABLE ACCESS BY INDEX ROWID TABLE_D 10M :00: K 0 21 TABLE ACCESS FULL TABLE_F 1 981K 981K 00:00: TABLE ACCESS FULL TABLE_G 1 222K 222K 00:00: TABLE ACCESS BY INDEX ROWID TABLE_E :00: K 1881 * 24 INDEX UNIQUE SCAN IX_TABLE_E :00: K Copyright 2015 S&N Invent GmbH All rights reserved. 37

35 Der AND F_USED_IN_STATEMENT(B.TAB_B_C4, 'Crit') = 0 Funktion in der where-clause Copyright 2015 S&N Invent GmbH All rights reserved. 38

36 Der Funktion in der where-clause FUNCTION F_USED_IN_STATEMENT( ninput1 IN TABLE_H.TAB_H_C1%TYPE, sinput2 IN TABLE_H.TAB_H_C2%TYPE ) RETURN NUMBER IS BEGIN DECLARE nok NUMBER; BEGIN SELECT COUNT(*) INTO nok FROM TABLE_H WHERE TAB_H_C1 = ninput1 AND TAB_H_C2 = sinput2; IF nok > 1 THEN nok := 1; END IF; RETURN nok; END; END F_USED_IN_STATEMENT; Copyright 2015 S&N Invent GmbH All rights reserved. 39

37 Der Funktion durch SQL ersetzen AND NOT EXISTS ( SELECT 1 FROM TABLE_H WHERE TAB_H_C1 = B.TAB_B_C4 AND TAB_H_C2 = 'Crit' ) Copyright 2015 S&N Invent GmbH All rights reserved. 40

38 Der Finaler Ausführungsplan Id Operation Name Starts E-Rows A-Rows A-Time Buffers Reads SELECT STATEMENT :06: M SORT ORDER BY :06: M UNION-ALL 1 182K 00:06: M 4820 * 3 FILTER :00: K NESTED LOOPS OUTER :00: K 4820 * 5 HASH JOIN OUTER :00: K 4820 * 6 HASH JOIN :00: K NESTED LOOPS :00: K NESTED LOOPS M 00:00: K 4820 * 9 HASH JOIN K 00:00: * 10 HASH JOIN RIGHT ANTI K 00:00: * 11 INDEX SKIP SCAN IX_TABLE_H :00: * 12 HASH JOIN 1 413K 448K 00:00: VIEW index$_join$_ :00: * 14 HASH JOIN :00: INDEX FAST FULL SCAN IX_TABLE_C_ :00: INDEX FAST FULL SCAN IX_TABLE_C_ :00: * 17 TABLE ACCESS FULL TABLE_B 1 472K 448K 00:00: * 18 TABLE ACCESS FULL TABLE_A 1 247K 247K 00:00: * 19 INDEX RANGE SCAN IX1_TABLE_D 289K 1 10M 00:00: K 0 * 20 TABLE ACCESS BY INDEX ROWID TABLE_D 10M :00: K 0 21 TABLE ACCESS FULL TABLE_F 1 981K 981K 00:00: TABLE ACCESS FULL TABLE_G 1 222K 222K 00:00: TABLE ACCESS BY INDEX ROWID TABLE_E :00: K 0 * 24 INDEX UNIQUE SCAN IX_TABLE_E :00: K Copyright 2015 S&N Invent GmbH All rights reserved. 41

39 Zwischenfazit» Es muss eine Planänderung gegeben haben» Warum sieht man dann kein einzelnes Statement, dass sehr viel langsamer geworden ist?» Wenn kurz laufende Statements langsamer geworden sind, müssen es viele gewesen sein» Warum verändern viele kurz laufende Statements gleichzeitig den Execution Plan? 42

40 Überblick Laufzeit Testen mit Trace bis Wir haben Glück, es kommen zwei ungleich schnelle Läufe: Lauf Start: 09:51:21 End : 12:11:20 Laufzeit : 2:18 Datenbankzeit: 5060 seconds = 1:14 Lauf Start: 10:57:00 End : 17:02:16 Laufzeit: 6:05 Datenbankzeit : seconds = 5:12 Differenz 3:58 Minuten, warum? 43

41 Wo ist der Unterschied? Zwei Hilfstabellen, für den und für den Beide traces in die Datenbank importieren Vergleichen und nach Differenz sortieren SELECT T2511.EXE_QUERY, T2311.EXE_QUERY, T2511.EXE_QUERY- T2311.EXE_QUERY difference, T2511.SQL_TEXT FROM TKPROF_TABLE_2511 T2511, TKPROF_TABLE_2311 T2311 WHERE T2511.SQL_TEXT=T2311.SQL_TEXT ORDER BY difference DESC; 45

42 Unterschiede EXE_QUERY EXE_QUERY_1 DIFFERENCE SQL_TEXT SELECT TB2.TB2TAUXCALC FROM TABLE2 TB2 WHERE TB2.ID = :B1 AND TB2.TB2COL1 = (SELECT MAX(TB2COL1) FROM TABLE2 WHERE ID = :B1 AND TB3ID IN (SELECT TB3.TB3ID FROM TABLE3 TB3, TABLE4 TB4 WHERE TB3.TB3CODE = TB4.TB4CODE AND TB4.TUSNOM = 'GROUPE')) SELECT TO_DATE(SUBSTR(TB1COL,INSTR(TB1COL,'- b')+2,8),'yyyymmdd') FROM TABLE1 WHERE TB1ID = (SELECT MIN(TB1ID) FROM TABLE5 WHERE ID = ) SELECT TO_DATE(SUBSTR(TB1COL,INSTR(TB1COL,'- b')+2,8),'yyyymmdd') FROM TABLE1 WHERE TB1ID = (SELECT MIN(TB1ID) FROM TABLE5 WHERE ID = ) SELECT TO_DATE(SUBSTR(TB1COL,INSTR(TB1COL,'- b')+2,8),'yyyymmdd') FROM TABLE1 WHERE TB1ID = (SELECT MIN(TB1ID) FROM TABLE5 WHERE ID = )

43 Statement 1 SELECT TB2.TB2TAUXCALC FROM TABLE2 TB2 WHERE TB2.ID = :B1 AND TB2.TB2COL1 = (SELECT MAX(TB3COL1) FROM TABLE3 WHERE ID = :B1 AND TB4ID IN (SELECT TB4.TB4ID FROM TABLE4 TB4, TABLE5 TB5 WHERE TB4.TB4CODE = TB5.TB5CODE AND TB5.TB5COL2 = 'GROUPE')) call count cpu elapsed disk query current rows Parse Execute Fetch total Kann man tunen, bringt maximal 30 Sekunden -> vergessen wir s 47

44 Statement 2 SELECT TO_DATE(SUBSTR(TB1COL, INSTR(TB1COL,'-b')+2,8),'YYYYMMDD') FROM Table1 WHERE TB1ID = (SELECT MIN(TB1ID) FROM Table5 WHERE ID = ) Potentiel viele Statements Unterschiedliche Sql Id durch Literal 48

45 Laufzeit? SELECT TO_CHAR(A1.FORCE_MATCHING_SIGNATURE), COUNT(a1.sample_time) * 10 AS sec FROM dba_hist_active_sess_history a1 WHERE a1.sample_time BETWEEN to_date('11/25/16 10:57:00','MM.DD.YY HH24:MI:SS') AND to_date('11/25/16 17:02:16','MM.DD.YY HH24:MI:SS') AND program LIKE 'batchxxx%' AND sql_id is not null GROUP BY A1.FORCE_MATCHING_SIGNATURE ORDER BY sec DESC; TO_CHAR(A1.FORCE_MATCHING_SIGNATURE) SEC FORCE_MATCHING_SIGNATURE = cursor_sharing simuliert Sekunden sind 3 Stunden 51 Minuten Q.E.D. 49

46 Gegenprobe SQL> select sql_text from v$sql where FORCE_MATCHING_SIGNATURE= ; SQL_TEXT SELECT TO_DATE(SUBSTR(TB1COL,INSTR(TB1COL,'-b')+2,8),'YYYYMMDD') FROM Table1 WHERE TB1ID = (SELECT MIN(TB1ID) FROM Table5 WHERE ID = ) SELECT TO_DATE(SUBSTR(TB1COL,INSTR(TB1COL,'-b')+2,8),'YYYYMMDD') FROM Table1 WHERE TB1ID = (SELECT MIN(TB1ID) FROM Table5 WHERE ID = ) SELECT TO_DATE(SUBSTR(TB1COL,INSTR(TB1COL,'-b')+2,8),'YYYYMMDD') FROM Table1 WHERE TB1ID = (SELECT MIN(TB1ID) FROM Table5 WHERE ID = ) SELECT TO_DATE(SUBSTR(TB1COL,INSTR(TB1COL,'-b')+2,8),'YYYYMMDD') FROM Table1 WHERE TB1ID = (SELECT MIN(TB1ID) FROM Table5 WHERE ID = ) SELECT TO_DATE(SUBSTR(TB1COL,INSTR(TB1COL,'-b')+2,8),'YYYYMMDD') FROM Table1 WHERE TB1ID = (SELECT MIN(TB1ID) FROM Table5 WHERE ID = ) SELECT TO_DATE(SUBSTR(TB1COL,INSTR(TB1COL,'-b')+2,8),'YYYYMMDD') FROM Table1 WHERE TB1ID = (SELECT MIN(TB1ID) FROM Table5 WHERE ID = ) SELECT TO_DATE(SUBSTR(TB1COL,INSTR(TB1COL,'-b')+2,8),'YYYYMMDD') FROM Table1 WHERE TB1ID = (SELECT MIN(TB1ID) FROM Table5 WHERE ID = ) SELECT TO_DATE(SUBSTR(TB1COL,INSTR(TB1COL,'-b')+2,8),'YYYYMMDD') FROM Table1 WHERE TB1ID = (SELECT MIN(TB1ID) FROM Table5 WHERE ID = ) SELECT TO_DATE(SUBSTR(TB1COL,INSTR(TB1COL,'-b')+2,8),'YYYYMMDD') FROM Table1 WHERE TB1ID = (SELECT MIN(TB1ID) FROM Table5 WHERE ID = ) SELECT TO_DATE(SUBSTR(TB1COL,INSTR(TB1COL,'-b')+2,8),'YYYYMMDD') FROM Table1 WHERE TB1ID = (SELECT MIN(TB1ID) FROM Table5 WHERE ID = ) 50

47 Planwechsel Guter Plan Id Operation Name Rows Bytes Cost (%CPU) Time SELECT STATEMENT 2 (100) 1 TABLE ACCESS BY INDEX ROWID Table (0) 00:00:01 * 2 INDEX UNIQUE SCAN PK_Table1 1 1 (0) 00:00:01 3 SORT AGGREGATE TABLE ACCESS BY INDEX ROWID BATCHED Table (0) 00:00:01 * 5 INDEX RANGE SCAN FK_Table (0) 00:00: Predicate Information (identified by operation id): access("tb1id"=) 5 - access("id"=262914) Schlechter Plan Id Operation Name Rows Bytes Cost (%CPU) Time SELECT STATEMENT 2 (100) 1 TABLE ACCESS BY INDEX ROWID Table (0) 00:00:01 * 2 INDEX UNIQUE SCAN PK_Table1 1 1 (0) 00:00:01 3 SORT AGGREGATE FIRST ROW (8) 00:00:01 * 5 INDEX FULL SCAN (MIN/MAX) PK_Table (8) 00:00: Predicate Information (identified by operation id): access("tb1id"=) 5 - filter("id"=262914) 51

48 Lösung Der beste Index wäre: INDEX FK_Table52 ON Table5 (ID, TB1ID) Das ergibt Id Operation Name Rows Bytes Cost (%CPU) Time SELECT STATEMENT 2 (100) 1 TABLE ACCESS BY INDEX ROWID Table (0) 00:00:01 * 2 INDEX UNIQUE SCAN PK_Table1 1 1 (0) 00:00:01 3 SORT AGGREGATE FIRST ROW (0) 00:00:01 * 5 INDEX RANGE SCAN (MIN/MAX) FK_Table (0) 00:00: Massgeschneiderter Index Index wird sofort automatisch verwendet Kosten sind gesunken -> Plan stabil 52

49 Ergebnis» Zwei Tage vor dem entscheidenden Monatslauf konnte das Hauptproblem beseitigt werden» Die Laufzeiten waren grosso modo wieder auf Version 11 Niveau 53

50 Der Deutliche Verbesserung der Laufzeiten Copyright 2015 S&N Invent GmbH All rights reserved. 54

51 Zusammenfassung Lassen Sie sich keine Märchen erzählen: Glauben Sie gemessene und überprüfbaren Fakten 55

52 Vielen Dank für Ihre Aufmerksamkeit! Für Rückfragen stehen wir Ihnen gerne zur Verfügung. Lothar Flatz Diso AG Morgenstrasse Gümligen Tel.: info@diso.ch 56

53 Kontakt Vielen Dank für Ihre Aufmerksamkeit! Dr. Markus Eberling Managing Consultant Head of Software Design and Engineering Telefon S&N Invent GmbH (zusätzlich Agon/S&N) Klingenderstraße Paderborn Copyright 2016 S&N Invent GmbH All rights reserved. 57

Dem Upgrade Albtraum auf den Grund gegangen

Dem Upgrade Albtraum auf den Grund gegangen Dem Upgrade Albtraum auf den Grund gegangen Lothar Flatz Senior Principal Consultant Dr. Markus Eberling Managing Consultant Ich stelle mich vor... Wer bin ich?» Über 25 Jahre Oracle Database Erfahrung

Mehr

Explain verstehen. Hans-Jürgen Schönig.

Explain verstehen. Hans-Jürgen Schönig. Explain verstehen Zielsetzung EXPLAIN... Was versucht uns PostgreSQL zu sagen? Wie kann diese Information genutzt werden? Wie erkenne ich Probleme? Abfragen in PostgreSQL Mehrstufige Ausführung Parser:

Mehr

SQL Optimizer und SQL Performance

SQL Optimizer und SQL Performance SQL Optimizer und SQL Performance Schlüsselworte SQL, Optimizer, Explain Plan, SQL Trace Marco Mischke Robotron Datenbank Software GmbH Dresden Einleitung Dieser Vortrag beschäftigt sich mit grundlegenden

Mehr

Manuelles Oracle SQL Tuning

Manuelles Oracle SQL Tuning Manuelles Oracle SQL Tuning Eine Einführung DOAG Konferenz 2012 Wer bin ich? Freiberuflicher Consultant in D/A/CH Oracle Certified Master 10g & 11g 8 Jahre Oracle-Erfahrung Seit 4 Jahren unabhängiger Oracle

Mehr

IT-Symposium 2008 05.06.2008

IT-Symposium 2008 05.06.2008 Selftuning Database Ein Traum oder Wirklichkeit Ralf Durben Oracle Deutschland GmbH www.hp-user-society.de 1 Die Arbeitswelt des Gestern, heute und morgen Früher Ein für wenige Datenbanken

Mehr

Generieren Sie die Befehle zum Sammeln von Statistiken auf diesen Objekten

Generieren Sie die Befehle zum Sammeln von Statistiken auf diesen Objekten Aufgabe 1_4_1: Überprüfen Sie die Schemata DOAG auf Objekte mit Stale Statistics Generieren Sie die Befehle zum Sammeln von Statistiken auf diesen Objekten delete from doag.order_line where order_line_id>8000000;

Mehr

Oracle 9i Einführung Performance Tuning

Oracle 9i Einführung Performance Tuning Kurs Oracle 9i Einführung Performance Tuning Teil 3 Der Optimizer Timo Meyer Wintersemester 2005 / 2006 Seite 1 von 16 Seite 1 von 16 1. auf Tabellen 2. 3. Optimizer 4. Optimizer RBO 5. Optimizer CBO 6.

Mehr

SQL Mystery I Anatomie eines SQL Befehls Lothar Flatz Senior Principal Consultant

SQL Mystery I Anatomie eines SQL Befehls Lothar Flatz Senior Principal Consultant Software & Informatik SQL Mystery I Anatomie eines SQL Befehls Lothar Flatz Senior Principal Consultant Ich stelle mich vor... Wer bin ich? über 25 Jahre Oracle Database Erfahrung (beginnend mit Version

Mehr

Hardware versus Brainware

Hardware versus Brainware Software & Informatik Hardware versus Brainware Lothar Flatz Senior Principal Consultant Anatomie eines SQL Befehls Ich stelle mich vor... Wer bin ich? über 25 Jahre Oracle Database Erfahrung (beginnend

Mehr

Oracle 12c: Neuerungen in PL/SQL. Roman Pyro DOAG 2014 Konferenz

Oracle 12c: Neuerungen in PL/SQL. Roman Pyro DOAG 2014 Konferenz Oracle 12c: Neuerungen in PL/SQL Roman Pyro DOAG 2014 Konferenz Herrmann & Lenz Services GmbH Herrmann & Lenz Solutions GmbH Erfolgreich seit 1996 am Markt Firmensitz: Burscheid (bei Leverkusen) Beratung,

Mehr

Oracle Database 12c Was Sie immer schon über Indexe wissen wollten

Oracle Database 12c Was Sie immer schon über Indexe wissen wollten Oracle Database 12c Was Sie immer schon über Indexe wissen wollten Marco Mischke, 08.09.2015 DOAG Regionaltreffen B* Indexe - Aufbau 0-Level Index A-F G-Z 1-Level Index A-F G-Z 2-Level Index A-F G-M N-Z

Mehr

Art der Info: Technische Background Info Teil 2 (April 2002)

Art der Info: Technische Background Info Teil 2 (April 2002) Betrifft: Autor: Oracle 9i New Features SQL und PL/SQL Christine Hansen (christine.hansen@trivadis.com) Art der Info: Technische Background Info Teil 2 (April 2002) Quelle: Aus dem NF9i-Kurs und NF9i-Techno-Circle

Mehr

Optimiertes Laden in die F-Fakten-Tabelle des SAP BW

Optimiertes Laden in die F-Fakten-Tabelle des SAP BW Optimiertes Laden in die F-Fakten-Tabelle des SAP BW Schlüsselworte SAP BW Index unusable. Einleitung Jörn Bartels Oracle München Mit Oracle Database 11g Release 2 kann das Laden der F-Fakten Tabelle in

Mehr

Oracle Old Features. Vortrag für die DOAG-Konferenz Uwe M. Küchler, Valentia GmbH

Oracle Old Features. Vortrag für die DOAG-Konferenz Uwe M. Küchler, Valentia GmbH Oracle Old Features Vortrag für die DOAG-Konferenz 2011 17.11.2011 Uwe M. Küchler, Valentia GmbH Zur Person Generation C=64 Seit über 25 Jahren in der IT tätig 1997-2000 bei Oracle Seither durchgehend

Mehr

ISU 1. Ue_08/02_Datenbanken/SQL. 08 Datenbanken. Übung. SQL Einführung. Eckbert Jankowski. www.iit.tu-cottbus.de

ISU 1. Ue_08/02_Datenbanken/SQL. 08 Datenbanken. Übung. SQL Einführung. Eckbert Jankowski. www.iit.tu-cottbus.de 08 Datenbanken Übung SQL Einführung Eckbert Jankowski www.iit.tu-cottbus.de Datenmodell (Wiederholung, Zusammenfassung) Objekte und deren Eigenschaften definieren Beziehungen zwischen den Objekten erkennen/definieren

Mehr

Funktionen. Überblick über Stored Functions. Syntax zum Schreiben einer Funktion. Schreiben einer Funktion

Funktionen. Überblick über Stored Functions. Syntax zum Schreiben einer Funktion. Schreiben einer Funktion Überblick über Stored Functions Funktionen Eine Funktion ist ein benannter PL/SQL- Block, der einen Wert zurückgibt. Eine Funktion kann in der Datenbank als Objekt zur wiederholbaren Ausführung gespeichert

Mehr

Erfahrungen aus dem Betatest Oracle Database 11g

Erfahrungen aus dem Betatest Oracle Database 11g Erfahrungen aus dem Betatest Oracle Database 11g Torsten Schlautmann torsten.schlautmann@opitz-consulting.de OPITZ CONSULTING GmbH +49 2261 6001-0 Agenda Facts & Figures Test vor Ort spannende Features

Mehr

Nutzung der Oracle Database InMemory Option für SAP BW

Nutzung der Oracle Database InMemory Option für SAP BW Nutzung der Oracle Database InMemory Option für SAP BW Schlüsselworte Oracle, SAP-BW, InMemory, Star-Schema. Jörn Bartels Oracle München Einleitung In SAP BW wurde bisher ein erweitertes Snow Flake Schema

Mehr

Datenbanken Implementierungstechniken SS2015

Datenbanken Implementierungstechniken SS2015 Hochschule für Technik, Wirtschaft und Kultur Leipzig Leipzig University of Applied Sciences Parallele DBMS Datenbanken Implementierungstechniken SS2015 Alexander Müller Fakultät Informatik, Mathematik

Mehr

Johannes Ahrends CarajanDB GmbH. www.carajandb.com 2013 CarajanDB GmbH

Johannes Ahrends CarajanDB GmbH. www.carajandb.com 2013 CarajanDB GmbH Johannes Ahrends CarajanDB GmbH CarajanDB Warum ist eine Anwendung langsam? Beispiele von echten Performanceproblemen 2 Experten mit über 20 Jahren Oracle Erfahrung Firmensitz in Erftstadt bei Köln Spezialisten

Mehr

Performance-Prognosen im Test, trotz Datenschutzauflagen. Daniel Stein. DOAG November 2016

Performance-Prognosen im Test, trotz Datenschutzauflagen. Daniel Stein. DOAG November 2016 Performance-Prognosen im Test, trotz Datenschutzauflagen Daniel Stein DOAG November 2016 Agenda Vorstellung Motivation Situation heute Praxisbeispiele Fazit & Ausblick 2 Vorstellung Daniel Stein» 31 Jahre»

Mehr

Übung PL/SQL Trigger Lösungen

Übung PL/SQL Trigger Lösungen Übung PL/SQL Trigger Lösungen 1) Gebe das aktuelle Datum aus. Wofür steht dual? Ändere das Datum für Deine aktuelle Session auf das Format Jahr (4 Stellen) Monat (2 Stellen) Tag (2 Stellen)[Leerzeichen]Stunde

Mehr

Index Rebuild. DOAG Konferenz , Nürnberg DOAG Konferenz , Nürnberg Martin Hoermann Martin Hoermann

Index Rebuild. DOAG Konferenz , Nürnberg DOAG Konferenz , Nürnberg Martin Hoermann Martin Hoermann Index Rebuild DOAG Konferenz 17.01.2011, Nürnberg DOAG Konferenz 17.11.2011, Nürnberg Martin Hoermann info@ordix.de Martin Hoermann www.ordix.de info@ordix.de www.ordix.de Eine kurze Geschichte der Zeit

Mehr

PostgreSQL Ein Überblick

PostgreSQL Ein Überblick 26. August 2007 Agenda Neue Funktionen im Bereich SQL, XML und Volltextsuche Geschwindigkeitsverbesserungen Neue Erweiterungen (contrib) XML (1) Neuer Datentyp xml ( well-formedness ) Viele Funktionen

Mehr

DOAG 2015. Demo Kino: Advisors, Monitoring Werkzeuge in der Datenbank Ulrike Schwinn Business Unit Database Oracle Deutschland B.V.

DOAG 2015. Demo Kino: Advisors, Monitoring Werkzeuge in der Datenbank Ulrike Schwinn Business Unit Database Oracle Deutschland B.V. DOAG 2015 Demo Kino: Advisors, Monitoring Werkzeuge in der Datenbank Ulrike Schwinn Business Unit Database Oracle Deutschland B.V. & Co KG Monitoring Werkzeuge, Advisors... Einfaches Framework zum Monitoring

Mehr

Index Rebuild. DOAG Konferenz , Nürnberg. Martin Hoermann

Index Rebuild. DOAG Konferenz , Nürnberg. Martin Hoermann Index Rebuild DOAG Konferenz 17.11.2011, Nürnberg Martin Hoermann info@ordix.de www.ordix.de asktom.oracle.com Quelle: asktom.oracle.com/pls/asktom/f?p=100:11:745954239666467::::p11_question_id:2913600659112

Mehr

Vergessene (?) SQL- und PL/SQL- Funktionen

Vergessene (?) SQL- und PL/SQL- Funktionen Vergessene (?) SQL- und PL/SQL- Funktionen Folge 1 Vortrag DOAG-Regiogruppe Freiburg/Südbaden 29.01.13 bulk collect (1) Aufgabenstellung: ca. 50.000 eingelesene Werte an Hand einer ID auf eine vorhandene

Mehr

Speed up your Query Strategien zur Optimierung von SQL-Queries. Juni 2012 Ulrike Brenner

Speed up your Query Strategien zur Optimierung von SQL-Queries. Juni 2012 Ulrike Brenner Speed up your Query Strategien zur Optimierung von SQL-Queries Juni 2012 Ulrike Brenner Ulrike Brenner Seit 1999 Oracle Entwicklerin Oracle DB 8-11gR2 SQL PL/SQL Oracle Forms/Reports APEX Entwicklerin

Mehr

Oracle 10g Einführung

Oracle 10g Einführung Kurs Oracle 10g Einführung Teil 6 Vertiefung Relationale Algebra Anzeigen von Daten aus mehreren Tabellen Timo Meyer Administration von Oracle-Datenbanken Timo Meyer Sommersemester 2006 Seite 1 von 22

Mehr

Indexing und Performance Tuning

Indexing und Performance Tuning Indexing und Performance Tuning Cybertec Schönig & Schönig GmbH Hans-Jürgen Schönig PostgreSQL Indexing - Jeder hat schon einmal ein Telefonbuch Benutzt - Jeder hat schon einmal Suchen durchgeführt CREATE

Mehr

Oracle Old Features. Uwe Küchler Valentia GmbH Frankfurt am Main

Oracle Old Features. Uwe Küchler Valentia GmbH Frankfurt am Main Oracle Old Features Uwe Küchler Valentia GmbH Frankfurt am Main Schlüsselwörter: Datenbank, Performance, Constraints, ANSI SQL, PL/SQL. Einleitung Bereits im vorigen Jahrtausend hat Oracle Features in

Mehr

The Underestimated Subquery Factoring Clause

The Underestimated Subquery Factoring Clause The Underestimated Subquery Factoring Clause Philipp Salvisberg Senior Consultant philipp.salvisberg@trivadis.com DOAG Konferenz Mannheim, 16. November 2006 Basel Baden Bern Lausanne Zürich Düsseldorf

Mehr

Inhalt. Tools für das SQL-Tuning (Anzeigen der Ausführungspläne)

Inhalt. Tools für das SQL-Tuning (Anzeigen der Ausführungspläne) Inhalt Tools für das SQL-Tuning (Anzeigen der Ausführungspläne) EXPLAIN PLAN SQL*Plus Autotrace SQL Trace und TKPROF V$SQL_PLAN DBMS_XPLAN Extended SQL-Tracing Dr. Frank Haney 1 EXPLAIN PLAN Anweisung

Mehr

MIN oder MAX Bildung per B*Tree Index Hint

MIN oder MAX Bildung per B*Tree Index Hint E-Mail: rainer@lambertz-c.de Internet: http://www.lambertz-c.de MIN oder MAX Bildung per B*Tree Index Hint Zugegeben, der Trick Min- oder Maximalwerte per Index Hint zu ermitteln ist nicht neu. Gewöhnlich

Mehr

Zugriff aus Oracle via Proc SQL: Performanceprobleme

Zugriff aus Oracle via Proc SQL: Performanceprobleme News Artikel Foren Projekte Links Über Redscope Join List Random Previous Next Startseite Foren ETL & Base SAS Zugriff aus Oracle via Proc SQL: Performanceprobleme 27 October, 2005-15:57 FrankRueckert

Mehr

Anwendungsentwicklung Datenbanken SQL. Stefan Goebel

Anwendungsentwicklung Datenbanken SQL. Stefan Goebel Anwendungsentwicklung Datenbanken SQL Stefan Goebel SQL Structured Query Language strukturierte Abfragesprache von ANSI und ISO standardisiert deklarativ bedeutet was statt wie SQL beschreibt, welche Daten

Mehr

ORACLE DATENBANKOPTIMIERUNG (BASICS)

ORACLE DATENBANKOPTIMIERUNG (BASICS) ORACLE DATENBANKOPTIMIERUNG (BASICS) INHALT 1 Motivation... 1 2 Automatische, regelmäßige DB-Optimierung... 2 2.1 Index-Rebuild... 2 2.2 Tabellen-Reorganisation... 2 2.3 Statistiken ermitteln... 3 2.4

Mehr

Oracle Exadata Storage Server Performance erklärt SmartScan

Oracle Exadata Storage Server Performance erklärt SmartScan Products 31 Daniel Rey, OPITZ CONSULTING Schweiz GmbH Oracle Exadata Storage Server Performance erklärt SmartScan Im Herbst 2008 präsentierte Oracle an der OpenWorld den Exadata Storage Server und die

Mehr

Erhöhung der Manageability durch SQL-Profile

Erhöhung der Manageability durch SQL-Profile Erhöhung der Manageability durch SQL-Profile Ein Erfahrungsbericht 20.11.2007 Dr. Frank Haney 1 Inhalt 1. Problemstellung 2. Der SQL-Tuning-Advisor (STA) 3. Anlegen und Implementieren von SQL-Profilen

Mehr

Urs Meier (urs.meier@trivadis.com) Art der Info Technical Info (Februar 2002) Aus unserer Projekterfahrung und Forschung

Urs Meier (urs.meier@trivadis.com) Art der Info Technical Info (Februar 2002) Aus unserer Projekterfahrung und Forschung Betrifft Optimizer Autor Urs Meier (urs.meier@trivadis.com) Art der Info Technical Info (Februar 2002) Quelle Aus unserer Projekterfahrung und Forschung Einführung Mit jedem Oracle Release nimmt die Anzahl

Mehr

Gliederung. 1) Speicherplatz-Zuordnung und -Verwaltung 2) Indizes 3) Explain Plan 4) Join-Operationen 5) Der Optimizer 6) Parallelisieren

Gliederung. 1) Speicherplatz-Zuordnung und -Verwaltung 2) Indizes 3) Explain Plan 4) Join-Operationen 5) Der Optimizer 6) Parallelisieren Gliederung ) Speicherplatz-Zuordnung und -Verwaltung 2) Indizes 3) Explain Plan 4) Join-Operationen 5) Der Optimizer 6) Parallelisieren ) Speicherplatz-Zuordnung und -Verwaltung.) Tabellenspeicherung:

Mehr

Performance Probleme aufspüren

Performance Probleme aufspüren Performance Probleme aufspüren Oberhausen, 2013 Hans-Jürgen Schönig Gründe für schlechte Performance 1. Dumme Anfragen - das passiert häufiger als man denkt 2. Suboptimale PostgreSQL Parameter 3. Schlechte

Mehr

Manuelles Oracle SQL-Tuning

Manuelles Oracle SQL-Tuning Der Oracle Cost-Based Optimizer ist eine zentrale Komponente der Datenbank und mittlerweile recht ausgereift. In den seltenen Fällen, in denen er allerdings keinen performanten Ausführungsplan ermitteln

Mehr

Einstieg in das SQL- und Datenbanktuning 14.01.2009. Loblied auf den Tabellen-Index!

Einstieg in das SQL- und Datenbanktuning 14.01.2009. Loblied auf den Tabellen-Index! 1/40 PHP-User-Group Stuttgart 14.01.2009 Warum Datenbanken einen Hals bekommen und was sich dagegen tun lässt. Tuning und Performancesteigerung ohne zusätzliche Hardware. Ein. Loblied auf den Tabellen-Index!

Mehr

MySQL Performance Tuning für Entwickler

MySQL Performance Tuning für Entwickler MySQL Performance Tuning für Entwickler Cebit 2015, Hannover Oli Sennhauser Senior MySQL Consultant, FromDual GmbH oli.sennhauser@fromdual.com 1 / 18 FromDual GmbH Support Beratung remote-dba Schulung

Mehr

ANALYSE UND VISUALISIERUNG VON STATSPACK UND AWR DATEN

ANALYSE UND VISUALISIERUNG VON STATSPACK UND AWR DATEN ANALYSE UND VISUALISIERUNG VON STATSPACK UND AWR DATEN DOAG Konferenz 2012, Nürnberg Marcus Mönnig Lichtblick AG, Hamburg Vorstellung Marcus Mönnig, Informatiker (B.Sc.), OCP 10/11 E-Mail: Internet: mm@marcusmoennig.de

Mehr

Neue Features Oracle Database 12.2 Wann denn endlich?

Neue Features Oracle Database 12.2 Wann denn endlich? Neue Features Oracle Database 12.2 Wann denn endlich? DOAG 2017 Datenbank Dierk Lenz Erfolgreich seit 1996 am Markt Firmensitz: Burscheid (bei Leverkusen) Beratung, Schulung und Betrieb/Fernwartung rund

Mehr

Copyright 2013, Oracle and/or its affiliates. All rights reserved.

Copyright 2013, Oracle and/or its affiliates. All rights reserved. 1 Effiziente Speicherung für SAP Jörn Bartels Architect Oracle Database Server Technologies 2 Oracle 12c Jörn Bartels Architect Oracle Database Server Technologies 3 1997 Effiziente Speicherung für SAP

Mehr

Der Ausführungsplan das unbekannte Wesen

Der Ausführungsplan das unbekannte Wesen Der Ausführungsplan das unbekannte Wesen Martin Hoermann ORDIX AG Paderborn Wiesbaden Münster Köln Neu-Ulm Zusammenfassung Die Antwortzeit eines SQL Befehls bei gegebenem Datenbestand und Datenbankstrukturen

Mehr

Nützliche Oracle 12c Features für Data Warehousing DOAG BI, 8. Juni 2016 Dani Schnider, Trivadis AG

Nützliche Oracle 12c Features für Data Warehousing DOAG BI, 8. Juni 2016 Dani Schnider, Trivadis AG Nützliche Oracle 12c Features für Data Warehousing DOAG BI, 8. Juni 2016 Dani Schnider, Trivadis AG BASEL BERN BRUGG DÜSSELDORF FRANKFURT A.M. FREIBURG I.BR. GENEVA HAMBURG COPENHAGEN LAUSANNE MUNICH STUTTGART

Mehr

1. Eine Trace Datei 6. 1.1. Session Trace 7 1.2. Trace einer beliebigen Session 7 1.3. Probleme beim Erstellen einer Trace Datei 8 1.4.

1. Eine Trace Datei 6. 1.1. Session Trace 7 1.2. Trace einer beliebigen Session 7 1.3. Probleme beim Erstellen einer Trace Datei 8 1.4. rainer@lambertz-c.de Inhaltsverzeichnis 1. Eine Trace Datei 6 1.1. Session Trace 7 1.2. Trace einer beliebigen Session 7 1.3. Probleme beim Erstellen einer Trace Datei 8 1.4. Autotrace 9 2. Trace Datei

Mehr

Copyright 2013, Oracle and/or its affiliates. All rights reserved.

Copyright 2013, Oracle and/or its affiliates. All rights reserved. 1 1997 Effiziente Speicherung für SAP 8.0 Jörn Bartels Architect Oracle Database Server Technologies 2 Effiziente Speicherungsformen Ziele Index Komprimierung Index Organized Tables Ergebnisse 3 Ziele

Mehr

IT-Symposium 2004. Ralf Durben. Business Unit Datenbank. ORACLE Deutschland GmbH. www.decus.de 1

IT-Symposium 2004. Ralf Durben. Business Unit Datenbank. ORACLE Deutschland GmbH. www.decus.de 1 Ralf Durben Business Unit Datenbank ORACLE Deutschland GmbH www.decus.de 1 Oracle Database 10g Diagnostik- und Taskmanagement Diagnostik Management Was passiert in der Datenbank, gibt es Probleme? Möglichst

Mehr

<Insert Picture Here> Security-Basics. Privilegien, Rollen, SQL und PL/SQL - inkl. 12c-Update. Carsten Czarski, ORACLE Deutschland B.V. Co.

<Insert Picture Here> Security-Basics. Privilegien, Rollen, SQL und PL/SQL - inkl. 12c-Update. Carsten Czarski, ORACLE Deutschland B.V. Co. Security-Basics Privilegien, Rollen, SQL und PL/SQL - inkl. 12c-Update Carsten Czarski, ORACLE Deutschland B.V. Co. KG Themen Rechte, Rollen und PL/SQL: Grundsätzliches Invokers vs.

Mehr

Mehr Ergebnisse: Linguistische Funktionen und Ähnlichkeitssuche mit SQL. Carsten Czarski ORACLE Deutschland B.V. & Co KG München

Mehr Ergebnisse: Linguistische Funktionen und Ähnlichkeitssuche mit SQL. Carsten Czarski ORACLE Deutschland B.V. & Co KG München Mehr Ergebnisse: Linguistische Funktionen und Ähnlichkeitssuche mit SQL Carsten Czarski ORACLE Deutschland B.V. & Co KG München Einleitung Jede Suche in den Tabellen im Data Warehouse ist eine SQL-Abfrage

Mehr

ACCESS SQL ACCESS SQL

ACCESS SQL ACCESS SQL ACCESS SQL Datenbankabfragen mit der Query-Language ACCESS SQL Datenbankpraxis mit Access 34 Was ist SQL Structured Query Language Bestehend aus Datendefinitionssprache (DDL) Datenmanipulationssprache

Mehr

Prozedurale Datenbank- Anwendungsprogrammierung

Prozedurale Datenbank- Anwendungsprogrammierung Idee: Erweiterung von SQL um Komponenten von prozeduralen Sprachen (Sequenz, bedingte Ausführung, Schleife) Bezeichnung: Prozedurale SQL-Erweiterung. In Oracle: PL/SQL, in Microsoft SQL Server: T-SQL.

Mehr

PostgreSQL auf vielen CPUs. Hans-Jürgen Schönig Hans-Jürgen Schönig

PostgreSQL auf vielen CPUs. Hans-Jürgen Schönig  Hans-Jürgen Schönig PostgreSQL auf vielen CPUs Ansätze zur Skalierung PostgreSQL auf einer CPU Traditionell läuft eine Query auf nur einer CPU Historisch gesehen war das kein Problem Mittlerweile ist das ein großes Problem

Mehr

Art der Info: Technische Background Info Teil 3 (April 2002)

Art der Info: Technische Background Info Teil 3 (April 2002) Betrifft: Autor: Oracle9i New Features SQL und PL/SQL Patrick Malcherek (patrick.malcherek@trivadis.com) Art der Info: Technische Background Info Teil (April 00) Quelle: Aus dem NF9i-Kurs und NF9i-Techno-Circle

Mehr

Powerful PL/SQL: Collections indizieren mit VARCHAR2- Indizes ein Praxisbeispiel

Powerful PL/SQL: Collections indizieren mit VARCHAR2- Indizes ein Praxisbeispiel Powerful PL/SQL: Collections indizieren mit VARCHAR2- Indizes ein Praxisbeispiel Schlagworte Autor: Klaus Friemelt, MT AG dynamisches BULK SQL, VARCHAR2-indizierte PL/SQL-Tabellen Einleitung Mit den letzten

Mehr

Manuelles Oracle SQL Tuning

Manuelles Oracle SQL Tuning Manuelles Oracle SQL Tuning Martin Decker ora-solutions.net D/A/CH Schlüsselworte Optimizer, SQL Tuning, Performance, Explain Plan, Hints, Einleitung Der Oracle Cost-Based Optimizer ist die zentrale Komponente

Mehr

Oracle AWR und ASH Analyse und Interpretation

Oracle AWR und ASH Analyse und Interpretation Oracle AWR und ASH Analyse und Interpretation Seminarunterlage Version: 2.02 Version 2.02 vom 11. März 2013 Dieses Dokument wird durch die veröffentlicht.. Alle Rechte vorbehalten. Alle Produkt- und Dienstleistungs-Bezeichnungen

Mehr

Sperren, Transaktionen, Statistiken

Sperren, Transaktionen, Statistiken MS SQL Server Sperren, Transaktionen, Statistiken sp_lock sys.cm_tran_locks sys.dm_tran_active_transactions Identifiziere Waits und Bottlenecks sys.dm_os_wait_stats DBCC SQLPERF ('sys.dm_os_wait_stats',

Mehr

Erzeugung und Veränderung von Tabellen

Erzeugung und Veränderung von Tabellen Datenbanken - Objekte Erzeugung und Veränderung von Tabellen Objekt Tabelle View Sequence Index Synonym Basiseinheit zum Speichern; besteht aus Zeilen und Spalten; Logische Repräsentation; kann Teilmengen

Mehr

Übersicht der wichtigsten MySQL-Befehle

Übersicht der wichtigsten MySQL-Befehle Übersicht der wichtigsten MySQL-Befehle 1. Arbeiten mit Datenbanken 1.1 Datenbank anlegen Eine Datenbank kann man wie folgt erstellen. CREATE DATABASE db_namen; 1.2 Existierende Datenbanken anzeigen Mit

Mehr

Nicht mehr blind am Steuer

Nicht mehr blind am Steuer Software & Informatik Nicht mehr blind am Steuer Lothar Flatz Senior Principal Consultant Anatomie eines SQL Befehls Ich stelle mich vor... Wer bin ich? über 25 Jahre Oracle Database Erfahrung (beginnend

Mehr

einfach. gut. beraten. Stabilisierung von Ausführungsplänen Baselines DOAG Konferenz + Ausstellung 2017 Nürnberg Klaus Reimers

einfach. gut. beraten. Stabilisierung von Ausführungsplänen Baselines DOAG Konferenz + Ausstellung 2017 Nürnberg Klaus Reimers einfach. gut. beraten. Stabilisierung von Ausführungsplänen Baselines DOAG Konferenz + Ausstellung 2017 Nürnberg Klaus Reimers info@ordix.de www.ordix.de Agenda Einführung in das Thema Stabilisierung von

Mehr

MySQL Queries on "Nmap Results"

MySQL Queries on Nmap Results MySQL Queries on "Nmap Results" SQL Abfragen auf Nmap Ergebnisse Ivan Bütler 31. August 2009 Wer den Portscanner "NMAP" häufig benutzt weiss, dass die Auswertung von grossen Scans mit vielen C- oder sogar

Mehr

Analytische Funktionen erfolgreich eingesetzt

Analytische Funktionen erfolgreich eingesetzt Analytische Funktionen erfolgreich eingesetzt Dani Schnider Trivadis AG Glattbrugg, Schweiz Schlüsselworte: Analytische Funktionen, SQL, Performance Optimierung, Data Warehousing Zusammenfassung Analytische

Mehr

Zeilen in SAS-Datensatz einfügen

Zeilen in SAS-Datensatz einfügen News Artikel Foren Projekte Links Über Redscope Join List Random Previous Next Startseite Foren ETL & Base SAS Zeilen in SAS-Datensatz einfügen 27 June, 2011-16:27 Gordon123 Hallo liebe Forengemeinde,

Mehr

Einführung in SQL. 1. Grundlagen SQL. Structured Query Language. Viele Dialekte. Unterteilung: i. DDL (Data Definition Language)

Einführung in SQL. 1. Grundlagen SQL. Structured Query Language. Viele Dialekte. Unterteilung: i. DDL (Data Definition Language) Einführung in SQL 1. Grundlagen Structured Query Language Viele Dialekte Unterteilung: i. DDL (Data Definition Language) ii. iii. DML (Data Modifing Language) DRL (Data Retrival Language) 1/12 2. DDL Data

Mehr

Kurs. Teil 4 Shared Pool. Universität Hannover. Agenda. Überblick. Library Cache Oracle 9i Einführung Performance Tuning. Trefferquote.

Kurs. Teil 4 Shared Pool. Universität Hannover. Agenda. Überblick. Library Cache Oracle 9i Einführung Performance Tuning. Trefferquote. Kurs Oracle 9i Einführung Performance Tuning Teil 4 Shared Pool Timo Meyer Wintersemester 2005 / 2006 Seite 1 von 22 Seite 1 von 22 1. 2. 3. SQL Area / 4. 5. 6. Shared Pool Reserved Area 7. Wiederverwendung

Mehr

Nachtrag: Farben. Farbblindheit. (Light und Bartlein 2004)

Nachtrag: Farben. Farbblindheit. (Light und Bartlein 2004) Nachtrag: Farben Farbblindheit (Light und Bartlein 2004) 1 Vorgeschlagene Farbskalen (Light and Bartlein 2004) Farbkodierung metrisch skalierter Daten Unterscheide: 1. Sequential Data (ohne Betonung der

Mehr

Oracle Virtual Private Database

Oracle Virtual Private Database Oracle Virtual Private Database Rolf Wesp Consultant Application Development Rolf.Wesp@trivadis.com Düsseldorf, September 2008 Basel Baden Bern Lausanne Zürich Düsseldorf Frankfurt/M. Freiburg i. Br. Hamburg

Mehr

Oracle native json Support. Erste Schritte

Oracle native json Support. Erste Schritte Oracle native json Support Erste Schritte 1 Ausgangslage Als erster Schritt erstellen wir eine Tabelle, die wir für den weiteren Verlauf brauchen werden. Die Felder Id, Created und Username sind normale

Mehr

Indexbasiertes SQL Tuning

Indexbasiertes SQL Tuning Indexbasiertes SQL Tuning Eine Einführung Sebastian Wittig Systementwickler merlin.zwo InfoDesign GmbH & Co. KG 76228 Karlsruhe Spitzenleistung heißt, sich auf seine Stärken zu konzentrieren. merlin.zwo

Mehr

Oracle 10g Einführung

Oracle 10g Einführung Kurs Oracle 10g Einführung Teil 5 Einführung Timo Meyer Administration von Oracle-Datenbanken Timo Meyer Sommersemester 2006 Seite 1 von 16 Seite 1 von 16 Agenda 1 Tabellen und Views erstellen 2 Indizes

Mehr

Partitioning mit Oracle Text 9i

Partitioning mit Oracle Text 9i Partitioning mit Oracle Text 9i Autor: Andreas Habl, msg systems ag DOAGNews Q1_2005 Dieses Werk ist urheberrechtlich geschützt. Die dadurch begründeten Rechte, insbesondere die der Übersetzung, des Nachdrucks,

Mehr

Merge mit nicht eindeutigen by-variablen

Merge mit nicht eindeutigen by-variablen News Artikel Foren Projekte Links Über Redscope Join List Random Previous Next Startseite Foren Allgemeine Fragen zu SAS Merge mit nicht eindeutigen by-variablen 28 February, 2006-12:49 Stefanie Rankl

Mehr

www.informatik-aktuell.de Optimierung der Performance bei Oracle-Datenbanken "nur" mit der Standard Edition IT-Tage Frankfurt 2015 MANAGED DATABASE SERVICES 24x7 Referent: Norbert Rieger Senior DBA bei

Mehr

ANALYSE UND VISUALISIERUNG VON STATSPACK UND AWR DATEN

ANALYSE UND VISUALISIERUNG VON STATSPACK UND AWR DATEN ANALYSE UND VISUALISIERUNG VON STATSPACK UND AWR DATEN DOAG Regio Nord, Juni 2013 Marcus Mönnig Lichtblick SE, Hamburg Vorstellung Marcus Mönnig, Informatiker (B.Sc.), OCP 10/11 DBA bei E-Mail: Internet:

Mehr

SODA. Die Datenbank als Document Store. Rainer Willems. Master Principal Sales Consultant Oracle Deutschland B.V. & Co. KG

SODA. Die Datenbank als Document Store. Rainer Willems. Master Principal Sales Consultant Oracle Deutschland B.V. & Co. KG SODA Die Datenbank als Document Store Rainer Willems Master Principal Sales Consultant Oracle Deutschland B.V. & Co. KG vs No Anforderungskonflikte Agile Entwicklung Häufige Schema-Änderungen Relationales

Mehr

Acht große Oracle-Datenbank-Mythen

Acht große Oracle-Datenbank-Mythen Acht große Oracle-Datenbank-Mythen Robert Barić, ITGAIN Consulting Gesellschaft für IT-Beratung mbh Die IT steckt voller Mythen. Man denke nur an die sich in den Köpfen von Anwendern noch immer haltende

Mehr

SQL and PL/SQL unleashed. Neuheiten bei Oracle 11g und Oracle 12c im Bereich SQL und PL/SQL

SQL and PL/SQL unleashed. Neuheiten bei Oracle 11g und Oracle 12c im Bereich SQL und PL/SQL . Neuheiten bei Oracle 11g und Oracle 12c im Bereich SQL und PL/SQL Johannes Gritsch Themenübersicht Neue Scheduler Job Typen SQL_SCRIPT und BACKUP_SCRIPT SQL RowLimit: PERCENT und TIES WITH-Klausel mit

Mehr

Abfragen (Queries, Subqueries)

Abfragen (Queries, Subqueries) Abfragen (Queries, Subqueries) Grundstruktur einer SQL-Abfrage (reine Projektion) SELECT [DISTINCT] {* Spaltenname [[AS] Aliasname ] Ausdruck} * ; Beispiele 1. Auswahl aller Spalten SELECT * ; 2. Auswahl

Mehr

SQL. Ziele. Grundlagen von SQL. Beziehung zur relationalen Algebra SELECT, FROM, WHERE. Joins ORDER BY. Aggregatfunktionen. dbis.

SQL. Ziele. Grundlagen von SQL. Beziehung zur relationalen Algebra SELECT, FROM, WHERE. Joins ORDER BY. Aggregatfunktionen. dbis. SQL Lehr- und Forschungseinheit Datenbanken und Informationssysteme Ziele Grundlagen von SQL Beziehung zur relationalen Algebra SELECT, FROM, WHERE Joins ORDER BY Aggregatfunktionen Lehr- und Forschungseinheit

Mehr

Inhaltsverzeichnis. Installationsübersicht. A. Installationsübersicht

Inhaltsverzeichnis. Installationsübersicht. A. Installationsübersicht Inhaltsverzeichnis A. Installationsübersicht B. und Optimierungsbereiche B.1 Hardware B.2 OperatingSystem Z/OS B.3 Databasemanagementsystem DB2 B.4 Applikation C. Organisation BSS_Chart-library 1 Installationsübersicht

Mehr

7. Datenbank-Zugriff. Vorlesung und Übung Dr. Peter Pfahler Institut für Informatik Universität Paderborn. Zum Beispiel aus PHP-Skripten: Client 7-2

7. Datenbank-Zugriff. Vorlesung und Übung Dr. Peter Pfahler Institut für Informatik Universität Paderborn. Zum Beispiel aus PHP-Skripten: Client 7-2 5 Vorlesung und Übung Dr. Peter Pfahler Institut für Informatik Universität Paderborn 7 7. Datenbank-Zugriff Zum Beispiel aus PHP-Skripten: Client 7-2 Struktur einer Datenbank 7-3 Erzeugen von Datenbanken

Mehr

Die PostgreSQL Performance Schnelldiagnose

Die PostgreSQL Performance Schnelldiagnose Die PostgreSQL Performance Schnelldiagnose Performance Probleme diagnostizieren Unser Ziel Finden der häufigsten Bottlenecks Lösen der wichtigsten Probleme Viele Probleme können mit wenigen Handgriffen

Mehr

Überwachung problematischer Abfragen im Data Warehouse-Umfeld

Überwachung problematischer Abfragen im Data Warehouse-Umfeld Autoren Keywords Überwachung problematischer Abfragen im Data Warehouse-Umfeld Dr. Alexander Kick, Credit Suisse, alexander.kick@credit-suisse.com Daniel Steiger, Trivadis AG, daniel.steiger@trivadis.com

Mehr

Andrea Held. Motivation ILM: Definition und Strategien Lösungen für Oracle Datenbanken. Empfehlungen

Andrea Held. Motivation ILM: Definition und Strategien Lösungen für Oracle Datenbanken. Empfehlungen Andrea Held Motivation ILM: Definition und Strategien Lösungen für Oracle Datenbanken Partitionierung Komprimierung ILM Assistant Flashback Data Archive Empfehlungen 1 Datenwachstum Wachsende Kosten Schlechtere

Mehr

Mobiliar Oracle Performance Warehouse Was war, ist oder wird kritisch? Jochen Maas Teamleiter IT Betrieb Data Management

Mobiliar Oracle Performance Warehouse Was war, ist oder wird kritisch? Jochen Maas Teamleiter IT Betrieb Data Management Mobiliar Oracle Performance Warehouse Was war, ist oder wird kritisch? ASH, AWR, APEX und Grid Control im Orchester für konsolidierte Performance- und Trend-Analysen über die gesamte Oracle-Landschaft

Mehr

Optimale Performance durch Constraints im Data Warehouse

Optimale Performance durch Constraints im Data Warehouse Optimale Performance durch Constraints im Data Warehouse DOAG Konferenz, 17. November 2016 Dani Schnider, Trivadis AG @dani_schnider BASEL BERN BRUGG DÜSSELDORF FRANKFURT A.M. FREIBURG I.BR. GENF HAMBURG

Mehr

Chancen und Wachstumsfelder für PostgreSQL

Chancen und Wachstumsfelder für PostgreSQL Chancen und Wachstumsfelder für PostgreSQL Harald Armin Massa by Deutschsprachige PostgreSQL Konferenz 2013 Oberhausen Harald Armin Massa 2ndQuadrant Datenbanken seit 1984 Position Value Datenbank auf

Mehr

ANFRAGEOPTIMIERUNG IN POSTGRESQL

ANFRAGEOPTIMIERUNG IN POSTGRESQL ANFRAGEOPTIMIERUNG IN POSTGRESQL Friedrich-Schiller-Universität Jena Mai 2013 REFERENTIN Diplom-Informatikerin Open Source Aktivität seit 1996 Expertin für Datenbanken sowie Lokalisierung / Globalisierung

Mehr

Cassandra Query Language (CQL)

Cassandra Query Language (CQL) Cassandra Query Language (CQL) Seminar: NoSQL Wintersemester 2013/2014 Cassandra Zwischenpräsentation 1 Gliederung Basic facts Datentypen DDL/DML ähnlich zu SQL Besonderheiten Basic facts CQL kurz für

Mehr

Regionaltreffen Rhein Main 26. März 2007

Regionaltreffen Rhein Main 26. März 2007 Regionaltreffen Rhein Main 26. März 2007 SWE Jens Fudickar / OraTool pro Softwareentwicklung Jens Fudickar ist ein kleines Softwarehaus, dessen Hauptprodukt das OraTool ist. Darüber hinaus sind wir in

Mehr

10 Gründe warum Ihr Index nicht verwendet wird

10 Gründe warum Ihr Index nicht verwendet wird 10 Gründe warum Ihr Index nicht verwendet wird Schlüsselworte Index Benutzung, Index Tuning Einleitung Marco Patzwahl MuniQSoft GmbH München-Unterhaching Ein Index auf einer Tabelle sollte ja eigentlich

Mehr

2 Index zur Steigerung der Abfrageperformance

2 Index zur Steigerung der Abfrageperformance Tipps & Tricks Indizes Fluch und Segen? Sebastian Reimann viadee Unternehmensberatung GmbH Anton-Bruchausen-Straße 8 48147 Münster sebastian.reimann@viadee.de Zusammenfassung Wie heißt es so schön an vielen

Mehr

Listener: Bei Oracle erfolgt die Steuerung (konventionell) via listener.ora (Listener Konfiguration), tnsnames.ora (Client Konfiguration)

Listener: Bei Oracle erfolgt die Steuerung (konventionell) via listener.ora (Listener Konfiguration), tnsnames.ora (Client Konfiguration) Protokoll 1: Listener: Bei Oracle erfolgt die Steuerung (konventionell) via listener.ora (Listener Konfiguration), tnsnames.ora (Client Konfiguration) Abschnitt 2.1 (Ausführungen zum Shutdown / Startup)

Mehr