Oracle Sql Tuning- A Framework
|
|
- Griselda Sims
- 6 years ago
- Views:
Transcription
1 Oracle Sql Tuning- A Framework Prepared by Saurabh Kumar Mishra Performance Engineering & Enhancement offerings (PE2) Infosys Technologies Limited (NASDAQ: INFY) saurabhkumar_mishra@infosys.com This paper describes a framework for Tuning Oracle Queries which leads to provide maximum improvement in execution time. It includes the practical examples which shows, how to use this framework. INTRODUCTION Currently rdbms systems such as oltp databases with huge records getting processed per unit of time uses complex logics which leads to usage of aggregate functions, union, union-all, minus, exists and group by views etc. Some of the parameter which developers/dba commonly use while tuning any queries are generating explain plan by using plan table or by generating trace files for any session, but analyzing what is affecting the query performance before starting tuning is the most important step. This paper will provide a step wise approach for tuning the plsql or sqls. Over the time period SQL has been used extensively in rdbms systems. I will be discussing in this paper specifically about Oracle with a generalized approach. In oracle Sql execution time completely depends on components such as Query Optimizer and Query execution engines. Query Optimizer A typical query optimizer; the parsed query will come from parser as an input to the optimizer. The next step is generation of potential execution plans based on availability of available access paths and hints which is task of query transformer. Estimator will then use the dictionary tables like dba_tables, dba_tab_columns, dba_indexes, dba _tab_partitions etc to generate the cost for each plan. The dictionary tables play here an important role in collection of statistics like data distribution and storage characteristics of tables, indexes, partitions accessed by the sqls. Once this cost is calculated the Plan Generator will select the lowest cost query plan and will provide it to row source generator for execution. So for execution of any query the key role will be played by the statistics generation in dictionary tables/views, which can be stated as the first prerequisite for any query tuning activity. 1 P age
2 Framework Collect the Timing for the existing Untuned Query. Collect Statistics in Dictionary Tables Evaluation of Statistics captured. Collect SGA sizing details, along with hit ratios (Database Buffer, Library Cache) Generate Explain Plan Analyse Explain Plan Object level Design Evaluation Evaluate Predicates Query Level Design Evaluation Evaluate Joins Evaluate Indexing Evaluate Nested Queries Evaluate Partitioned Tables Evaluate Usage of Functions Evaluate Usage of Hints Recommendation application Functional Testing Collect the Improvement forthe tuned Query. The framework gives you an idea right from the starting of query tuning spreading across touching database level tuning aspects relevant to Sql tuning. Top to bottom approach in this framework will analyze each aspect involved in query tuning, which results in high performing queries as an output. 2 P age
3 Descriptions Each step in the framework plays a significant role in tuning of queries, but the first and the last steps i.e. collection of before and after results the response time with the no of record count each query is generating play a vital role. Along with this collection of load (on server & database) at which you are executing the queries and gathering the results is also important. Some tuning expert also uses cost as the base line for tuning of queries and analyzing the improvement, which can be little distractive when you are looking at the response time as the major factor in tuning. So Sql tuning can generally can be divided into: o Tuning for best response time, o Tuning for best throughput (i.e. less usage of resources in db and server). But again what is considered as best tuning practice is, the query should give the best response time using the least resource, So you need to keep in mind both cost and response time in to factor while tuning Sql queries. The next step before you actually begin with generation of explain_plan is collection and evaluation of Statistics available for Objects (tables and indexes). Statistics Collection and Analysis DBMS_STATS and Analyze are the two tools available which are used to collect table and index level statistics in oracle, which will be used by oracle optimizer to choose the best execution plan. Once the statistics are generated we need to evaluate the statistics gathered. The parameters like estimate_percent, block_sample, method_opt, and cascade are the parameters which address statistics accuracy and performance in dbms_stats which are one big advantage over old analyse command. Collection using dbms_stats can be done using following syntax: EXECUTE dbms_stats.gather_table_stats(ownname=>'abc', tabname=>'abc_tab', estimate_percent=>1,block_sample=true, method_opt='for ALL COLUMNS SIZE 1', cascade=>true) Ownname is the table owner; tabname is the table_name which we are going to collect statistics. Now, estimate_percent, block_sample, method_opt and cascade are the parameter which defines the accuracy of the statistics. Mr. Terry [2] says, the recommended values for each are below, which again needs to be verified for each database are: Estimate_percent - Balancing performance of the gathering process and the accuracy of the statistics lies between 5 and 20 for estimate_percent. Five percent will probably work for most cases, but 20% may be advisable if really accurate statistics are needed. Gathering statistics separately for indexes is faster than the cascade=true option while gathering table statistics. Block_sample=true doesn t appear to appreciably speed up statistics gathering, while at the same time delivering somewhat less-accurate statistics. Using the SKEWONLY option to size histograms is inadvisable. Analysis the results generated by DBMS_STATS can be done by seeing the values captured in dictionary tables like dba_tab_columns, dba_indexes and dba_ind_columns, the columns which play significant role are num_rows, 3 P age
4 num_distinct and sample_size for tables, distinct_keys and sample_size for indexes. I will leave the analysis part to you using the best recommendations suggested above. Collection of SGA Details SGA (System Global Area) is the most important part of oracle database, it plays a vital role in storing the execution plans, caching of data blocks and so on. The most important are the two features: Storage of Execution Plan in Library Cache in Shared Pool- Library Cache Hit Ratio. Caching of data Blocks in Database Buffer Cache-Buffer Cache Hit Ratio. Above, hit ratio value should be collected before we start the tuning process; the standard for same is below: Buffer cache hit ratio from 95 to 98 percent is considered healthy. The Data Dictionary (library) Cache Hit Ratio should be at or above 95 Percent. Calculation of hit ratio, can be done using Statspack/AWR reports output or by continuous monitoring of system, if you see any deviation in this you should contact the DBA for changing the database parameters of SGA by using advisor available. Generation of Explain Plan Explain Plan is the most important thing which needs to be analyzed during query tuning, it can be generated using many tools like 1) Using Plan table available in UTLXPLAN.SQL, this table can be queried to get explain plan of query. a. explain plan for your-precious-sql-statement; b. Displaying the execution plan Select substr (lpad (' ', level-1) operation ' (' options ')', 1, 30) "Operation", object_name Object" from plan_table start with id = 0 connect by prior id=parent_id; 2) Using Quest tool TOAD for Oracle (or similar tools) and selecting the adequate contents like access predicates, filter predicates, CPU cost, time, optimizer_mode etc. 3) Using Tkprof to generate the report of the trace file by selecting any session from which queries are executing, in tkprof report you can analyze the I/O issues, execution and parse time difference. Analyse Explain Plan Explain plan once generated need to analyze based on parameters like, full table scans, full index scans, type of joins getting used(hash, nested loops, merge join, sort join ), total cost of query, cost increment pattern at each stage of join and table access paths used. If we broadly differentiate these parameters it will of two classes: a) Object level: - Object level will consist of table and index level parameters like access and filter predicates while joining tables by filtering the results. Usage of best practice needs to be checked here, and if not used recommendation has to be given or applied. b) Query level: - Query Level will consists of Types of joins, cost (CPU, I/O, overall) its increment pattern, execution time. 4 P age
5 Collection of these few point initially will be of great help while tuning in later stages, now in the paper I will use a complex example to explain each of these parameters. Query 1: A module query from a Batch processing system, first step where it collects all the matching values from the I_claims (Partitioned) and M_n_audit Table based on filters. SELECT * FROM (SELECT M_ID, N_A, L_NAME, D_R, E_DATE, T_DATE FROM (SELECT MBNDCA.M_ID, MBNDCA.N_A, MBNDCA.L_NAME, MBNDCA.D_R, MBNDCA.E_DATE, MBNDCA.T_DATE, R_FLAG, RANK () OVER (PARTITION BY MBNDCA.M_ID, MBNDCA.N_A ORDER BY MBNDCA.VERSION_N DESC, MBNDCA.M_NA_VER_ID DESC) R FROM M_N_AUDIT MBNDCA WHERE UPPER (M_ID) = UPPER (:V_M_ID) AND ( BETWEEN MBNDCA.E_DATE AND MBNDCA.T_DATE OR MBNDCA.E_DATE BETWEEN AND ) AND MBNDCA.LAST_UPDT_DATE <= SYSTIMESTAMP) WHERE R = 1 AND R_FLAG = 'A') MBNDCA, I_CLAIMS IC WHERE UPPER (MBNDCA.N_A) = UPPER (IC.N_A) AND IC.TR_STATUS! =:TR_STATUS_R AND ( DECODE ('CL', :C_TYPE, IC.C_ID, NULL) NOT LIKE :C_CUSTOMER OR DECODE ('PDP', :C_TYPE_PDP, IC.C_ID, NULL) = :PDP_CUST OR DECODE ('M', :C_MED, IC.C_ID, NULL) BETWEEN :PDP_CUST AND :MAPD_CUST_END OR DECODE (:V_C_TYPE_CODE, :CTYPE_MAPD, IC.C_ID, NULL ) BETWEEN :MAPD_CUST_START AND :MAPD_CUST_END ); So let s generate the explain plan using toad for oracle. Plan SELECT STATEMENT FIRST_ROWS Cost: 43 K Bytes: 1 M Cardinality: 8 K CPU Cost: 8 G IO Cost: 41 K Time: HASH JOIN Access Predicates: UPPER ("N_A") =UPPER ("IC"."N_A") Cost: 43 K Bytes: 1 M Cardinality: 8 K CPU Cost: 8 G IO Cost: 41 K Time: VIEW Filter Predicates: "R"=1 AND "R_FLAG"='A' Cost: 44 Bytes: 160 Cardinality: 4 CPU Cost: 14 M IO Cost: 41 Time: 1 2 WINDOW SORT PUSHED RANK Filter Predicates: RANK () OVER (PARTITION BY "MBNDCA"."M_ID","MBNDCA"."N_A" ORDER BY INTERNAL_FUNCTION ("MBNDCA"."VERSION_N") DESC, INTERNAL_FUNCTION ("MBNDCA"." M_NA_VER_ID ") DESC )<=1 Cost: 44 Bytes: 284 Cardinality: 4 CPU Cost: 14 M IO Cost: 41 Time: 1 1 TABLE ACCESS FULL TABLE M_N_AUDIT Filter Predicates: UPPER (TO_CHAR ("M_ID")) =UPPER (:V_M_ID) AND ("MBNDCA"."E_DATE"<= AND "MBNDCA"."T_DATE">= OR "MBNDCA"."E_DATE">= AND "MBNDCA"."E_DATE"<= ) AND SYS_EXTRACT_UTC (INTERNAL_FUNCTION ("MBNDCA"."LAST_UPDT_DATE"))<=SYS_EXTRACT_UTC(SYSTIMESTAMP(6)) Cost: 43 Bytes: 284 Cardinality: 4 CPU Cost: 8 M IO Cost: 41 Time: 1 5 PARTITION RANGE ALL Cost: 43 K Bytes: 30 M Cardinality: 193 K CPU Cost: 8 G IO Cost: 41 K Time: 511 Partition #: 5 Partitions accessed #1 - #6 4 TABLE ACCESS FULL TABLE I_CLAIMS Filter Predicates: "IC"."TR_STATUS"<>:TR_STATUS_R AND (DECODE ( CL, C_TYPE,"IC"."C_ID", NULL) NOT LIKE: C_CUSTOMER OR DECODE ( PDP, C_TYPE _PDP,"IC"."CUSTOMER_ID",NULL)=:PDP_CUST OR OR DECODE ('M', :C_MED, IC.C_ID, NULL) BETWEEN :PDP_CUST AND :MAPD_CUST_END OR DECODE (:V_C_TYPE_CODE, :CTYPE_MAPD, IC.C_ID, NULL ) BETWEEN :MAPD_CUST_START AND :MAPD_CUST_END ) Cost: 43 K Bytes: 30 M Cardinality: 193 K CPU Cost: 8 G IO Cost: 41 K Time: 511 Partition #: 5 Partitions accessed #1 - #6 5 P age
6 Collection of Parameters 1) Object Level:- Index Used- None. Tables Used (along with record count details). o I_claims- 1million rows in each partition. o M_n_audit- 10K records. Full Table Scans I_claims, M_n_audit Partition Accessed- All Partitions (#1-#6), data in #5 th Partition. Functions used in join Columns- Upper. Partition Key Utilization- No (I_claims range partitioned on date_submitted) Access Predicates o UPPER (MBNDCA.N_A) = UPPER (IC.N_A) Filer Predicates o Step (2) in explain plan for view MBNDCA. o Step (4) in explain Plan for table I_claims. 2) Query Level:- a. Cost Increased due to partition accessed fully i.e. all partitions getting accessed in query for Internal_claims table. b. Hash Join is applied due to presence of Big Table join with a comparative lesser record table, which intern results in FTS on both tables. c. Total Cost: 43K Total Execution Time Taken actual: 10 mins predicted Time is 511 secs. This above completes our Analysis of a Demo explain, which provide us most of the loop holes which needs to be fixed for tuning this query and bring down the response time. The analysis above will serve as an input while giving recommendations for tuning any such query. Recommendations So lets start analysing the results of explain plan, we should do it again in two steps one at query level and other at object level. As in above sample query: Object Level Recommendations: (Evaluate Indexing)No indexes are getting utilized which is resulting in FTS and Hash joins which are costlier; we should try to find out the needed index in the query in each table. o I_claims and M_N_AUDIT Access predicates used are N_A, so index should exist on this column in both of table. (Evaluate Partitioned Tables) I_claims is having a full partition access as the partitioning key is not used in the query which is date_submitted. This is the most common mistakes developer do while using partition tables in there query. So Partition key should be utilized by mentioning the range in query. Query Level Recommendations: (Evaluate Usage of functions) Also as upper is used even if a normal index is present optimizer will not expect it as it will expect a functional based index. So based on functionality and data in tables usage of upper should be evaluated and index should be created which interns remove Full Table Scan on both of tables. 6 P age
7 (Evaluate Joins) Hash join should be converted to nested loop or vice versa by evaluating the benefit in response time. (Evaluate Hints) Hints can be used to evaluate the usage on indexes if optimizer does not pickup newly index created, but as per regular practice hints should be removed while deploying code in to production/uat, as it is expected that statistics should be generated well in production/uat which will allow optimizer to use proper indexes. (Evaluate Nested Queries)On Table M_N_AUDIT Nested query exists based on rank on partition which may be required functionality, options has to find out to convert this functionality in to direct join of this table with I_claims in from clause. We can get these recommendations by using the guidelines/best practice for writing oracle sqls which can result in High performing queries. Some of the general Best practices for writing Sqls are: o Semi Joins(EXISTS and IN) Mr. Roger [3] says, If the main body of your query is highly selective, then an EXISTS clause might be more appropriate to semi-join to the target table. However, if the main body of your query is not so selective and the subquery (the target of the semi-join) is more selective, then an IN clause might be more appropriate. o Anti Joins (NOT EXISTS and NOT IN) with or Without Null. Mr. Roger [3] says, First consider how null values should be handled when deciding whether to use NOT EXISTS or NOT IN. If you need the special semantics provided by NOT IN, then your decision has been made. Otherwise, you should next consider whether or not the query might benefit from a merge or hash anti-join. If so, then you probably ought to choose NOT IN. If you decide to go with NOT IN but do not want the expression to evaluate to false if a null value is found, then make sure the subquery cannot return a null value. If there is no chance that the query will benefit from a merge or hash anti-join and the special semantics of NOT IN are not desired, then you might want to select the NOT EXISTS construct so that there is a better chance Oracle will perform an efficient filter instead of an inefficient nested loops anti-join. o Mr. Hervé [4] says, o Avoid NOT in or NOT = on indexed columns. They prevent the optimizer from using indexes. Use where amount > 0 instead of where amount! = 0. o Avoid writing where project category is not null. Nulls can prevent the optimizer from using an index. o Consider using IN or UNION in place of OR on indexed columns. ORs on indexed columns cause the optimizer to perform a full table scan. o Avoid calculations on indexed columns. Write WHERE approved_amt > 26000/3 instead of WHERE approved_amt /3 > o Consider replacing outer joins on indexed columns with UNIONs. A nested loop outer takes more time than a nested loop unioned with another table access by index. o WHERE EXISTS sub-queries can be better than join if can you reduce drastically the number of records in driver query. Otherwise, join is better. o WHERE EXISTS can be better than join when driving from parent records and want to make sure that at least on child exists. Optimizer knows to bail out as soon as finds one record. Join would get all records and then distinct them! o Evaluate Views If a view joins 3 extra tables to retrieve data that you do not need, don't use the view! 7 P age
8 o When joining 2 views that themselves select from other views, check that the 2 views that you are using do not join the same tables! Avoid multiple layers of view. For example, look for queries based on views that are themselves views. It may be desirable to encapsulate from a development point of view. But from a performance point of view, you lose control and understanding of exactly how much task loading your query will generate for the system. Look for tables/views that add no value to the query. Try to remove table joins by getting the data from another table in the join. Remove Unnecessary Sqls Overheads. Try to reduce no of joins in a query of a cursor, by seeing no of rows in output you need, ex... If the EMP table has rows and you are joining it with Dept table to get 2000 odd rows acted a group by to get. Example: Declare Cursor c1 is select e.deptno,e.category,d.description,count(*) from dept d,emp e Where d.deptno= e.deptno group by e.deptno,e.category,d.description; Begin For xx in c1 loop --- End loop; End; Alternative to above code: Declare Xdept Number: = -9999; Xdesc varchar2 (60); Cursor c1 is select e.deptno, e.category, count (*) from EMP EGroup by e.deptno, e.category; Cursor c2 is select d.description from dept d where d.deptno= xdept; Begin For xx in c1 loop --- If Xdept! =xx.deptno Xdept: = xx.deptno; Open c2; Fetch c2 into Xdesc; End if; --- End loop; End; Now 12 is no of distinct dept return by join in the query. o General Guidelines while coding Mr. Hervé [4]: 1) Understand the data. Look around table structures and data. Get a feel for the data model and how to navigate it. 2) Do not code Large, complex plsql blocks, broke down them to smaller, simpler, self-contained blocks. 3) Try to see while making sqls columns referenced in queries are having indexes or not. These columns can be the select list columns and any required join or sort columns. 4) Consider adding small frequently accessed columns (not frequently updated) to an existing index. This will enable some queries to work only with the index, not the table. 5) IOTs and Index clusters usage should be checked. 8 P age
9 You can use and add on to this general guidelines while tuning queries of any application, as it varies the different aspects of sqls (including new features available with 11g and 10g )will be utilized. This completes the Query Tuning recommendations, after applying recommendations to application two final steps should occur: o Functional Testing of changes done after applying recommendations. o Query Improvement Gained analysis, which including analysing again the explain plan (w.r.t. Cost, Response time) and Overall Application Improvement needed gained or not. If not again the tuning cycle should start right from Generating explain plan. Conclusion Once done with Above all steps, a query is said to be TUNED. A query Tuning exercise does not only involve tuning of identified queries it is also important to execute all the steps mentioned in this paper to get the maximum improvement in response time. The framework mentioned above is getting used by many DBAs and Sql tuning specialists but an understanding of the existing engineering framework is developed her which is necessary for making effective contribution to the area of query optimization. References 1. What s Up with Dbms Stats? By Terry Sutton Database Specialists, Inc. 2. Speeding Up Queries with Semi-Joins and Anti-Joins: How Oracle Evaluates EXISTS, NOT EXISTS, IN, and NOT IN. Roger Schrag. Database Specialists, Inc By Hervé Deschamps. Further Reading This paper can be extended to include all best practices for Sql and PLSQL coding with Plsql tuning as well. Also Optimizer behaviour can be studied to evaluate different sets of queries based on Database parameter settings. 9 P age
Oracle 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 information.. Spring 2008 CSC 468: DBMS Implementation Alexander Dekhtyar..
.. Spring 2008 CSC 468: DBMS Implementation Alexander Dekhtyar.. Tuning Oracle Query Execution Performance The performance of SQL queries in Oracle can be modified in a number of ways: By selecting a specific
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 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 informationEffect of Stats on Two Columns Optimizer Statistics on tables and indexes are vital. Arup Nanda
Stats with Intelligence Arup Nanda Longtime Oracle DBA Effect of Stats on Two Columns Optimizer Statistics on tables and indexes are vital for the optimizer to compute optimal execution plans If there
More information7. Query Processing and Optimization
7. Query Processing and Optimization Processing a Query 103 Indexing for Performance Simple (individual) index B + -tree index Matching index scan vs nonmatching index scan Unique index one entry and one
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 informationD B M G Data Base and Data Mining Group of Politecnico di Torino
Database Management Data Base and Data Mining Group of tania.cerquitelli@polito.it A.A. 2014-2015 Optimizer operations Operation Evaluation of expressions and conditions Statement transformation Description
More informationExploring Best Practices and Guidelines for Tuning SQL Statements
Exploring Best Practices and Guidelines for Tuning SQL Statements Ami Aharonovich Oracle ACE & OCP Ami@DBAces.co.il Oracle ACE Who am I Oracle Certified Professional DBA (OCP) Founder and CEO, DBAces Oracle
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 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 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 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 informationCost Based Optimizer CBO: Configuration Roadmap
Cost Based Optimizer CBO: Configuration Roadmap Christian Antognini Sandro Crepaldi DOAG Regionaltreffen Hamburg/Nord 13.09.05, Hamburg Disclaimer > The CBO changes from release to release > It s difficult
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 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 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 informationINFSCI 2711 Database Analysis and Design Example I for Final Exam: Solutions
Dr. Stefan Brass July 26, 2001 School of Information Sciences University of Pittsburgh INFSCI 2711 Database Analysis and Design Example I for Final Exam: Solutions General Remarks The average was 22.2
More informationArrays are a very commonly used programming language construct, but have limited support within relational databases. Although an XML document or
Performance problems come in many flavors, with many different causes and many different solutions. I've run into a number of these that I have not seen written about or presented elsewhere and I want
More informationImproving Database Performance: SQL Query Optimization
CHAPTER 21 Improving Database Performance: SQL Query Optimization Performance tuning is the one area in which the Oracle DBA probably spends most of his or her time. If you re a DBA helping developers
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 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 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 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 informationQuery Optimization, part 2: query plans in practice
Query Optimization, part 2: query plans in practice CS634 Lecture 13 Slides by E. O Neil based on Database Management Systems 3 rd ed, Ramakrishnan and Gehrke Working with the Oracle query optimizer First
More informationOracle Performance Tuning. Overview of performance tuning strategies
Oracle Performance Tuning Overview of performance tuning strategies Allan Young June 2008 What is tuning? Group of activities used to optimize and homogenize the performance of a database Maximize use
More informationIT-Tage Dezember 2016 Frankfurt am Main Maritim Hotel
www.it-tage.org IT-Tage 2016 12.-15.Dezember 2016 Frankfurt am Main Maritim Hotel The Bad One Into Your Crop - SQL Tuning Analysis for DBAs Die Schlechten ins Kröpfchen - SQL Analyse für DBAs Martin Klier
More informationENHANCING DATABASE PERFORMANCE
ENHANCING DATABASE PERFORMANCE Performance Topics Monitoring Load Balancing Defragmenting Free Space Striping Tables Using Clusters Using Efficient Table Structures Using Indexing Optimizing Queries Supplying
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 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 informationManaging Performance Through Versioning of Statistics
Managing Performance Through Versioning of Statistics Claudia Fernandez Technical Services Manager claudia@leccotech.com LECCOTECH www.leccotech.com NoCOUG, August 2003 "Managing Performance Through Versioning
More informationDie Wundertüte DBMS_STATS: Überraschungen in der Praxis
Die Wundertüte DBMS_STATS: Überraschungen in der Praxis, 14. Mai 2018 Dani Schnider, Trivadis AG @dani_schnider danischnider.wordpress.com BASEL BERN BRUGG DÜSSELDORF FRANKFURT A.M. FREIBURG I.BR. GENEVA
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 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 informationPitfalls & Surprises with DBMS_STATS: How to Solve Them
Pitfalls & Surprises with DBMS_STATS: How to Solve Them Dani Schnider, Trivadis AG @dani_schnider danischnider.wordpress.com BASEL BERN BRUGG DÜSSELDORF FRANKFURT A.M. FREIBURG I.BR. GENEVA HAMBURG COPENHAGEN
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 informationOracle Database 11g: SQL and PL/SQL Fundamentals
Oracle University Contact Us: +33 (0) 1 57 60 20 81 Oracle Database 11g: SQL and PL/SQL Fundamentals Duration: 5 Days What you will learn In this course, students learn the fundamentals of SQL and PL/SQL
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 informationOracle 10g Dbms Stats Gather Table Stats Examples
Oracle 10g Dbms Stats Gather Table Stats Examples Summary of DBMS_COMPRESSION Subprograms Permissions for Managing and Querying Cube Materialized Views Example of SQL Aggregation Upgrading 10g Analytic
More informationData Organization and Processing I
Data Organization and Processing I Data Organization in Oracle Server 11g R2 (NDBI007) RNDr. Michal Kopecký, Ph.D. http://www.ms.mff.cuni.cz/~kopecky Database structure o Database structure o Database
More informationInterview Questions on DBMS and SQL [Compiled by M V Kamal, Associate Professor, CSE Dept]
Interview Questions on DBMS and SQL [Compiled by M V Kamal, Associate Professor, CSE Dept] 1. What is DBMS? A Database Management System (DBMS) is a program that controls creation, maintenance and use
More informationEZY Intellect Pte. Ltd., #1 Changi North Street 1, Singapore
Oracle Database 12c: Performance Management and Tuning NEW Duration: 5 Days What you will learn In the Oracle Database 12c: Performance Management and Tuning course, learn about the performance analysis
More informationDatenbanksysteme II: Caching and File Structures. Ulf Leser
Datenbanksysteme II: Caching and File Structures Ulf Leser Content of this Lecture Caching Overview Accessing data Cache replacement strategies Prefetching File structure Index Files Ulf Leser: Implementation
More informationDB2 SQL Class Outline
DB2 SQL Class Outline The Basics of SQL Introduction Finding Your Current Schema Setting Your Default SCHEMA SELECT * (All Columns) in a Table SELECT Specific Columns in a Table Commas in the Front or
More informationTuning with Statistics
Tuning with Statistics Wolfgang Breitling breitliw@centrexcc.com Agenda The DBMS_STATS Package Uses of DBMS_STATS beyond analyze The stattab Table Transferring Statistics with the stattab Table Means to
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 informationDB2 9 for z/os Selected Query Performance Enhancements
Session: C13 DB2 9 for z/os Selected Query Performance Enhancements James Guo IBM Silicon Valley Lab May 10, 2007 10:40 a.m. 11:40 a.m. Platform: DB2 for z/os 1 Table of Content Cross Query Block Optimization
More informationCopyright 2012, Oracle and/or its affiliates. All rights reserved.
1 Oracle safe harbor statement The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not
More informationDoes Exadata Need Performance Tuning? Jože Senegačnik, Oracle ACE Director, Member of OakTable DbProf d.o.o. Ljubljana, Slovenia
Does Exadata Need Performance Tuning? Jože Senegačnik, Oracle ACE Director, Member of OakTable DbProf d.o.o. Ljubljana, Slovenia Keywords Exadata, Cost Based Optimization, Statistical Optimizer, Physical
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 informationOracle 1Z0-054 Exam Questions and Answers (PDF) Oracle 1Z0-054 Exam Questions 1Z0-054 BrainDumps
Oracle 1Z0-054 Dumps with Valid 1Z0-054 Exam Questions PDF [2018] The Oracle 1Z0-054 Oracle Database 11g: Performance Tuning exam is an ultimate source for professionals to retain their credentials dynamic.
More informationOracle Database 12c: SQL Tuning for Developers
Oracle Database 12c: SQL Tuning for Developers Student Guide Volume I D79995GC10 Edition 1.0 December 2016 D84109 Learn more from Oracle University at education.oracle.com Author Dimpi Rani Sarmah Technical
More informationOracle EXAM - 1Z Oracle Database 11g: Performance Tuning. Buy Full Product.
Oracle EXAM - 1Z0-054 Oracle Database 11g: Performance Tuning Buy Full Product http://www.examskey.com/1z0-054.html Examskey Oracle 1Z0-054 exam demo product is here for you to test the quality of the
More informationRelational Database Index Design and the Optimizers
Relational Database Index Design and the Optimizers DB2, Oracle, SQL Server, et al. Tapio Lahdenmäki Michael Leach (C^WILEY- IX/INTERSCIENCE A JOHN WILEY & SONS, INC., PUBLICATION Contents Preface xv 1
More informationSession id: The Self-Managing Database: Guided Application and SQL Tuning
Session id: 40713 The Self-Managing Database: Guided Application and SQL Tuning Lead Architects Benoit Dageville Khaled Yagoub Mohamed Zait Mohamed Ziauddin Agenda SQL Tuning Challenges Automatic SQL Tuning
More informationOracle Database Performance Tuning, Benchmarks & Replication
Oracle Database Performance Tuning, Benchmarks & Replication Kapil Malhotra kapil.malhotra@software.dell.com Solutions Architect, Information Management Dell Software 2 11/29/2013 Software Database Tuning
More informationOracle SQL & PL SQL Course
Oracle SQL & PL SQL Course Complete Practical & Real-time Training Job Support Complete Practical Real-Time Scenarios Resume Preparation Lab Access Training Highlights Placement Support Support Certification
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 informationSQL Gone Wild: Taming Bad SQL the Easy Way (or the Hard Way) Sergey Koltakov Product Manager, Database Manageability
SQL Gone Wild: Taming Bad SQL the Easy Way (or the Hard Way) Sergey Koltakov Product Manager, Database Manageability Oracle Enterprise Manager Top-Down, Integrated Application Management Complete, Open,
More informationContents Contents Introduction Basic Steps in Query Processing Introduction Transformation of Relational Expressions...
Contents Contents...283 Introduction...283 Basic Steps in Query Processing...284 Introduction...285 Transformation of Relational Expressions...287 Equivalence Rules...289 Transformation Example: Pushing
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 informationRNDr. Michal Kopecký, Ph.D. Department of Software Engineering, Faculty of Mathematics and Physics, Charles University in Prague
seminář: Administrace Oracle (NDBI013) LS2017/18 RNDr. Michal Kopecký, Ph.D. Department of Software Engineering, Faculty of Mathematics and Physics, Charles University in Prague Database structure Database
More informationData about data is database Select correct option: True False Partially True None of the Above
Within a table, each primary key value. is a minimal super key is always the first field in each table must be numeric must be unique Foreign Key is A field in a table that matches a key field in another
More informationOracle Database 12c. The Best Oracle Database 12c Tuning Features for Developers and DBAs. Presented by: Alex Zaballa, Oracle DBA
Oracle Database 12c The Best Oracle Database 12c Tuning Features for Developers and DBAs Presented by: Alex Zaballa, Oracle DBA Alex Zaballa http://alexzaballa.blogspot.com/ 147 and counting @alexzaballa
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 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 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 informationOracle Database 12c: Performance Management and Tuning
Oracle University Contact Us: +43 (0)1 33 777 401 Oracle Database 12c: Performance Management and Tuning Duration: 5 Days What you will learn In the Oracle Database 12c: Performance Management and Tuning
More informationDatabase statistics gathering: Synopsis
Database statistics gathering: Synopsis Introduction It is known that having proper database statistics is crucial for query optimizer. Statistics should properly describe data within the database. To
More informationSQL Interview Questions
SQL Interview Questions SQL stands for Structured Query Language. It is used as a programming language for querying Relational Database Management Systems. In this tutorial, we shall go through the basic
More informationImplementing Table Operations Using Structured Query Language (SQL) Using Multiple Operations. SQL: Structured Query Language
Implementing Table Operations Using Structured Query Language (SQL) Using Multiple Operations Show Only certain columns and rows from the join of Table A with Table B The implementation of table operations
More informationOracle Database: SQL and PL/SQL Fundamentals NEW
Oracle Database: SQL and PL/SQL Fundamentals NEW Duration: 5 Days What you will learn This Oracle Database: SQL and PL/SQL Fundamentals training delivers the fundamentals of SQL and PL/SQL along with the
More informationParser: SQL parse tree
Jinze Liu Parser: SQL parse tree Good old lex & yacc Detect and reject syntax errors Validator: parse tree logical plan Detect and reject semantic errors Nonexistent tables/views/columns? Insufficient
More informationIntroduction. Assessment Test. Chapter 1 Introduction to Performance Tuning 1. Chapter 2 Sources of Tuning Information 33
Contents at a Glance Introduction Assessment Test xvii xxvii Chapter 1 Introduction to Performance Tuning 1 Chapter 2 Sources of Tuning Information 33 Chapter 3 SQL Application Tuning and Design 85 Chapter
More informationOracle Tuning Pack. Table Of Contents. 1 Introduction. 2 Installation and Configuration. 3 Documentation and Help. 4 Oracle SQL Analyze
Oracle Tuning Pack Readme Release 2.1.0.0.0 for Windows February 2000 Part No. A76921-01 Table Of Contents 1 Introduction 2 Installation and Configuration 3 Documentation and Help 4 Oracle SQL Analyze
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 informationOracle PL/SQL - 12c & 11g [Basic PL/SQL & Advanced PL/SQL]
Chapter Overview of PL/SQL Programs Control Statements Using Loops within PLSQL Oracle PL/SQL - 12c & 11g [Basic PL/SQL & Advanced PL/SQL] Table of Contents Describe a PL/SQL program construct List the
More information5. Single-row function
1. 2. Introduction Oracle 11g Oracle 11g Application Server Oracle database Relational and Object Relational Database Management system Oracle internet platform System Development Life cycle 3. Writing
More informationOracle Database: SQL and PL/SQL Fundamentals Ed 2
Oracle University Contact Us: Local: 1800 103 4775 Intl: +91 80 67863102 Oracle Database: SQL and PL/SQL Fundamentals Ed 2 Duration: 5 Days What you will learn This Oracle Database: SQL and PL/SQL Fundamentals
More informationQuery Processing & Optimization
Query Processing & Optimization 1 Roadmap of This Lecture Overview of query processing Measures of Query Cost Selection Operation Sorting Join Operation Other Operations Evaluation of Expressions Introduction
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 informationTHE DBMS_STATS PACKAGE
SQL TUNING WITH STATISTICS Wolfgang Breitling, Centrex Consulting Corporation This paper looks at the DBMS_STATS package and how it can be used beyond just the gathering of statistics in the tuning effort,
More informationArchitettura Database Oracle
Architettura Database Oracle Shared Pool La shared pool consiste di: Data dictionary: cache che contiene informazioni relative agli oggetti del databse, lo storage ed i privilegi Library cache: contiene
More informationIT100: Oracle Administration
IT100: Oracle Administration IT100 Rev.001 CMCT COURSE OUTLINE Page 1 of 8 Training Description: Introduction to Oracle Administration and Management is a five-day course designed to provide Oracle professionals
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 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 informationEnsuring Optimal Performance. Vivek Sharma. 3 rd November 2012 Sangam 2012
Ensuring Optimal Performance Vivek Sharma 3 rd November 2012 Sangam 2012 Who am I? Around 12 Years using Oracle Products Certified DBA versions 8i Specializes in Performance Optimization COE Lead with
More informationCourse Contents of ORACLE 9i
Overview of Oracle9i Server Architecture Course Contents of ORACLE 9i Responsibilities of a DBA Changing DBA Environments What is an Oracle Server? Oracle Versioning Server Architectural Overview Operating
More informationUsing Oracle STATSPACK to assist with Application Performance Tuning
Using Oracle STATSPACK to assist with Application Performance Tuning Scenario You are experiencing periodic performance problems with an application that uses a back-end Oracle database. Solution Introduction
More informationTop 7 Plan Stability Pitfalls & How to Avoid Them. Neil Chandler Chandler Systems Ltd UK
Top 7 Plan Stability Pitfalls & How to Avoid Them Neil Chandler Chandler Systems Ltd UK Keywords: SQL Optimizer Plan Change Stability Outlines Baselines Plan Directives Introduction When you write some
More informationOracle Database 12c Performance Management and Tuning
Course Code: OC12CPMT Vendor: Oracle Course Overview Duration: 5 RRP: POA Oracle Database 12c Performance Management and Tuning Overview In the Oracle Database 12c: Performance Management and Tuning course,
More informationProjects. Corporate Trainer s Profile. CMM (Capability Maturity Model) level Project Standard:- TECHNOLOGIES
Corporate Trainer s Profile Corporate Trainers are having the experience of 4 to 12 years in development, working with TOP CMM level 5 comapnies (Project Leader /Project Manager ) qualified from NIT/IIT/IIM
More informationLearning Objectives : This chapter provides an introduction to performance tuning scenarios and its tools.
Oracle Performance Tuning Oracle Performance Tuning DB Oracle Wait Category Wait AWR Cloud Controller Share Pool Tuning 12C Feature RAC Server Pool.1 New Feature in 12c.2.3 Basic Tuning Tools Learning
More informationPrinciples of Data Management
Principles of Data Management Alvin Lin August 2018 - December 2018 Structured Query Language Structured Query Language (SQL) was created at IBM in the 80s: SQL-86 (first standard) SQL-89 SQL-92 (what
More informationORACLE 12C NEW FEATURE. A Resource Guide NOV 1, 2016 TECHGOEASY.COM
ORACLE 12C NEW FEATURE A Resource Guide NOV 1, 2016 TECHGOEASY.COM 1 Oracle 12c New Feature MULTITENANT ARCHITECTURE AND PLUGGABLE DATABASE Why Multitenant Architecture introduced with 12c? Many Oracle
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 informationDatabase Systems: Design, Implementation, and Management Tenth Edition. Chapter 8 Advanced SQL
Database Systems: Design, Implementation, and Management Tenth Edition Chapter 8 Advanced SQL Objectives In this chapter, you will learn: How to use the advanced SQL JOIN operator syntax About the different
More informationOracle Database: Introduction to SQL Ed 2
Oracle University Contact Us: +40 21 3678820 Oracle Database: Introduction to SQL Ed 2 Duration: 5 Days What you will learn This Oracle Database 12c: Introduction to SQL training helps you write subqueries,
More informationInstitute of Aga. Network Database LECTURER NIYAZ M. SALIH
2017 Institute of Aga Network Database LECTURER NIYAZ M. SALIH Database: A Database is a collection of related data organized in a way that data can be easily accessed, managed and updated. Any piece of
More informationTable of Contents. PDF created with FinePrint pdffactory Pro trial version
Table of Contents Course Description The SQL Course covers relational database principles and Oracle concepts, writing basic SQL statements, restricting and sorting data, and using single-row functions.
More information