Hints (definition 1) on Hints (definition 2)
|
|
- Moses Foster
- 6 years ago
- Views:
Transcription
1 Hints (definition 1) on Hints (definition 2) jonathanlewis.wordpress.com Who am I? Independent Consultant. 23+ years in IT 20+ using Oracle Strategy, Design, Review Briefings, Seminars Trouble-shooting jonathanlewis.wordpress.com One of the directors of the UKOUG Member of the Oak Table Network. Oracle Author of the year 2006 Select Editor s choice / 40 1
2 Highlights Guidelines for hinting Ignoring hints? Query Blocks - and getting lucky Precision matters Strategic hints 3 / 40 Guidelines for hinting 1. Don t 2. When you ignore #1 - be very careful 3. Try to stick to "strategic" (block level) hints 4. Check the outline for complete hinting 5. Test after every upgrade and patch 6. Test after every piece of associated DDL 4 / 40 2
3 Ignoring hints 1 Oracle MUST obey your hints Unless you ve got the syntax wrong Or you ve got the spelling wrong Or you ve got the context wrong Or the hint is illegal Or you have contradictory hints in one statement But the documentation on hints is poor There are 236 hints in (how many are documented?) select * from v$sql_hint 5 / 40 Ignoring hints 2 alter session set "_optimizer_ignore_hints"=true; /*+ IGNORE_OPTIM_EMBEDDED_HINTS */ And from one trace file I got: Trying or-expansion on query block SEL$1 (#0) USE_CONCAT hint was ignored. atom_hint=(@=221eaf74 err=0 resol=1 used=1 token=921 org=1 lvl=2 txt=use_concat (8) ) 6 / 40 3
4 Use of /*+ qb_name() */ (a) select /*+ qb_name(main) */ {list of columns} from t1, t3 where t1.n2 = 15 and exists (select /*+ qb_name(subq2) */ null from t2 where t2.n1 = 15 and t2.id = t1.id ) and t3.n1 = t1.n1 and t3.n2 = 15 and exists (select /*+ qb_name(subq4) */ null from t4 where t4.n1 = 15 and t4.id = t3.id ) 7 / 40 Use of /*+ qb_name() */ (b) select /*+ qb_name(main) no_unnest(@subq4) unnest(@subq2) leading(@sel$38f5b5f8 t1@main t3@main t2@subq2) no_push_subq(@subq4) index(@subq4 t4@subq4(id)) -- new style */ {list of columns} from t1, t3 where t1.n2 = 15 and exists (select /*+ qb_name(subq2) */... t2...) and t3.n1 = t1.n1 and t3.n2 = 15 and exists (select /*+ qb_name(subq4) */... t4...) 8 / 40 4
5 Use of /*+ qb_name() */ (c). Id Operation Name Rows 0 SELECT STATEMENT 1 1 FILTER 2 NESTED LOOPS SEMI 3 3 HASH JOIN TABLE ACCESS FULL T TABLE ACCESS FULL T TABLE ACCESS BY INDEX ROWID T2 1 7 INDEX UNIQUE SCAN T2_PK 1 8 TABLE ACCESS BY INDEX ROWID T4 1 9 INDEX UNIQUE SCAN T4_PK 1 Query Block Name / Object Alias (identified by operation id): 1 - SEL$38F5B5F8 4 - SEL$38F5B5F8 / T1@MAIN 5 - SEL$38F5B5F8 / T3@MAIN 6 - SEL$38F5B5F8 / T2@SUBQ2 7 - SEL$38F5B5F8 / T2@SUBQ2 8 - SUBQ4 / T4@SUBQ4 9 - SUBQ4 / T4@SUBQ4 9 / 40 Use of /*+ qb_name() */ (d) /*+ */ BEGIN_OUTLINE_DATA IGNORE_OPTIM_EMBEDDED_HINTS OPTIMIZER_FEATURES_ENABLE(' ') OPT_PARAM('_optimizer_cost_model' 'io') ALL_ROWS OUTLINE(@"SUBQ4") OUTLINE(@"MAIN") OUTLINE(@"SUBQ2") OUTLINE_LEAF(@"SUBQ4") OUTLINE_LEAF(@"SEL$38F5B5F8") UNNEST(@"SUBQ2") FULL(@"SEL$38F5B5F8" "T1"@"MAIN") FULL(@"SEL$38F5B5F8" "T3"@"MAIN") INDEX_RS_ASC(@"SEL$38F5B5F8" "T2"@"SUBQ2" ("T2"."ID")) LEADING(@"SEL$38F5B5F8" "T1"@"MAIN" "T3"@"MAIN" "T2"@"SUBQ2") USE_HASH(@"SEL$38F5B5F8" "T3"@"MAIN") USE_NL(@"SEL$38F5B5F8" "T2"@"SUBQ2") INDEX_RS_ASC(@"SUBQ4" "T4"@"SUBQ4" ("T4"."ID")) END_OUTLINE_DATA 10 / 40 5
6 Use of /*+ qb_name() */ (e) explain plan for... select * from table(dbms_xplan.display); select * from table(dbms_xplan.display(null,null,'{options}')); select * from table( dbms_xplan.display( null, null, 'alias outline -cost -bytes' ) ) ; 11 / 40 Precision matters (1a) select /*+ parallel(pt1,2) */ {list of columns} from pt1 where pt1.n1 = 5 and pt1.n2 = 10 and pt1.pt_group in (0,10) ; pt1 is list-partitioned on pt_group, with a local index on (n1, n2). The query visits two partitions. Id Operation Name Cost Pstart Pstop 0 SELECT STATEMENT 48 1 PARTITION LIST INLIST 48 KEY(I) KEY(I) *2 TABLE ACCESS BY LOCAL INDEX ROWID PT1 48 KEY(I) KEY(I) *3 INDEX RANGE SCAN PT1_I1 3 KEY(I) KEY(I) 12 / 40 6
7 Precision matters (1b) select /*+ full(pt1) parallel(pt1,2) */ {list of columns} from pt1 where pt1.n1 = 5 and pt1.n2 = 10 and pt1.pt_group in (0,10) ;. Id Operation Name Cost Pstart Pstop TQ IN-OUT PQ Distrib 0 SELECT STATEMENT 94 1 PX COORDINATOR 2 PX SEND QC (RANDOM) :TQ10 94 Q1,00 P->S QC (RAND) 3 PX BLOCK ITERATOR 94 KEY(I) KEY(I) Q1,00 PCWC * 4 TABLE ACCESS FULL PT1 94 KEY(I) KEY(I) Q1,00 PCWP 13 / 40 Precision matters (1c) select /*+ parallel(pt1,4) */ {list of columns} from pt1 where pt1.n1 = 5 and pt1.n2 = 10 and pt1.pt_group in (0,10) ;. Id Operation Name Cost Pstart Pstop TQ IN-OUT PQ Distrib 0 SELECT STATEMENT 47 1 PX COORDINATOR 2 PX SEND QC (RANDOM) :TQ10 47 Q1,00 P->S QC (RAND) 3 PX BLOCK ITERATOR 47 KEY(I) KEY(I) Q1,00 PCWC * 4 TABLE ACCESS FULL PT1 47 KEY(I) KEY(I) Q1,00 PCWP 14 / 40 7
8 Precision matters (2) NESTED LOOP TABLE ACCESS (FULL) OF T7 TABLE ACCESS BY INDEX ROWID T8 INDEX RANGE SCAN T8_IND_SECOND -- wrong index select /*+ index(t8 t8_ind_first) */ -- hint the right one HASH JOIN TABLE ACCESS (FULL) OF T7 TABLE ACCESS BY INDEX ROWID T8 INDEX FULL SCAN T8_IND_FIRST -- wrong method -- right index select /*+ index_rs_asc(t8 t8_ind_first) */ -- the right hint 15 / 40 Strategic Hints Shape the query, without forcing details: (no_)unnest (no_)push_subq (no_)merge (no_)push_pred driving_site() whether to transform subqueries or not when to run subqueries - early or late control handling of complex views how to join into non-mergeable views where to run a distributed query The hints about query block transformation are the safest ones 16 / 40 8
9 Feature Hints Becoming more common in 11g Switch off new features (matched to parameters) Also fairly safe to use For example: cursor_sharing_exact no_set_to_join no_use_hash_aggregation no_eliminate_join no_eliminate_oby overrides cursor_sharing = f / s disable set to join conversion disable hash aggregation disable join elimination disable order by elimination opt_param('parameter','value') 17 / 40 Unnesting (a) select outer.* from emp outer where outer.sal > ( select /*+ unnest redundant from 9i */ avg(inner.sal) from emp inner where inner.dept_no = outer.dept_no ) ; 18 / 40 9
10 Unnesting (b) select -- notional transformation (9i) outer.* from ( select dept_no, avg(sal) av_sal from emp group by dept_no ) inner, emp outer where outer.dept_no = inner.dept_no and outer.sal > inner.av_sal; 19 / 40 Unnesting (c) select -- investigated transformation (10g) outer.dept_no dept_no, outer.sal sal, outer.emp_no emp_no, outer.padding padding from test_user.emp inner, test_user.emp outer where inner.dept_no = outer.dept_no group by inner.dept_no, outer.rowid, outer.padding, outer.emp_no, outer.sal, outer.dept_no having outer.sal > avg(inner.sal) 20 / 40 10
11 Subquery pushdown (1) select t1.v1 from t1, t3 where t1.n2 = 15 /* and exists (select --+ no_unnest qb_name(subq2) null from t2 where t2.n1 = 15 and t2.id = t1.id ) */ and t3.n1 = t1.n1 and t3.n2 = 15 ; 21 / 40 Subquery pushdown (2) Execution Plan without subquery. Id Operation Name Rows Bytes Cost 0 SELECT STATEMENT * 1 HASH JOIN * 2 TABLE ACCESS FULL T * 3 TABLE ACCESS FULL T Execution Plan with subquery. Id Operation Name Rows Bytes Cost 0 SELECT STATEMENT * 1 FILTER * 2 HASH JOIN * 3 TABLE ACCESS FULL T * 4 TABLE ACCESS FULL T * 5 TABLE ACCESS BY INDEX ROWID T * 6 INDEX UNIQUE SCAN T2_PK / 40 11
12 Subquery pushdown (3) select /*+ ordered push_subq */ -- 9i use of hint /*+ ordered */ -- 10g use of hint /*+ */ -- 10g use of hint t1.v1 from t1, t3 where t1.n2 = 15 and exists (select --+ no_unnest qb_name(subq2) push_subq null from t2 where t2.n1 = 15 Alternative 10g use of hint. and t2.id = t1.id ) and t3.n1 = t1.n1 and t3.n2 = 15 ; 23 / 40 Subquery pushdown (4) Execution Plan without pushing. Id Operation Name Rows Bytes Cost(%CPU) Time 0 SELECT STATEMENT (2) 00:00:05 * 1 FILTER * 2 HASH JOIN (2) 00:00:03 * 3 TABLE ACCESS FULL T (2) 00:00:02 * 4 TABLE ACCESS FULL T (2) 00:00:02 * 5 TABLE ACCESS BY INDEX ROWID T (0) 00:00:01 * 6 INDEX UNIQUE SCAN T2_PK 1 1 (0) 00:00:01 Execution Plan pushed. Id Operation Name Rows Bytes Cost(%CPU) Time 0 SELECT STATEMENT (2) 00:00:03 * 1 HASH JOIN (2) 00:00:03 * 2 TABLE ACCESS FULL (filter) T (2) 00:00:02 * 3 TABLE ACCESS BY INDEX ROWID T (0) 00:00:01 * 4 INDEX UNIQUE SCAN T2_PK 1 1 (0) 00:00:01 * 5 TABLE ACCESS FULL T (2) 00:00:02 24 / 40 12
13 Non-mergeable views (a) Customers Orders Suppliers Products List all orders supplied to customers in Boston that contain products from suppliers in Dallas There may not be many of them, but there is no really efficient way to find them. Order_lines The only filters are at the ends of a five table join 25 / 40 Non-mergeable views (b) Customers Suppliers Orders Products Order_lines select /*+ ordered use_hash(prdsup) swap_join_inputs(prdsup) use_hash(cusord) swap_join_inputs(cusord) */ cusord.* from order_lines orl, ( select /*+ no_merge */ prd.id from products prd, suppliers sup where sup.location = 'Dallas' and prd.supp_id = sup.id ) prdsup, ( select /*+ no_merge */ ord.* from customers cus, orders ord where cus.location = 'Boston' and ord.cust_id = cus.id ) cusord where orl.order_id = cusord.id and prdsup.id = orl.product_id; 26 / 40 13
14 Non-mergeable views (c) 1 HASH JOIN 2 VIEW -- (1) hash this view 3 HASH JOIN 4 TABLE ACCESS (FULL) OF 'CUSTOMERS' 5 TABLE ACCESS (FULL) OF 'ORDERS' 6 HASH JOIN 7 VIEW -- (2) hash this view 8 HASH JOIN 9 TABLE ACCESS (FULL) OF 'SUPPLIERS' 10 TABLE ACCESS (FULL) OF 'PRODUCTS' 11 TABLE ACCESS (FULL) OF 'ORDER_LINES -- (3) scan this table Order lines are passed through the products/suppliers hash, then through the customers/orders hash. This could use a lot of memory. 27 / 40 Pushing Join Predicates (a) create or replace view v1 as select t2.id1, t2.id2, t3.small_vc, t3.padding from t2, t3 where t3.id1 = t2.id1 and t3.id2 = t2.id2 ; select /*+ push_pred(v1) */ t1.*, v1.* from t1, v1 where v1.id1(+) = t1.id1 and t1.n1 = 5 ; 28 / 40 14
15 Pushing Join Predicates (b) Plan before predicate pushing. Id Operation Name Rows Bytes Cost 0 SELECT STATEMENT * 1 HASH JOIN OUTER * 2 TABLE ACCESS FULL T VIEW V K 44 4 NESTED LOOPS K 44 5 TABLE ACCESS FULL T K 44 * 6 INDEX UNIQUE SCAN T2_PK 1 9 Predicate Information (identified by operation id): 1 - access("v1"."id1"(+)="t1"."id1") 2 - filter("t1"."n1"=5) 6 - access("t3"."id1"="t2"."id1" AND "T3"."ID2"="T2"."ID2") 29 / 40 Pushing Join Predicates (c) Plan with predicate pushing. Id Operation Name Rows Bytes Cost 0 SELECT STATEMENT NESTED LOOPS OUTER * 2 TABLE ACCESS FULL T VIEW PUSHED PREDICATE V NESTED LOOPS TABLE ACCESS BY INDEX ROWID T * 6 INDEX RANGE SCAN T3_PK 5 2 * 7 INDEX UNIQUE SCAN T2_PK 1 13 Predicate Information (identified by operation id): 2 - filter("t1"."n1"=5) 6 - access("t3"."id1"="t1"."id1") 7 - access("t2"."id1"="t1"."id1" AND "T3"."ID2"="T2"."ID2") filter("t3"."id1"="t2"."id1") 30 / 40 15
16 Distributed Effects create table dist_home {dist_away} as select rownum id, rpad(rownum,10) small_vc, rpad(rownum,200) large_vc from all_objects where rownum <= 2000; alter table dist_home {dist_away} add constraint dh_pk {da_pk} primary key (id); create public database link using 'd920'; 31 / 40 Distributed Effects select /*+ driving_site (dh) */ dh.small_vc, da.large_vc from dist_home dist_away@d920@loopback where dh.small_vc like '12%' and da.id = dh.id ; dh, da 32 / 40 16
17 Distributed Effects ID Row Source 0 SELECT STATEMENT (all_rows) 1 NESTED LOOPS 2 TABLE ACCESS(analyzed)DIST_HOME full 3 REMOTE SERIAL_FROM_REMOTE 3 D920@LOOPBACK -- object_node 3 SELECT "ID","LARGE_VC" -- other FROM "DIST_AWAY" "DA" WHERE "ID"=:1 -- read consistency? 33 / 40 Distributed Effects Change the filter predicate to select more data: dh.small_vc like '1%' ID Row Source 0 SELECT STATEMENT (all_rows) 1 HASH JOIN 2 TABLE ACCESS(analyzed)DIST_HOME full 3 REMOTE SERIAL_FROM_REMOTE 3 D920@LOOPBACK 3 SELECT "ID","LARGE_VC" FROM "DIST_AWAY" "DA" 34 / 40 17
18 Distributed Effects Tune the hash join by changing the driving site to the away d/b /*+ driving_site (da) */ ID Row Source 0 SELECT STATEMENT (all_rows)(remote) 1 HASH JOIN 2 REMOTE SERIAL_FROM_REMOTE 3 TABLE ACCESS(analyzed)DIST_AWAY full 2! -- where is this node? 3 D920@LOOPBACK -- this one knows who it is 2 SELECT "ID","SMALL_VC" FROM "DIST_HOME" "A2" WHERE "SMALL_VC" LIKE '1%' 35 / 40 Multi-table distributed joins select... from sales@d920@loopback sal, sites sit, products@d920@loopback prd where... SELECT STATEMENT Optimizer=ALL_ROWS HASH JOIN INDEX (FULL SCAN) OF 'SI_PK' (UNIQUE) REMOTE* SERIAL_FROM_REMOTE D920.JLCOMP.CO.UK@LOOPBACK SELECT "A1"."SALE_DATE",... "A2"."PROMOTED" FROM "SALES" "A1","PRODUCTS" "A2" WHERE / 40 18
19 Multi-table distributed joins 0 SELECT STATEMENT Optimizer=ALL_ROWS 1 NESTED LOOPS 2 NESTED LOOPS 3 REMOTE* D920.JLCOMP.CO.UK@LOOPBACK 4 INDEX (UNIQUE SCAN) OF 'SI_PK' (UNIQUE) 5 REMOTE* D920.JLCOMP.CO.UK@LOOPBACK 3 SELECT "SALE_DATE","SITE","PRODUCT","QTY","PROFIT" FROM "SALES" "SAL" 5 SELECT /*+ INDEX("PRD") USE_NL("PRD") */ "ID","PROMOTED" FROM "PRODUCTS" "PRD" WHERE "ID"= :1 AND "PROMOTED">TO_DATE(' :00:00', 'yyyy-mm-dd hh24:mi:ss') 37 / 40 How to use hints (1) Set the join order Ordered, leading (t1, t2, ) (10g version) But remember unnesting problems with ordered Join method for N-1 tables Use_nl, use_merge, use_hash + (no_)swap_join_inputs Access path for every table Index, no_index, hash, full, index_ffs etc. Average two hints per table to do it well (three if you use hash joins) 38 / 40 19
20 How to use hints (2) Block or force unnesting unnest, no_unnest - in the subquery Block or force early subqueries push_subq, no_push_subq change syntax in 10g Block or force merging merge, no_merge - two forms, with or w/o alias Block, or force, predicate pushing push_pred, no_push_pred (10g) Choosing the driving site for distributed Driving_site() 39 / 40 Summary Avoid micro-management hints Use query block names from 10g onwards Use "outline" to see the full set of hints Strategic hints can be useful and safe Feature hints can be useful and safe Keep testing on every upgrade 40 / 40 20
Hints (definition 1) on Hints (definition 2)
Hints (definition 1) on Hints (definition 2) www.jlcomp.demon.co.uk jonathanlewis.wordpress.com Who am I? Independent Consultant. 23+ years in IT 20+ using Oracle Strategy, Design, Review Briefings, Seminars
More informationFive Hints for Optimising SQL
Five Hints for Optimising SQL Jonathan Lewis JL Computer Consultancy UK Keywords: SQL Optimisation Hints Subquery Merge push_pred Unnest push_subq driving_site Introduction Adding hints to production code
More informationAdvanced Oracle Performance Troubleshooting. Query Transformations Randolf Geist
Advanced Oracle Performance Troubleshooting Query Transformations Randolf Geist http://oracle-randolf.blogspot.com/ http://www.sqltools-plusplus.org:7676/ info@sqltools-plusplus.org Independent Consultant
More informationParallel Execution Plans
Parallel Execution Plans jonathanlewis.wordpress.com www.jlcomp.demon.co.uk My History Independent Consultant 33+ years in IT 28+ using Oracle (5.1a on MSDOS 3.3 Strategy, Design, Review, Briefings, Educational,
More informationOracle DB-Tuning Essentials
Infrastructure at your Service. Oracle DB-Tuning Essentials Agenda 1. The DB server and the tuning environment 2. Objective, Tuning versus Troubleshooting, Cost Based Optimizer 3. Object statistics 4.
More informationBloom Filters DOAG Webinar, 12 August 2016 Christian Antognini Senior Principal Consultant
DOAG Webinar, 12 August 2016 Christian Antognini Senior Principal Consultant BASEL BERN BRUGG DÜSSELDORF FRANKFURT A.M. FREIBURG I.BR. GENEVA HAMBURG COPENHAGEN LAUSANNE MUNICH STUTTGART VIENNA ZURICH
More informationOracle Hints. Using Optimizer Hints
Politecnico di Torino Tecnologia delle Basi di Dati Oracle Hints Computer Engineering, 2009-2010, slides by Tania Cerquitelli and Daniele Apiletti Using Optimizer Hints You can use comments in a SQL statement
More informationReal-World Performance Training SQL Performance
Real-World Performance Training SQL Performance Real-World Performance Team Agenda 1 2 3 4 5 6 The Optimizer Optimizer Inputs Optimizer Output Advanced Optimizer Behavior Why is my SQL slow? Optimizer
More informationThe Oracle Optimizer Explain the Explain Plan O R A C L E W H I T E P A P E R A P R I L
The Oracle Optimizer Explain the Explain Plan O R A C L E W H I T E P A P E R A P R I L 2 0 1 7 Table of Contents Introduction 1 The Execution Plan 2 Displaying the Execution Plan 3 What is Cost? 7 Understanding
More informationoptimization process (see Optimization process, CBO) RBO, 25 Cursor cache, 41, 42 child, 42 parent, 42
Index A Access methods bitmap index access CONVERSION COUNT example, 251 INDEX COMBINE, INLIST, 252 manipulation operations, 249 operations, 248, 250 251 physical structure, 247 restricted ROWIDs, 248
More informationWriting Optimal SQL. By Jonathan Lewis. Embarcadero Technologies. June 2010
Writing Optimal SQL By Embarcadero Technologies June 2010 This white paper is a companion piece to Embarcadero s live webcast event on June 10 th, 2010. The slides for that event will be delivered to all
More informationAnswer: Reduce the amount of work Oracle needs to do to return the desired result.
SQL Tuning 101 excerpt: Explain Plan A Logical Approach By mruckdaschel@affiniongroup.com Michael Ruckdaschel Affinion Group International My Qualifications Software Developer for Affinion Group International
More informationReal-World Performance Training SQL Performance
Real-World Performance Training SQL Performance Real-World Performance Team Agenda 1 2 3 4 5 6 SQL and the Optimizer You As The Optimizer Optimization Strategies Why is my SQL slow? Optimizer Edges Cases
More informationWolfgang Breitling.
Wolfgang Breitling (breitliw@centrexcc.com) 2 a) cost card operation ------- -------- -------------------------------------------------------------- 2,979 446 SELECT STATEMENT 2,979 446 SORT ORDER BY FILTER
More informationAppendix: Application of the Formal Principle for the Analysis of Performance Problems After an Oracle Migration
Appendix: Application of the Formal Principle for the Analysis of Performance Problems After an Oracle Migration The method described in this book is helpful in most cases which a database specialist is
More informationSQL Tuning via Toad Tips for Optimizing SQL Performance
2008 Quest Software, Inc. ALL RIGHTS RESERVED. SQL Tuning via Toad Tips for Optimizing SQL Performance Bert Scalzo Database Expert & Product Architect for Quest Software Oracle Background: Worked with
More informationTools and methods for optimization of databases in Oracle 10g. Part 2 Tuning of hardware, applications and SQL queries
STUDIA INFORMATICA Nr 1-2 (18) Systems and information technology 2014 Andrzej Barczak 1 Dariusz Zacharczuk 1 Damian Pluta 1 1 University of Natural Sciences and Humanities, Institute of Computer Science,
More informationObjectives. After completing this lesson, you should be able to do the following:
Objectives After completing this lesson, you should be able to do the following: Describe the types of problems that subqueries can solve Define subqueries List the types of subqueries Write single-row
More informationTop 10 Features in Oracle 12C for Developers and DBA s Gary Bhandarkar Merck & Co., Inc., Rahway, NJ USA
Top 10 Features in Oracle 12C for Developers and DBA s Gary Bhandarkar Merck & Co., Inc., Rahway, NJ USA Agenda Background ORACLE 12c FEATURES CONCLUSION 2 Top 10 Oracle 12c Features Feature 1: ADAPTIVE
More informationQUERY TRANSFORMATION Part 1
Introduction QUERY TRANSFORMATION Part 1 Query transformation is a set of techniques used by the optimizer to rewrite a query and optimizer it better. Few optimization paths open up to the optimizer after
More informationMANAGING DATA(BASES) USING SQL (NON-PROCEDURAL SQL, X401.9)
Technology & Information Management Instructor: Michael Kremer, Ph.D. Class 6 Professional Program: Data Administration and Management MANAGING DATA(BASES) USING SQL (NON-PROCEDURAL SQL, X401.9) AGENDA
More informationHow to Read and Interpret an Explain Plan
How to Read and Interpret an Explain Plan NZOUG Webinary June 25, 2010 Daniel A. Morgan Oracle ACE Director University of Washington Oracle Instructor for 10 years Morgan of Morgan s Library on the web
More informationHorrid compression collateral
Horrid compression collateral jonathanlewis.wordpress.com www.jlcomp.demon.co.uk Who am I? Independent Consultant 28+ years in IT 24+ using Oracle Strategy, Design, Review, Briefings, Educational, Trouble-shooting
More informationDRAFT SOLUTION. Query 1(a) DATABASE MANAGEMENT SYSTEMS PRACTICE 1
DATABASE MANAGEMENT SYSTEMS PRACTICE 1 DRAFT SOLUTION Remark: Solutions in Algebra reflects the choices and the values returned by the Oracle Optimizer. Query 1(a) The Oracle optimizer prefers to use the
More informationSuppose we need to get/retrieve the data from multiple columns which exists in multiple tables...then we use joins..
JOINS: why we need to join?? Suppose we need to get/retrieve the data from multiple columns which exists in multiple tables...then we use joins.. what is the condition for doing joins??...yes at least
More informationRecent Enhancements in Auto SQL Tuning. Jonathan Lewis
Recent Enhancements in Auto SQL Tuning www.jlcomp.demon.co.uk Who am I? Independent Consultant. 21+ years in IT 18+ using Oracle Strategy, Design, Review Briefings, Seminars Trouble-shooting www.jlcomp.demon.co.uk
More informationScaling To Infinity: Making Star Transformations Sing. Thursday 15-November 2012 Tim Gorman
Scaling To Infinity: Making Star Transformations Sing Thursday 15-November 2012 Tim Gorman www.evdbt.com Speaker Qualifications Co-author 1. Oracle8 Data Warehousing, 1998 John Wiley & Sons 2. Essential
More informationApplication Containers an Introduction
Application Containers an Introduction Oracle Database 12c Release 2 Multitenancy for Applications Markus Flechtner BASLE BERN BRUGG DÜSSELDORF FRANKFURT A.M. FREIBURG I.BR. GENEVA HAMBURG COPENHAGEN LAUSANNE
More informationPractice Manual: How to optimize SQL statement of using DBLINK on Oracle
Practice Manual: How to optimize SQL statement of using DBLINK on Oracle Usually, a good approach of optimizing SQL statement using DBLINK is that you could try your best to reduce data returned calling
More informationOh! I see a problem. cost = blevel + ceil(selectivity * leaf_blocks) + ceil(selectivity * clustering_factor)
Oh! I see a problem There are several assumptions built into the Cost Based Optimizer that can make it generate an unsuitable plan. Oracle Corp. keeps introducing refinements to the optimiser code to work
More informationData Vault Partitioning Strategies WHITE PAPER
Dani Schnider Data Vault ing Strategies WHITE PAPER Page 1 of 18 www.trivadis.com Date 09.02.2018 CONTENTS 1 Introduction... 3 2 Data Vault Modeling... 4 2.1 What is Data Vault Modeling? 4 2.2 Hubs, Links
More informationApplication Containers an Introduction
Application Containers an Introduction Oracle Database 12c Release 2 - Multitenancy for Applications Markus Flechtner BASLE BERN BRUGG DÜSSELDORF FRANKFURT A.M. FREIBURG I.BR. GENEVA HAMBURG COPENHAGEN
More informationOracle Database 18c New Performance Features
Oracle Database 18c New Performance Features Christian Antognini @ChrisAntognini antognini.ch/blog BASEL BERN BRUGG DÜSSELDORF FRANKFURT A.M. FREIBURG I.BR. GENEVA HAMBURG COPENHAGEN LAUSANNE MUNICH STUTTGART
More informationInterpreting Explain Plan Output. John Mullins
Interpreting Explain Plan Output John Mullins jmullins@themisinc.com www.themisinc.com www.themisinc.com/webinars Presenter John Mullins Themis Inc. (jmullins@themisinc.com) 30+ years of Oracle experience
More information20 Essential Oracle SQL and PL/SQL Tuning Tips. John Mullins
20 Essential Oracle SQL and PL/SQL Tuning Tips John Mullins jmullins@themisinc.com www.themisinc.com www.themisinc.com/webinars Presenter John Mullins Themis Inc. (jmullins@themisinc.com) 30+ years of
More informationAdaptive
Christian Antognini @ChrisAntognini antognini.ch/blog BASEL BERN BRUGG DÜSSELDORF FRANKFURT A.M. FREIBURG I.BR. GENEVA HAMBURG COPENHAGEN LAUSANNE MUNICH STUTTGART VIENNA ZURICH @ChrisAntognini Senior
More informationDatabases IIB: DBMS-Implementation Exercise Sheet 13
Prof. Dr. Stefan Brass January 27, 2017 Institut für Informatik MLU Halle-Wittenberg Databases IIB: DBMS-Implementation Exercise Sheet 13 As requested by the students, the repetition questions a) will
More informationOracle Database 11g: SQL Tuning Workshop. Student Guide
Oracle Database 11g: SQL Tuning Workshop Student Guide D52163GC10 Edition 1.0 June 2008 Author Jean-François Verrier Technical Contributors and Reviewers Muriel Fry (Special thanks) Joel Goodman Harald
More informationApplication Containers an Introduction
Application Containers an Introduction Oracle Database 12c Release 2 Multitenancy for Applications Markus Flechtner @markusdba doag2017 Our company. Trivadis is a market leader in IT consulting, system
More informationOracle 9i Application Development and Tuning
Index 2NF, NOT 3NF or BCNF... 2:17 A Anomalies Present in this Relation... 2:18 Anomalies (Specific) in this Relation... 2:4 Application Design... 1:28 Application Environment... 1:1 Application-Specific
More informationReal-World Performance Training SQL Introduction
Real-World Performance Training SQL Introduction Real-World Performance Team Basics SQL Structured Query Language Declarative You express what you want to do, not how to do it Despite the name, provides
More informationDoes the Optimizer Need a Clue?
F E AT U R E Does the Optimizer Need a Clue? Ask the Oracles! Gaja Krishna Vaidyanatha: Let me start with a life-altering philosophical question to my male readers! When your wife or significant other
More informationQuery Optimization Overview
Query Optimization Overview parsing, syntax checking semantic checking check existence of referenced relations and attributes disambiguation of overloaded operators check user authorization query rewrites
More informationIndependent consultant. Oracle ACE Director. Member of OakTable Network. Available for consulting In-house workshops. Performance Troubleshooting
Independent consultant Available for consulting In-house workshops Cost-Based Optimizer Performance By Design Performance Troubleshooting Oracle ACE Director Member of OakTable Network Optimizer Basics
More informationQuerying Data with Transact SQL
Course 20761A: Querying Data with Transact SQL Course details Course Outline Module 1: Introduction to Microsoft SQL Server 2016 This module introduces SQL Server, the versions of SQL Server, including
More informationOracle SQL Tuning for Developers Workshop Student Guide - Volume I
Oracle SQL Tuning for Developers Workshop Student Guide - Volume I D73549GC10 Edition 1.0 October 2012 D78799 Authors Sean Kim Dimpi Rani Sarmah Technical Contributors and Reviewers Nancy Greenberg Swarnapriya
More informationTop 5 Issues that Cannot be Resolved by DBAs (other than missed bind variables)
Top 5 Issues that Cannot be Resolved by DBAs (other than missed bind variables) March 12, 2013 Michael Rosenblum Dulcian, Inc. www.dulcian.com 1 of 43 Who Am I? Misha Oracle ACE Co-author of 2 books PL/SQL
More informationAdvanced SQL Processing Prepared by Destiny Corporation
Advanced SQL Processing Prepared by Destiny Corporation Summary Functions With a single argument, but with other selected columns, the function gives a result for all the rows, then merges the back with
More informationORACLE TRAINING CURRICULUM. Relational Databases and Relational Database Management Systems
ORACLE TRAINING CURRICULUM Relational Database Fundamentals Overview of Relational Database Concepts Relational Databases and Relational Database Management Systems Normalization Oracle Introduction to
More informationIndependent consultant. Oracle ACE Director. Member of OakTable Network. Available for consulting In-house workshops. Performance Troubleshooting
Independent consultant Available for consulting In-house workshops Cost-Based Optimizer Performance By Design Performance Troubleshooting Oracle ACE Director Member of OakTable Network Optimizer Basics
More informationTao Zuo NPD Group June, Document classification: Restricted Information
Tao Zuo NPD Group June, 2016 Oracle SQL tuning is a phenomenally complex subject. Assumption: Server/Instance/Object/optimizer-related level setting is optimal process is running very long time ( almost
More informationOptimized Analytical Processing New Features with 11g R2
Optimized Analytical Processing New Features with 11g R2 Hüsnü Şensoy Global Maksimum Data & Information Technologies Founder, VLDB Expert Agenda Introduction Understanding Optimized Analytical Processing
More informationWhat the SQL is Going On Out Here?
What the SQL is Going On Out Here? New Book: ISBN: 0-7897-2369-7 www.amazon.com Our Mission To enable today s businesses to achieve 24x7 operation of mission-critical applications The ebusiness Infrastructure
More informationA Unit of SequelGate Innovative Technologies Pvt. Ltd. All Training Sessions are Completely Practical & Real-time
SQL Basics & PL-SQL Complete Practical & Real-time Training Sessions A Unit of SequelGate Innovative Technologies Pvt. Ltd. ISO Certified Training Institute Microsoft Certified Partner Training Highlights
More informationThe use of Hints in SQL-Nested query optimization
Information Sciences 177 (2007) 2493 2521 www.elsevier.com/locate/ins The use of Hints in SQL-Nested query optimization David Taniar a, *, Hui Yee Khaw a, Haorianto Cokrowijoyo Tjioe a, Eric Pardede b
More informationOracle. Exam Questions 1Z Oracle Database 11g Release 2: SQL Tuning Exam. Version:Demo
Oracle Exam Questions 1Z0-117 Oracle Database 11g Release 2: SQL Tuning Exam Version:Demo 1.You ran a high load SQL statement that used an index through the SQL Tuning Advisor and accepted its recommendation
More informationJoin Selectivity. Jonathan Lewis JL Computer Consultancy London, UK
Join Selectivity Jonathan Lewis JL Computer Consultancy London, UK Keywords: Selectivity, Cardinality, Statistics, Joins, Cost-based Optimizer Introduction In this note I will be describing the basic mechanism
More informationCopyright 2016 Ramez Elmasri and Shamkant B. Navathe
CHAPTER 19 Query Optimization Introduction Query optimization Conducted by a query optimizer in a DBMS Goal: select best available strategy for executing query Based on information available Most RDBMSs
More informationThe use of hints in object-relational query optimization
Comput Syst Sci & Eng (2004) 6: 337 345 2004 CRL Publishing Ltd International Journal of Computer Systems Science & Engineering The use of hints in object-relational query optimization David Taniar*, Hui
More informationAdministrivia. Physical Database Design. Review: Optimization Strategies. Review: Query Optimization. Review: Database Design
Administrivia Physical Database Design R&G Chapter 16 Lecture 26 Homework 5 available Due Monday, December 8 Assignment has more details since first release Large data files now available No class Thursday,
More informationORACLE DATABASE 12C INTRODUCTION
SECTOR / IT NON-TECHNICAL & CERTIFIED TRAINING COURSE In this training course, you gain the skills to unleash the power and flexibility of Oracle Database 12c, while gaining a solid foundation of database
More informationRNDr. Michal Kopecký, Ph.D. Department of Software Engineering, Faculty of Mathematics and Physics, Charles University in Prague
course: Database Applications (NDBI026) WS2015/16 RNDr. Michal Kopecký, Ph.D. Department of Software Engineering, Faculty of Mathematics and Physics, Charles University in Prague Schema modification Adding
More information<Insert Picture Here> DBA s New Best Friend: Advanced SQL Tuning Features of Oracle Database 11g
DBA s New Best Friend: Advanced SQL Tuning Features of Oracle Database 11g Peter Belknap, Sergey Koltakov, Jack Raitto The following is intended to outline our general product direction.
More informationOracle Database 11g: SQL Tuning Workshop
Oracle University Contact Us: Local: 0845 777 7 711 Intl: +44 845 777 7 711 Oracle Database 11g: SQL Tuning Workshop Duration: 3 Days What you will learn This Oracle Database 11g: SQL Tuning Workshop Release
More informationProject. Building a Simple Query Optimizer with Performance Evaluation Experiment on Query Rewrite Optimization
Project CIS611 SS Chung Building a Simple Query Optimizer with Performance Evaluation Experiment on Query Rewrite Optimization This project is to simulate a simple Query Optimizer that: 1. Evaluates query
More informationTuning SQL without the Tuning Pack. John Larkin JP Morgan Chase
Tuning SQL without the Tuning Pack John Larkin JP Morgan Chase Who am I Originally a mainframe COBOL programmer DBA for the last 23 years, the last 15 with Oracle. UNIX (Solaris, Aix, Windows, Linux) Recently
More informationPerformance Optimization for Informatica Data Services ( Hotfix 3)
Performance Optimization for Informatica Data Services (9.5.0-9.6.1 Hotfix 3) 1993-2015 Informatica Corporation. No part of this document may be reproduced or transmitted in any form, by any means (electronic,
More informationQuery Processing and Query Optimization. Prof Monika Shah
Query Processing and Query Optimization Query Processing SQL Query Is in Library Cache? System catalog (Dict / Dict cache) Scan and verify relations Parse into parse tree (relational Calculus) View definitions
More informationQuery Optimizer MySQL vs. PostgreSQL
Percona Live, Frankfurt (DE), 7 November 2018 Christian Antognini @ChrisAntognini antognini.ch/blog BASEL BERN BRUGG DÜSSELDORF FRANKFURT A.M. FREIBURG I.BR. GENEVA HAMBURG COPENHAGEN LAUSANNE MUNICH STUTTGART
More informationCreating and Managing Tables Schedule: Timing Topic
9 Creating and Managing Tables Schedule: Timing Topic 30 minutes Lecture 20 minutes Practice 50 minutes Total Objectives After completing this lesson, you should be able to do the following: Describe the
More informationTeradata SQL Features Overview Version
Table of Contents Teradata SQL Features Overview Version 14.10.0 Module 0 - Introduction Course Objectives... 0-4 Course Description... 0-6 Course Content... 0-8 Module 1 - Teradata Studio Features Optimize
More informationQuery Optimizer MySQL vs. PostgreSQL
Percona Live, Santa Clara (USA), 24 April 2018 Christian Antognini @ChrisAntognini antognini.ch/blog BASEL BERN BRUGG DÜSSELDORF FRANKFURT A.M. FREIBURG I.BR. GENEVA HAMBURG COPENHAGEN LAUSANNE MUNICH
More informationNeil Chandler, Chandler Systems Oracle & SQL Server DBA
Neil Chandler, Chandler Systems Oracle & SQL Server DBA In IT since 1988 Working with Oracle since about 1991 Chairman of the UKOUG RAC, Cloud, Infrastructure and Availability SIG BLOG: http://chandlerdba.wordpress.com/
More informationSQL Query Writing Tips To Improve Performance in Db2 and Db2 Warehouse on Cloud
SQL Query Writing Tips To Improve Performance in Db2 and Db2 Warehouse on Cloud Calisto Zuzarte IBM St. Louis Db2 User s Group 201803 Tue, March 06, 2018 Db2 Warehouse Db2 Warehouse on Cloud Integrated
More informationDatabase Design and Tuning
Database Design and Tuning Chapter 20 Comp 521 Files and Databases Spring 2010 1 Overview After ER design, schema refinement, and the definition of views, we have the conceptual and external schemas for
More informationQuery Optimizer, Who Influences & How it works ++ optimization techniques
Query Optimizer, Who Influences & How it works ++ optimization techniques AIOUG : ODevC Yatra 2018, India Chandan Tanwani Senior Application Engineer Oracle Financial Services Software Ltd. Copyright 2018
More informationMySQL 8.0 What s New in the Optimizer
MySQL 8.0 What s New in the Optimizer Manyi Lu Director MySQL Optimizer & GIS Team, Oracle October 2016 Copyright Copyright 2 015, 2016,Oracle Oracle and/or and/or its its affiliates. affiliates. All All
More informationKey Data Warehousing Features in Oracle10g: A Comparative Performance Analysis. An Oracle White Paper April 2005
Key Data Warehousing Features in Oracle10g: A Comparative Performance Analysis An Oracle White Paper April 2005 Key Data Warehousing Features in Oracle10g: A Comparative Performance Analysis Executive
More informationphp works 2006 in Toronto Lukas Kahwe Smith
Building Portable Database Applications php works 2006 in Toronto Lukas Kahwe Smith smith@pooteeweet.org Agenda: Overview Introduction ext/pdo PEAR::MDB2 ORM and ActiveRecord SQL Syntax Result Sets High
More informationInfrastructure at your Service. In-Memory-Pläne für den 12.2-Optimizer: Teuer oder billig?
Infrastructure at your Service. In-Memory-Pläne für den 12.2-Optimizer: Teuer oder billig? About me Infrastructure at your Service. Clemens Bleile Senior Consultant Oracle Certified Professional DB 11g,
More informationAdvanced Oracle SQL Tuning v3.0 by Tanel Poder
Advanced Oracle SQL Tuning v3.0 by Tanel Poder /seminar Training overview This training session is entirely about making Oracle SQL execution run faster and more efficiently, understanding the root causes
More informationCS2 Current Technologies Lecture 3: SQL - Joins and Subqueries
T E H U N I V E R S I T Y O H F R G E D I N B U CS2 Current Technologies Lecture 3: SQL - Joins and Subqueries Chris Walton (cdw@dcs.ed.ac.uk) 11 February 2002 Multiple Tables 1 Redundancy requires excess
More informationSql Server Syllabus. Overview
Sql Server Syllabus Overview This SQL Server training teaches developers all the Transact-SQL skills they need to create database objects like Tables, Views, Stored procedures & Functions and triggers
More informationOracle Database 18c. Gentle introduction to Polymorphic Tables Functions with Common patterns and sample use cases
Oracle Database 18c Gentle introduction to Polymorphic Tables Functions with Common patterns and sample use cases About me. Keith Laker Product Manager for Analytic SQL and Autonomous DW Oracle Blog: oracle-big-data.blogspot.com
More informationMigrating? Don't forget the Optimizer.
Migrating? Don't forget the Optimizer. What is the most important component of the Oracle database engine? My vote goes to the optimizer. Everything the database does is SQL, and every piece of SQL has
More informationJoin Methods. Franck Pachot CERN
Join Methods Franck Pachot CERN Twitter: @FranckPachot E-mail: contact@pachot.net The session is a full demo. This manuscript shows only the commands used for the demo the explanations will be during the
More information20461: Querying Microsoft SQL Server 2014 Databases
Course Outline 20461: Querying Microsoft SQL Server 2014 Databases Module 1: Introduction to Microsoft SQL Server 2014 This module introduces the SQL Server platform and major tools. It discusses editions,
More informationCourse Outline and Objectives: Database Programming with SQL
Introduction to Computer Science and Business Course Outline and Objectives: Database Programming with SQL This is the second portion of the Database Design and Programming with SQL course. In this portion,
More informationIntroduction to Computer Science and Business
Introduction to Computer Science and Business This is the second portion of the Database Design and Programming with SQL course. In this portion, students implement their database design by creating a
More informationOracle Database 11gR2 Optimizer Insights
Oracle Database 11gR2 Optimizer Insights Marcus Bender Distinguished Sales Consultant Presales Fellow Strategic Technical Support (STU) ORACLE Deutschland GmbH, Geschäftsstelle Hamburg Parallel Execution
More informationDatabases - 4. Other relational operations and DDL. How to write RA expressions for dummies
Databases - 4 Other relational operations and DDL How to write RA expressions for dummies Step 1: Identify the relations required and CP them together Step 2: Add required selections to make the CP Step
More informationOracle Syllabus Course code-r10605 SQL
Oracle Syllabus Course code-r10605 SQL Writing Basic SQL SELECT Statements Basic SELECT Statement Selecting All Columns Selecting Specific Columns Writing SQL Statements Column Heading Defaults Arithmetic
More informationDB2 SQL Tuning Tips for z/os Developers
DB2 SQL Tuning Tips for z/os Developers Tony Andrews IBM Press, Pearson pic Upper Saddle River, NJ Boston Indianapolis San Francisco New York Toronto Montreal London Munich Paris Madrid Cape Town Sydney
More informationOn Building Integrated and Distributed Database Systems
On Building Integrated and Distributed Database Systems Distributed Query Processing and Optimization Robert Wrembel Poznań University of Technology Institute of Computing Science Poznań,, Poland Robert.Wrembel@cs.put.poznan.pl
More information20761 Querying Data with Transact SQL
Course Overview The main purpose of this course is to give students a good understanding of the Transact-SQL language which is used by all SQL Server-related disciplines; namely, Database Administration,
More informationVijay Mahawar
Vijay Mahawar http://www.mahawar.net/blog Saturday, 2 February, 2013 I am Vijay Mahawar, an Oracle Technologist. I am a member of AIOUG, ODTUG and OTN. I am certified in Oracle and hold OCP in Oracle 11g
More informationAster Data Basics Class Outline
Aster Data Basics Class Outline CoffingDW education has been customized for every customer for the past 20 years. Our classes can be taught either on site or remotely via the internet. Education Contact:
More informationOptimizer with Oracle Database 12c Release 2 O R A C L E W H I T E P A P E R J U N E
Optimizer with Oracle Database 12c Release 2 O R A C L E W H I T E P A P E R J U N E 2 0 1 7 Table of Contents Introduction 1 Adaptive Query Optimization 2 Optimizer Statistics 13 Optimizer Statistics
More informationSQL. Dean Williamson, Ph.D. Assistant Vice President Institutional Research, Effectiveness, Analysis & Accreditation Prairie View A&M University
SQL Dean Williamson, Ph.D. Assistant Vice President Institutional Research, Effectiveness, Analysis & Accreditation Prairie View A&M University SQL 1965: Maron & Levien propose Relational Data File 1968:
More informationSQL (Structured Query Language)
Dear Student, Based upon your enquiry we are pleased to send you the course curriculum for Oracle DBA 11g SQL (Structured Query Language) Software Installation (Environment Setup for Oracle on Window10)
More information