The Underestimated Subquery Factoring Clause
|
|
- Viktor Geisler
- vor 6 Jahren
- Abrufe
Transkript
1 The Underestimated Subquery Factoring Clause Philipp Salvisberg Senior Consultant DOAG Konferenz Mannheim, 16. November 2006 Basel Baden Bern Lausanne Zürich Düsseldorf Frankfurt/M. Freiburg i. Br. Hamburg München Stuttgart Wien
2 Zu meiner Person Senior Consultant bei der Trivadis AG, Zürich Betriebsökonom HWV Schwerpunkt Oracle Application Development Application Performance Management Business Intelligence 18 Jahre Erfahrung mit Oracle The Underestimated Subquery Factoring Clause
3 Agenda Einführung Sales History Tuning Fall Komplexe Abfragen Daten sind immer im Spiel. Tipps & Tricks Zusammenfassung The Underestimated Subquery Factoring Clause
4 Subquery Factoring Klausel (With Klausel) Syntax (seit 9i Release 1 gemäss ANSI SQL99 Standard) WITH query_name AS (subquery) [, query_name AS (subquery) ] SELECT... Features Bezeichnung einer Subquery als query_name Mehrfache Verwendung einer query_name, sogar in anderen, nachfolgend definierten Subqueries CBO behandelt eine Subquery als Inline View oder Temporary Table Einschränkungen Jede query_name ist mindestens einmal zu verwenden Maximal eine Subquery Factoring Klausel per SQL Statement Keine Unterstützung der RECURSIVE Klausel (ANSI Pendant zu CONNECT BY START WITH) The Underestimated Subquery Factoring Clause
5 NF9i Beispiel WITH emp_sal AS ( SELECT e.deptno, d.dname, SUM(e.sal) AS sal FROM emp e INNER JOIN dept d ON e.deptno = d.deptno GROUP BY e.deptno, d.dname ), avg_sal AS ( SELECT AVG(sal) AS avgsal FROM emp_sal ) -- main SELECT * FROM emp_sal CROSS JOIN avg_sal WHERE emp_sal.sal < avg_sal.avgsal ORDER BY emp_sal.dname; Mehrfache Verwendung DEPTNO DNAME SAL AVGSAL ACCOUNTING SALES The Underestimated Subquery Factoring Clause
6 NF9i Beispiel Execution Plan Id Operation Name Rows Bytes Cost SELECT STATEMENT 10 1 TEMP TABLE TRANSFORMATION emp_sal 2 LOAD AS SELECT 3 HASH GROUP BY NESTED LOOPS TABLE ACCESS FULL EMP TABLE ACCESS BY INDEX ROWID DEPT * 7 INDEX UNIQUE SCAN PK_DEPT SORT ORDER BY NESTED LOOPS avg_sal VIEW SORT AGGREGATE VIEW TABLE ACCESS FULL SYS_TEMP_ * 14 VIEW TABLE ACCESS FULL SYS_TEMP_ Predicate Information (identified by operation id): access("e"."deptno"="d"."deptno") 14 - filter("emp_sal"."sal"<"avg_sal"."avgsal") The Underestimated Subquery Factoring Clause
7 Subquery als Inline View betrachten WITH emp_sal AS ( SELECT /*+inline */ e.deptno, d.dname, SUM(e.sal) AS sal FROM emp e INNER JOIN dept d ON e.deptno = d.deptno GROUP BY e.deptno, d.dname ), avg_sal AS ( SELECT AVG(sal) AS avgsal FROM emp_sal ) -- main SELECT * FROM emp_sal CROSS JOIN avg_sal WHERE emp_sal.sal < avg_sal.avgsal ORDER BY emp_sal.dname; DEPTNO DNAME SAL AVGSAL ACCOUNTING SALES The Underestimated Subquery Factoring Clause
8 Execution Plan mit Inline Hint Id Operation Name Rows Bytes Cost SELECT STATEMENT SORT ORDER BY NESTED LOOPS avg_sal VIEW SORT AGGREGATE VIEW emp_sal HASH GROUP BY NESTED LOOPS TABLE ACCESS FULL EMP TABLE ACCESS BY INDEX ROWID DEPT * 10 INDEX UNIQUE SCAN PK_DEPT 1 0 * 11 VIEW SORT GROUP BY emp_sal NESTED LOOPS TABLE ACCESS FULL EMP TABLE ACCESS BY INDEX ROWID DEPT * 16 INDEX UNIQUE SCAN PK_DEPT Predicate Information (identified by operation id): access("e"."deptno"="d"."deptno") 11 - filter("emp_sal"."sal"<"avg_sal"."avgsal") 16 - access("e"."deptno"="d"."deptno") The Underestimated Subquery Factoring Clause
9 NF9i Beispiel Refactored WITH emp_sal AS ( SELECT e.deptno, d.dname, SUM(e.sal) AS sal, AVG(SUM(e.sal)) over() AS avgsal FROM emp e INNER JOIN dept d ON e.deptno = d.deptno GROUP BY e.deptno, d.dname ) -- main SELECT * FROM emp_sal WHERE sal < avgsal ORDER BY dname; DEPTNO DNAME SAL AVGSAL ACCOUNTING SALES The Underestimated Subquery Factoring Clause
10 NF9i Beispiel Refactored Execution Plan Id Operation Name Rows Bytes Cost SELECT STATEMENT * 1 VIEW WINDOW BUFFER SORT GROUP BY NESTED LOOPS TABLE ACCESS FULL EMP TABLE ACCESS BY INDEX ROWID DEPT * 7 INDEX UNIQUE SCAN PK_DEPT Predicate Information (identified by operation id): filter("sal"<"avgsal") 7 - access("e"."deptno"="d"."deptno") The Underestimated Subquery Factoring Clause
11 Temp Table Transformation erzwingen WITH emp_sal AS ( SELECT /*+ materialize */ e.deptno, d.dname, SUM(e.sal) AS sal, AVG(SUM(e.sal)) over() AS avgsal FROM emp e INNER JOIN dept d ON e.deptno = d.deptno GROUP BY e.deptno, d.dname ) -- main SELECT * FROM emp_sal WHERE sal < avgsal ORDER BY dname; DEPTNO DNAME SAL AVGSAL ACCOUNTING SALES The Underestimated Subquery Factoring Clause
12 Execution Plan mit Materialize Hint Id Operation Name Rows Bytes Cost SELECT STATEMENT TEMP TABLE TRANSFORMATION 2 LOAD AS SELECT 3 WINDOW BUFFER SORT GROUP BY NESTED LOOPS TABLE ACCESS FULL EMP TABLE ACCESS BY INDEX ROWID DEPT * 8 INDEX UNIQUE SCAN PK_DEPT SORT ORDER BY * 10 VIEW TABLE ACCESS FULL SYS_TEMP_ Predicate Information (identified by operation id): access("e"."deptno"="d"."deptno") 10 - filter("sal"<"avgsal") The Underestimated Subquery Factoring Clause
13 Materialize Hint auch in Inline View anwendbar? SELECT * FROM (SELECT /*+ materialize */ e.deptno, d.dname, SUM(e.sal) AS sal, AVG(SUM(e.sal)) over() AS avg_sal FROM emp e INNER JOIN dept d ON e.deptno = d.deptno GROUP BY e.deptno, d.dname) WHERE sal < avg_sal ORDER BY dname; Id Operation Name Rows Bytes Cost Nein! 0 SELECT STATEMENT * 1 VIEW WINDOW BUFFER SORT GROUP BY NESTED LOOPS TABLE ACCESS FULL EMP TABLE ACCESS BY INDEX ROWID DEPT * 7 INDEX UNIQUE SCAN PK_DEPT The Underestimated Subquery Factoring Clause
14 Einführung: Fazit Die Subqueries der Subquery Factoring Klausel sind mächtiger als Inline Views Das Mass unserer Dinge ist die Höhe Ihrer Ansprüche. Der CBO erhält mehr Informationen über eine Query und hat darum bessere Optimierungsmöglichkeiten Nur Subqueries der Subquery Factoring Klausel unterstützen die undokumentierten Hints materialize inline The Underestimated Subquery Factoring Clause
15 Agenda Einführung Sales History Tuning Fall Komplexe Abfragen Daten sind immer im Spiel. Tipps & Tricks Zusammenfassung The Underestimated Subquery Factoring Clause
16 Sales History Datenmodell und Beispiel COUNTRIES * CUSTOMERS TIMES 0..* SALES PRODUCTS * * 1 72 The Underestimated Subquery Factoring Clause
17 Ausgangslage SELECT co.country_region, t.fiscal_year, COUNT(*) AS number_of_sales, COUNT(DISTINCT p.prod_id) AS distinct_products, COUNT(DISTINCT c.cust_id) AS distinct_customers FROM sales s INNER JOIN customers c ON c.cust_id = s.cust_id INNER JOIN countries co ON co.country_id = c.country_id INNER JOIN products p ON p.prod_id = s.prod_id INNER JOIN times t ON t.time_id = s.time_id WHERE co.country_region IN ('Oceania', 'Asia') AND p.prod_category_desc = 'Photo' GROUP BY co.country_region, t.fiscal_year ORDER BY co.country_region, t.fiscal_year COUNTRY_REGION FISCAL_YEAR NUMBER_OF_SALES DISTINCT_PRODUCTS DISTINCT_CUSTOMERS Asia Asia Oceania Oceania Oceania Oceania The Underestimated Subquery Factoring Clause
18 Execution Plan Id Operation Name Rows Bytes TempSpc Cost (%CPU) SELECT STATEMENT (9) 1 SORT GROUP BY (9) * 2 HASH JOIN 130K 9337K 4257 (8) 3 TABLE ACCESS FULL TIMES (4) * 4 HASH JOIN 130K 7802K 4224 (8) * 5 TABLE ACCESS FULL COUNTRIES (0) * 6 HASH JOIN 382K 17M 1200K 4208 (8) 7 TABLE ACCESS FULL CUSTOMERS K 363 (3) * 8 HASH JOIN 382K 13M 2708 (11) * 9 TABLE ACCESS FULL PRODUCTS (0) 10 PARTITION RANGE ALL 2756K 44M 2616 (8) 11 TABLE ACCESS FULL SALES 2756K 44M 2616 (8) Predicate Information (identified by operation id): access("t"."time_id"="s"."time_id") 4 - access("co"."country_id"="c"."country_id") 5 - filter("co"."country_region"='asia' OR "CO"."COUNTRY_REGION"='Oceania') 6 - access("c"."cust_id"="s"."cust_id") 8 - access("p"."prod_id"="s"."prod_id") 9 - filter("p"."prod_category_desc"='photo') The Underestimated Subquery Factoring Clause
19 Analyse 1/2 Sales Intermediate Result Set 1 Intermediate Result Set 2 Products Intermediate Result Set 3 Customers 15% Execution Plan als Left-Deep Tree Result Set 30% Countries Times Problem schlechte Antwortzeit Ursache Execution Plan als Left-Deep Tree ist ineffizient Products, Sales, Customers, Countries werden zu spät gefiltert Join von irrelevanten Customers zu grosses Zwischenresultat Grösserer Bedarf an Memory und allenfalls Temp. Space Join benötigt mehr CPU Oracle kennt keine tabellenübergreifende Statistiken 30% Countries 30% Customers 15% Products15% Sales The Underestimated Subquery Factoring Clause
20 Analyse 2/2 Sales Intermediate Result Set 1 Products Intermediate Result Set 3 15% Execution Plan als Bushy Tree Result Set Customers Times Intermediate Result Set 2 30% Countries Lösungsansatz Join zwischen Customers und Countries früher ausführen Execution Plan als Bushy Tree Varianten um Join Reihenfolge anzupassen Strukturen erstellen, löschen Statistiken erstellen, fälschen Oracle Parameter ändern Stored Outlines erstellen, ändern SQL Profiles anwenden Hints anwenden Refactoring der Query (umformulieren) The Underestimated Subquery Factoring Clause
21 Hinting V1 SELECT /*+leading(co c) */ co.country_region, t.fiscal_year, COUNT(*) AS number_of_sales, COUNT(DISTINCT p.prod_id) AS distinct_products, COUNT(DISTINCT c.cust_id) AS distinct_customers FROM sales s INNER JOIN customers c ON c.cust_id = s.cust_id INNER JOIN countries co ON co.country_id = c.country_id INNER JOIN products p ON p.prod_id = s.prod_id INNER JOIN times t ON t.time_id = s.time_id WHERE co.country_region IN ('Oceania', 'Asia') AND p.prod_category_desc = 'Photo' GROUP BY co.country_region, t.fiscal_year ORDER BY co.country_region, t.fiscal_year COUNTRY_REGION FISCAL_YEAR NUMBER_OF_SALES DISTINCT_PRODUCTS DISTINCT_CUSTOMERS Asia Asia Oceania Oceania Oceania Oceania The Underestimated Subquery Factoring Clause
22 Hinting V1 Execution Plan Id Operation Name Rows Bytes Cost (%CPU) SELECT STATEMENT (12) 1 SORT GROUP BY (12) * 2 HASH JOIN 130K 9337K 3141 (11) 3 TABLE ACCESS FULL TIMES (4) * 4 HASH JOIN 130K 7802K 3108 (11) * 5 TABLE ACCESS FULL PRODUCTS (0) * 6 HASH JOIN 943K 35M 3074 (10) * 7 HASH JOIN K 369 (4) * 8 TABLE ACCESS FULL COUNTRIES (0) 9 TABLE ACCESS FULL CUSTOMERS K 363 (3) 10 PARTITION RANGE ALL 2756K 105M 2616 (8) 11 TABLE ACCESS FULL SALES 2756K 105M 2616 (8) Predicate Information (identified by operation id): access("t"."time_id"="s"."time_id") 4 - access("p"."prod_id"="s"."prod_id") 5 - filter("p"."prod_category_desc"='photo') 6 - access("c"."cust_id"="s"."cust_id") 7 - access("co"."country_id"="c"."country_id") 8 - filter("co"."country_region"='asia' OR "CO"."COUNTRY_REGION"='Oceania')!"# $%$ Gleicher Execution Plan mit pga_aggregate_target >= 12M statt leading Hint (Alternative Ausgangslage) The Underestimated Subquery Factoring Clause
23 Hinting V2 SELECT /*+leading(co c p s) */ co.country_region, t.fiscal_year, COUNT(*) AS number_of_sales, COUNT(DISTINCT p.prod_id) AS distinct_products, COUNT(DISTINCT c.cust_id) AS distinct_customers FROM sales s INNER JOIN customers c ON c.cust_id = s.cust_id INNER JOIN countries co ON co.country_id = c.country_id INNER JOIN products p ON p.prod_id = s.prod_id INNER JOIN times t ON t.time_id = s.time_id WHERE co.country_region IN ('Oceania', 'Asia') AND p.prod_category_desc = 'Photo' GROUP BY co.country_region, t.fiscal_year ORDER BY co.country_region, t.fiscal_year COUNTRY_REGION FISCAL_YEAR NUMBER_OF_SALES DISTINCT_PRODUCTS DISTINCT_CUSTOMERS Asia Asia Asia Asia Oceania Oceania Oceania Oceania The Underestimated Subquery Factoring Clause
24 Hinting V2 Execution Plan Id Operation Name Rows Cost (%CPU) SELECT STATEMENT (1) 1 TEMP TABLE TRANSFORMATION 2 LOAD AS SELECT SYS_TEMP_0FD9D * 3 HASH JOIN (4) * 4 TABLE ACCESS FULL COUNTRIES 6 3 (0) 5 TABLE ACCESS FULL CUSTOMERS (3) 6 SORT GROUP BY (1) * 7 HASH JOIN (1) 8 TABLE ACCESS FULL SYS_TEMP_0FD9D (8) * 9 HASH JOIN (1) 10 TABLE ACCESS FULL TIMES (4) * 11 HASH JOIN (1) * 12 TABLE ACCESS FULL PRODUCTS 10 3 (0) 13 PARTITION RANGE ALL 130K (1) 14 TABLE ACCESS BY LOCAL INDEX ROWID SALES 130K (1) 15 BITMAP CONVERSION TO ROWIDS 16 BITMAP AND &$" '( ) 17 BITMAP MERGE 18 BITMAP KEY ITERATION 19 BUFFER SORT * 20 TABLE ACCESS FULL PRODUCTS 10 3 (0) * 21 BITMAP INDEX RANGE SCAN SALES_PROD_BIX 22 BITMAP MERGE 23 BITMAP KEY ITERATION 24 BUFFER SORT 25 TABLE ACCESS FULL SYS_TEMP_0FD9D 1 2 (0) * 26 BITMAP INDEX RANGE SCAN SALES_CUST_BIX The Underestimated Subquery Factoring Clause
25 Hinting V3 SELECT /*+leading(co c p s) no_star_transformation */ co.country_region, t.fiscal_year, COUNT(*) AS number_of_sales, COUNT(DISTINCT p.prod_id) AS distinct_products, COUNT(DISTINCT c.cust_id) AS distinct_customers FROM sales s INNER JOIN customers c ON c.cust_id = s.cust_id INNER JOIN countries co ON co.country_id = c.country_id INNER JOIN products p ON p.prod_id = s.prod_id INNER JOIN times t ON t.time_id = s.time_id WHERE co.country_region IN ('Oceania', 'Asia') AND p.prod_category_desc = 'Photo' GROUP BY co.country_region, t.fiscal_year * ORDER BY co.country_region, t.fiscal_year COUNTRY_REGION FISCAL_YEAR NUMBER_OF_SALES DISTINCT_PRODUCTS DISTINCT_CUSTOMERS Asia Asia Asia Oceania Oceania Oceania The Underestimated Subquery Factoring Clause
26 Hinting V3 Execution Plan Id Operation Name Rows Bytes TempSpc Cost (%CPU) SELECT STATEMENT (3) 1 SORT GROUP BY (3) * 2 HASH JOIN 130K 9337K (3) 3 TABLE ACCESS FULL TIMES (4) * 4 HASH JOIN 130K 7802K 10M (3) 5 MERGE JOIN CARTESIAN 189K 8158K (2) * 6 HASH JOIN K 369 (4) * 7 TABLE ACCESS FULL COUNTRIES (0) 8 TABLE ACCESS FULL CUSTOMERS K 363 (3) $ (1 9 BUFFER SORT (2) * 10 TABLE ACCESS FULL PRODUCTS (0) 11 PARTITION RANGE ALL 2756K 44M 2616 (8) 12 TABLE ACCESS FULL SALES 2756K 44M 2616 (8) Predicate Information (identified by operation id): access("t"."time_id"="s"."time_id") 4 - access("p"."prod_id"="s"."prod_id" AND "C"."CUST_ID"="S"."CUST_ID") 6 - access("co"."country_id"="c"."country_id") 7 - filter("co"."country_region"='asia' OR "CO"."COUNTRY_REGION"='Oceania') 10 - filter("p"."prod_category_desc"='photo') + #$,-. /%! 0$ The Underestimated Subquery Factoring Clause
27 Refactoring & Hinting WITH cc AS ( SELECT /*+no_merge cardinality(3000) */ c.cust_id, co.country_region FROM countries co INNER JOIN customers c ON c.country_id = co.country_id WHERE co.country_region IN ('Oceania', 'Asia') ) SELECT /*+index(s) */ cc.country_region, t.fiscal_year, COUNT(*) AS number_of_sales, COUNT(DISTINCT p.prod_id) AS distinct_products, COUNT(DISTINCT cc.cust_id) AS distinct_customers FROM sales s INNER JOIN cc ON cc.cust_id = s.cust_id INNER JOIN products p ON p.prod_id = s.prod_id INNER JOIN times t ON t.time_id = s.time_id WHERE p.prod_category_desc = 'Photo' GROUP BY cc.country_region, t.fiscal_year ORDER BY cc.country_region, t.fiscal_year * COUNTRY_REGION FISCAL_YEAR NUMBER_OF_SALES DISTINCT_PRODUCTS DISTINCT_CUSTOMERS Asia Oceania The Underestimated Subquery Factoring Clause
28 Refactoring & Hinting Execution Plan Id Operation Name Rows Cost (%CPU) SELECT STATEMENT (1) 1 SORT GROUP BY (1) * 2 HASH JOIN 162K (1) 3 TABLE ACCESS FULL TIMES (4) * 4 HASH JOIN 162K (1) 5 VIEW (4) * 6 HASH JOIN (4) * 7 TABLE ACCESS FULL COUNTRIES 6 3 (0) 8 TABLE ACCESS FULL CUSTOMERS (3) 9 TABLE ACCESS BY LOCAL INDEX ROWID SALES (1) 10 NESTED LOOPS 382K (1) * 11 TABLE ACCESS FULL PRODUCTS 10 3 (0) 12 PARTITION RANGE ALL 13 BITMAP CONVERSION TO ROWIDS * 14 BITMAP INDEX SINGLE VALUE SALES_PROD_BIX Predicate Information (identified by operation id): access("t"."time_id"="s"."time_id") 4 - access("cc"."cust_id"="s"."cust_id") 6 - access("c"."country_id"="co"."country_id") 7 - filter("co"."country_region"='asia' OR "CO"."COUNTRY_REGION"='Oceania') 11 - filter("p"."prod_category_desc"='photo') 14 - access("p"."prod_id"="s"."prod_id") +$%234$$" ( 56" (3 7 (5 8(+8 9: " ( - The Underestimated Subquery Factoring Clause
29 Übersicht der Resultate Fall Hints Laufzeit in Sek. Bemerkungen Ausgangslage - ~ 5.5 Countries Join erfolgt zu spät Hinting V1 leading(co c) ~ 4.1 Products Join erfolgt zu spät Hinting V2 leading(co c p s) ~ 1.0 Hint forciert Star Transformation Hinting V3 leading(co c p s) no_star_transformation ~ 3.8 Hint forciert Cartesian Join Refactoring & Hinting no_merge cardinality(3000) Index(s) ~ 0.8 Gewünschter Execution Plan The Underestimated Subquery Factoring Clause
30 Sales History Tuning Fall: Fazit Verwende die Subquery Factoring Clause in Kombination mit Hints um einen Execution Plan als Bushy Tree zu forcieren Das Mass unserer Dinge ist die Höhe Ihrer Ansprüche. Hints sind in einer Subquery Factory Clause gezielt und dosiert einsetzbar z.b. no_merge Hint um einen Join in einer Subquery Factoring Clause zu erzwingen, aber dem CBO die Wahl zu lassen wann und wie oft dieser Join auszuführen ist The Underestimated Subquery Factoring Clause
31 Agenda Einführung Sales History Tuning Fall Komplexe Abfragen Daten sind immer im Spiel. Tipps & Tricks Zusammenfassung The Underestimated Subquery Factoring Clause
32 McGyver Taschenlampe The Underestimated Subquery Factoring Clause
33 Die Anforderungen Alle Berechtigungen eines Benutzers anzeigen Direkte System Privilegien Direct Grant Identifikator System Privilegien aufgrund Privileg direkt an Benutzer vergeben rekursiv aufgelöster Rollen Blatt Identifikator Berechtigte Rollen/Privilegien Rollen ohne Sub-Rollen System Privilegien USERNAME PRIV GRANTED_PRIV DIRECT_GRANT IS_LEAF OLAPSYS SELECT ANY TABLE OLAP_DBA N Y OLAPSYS SELECT ANY TABLE SELECT ANY TABLE Y Y SCOTT SELECT ANY TABLE DBA N Y SYS SELECT ANY TABLE DBA N Y SYS SELECT ANY TABLE EXP_FULL_DATABASE N Y SYS SELECT ANY TABLE IMP_FULL_DATABASE N Y SYS SELECT ANY TABLE OLAP_DBA N Y SYS SELECT ANY TABLE SELECT ANY TABLE Y Y SYSMAN SELECT ANY TABLE DBA N Y SYSTEM SELECT ANY TABLE DBA N Y SYSTEM SELECT ANY TABLE SELECT ANY TABLE Y Y The Underestimated Subquery Factoring Clause
34 Query Teil 1 von 4 WITH -- roles-privileges as recursive structure priv AS ( -- roles without parent (=roots) SELECT ROLE AS priv, NULL AS parent_priv FROM dba_roles WHERE ROLE NOT IN (SELECT granted_role FROM role_role_privs) UNION ALL -- roles granted to roles SELECT granted_role AS priv, ROLE AS parent_priv FROM role_role_privs UNION ALL -- system privileges granted to roles SELECT PRIVILEGE AS priv, grantee AS parent_priv FROM dba_sys_privs WHERE grantee IN (SELECT ROLE FROM dba_roles) ) The Underestimated Subquery Factoring Clause
35 Query Teil 2 von 4 -- complete hierarchy as tree view, tree AS ( SELECT priv, parent_priv, sys_connect_by_path(priv, '/') '/' AS priv_path, CASE WHEN connect_by_isleaf = '0' THEN 'N' ELSE 'Y' END AS is_leaf -- 10g Style FROM priv CONNECT BY PRIOR priv = parent_priv ) -- complete hierarchy as graph view, graph AS ( SELECT priv, substr(priv_path, 2, instr(priv_path, '/', 2) - 2) AS parent_priv, is_leaf FROM tree ) The Underestimated Subquery Factoring Clause
36 Query Part 3 von 4 -- user privileges (user system privileges and user roles), upriv AS ( -- system privileges granted to users SELECT u.username, p.privilege AS priv FROM dba_sys_privs p INNER JOIN dba_users u ON u.username = p.grantee UNION ALL -- roles granted to users SELECT u.username, p.granted_role AS priv FROM dba_role_privs p INNER JOIN dba_users u ON u.username = p.grantee ) The Underestimated Subquery Factoring Clause
37 Query Teil 4 von 4 -- user privileges as graph view, ugraph AS ( SELECT DISTINCT upriv.username, graph.priv, CAST(graph.parent_priv AS VARCHAR2(30)) AS granted_priv, CASE WHEN graph.priv = graph.parent_priv THEN 'Y' ELSE 'N' END AS direct_grant, graph.is_leaf FROM upriv INNER JOIN graph ON upriv.priv = graph.parent_priv ) -- main SELECT username, priv, granted_priv, direct_grant, is_leaf FROM ugraph WHERE priv = 'SELECT ANY TABLE' ORDER BY username, PRIV, granted_priv; The Underestimated Subquery Factoring Clause
38 Inline Views versus Subquery Factoring Clause SELECT username, priv, granted_priv, direct_grant, is_leaf FROM (SELECT FROM (SELECT ) upriv, (SELECT FROM (SELECT FROM (SELECT ) priv ) tree ) graph ) ugraph WHERE priv = 'SELECT ANY TABLE' ORDER BY username, PRIV, granted_priv; WITH priv AS (SELECT ), tree AS (SELECT FROM priv ), graph AS (SELECT FROM tree ), upriv AS (SELECT ), ugraph AS (SELECT FROM upriv, graph ) SELECT username, priv, granted_priv, direct_grant, is_leaf FROM ugraph WHERE priv = 'SELECT ANY TABLE' ORDER BY username, PRIV, granted_priv; The Underestimated Subquery Factoring Clause
39 Komplexe Abfragen: Fazit Komplexe Queries als Folge von einfachen Subqueries schreiben Ähnliches Konzept wie Pipes Das Mass unserer Dinge ist die Höhe Ihrer Ansprüche. Die Subquery Factoring Clause ist immer durch mehrere, geschachtelte Inline Views ersetzbar, aber die Konsequenzen sind: Sich wiederholende Subqueries Schlechtere Lesbarkeit und Wartbarkeit The Underestimated Subquery Factoring Clause
40 Agenda Einführung Sales History Tuning Fall Komplexe Abfragen Daten sind immer im Spiel. Tipps & Tricks Zusammenfassung The Underestimated Subquery Factoring Clause
41 Tipps & Tricks (1) Falls das eingesetzte Werkzeug die Subquery Factoring Clause nicht unterstützt: SELECT * FROM ( WITH query_name AS (subquery) [, query_name AS (subquery) ] SELECT... ) Dieser Inline View Workaround hilft auch Fehlermeldungen der Formatierungs-Werkzeuge zu vermeiden Toad unterstützt WITH Klausel SQL Navigator unterstützt WITH Klausel SQL Developer unterstützt WITH Klausel PL/SQL Developer unterstützt WITH Klausel in PL/SQL benötigt Workaround für SQL Die Limitierung auf eine WITH Klausel per SQL Statement kann in einigen Fällen mit Hilfe des Inline View Workarounds umgangen werden. Jede WITH Klausel definiert aber ihren eigenen Namensraum! The Underestimated Subquery Factoring Clause
42 Tipps & Tricks (2) Bug verhindert allenfalls die Nutzung der Subquery Factoring Clause in Views, weil die in Subqueries verwendeten Objekte ebenfalls berechtigt werden müssen (gelöst in 10.2) Falls predicate pushing in geschachtelten Strukturen nicht funktioniert: Context Variablen Bind Variablen Dynamisches SQL Table Function Um das Debugging eines Query Subsets zu vereinfachen: Subqueries aufgrund ihrer Zusammengehörigkeit ordnen -- für Kommentare verwenden --+ für Hints verwenden /* */ Syntax reservieren, um ganze Query Blöcke auszukommentieren The Underestimated Subquery Factoring Clause
43 Zusammenfassung Die Subquery Factoring Clause ist eine gute Alternative für jede Inline View, um die Lesbarkeit und Wartbarkeit zu erhöhen Das Mass unserer Dinge ist die Höhe Ihrer Ansprüche. Die Subquery Factoring Clause unterstützt den CBO gezielt bei seiner Arbeit; typische Hints in Subqueries sind no_merge, merge materialize, inline oder dynamic_sampling cardinality opt_estimate table_stats, column_stats, index_stats Die Subquery Factoring Clause erhöht die Kontrolle der Query Verarbeitung The Underestimated Subquery Factoring Clause
44 Vielen Dank!? Basel Baden Bern Lausanne Zürich Düsseldorf Frankfurt/M. Freiburg i. Br. Hamburg München Stuttgart Wien
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
MehrOptimale 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
MehrArt 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
MehrWITH or WITHout you - Komfort-SQL in Oracle 12c Dr.-Ing. Holger Friedrich sumit AG
WITH or WITHout you - Komfort-SQL in Oracle 12c Dr.-Ing. Holger Friedrich sumit AG Schlüsselworte Subquery Factoring, WITH-Clause, Entwicklung, Performance, Optimiser Einleitung Oracle SQL enthält diverse
MehrIT-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
MehrSpeed 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
MehrGenerieren 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;
MehrOracle 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
MehrCritical Patch Update und Ihre Applikation funktioniert noch?
Critical Patch Update und Ihre Applikation funktioniert noch? Sven Vetter Principal Consultant / Partner sven.vetter@trivadis.com DOAG Stuttgart, 19.07.2007 Basel Baden Bern Lausanne Zürich Düsseldorf
MehrSQL 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
MehrOracle 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.
MehrUrs 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
MehrStarView: mit statischem SQL dynamische Abfragen auf StarSchema
StarView: mit statischem SQL dynamische Abfragen auf StarSchema DOAG Konferenz 2013 Nürnberg, 19.-21. November 2013 Slavomir Nagy metafinanz Informationssysteme GmbH Wir fokussieren mit unseren Services
MehrAnalytische Funktionen erfolgreich eingesetzt
Analytische Funktionen erfolgreich eingesetzt Dani Schnider Trivadis AG Glattbrugg, Schweiz Schlüsselworte: Analytische Funktionen, SQL, Performance Optimierung, Data Warehousing Zusammenfassung Analytische
MehrManuelles 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
MehrPerformance-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»
MehrNü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
MehrOptimiertes 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
MehrOracle 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
MehrLaden von Data Marts auch mal komplex DOAG BI, 9. Juni 2016 Dani Schnider, Trivadis AG
Laden von Data Marts auch mal komplex DOAG BI, 9. Juni 2016 Dani Schnider, Trivadis AG BASEL BERN BRUGG DÜSSELDORF FRANKFURT A.M. FREIBURG I.BR. GENEVA HAMBURG COPENHAGEN LAUSANNE MUNICH STUTTGART VIENNA
MehrInhalt. Behandlung von Views durch den CBO View Merging Predicate Pushing Complex View Merging Hints in Views Globale Hints. Dr.
Inhalt Behandlung von Views durch den CBO View Merging Predicate Pushing Complex View Merging Hints in Views Globale Hints Dr.Frank Haney 1 Behandlung von Views durch den CBO View Merging bedeutet, daß
MehrOracle 8i und 9i New Features. DOAG November Peter Jensch, Trivadis GmbH
Oracle 8i und 9i New Features DOAG November 200 Peter Jensch, Trivadis GmbH Facts & Figures Über 300 Mitarbeiter (D und CH) Über 200 Oracle Consultant Über 300 Kunden (ohne Schulung) Über 000 Projekte
MehrOptimale Performance durch Constraints im Data Warehouse
Optimale Performance durch Constraints im Data Warehouse Dani Schnider Trivadis AG Zürich/Glattbrugg, Schweiz Einleitung Die Frage, ob und in welchem Umfang Datenbankconstraints in einem Data Warehouse
MehrDie bisher bereits bekannten Aggregatsfunktionen MIN, MAX, SUM, AVG, COUNT, VARIANCE und STDDEV wurden um FIRST und LAST erweitert.
Betrifft Autor FIRST, LAST Markus Jägle (markus.jaegle@trivadis.com) Art der Info Technische Background Info (April 2002) Quelle Aus dem NF9i-Kurs, NF9i-Techno-Circle der Trivadis und Oracle9i Data Warehousing
MehrUsername and password privileges. Rechteverwaltung. Controlling User Access. Arten von Rechten Vergabe und Entzug von Rechten DBS1 2004
Arten von Rechten Vergabe und Entzug von Rechten Seite 1 Controlling User Access Database administrator Username and password privileges Users Seite 2 Privileges Database security System security Data
MehrNutzung 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
MehrExplain 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:
Mehrselect DISTINCT Name, ort From Verkauf; selektiert Name und Ort von Tabelle Verkauf - DISTINCT steht dass keine Zeile mehrfach vorkommt
Some SQL Queries % you can use them with the project Buch/Verlag select Name, ort From Verkauf; selektiert Name und Ort von Tabelle Verkauf select DISTINCT Name, ort From Verkauf; selektiert Name und Ort
MehrFortgeschrittene SQL-Techniken für APEX-Formulare und Reports
Fortgeschrittene SQL-Techniken für APEX-Formulare und Reports Andreas Wismann WHEN OTHERS Beratung Projektmanagement Coaching rund um Oracle Application Express rund um Application Express Beratung Projektmanagement
MehrOracle Analytic Functions
Mittwoch, 13.02.2008, 17:00 Uhr Regionaltreffen München/Südbayern Oracle Analytic Functions Seit Jahren auf dem Markt (8.1.6), jedoch unbekannt und selten im Einsatz S e i t e 1 Agenda Einsatzmöglichkeiten
MehrOracle 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
MehrOracle 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
MehrErzeugung 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
MehrSQL Developer Unit Tests
Perry Pakull Principal Consultant Trivadis AG BASEL BERN BRUGG LAUSANNE ZÜRICH DÜSSELDORF FRANKFURT A.M. FREIBURG I.BR. HAMBURG MÜNCHEN STUTTGART WIEN 1 @PerryPakull Principal Consultant Trivadis AG in
MehrArt der Info: Technische Background Info Teil 1 (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 1 (April 2002) Quelle: Aus dem NF9i-Kurs und NF9i-Techno-Circle
MehrData Warehouse schnell gemacht Performanceaspekte im Oracle DWH
Data Warehouse schnell gemacht Performanceaspekte im Oracle DWH Dani Schnider Principal Consultant Business Intelligence BI Trilogie, Zürich/Basel 25./26. November 2009 Basel Baden Bern Lausanne Zürich
MehrEnrico Genauck 37327 IN04
ANFRAGEOPTIMIERUNG IN ORACLE Enrico Genauck 37327 IN04 An!ageoptimierung in Oracle 1 ANFRAGEOPTIMIERUNG IN ORACLE Enrico Genauck 37323 IN04 Einleitung Die Optimierung einer Anfrage an eine relationale
MehrSQL Intensivpraktikum SS 2008
SQL Intensivpraktikum SS 2008 Aggregation von Daten Arbeit mit Gruppen SQL1 basierend auf OAI-Kurs Copyright Oracle Corporation, 1998. All rights reserved. Gruppenfunktionen Gruppenfunktionen verarbeiten
MehrOracle 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
MehrListener: 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)
MehrDie Datenmanipulationssprache SQL
Die Datenmanipulationssprache SQL Daten eingeben Daten ändern Datenbank-Inhalte aus Dateien laden Seite 1 Data Manipulation Language A DML statement is executed when you Add new rows to a table Modify
MehrOracle9i Designer. Rainer Willems. Page 1. Leitender Systemberater Server Technology Competence Center Frankfurt Oracle Deutschland GmbH
Oracle9i Designer Rainer Willems Leitender Systemberater Server Technology Competence Center Frankfurt Oracle Deutschland GmbH Page 1 1 Agenda 9i Designer & 9i SCM in 9i DS Design Server Generierung &
MehrIndex- und Zugriffsstrukturen für. Holger Brämer, 05IND-P
Index- und Zugriffsstrukturen für Data Warehousing Holger Brämer, 05IND-P Index- und Zugriffstrukturen für Data Warehousing Materialisierte Sichten Bitmap-Indexe Verbundindexe Materialisierte Sichten gehören
MehrFunktionen. Ü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
MehrCarsten Czarski Oracle Deutschland B.V. & Co KG. Keine Angst vor SQL Injection oder Wie man Datenbankzugriffe sicher implementiert
Carsten Czarski Oracle Deutschland B.V. & Co KG Keine Angst vor SQL Injection oder Wie man Datenbankzugriffe sicher implementiert Keine Angst vor SQL Injection oder "Wie man Datenbankzugriffe
MehrDer 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
MehrViews erzeugen. Datenbank - Objekte. Wozu braucht man Views? Was ist eine View?
Datenbank - Objekte Views erzeugen Objekt Tabelle View Sequence Index Synonym Objekt Beschreibung Basiseinheit zum Speichern; besteht aus Zeilen und Spalten; Logische Repräsentation; kann Teilmengen von
MehrISU 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
MehrPrakt. Datenbankprogrammierung. Sommersemester 2005
Prakt. Datenbankprogrammierung Sommersemester 2005 A,2: Hierarchische Anfragen Martin-Luther-Universität Halle, Institut für Informatik, Datenbanken Christian Goldberg Wann ist eine hierarchische Anfrage
MehrOracle 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,
MehrOracle 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
MehrANFRAGEOPTIMIERUNG 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
MehrMySQL 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
MehrAutomatisierte Datenmigration mit dynamischen SQL
Automatisierte Datenmigration mit dynamischen SQL Rolf Wesp Consultant Rolf.Wesp@trivadis.com Düsseldorf, 27. Oktober 2009 Baden Basel Bern Brugg Lausanne Zürich Düsseldorf Frankfurt/M. Freiburg i. Br.
MehrGliederung. 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:
MehrErhö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
MehrIndexing 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
Mehr10 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
MehrEinfü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
MehrAbfragen (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
MehrIndex 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
MehrORACLE 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
MehrSQL 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
MehrSpeed up your Query - Strategien zur Optimierung von SQL-Queries
Speed up your Query - Strategien zur Optimierung von SQL-Queries Ulrike Brenner click-click IT Solutions e.u. Wien Schlüsselworte: SQL, Performance Tuning Einleitung SQL-Queries, obwohl Basis all unserer
MehrFEHLERTOLERANTE LADEPROZESSE IN ORACLE
FEHLERTOLERANTE LADEPROZESSE IN ORACLE GEGEN SCHLAFLOSE NÄCHTE DOAG BI Konferenz 2012 Dani Schnider Trivadis AG München, BASEL BERN LAUSANNE ZÜRICH DÜSSELDORF FRANKFURT A.M. FREIBURG I.BR. HAMBURG MÜNCHEN
MehrDieser Foliensatz darf frei verwendet werden unter der Bedingung, dass diese Titelfolie nicht entfernt wird.
Thomas Studer Relationale Datenbanken: Von den theoretischen Grundlagen zu Anwendungen mit PostgreSQL Springer, 2016 ISBN 978-3-662-46570-7 Dieser Foliensatz darf frei verwendet werden unter der Bedingung,
MehrDatenschutz: Zugriffsrechte in SQL
12. Datenschutz: Zugriffsrechte in SQL 12-1 12. Datenschutz: Zugriffsrechte in SQL 12-2 Inhalt Datenschutz: Zugriffsrechte in SQL 1. Anforderungen, Allgemeines 2. Die SQL-Befehle GRANT und REVOKE 3. Sichten
MehrIndex 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
MehrWS 2010/11 Datenbanksysteme Fr 15:15 16:45 R 1.008. Vorlesung #5. SQL (Teil 3)
Vorlesung #5 SQL (Teil 3) Fahrplan Besprechung der Übungsaufgaben Rekursion Rekursion in SQL-92 Rekursion in DBMS- Dialekten (Oracle und DB2) Views (Sichten) - gespeicherte Abfragen Gewährleistung der
MehrAuf einen Blick. Abfrage und Bearbeitung. Erstellen einer Datenbank. Komplexe Abfragen. Vorwort... 13
Auf einen Blick Vorwort... 13 Teil 1 Vorbereitung Kapitel 1 Einleitung... 17 Kapitel 2 SQL der Standard relationaler Datenbanken... 21 Kapitel 3 Die Beispieldatenbanken... 39 Teil 2 Abfrage und Bearbeitung
MehrKomplexe XML-Dokumente über XSU und Objekt-Typen aus der Datenbank generieren
Komplexe XML-Dokumente über XSU und Objekt-Typen aus der Datenbank generieren Autor: Norbert Bahn, Opitz Consulting DOAGNews Q3_2005 Dieses Werk ist urheberrechtlich geschützt. Die dadurch begründeten
MehrAuf einen Blick. Abfrage und Bearbeitung. Erstellen einer Datenbank. Komplexe Abfragen. Vorwort 13
Auf einen Blick Vorwort 13 Teil 1 Vorbereitung Kapitel 1 Einleitung 17 Kapitel 2 SQL - der Standard relationaler Datenbanken 21 Kapitel 3 Die Beispieldatenbanken 39 Teil 2 Abfrage und Bearbeitung Kapitel
MehrDatawarehouses, Materialized Views, Materialized View Logs, Query Rewrite
Betrifft DWH1: Materialized Views für Data-Warehouses Art der Info Technische Info, Oracle8i Quelle Aus dem AI8-EF Kurs der Trivadis (Enterprise Features) Autor Andri Kisseleff (andri.kisseleff@trivadis.com)
Mehr<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.
MehrWie sicher sind Ihre Daten in der DB?
Wie sicher sind Ihre Daten in der DB? Sven Vetter Technology Manager Principal Consultant, Partner DOAG Konferenz Nürnberg, 16.11.2010 Basel Bern Lausanne Zürich Düsseldorf Frankfurt/M. Freiburg i. Br.
MehrSQL aus der Praxis Neue Funktionen für Bäume und Beispiele für Analytic functions
SQL aus der Praxis Neue Funktionen für Bäume und Beispiele für Analytic functions Autor: Helmut Skarka DOAG 2008 pdv Technische Automation + Systeme GmbH, 2008 www.pdv-tas.de Seite 1 ÜBERBLICK Im folgenden
MehrCopyright 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
MehrDatenbanken Labor, MI : Übung 1 SQL - Abfragen Patrick Lipinski
Aufgabe 1 Erstellen Sie eine Abfrage, die aus der EMP/DEPT-Tabelle die Felder Empno, Ename, Deptno und dname aller Mitarbeiter mit einem Gehalt von > 2500 ausgibt. select EMPNO, ENAME from EMP where SAL
MehrNeue 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
MehrIntroduction to Data and Knowledge Engineering. 6. Übung SQL
Introduction to Data and Knowledge Engineering 6. Übung SQL Aufgabe 6.1 Datenbank-Schema Buch PK FK Autor PK FK ISBN Titel Preis x ID Vorname Nachname x BuchAutor ISBN ID PK x x FK Buch.ISBN Autor.ID FB
MehrObjekt-relationales Datenbanksystem Oracle
Objekt-relationales Datenbanksystem Oracle 1 Benutzerdefinierte Datentypen 1.1 Unvollständige Typen create-incomplete-type OR 1.2 Kollektionstypen REPLACE TYPE type-name create-varray-type OR TYPE type-name
MehrNeuerungen in Marco Patzwahl MuniQSoft GmbH Unterhaching
Neuerungen in 12.2 Marco Patzwahl MuniQSoft GmbH Unterhaching Schlüsselworte Neuerungen in 12.2, DBA Einleitung Jede neue Datenbankversion bringt diverse Neuerungen mit. Nur welche sind wichtig und welche
MehrMulti-temporale Datenbank Features in Oracle 12c Philipp Salvisberg
Multi-temporale Datenbank Features in Oracle 12c Philipp Salvisberg Senior Principal Consultant November 2013 Oracle 12c hat ein neues Feature namens "Temporal Validity". Mit Temporal Validity können eine
MehrMIN 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
MehrSQL als ETL Tool. DOAG Konferenz Nürnberg 2014 Christian König, CGI Business Intelligence Expert 18. November CGI Group Inc.
SQL als ETL Tool DOAG Konferenz Nürnberg 2014 Christian König, CGI Business Intelligence Expert 18. November 2014 CGI Group Inc. Referent: Christian König Business Intelligence Expert, CGI (Germany) GmbH
MehrInhaltsverzeichnis. Vorwort Kapitel 1 Einleitung... 15
Vorwort..................................................... 13 Kapitel 1 Einleitung.......................................... 15 Kapitel 2 SQL der Standard relationaler Datenbanken... 19 2.1 Die Geschichte................................
MehrOracle OLAP 11g: Performance für das Oracle Data Warehouse
Oracle OLAP 11g: Performance für das Oracle Data Warehouse Marc Bastien Oracle BI Presales Agenda Performanceprobleme in Oracle DWH: gibt s das überhaupt? Mögliche Gründe und Lösungen
MehrAPEX Datenverwaltung Wo sind die Daten gerade? Dr. Gudrun Pabst
APEX Datenverwaltung Wo sind die Daten gerade? Dr. Gudrun Pabst Basel Bern Lausanne Zürich Düsseldorf Frankfurt/M. Freiburg i. Br. Hamburg München Stuttgart Wien Voraussetzungen Alles hier gezeigte benötigt
MehrÜ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
MehrOracle 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
MehrWiederholung VU Datenmodellierung
Wiederholung VU Datenmodellierung VU Datenbanksysteme Reinhard Pichler Arbeitsbereich Datenbanken und Artificial Intelligence Institut für Informationssysteme Technische Universität Wien Wintersemester
MehrDie View von der View von der View PERFORMANTES SQL SCHREIBEN
Die View von der View von der View PERFORMANTES SQL SCHREIBEN Schlüsselworte SQL, Performance, Optimizer Uwe Embshoff Airpas Aviation AG Braunschweig Einleitung Es gibt viel Literatur zum Thema Oracle
MehrAktuelle Entwicklungen
PostgreSQL Aktuelle Entwicklungen (Hans-Jürgen Schönig), [HACKERS] Are we losing momentum? Bruce Momjian: August 2003 Momjian Blog: Postgres Is Hot Bruche Momjian Blog: June 7, 2008 I have attended or
MehrOracle 10g Flashback. Andrea Held
Oracle 10g Flashback Andrea Held Seite 1-1 Agenda Flashback Technologien Architektur Anwendung Probleme Bewertung: Möglichkeiten und Grenzen Seite 1-2 Flashback Level Flashback Query Flashback Table Flashback
MehrDOAG 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
MehrDer SAS DataStep und die Prozedur SQL. 2014 Cellent Finance Solutions GmbH 05.06.2014 Seite: 1
Der SAS DataStep und die Prozedur SQL 2014 Cellent Finance Solutions GmbH 05.06.2014 Seite: 1 Zahlen und Fakten auf einen Blick Firmensitz: Geschäftsstellen: Branchenerfahrung: Umsatz: Anzahl Mitarbeiter:
MehrOracle 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
MehrSQL- Performance - Tips
SQL- Performance - Tips S.K. Consulting GmbH, München DB2_SQL_PERF - 1 - Inhaltsverzeichnis I. Aufwand und Kosten von Indexes II. Empfehlungen zum Anlegen von Indexes III. Empfehlungen zu Sortierungen
MehrInhalt. 1. Indextypen B*Baum-Index Reversed Key Index Bitmap Index Funktionsbasierter Index
Inhalt 1. Indextypen B*Baum-Index Reversed Key Index Bitmap Index Funktionsbasierter Index 2. Indexverwendung Vergleich von B*Baum und Bitmap Steuerung der Indexverwendung Richtlinien für die Indizierung
Mehr