Dale Roberts 8/20/2015 1 Department of Computer and Information Science, School of Science, IUPUI Dale Roberts, Lecturer Computer Science, IUPUI E-mail:

Slides:



Advertisements
Similar presentations
Tuning: overview Rewrite SQL (Leccotech)Leccotech Create Index Redefine Main memory structures (SGA in Oracle) Change the Block Size Materialized Views,
Advertisements

Copyright © SoftTree Technologies, Inc. DB Tuning Expert.
Chapter 9. Performance Management Enterprise wide endeavor Research and ascertain all performance problems – not just DBMS Five factors influence DB performance.
Module 13: Performance Tuning. Overview Performance tuning methodologies Instance level Database level Application level Overview of tools and techniques.
Dale Roberts 1 Department of Computer and Information Science, School of Science, IUPUI Dale Roberts, Lecturer Computer Science, IUPUI
INTRODUCTION TO ORACLE Lynnwood Brown System Managers LLC Performance And Tuning – Lecture 7 Copyright System Managers LLC 2007 all rights reserved.
11 Copyright © 2004, Oracle. All rights reserved. Managing Objects with Data Dictionary Views.
Managing Objects with Data Dictionary Views
Agenda Overview of the optimizer How SQL is executed Identifying statements that need tuning Explain Plan Modifying the plan.
Database Management: Getting Data Together Chapter 14.
Harvard University Oracle Database Administration Session 2 System Level.
Database Systems: Design, Implementation, and Management Eighth Edition Chapter 11 Database Performance Tuning and Query Optimization.
Optimization Exercises. Question 1 How do you think the following query should be computed? What indexes would you suggest to use? SELECT E.ename, D.mgr.
Chapter 9 Overview  Reasons to monitor SQL Server  Performance Monitoring and Tuning  Tools for Monitoring SQL Server  Common Monitoring and Tuning.
Top tips for Oracle SQL tuning Guy Harrison Senior Software Architect, Quest Software BUY QUEST PRODUCTS BUY GUY’S BOOK BUY QUEST PRODUCTS.
AN INTRODUCTION TO EXECUTION PLAN OF QUERIES These slides have been adapted from a presentation originally made by ORACLE. The full set of original slides.
ORACLE ONLINE TRAINING Contact our Support Team : SOFTNSOL India: Skype id : softnsoltrainings id:
Dale Roberts 1 Department of Computer and Information Science, School of Science, IUPUI Dale Roberts, Lecturer Computer Science, IUPUI
Oracle for Software Developers. What is a relational database? Data is represented as a set of two- dimensional tables. (rows and columns) One or more.
Database Systems: Design, Implementation, and Management Tenth Edition Chapter 11 Database Performance Tuning and Query Optimization.
Database Systems: Design, Implementation, and Management Eighth Edition Chapter 10 Database Performance Tuning and Query Optimization.
IT The Relational DBMS Section 06. Relational Database Theory Physical Database Design.
Chapter Oracle Server An Oracle Server consists of an Oracle database (stored data, control and log files.) The Server will support SQL to define.
Chapter 6 Additional Database Objects
Oracle Database Administration Lecture 6 Indexes, Optimizer, Hints.
Oracle9i Performance Tuning Chapter 1 Performance Tuning Overview.
Chapter 6 Additional Database Objects Oracle 10g: SQL.
Basic Optimization DB Workshop for LHC online/offline developers CERN January
11-1 Improve response time of interactive programs. Improve batch throughput. To ensure scalability of applications load vs. performance. Reduce system.
1 All Powder Board and Ski Oracle 9i Workbook Chapter 9: Database Administration Jerry Post Copyright © 2003.
Oracle9i Performance Tuning Chapter 12 Tuning Tools.
What is a schema ? Schema is a collection of Database Objects. Schema Objects are logical structures created by users to contain, or reference, their data.
Database Design and Management CPTG /23/2015Chapter 12 of 38 Functions of a Database Store data Store data School: student records, class schedules,
SQL Performance and Optimization l SQL Overview l Performance Tuning Process l SQL-Tuning –EXPLAIN PLANs –Tuning Tools –Optimizing Table Scans –Optimizing.
1 Chapter 10 Joins and Subqueries. 2 Joins & Subqueries Joins – Methods to combine data from multiple tables – Optimizer information can be limited based.
Dale Roberts 1 Department of Computer and Information Science, School of Science, IUPUI Dale Roberts, Lecturer Computer Science, IUPUI
Oracle tuning: a tutorial Saikat Chakraborty. Introduction In this session we will try to learn how to write optimized SQL statements in Oracle 8i We.
Module 4 Database SQL Tuning Section 3 Application Performance.
Controlling User Access. 2 home back first prev next last What Will I Learn? Compare the difference between object privileges and system privileges Construct.
© IBM Corporation 2005 Informix User Forum 2005 John F. Miller III Explaining SQLEXPLAIN ®
Copyright © 2004, Oracle. All rights reserved. CONTROLLING USER ACCESS Oracle Lecture 8.
Kansas State University Department of Computing and Information Sciences CIS 560: Database System Concepts Tuesday, November 1, 2000 “Transaction processing”
Chapter 5 Index and Clustering
Altering Tables and Constraints Database Systems Objectives Add and modify columns. Add, enable, disable, or remove constraints. Drop a table. Remove.
1 Copyright © 2005, Oracle. All rights reserved. Following a Tuning Methodology.
Indexes- What?  Optional structures associated with tables  Provides a quick access path to table data  You can create indexes on one or more columns.
13 Copyright © Oracle Corporation, All rights reserved. Controlling User Access.
11 Copyright © 2006, Oracle. All rights reserved. Managing Objects with Data Dictionary Views.
DB Tuning : Chapter 10. Optimizer Center for E-Business Technology Seoul National University Seoul, Korea 이상근 Intelligent Database Systems Lab School of.
Query Processing – Implementing Set Operations and Joins Chap. 19.
Optimization and Administartion of a Database Management Systems Krystian Zieja.
1 Chapters 21, 22, 23, 37  Ch. 21: SQL*Loader  Ch. 22: Database Links, Oracle Net  Ch. 23: Materialized Views (aka Snapshots)  Ch. 37: Data Dictionary.
Oracle9i Developer: PL/SQL Programming Chapter 11 Performance Tuning.
Dale Roberts 1 Department of Computer and Information Science, School of Science, IUPUI Dale Roberts, Lecturer Computer Science, IUPUI
Database Systems, 8 th Edition SQL Performance Tuning Evaluated from client perspective –Most current relational DBMSs perform automatic query optimization.
LAB: Web-scale Data Management on a Cloud Lab 11. Query Execution Plan 2011/05/27.
3 Copyright © 2006, Oracle. All rights reserved. Designing and Developing for Performance.
 Reviewing basic architecture concepts  Oracle 10g Architecture  Main features of 9i and 10g
Physical Database Design
Using Data Dictionary and Dynamic Performance Views
Database Performance Tuning and Query Optimization
Introduction to Execution Plans
Managing Objects with Data Dictionary Views
Managing Objects with Data Dictionary Views
Index Note: A bolded number or letter refers to an entire lesson or appendix. A Adding Data Through a View ADD_MONTHS Function 03-22, 03-23,
Introduction to Execution Plans
Chapter 11 Database Performance Tuning and Query Optimization
Introduction to Execution Plans
Introduction to the Optimizer
Introduction to Execution Plans
Presentation transcript:

Dale Roberts 8/20/ Department of Computer and Information Science, School of Science, IUPUI Dale Roberts, Lecturer Computer Science, IUPUI SQL Tuning Introduction

Dale Roberts 8-2 Oracle Data Dictionary Data Dictionary: stores all information that is used to manage the objects in the database. Nomenclature: USER_%objects you own ALL_%objects you own, have been granted access to, or public DBA_%all objects in database. Road Map Tables: DICTIONARY (DICT) - describes the Oracle data dictionary tables. select table_name, comments from DICT where table_name like ‘USER_%’;

Dale Roberts 8-3 Tables about Database Objects: –USER_CATALOG (CAT) - tables, views, synonyms, sequences –USER_OBJECTS (OBJ) - clusters, links, functions, indexes, packages, procedures, sequences, synonyms, tables, triggers, views –USER_TABLES (TABS) –USER_TAB_COLUMNS (COLS) –USER_VIEWS –USER_SYNONYMS (SYN) –USER_SEQUENCES (SEQ) Constraints: –USER_CONSTRAINTS –USER_CONS_COLUMNS –EXCEPTIONS Comments: –USER_TAB_COMMENTS –USER_COL_COMMENTS Indexes: –USER_INDEXES (IND) –USER_IND_COLUMNS Clusters: –USER_CLUSTERS (CLU) –USER_CLU_COLUMNS Oracle Data Dictionary

Dale Roberts 8-4 Links, Snapshots: –USER_DB_LINKS –USER_SNAPSHOTS –USER_SNAPSHOT_LOGS Procedures: –USER_TRIGGERS –USER_SOURCE –USER_ERRORS –USER_OBJECT_SIZE –USER_ARGUMENTS Space Allocation: –USER_TABLESPACES –USER_SEGMENTS –USER_EXTENTS –USER_FREE_SPACE User Tables: –USER_USERS –USER_RESOURCE_LIMITS –USER_TAB_PRIVS –USER_SYS_PRIVS Roles: –USER_ROLE_PRIVS –ROLE_TAB_PRIVS - DBA privilege required –ROLE_SYS_PRIVS - DBA privilege required –ROLE_ROLE_PRIVS - DBA privilege required Oracle Data Dictionary

Dale Roberts 8-5 Auditing: (only if auditing turned on by DBA) –USER_AUDIT_OBJECT –USER_AUDIT_SESSION –USER_AUDIT_STATEMENT –USER_OBJ_AUDIT_OPTS Dynamic Tables: (DBA ONLY) –V$ACCESS - locks currently held on objects –V$FILESTAT - file read/write statistics –V$LOCK - non-DDL locks and resources –V$PROCESS - currently active processes –V$SESSION - currently active sessions –V$SGA - size of each component in the SGA (System Global Area) –V$SYSSTAT - current statistics on entire database –V$TRANSACTION- info about transactions. Chained Rows: –Create table CHAINED_ROWS from $ORA_HOME/rdbms/admin/utlchain.sql –Analyze a table like this: analyze LEDGER list chained rows into CHAINED_ROWS; Plan Table: –Create table PLAN_TABLE from $ORA_HOME/rdbms/admin/utlxplan.sql –Analyze a query like this: explain plan set Statement_id = ‘A’ for select...; Oracle Data Dictionary

Dale Roberts 8-6 Understand the Applications Tasks –What data is to be captured? –How should the data be processed? –How should the data be reported? Good Design Has a Human Touch

Dale Roberts 8-7 Ways to Increase DB Performance: –Relax normalization rules by using meaningful keys, pp –Put redundant data into 3NF tables, pp –More memory, p. 614 –Combining smaller tables, “Kitchen Junk Drawer” approach, p. 615 –Computation Table, p. 616 –Snapshots, Chapter 23 Performance and Design

Dale Roberts 8-8 Why tune SQL statements: –Improve response time of interactive programs. –Improve batch throughput. –To ensure scalability of applications (load v. perf.) –Reduce system load for other uses besides DB. –Avoid hardware upgrades. Scalability: –Well-tuned applications deliver good performance as number of users or data volume increases. –Applications which have a linear degradation pattern degrade predictably, usually they are problems responsive to hardware upgrades. –Exponential degradation patterns are more serious. They tend to be problems that creep up over time, starting benign and unrecognized, later becoming huge problems. –Bottlenecks are performance problems which are abrupt, like “hitting a brick wall”. Usually no warning, and no hardware solution. SQL Tuning

Dale Roberts 8-9 Objections to SQL tuning: –“The Oracle optimizer will tune my statements for me automatically.” –“I’m not a SQL programmer, I’m a... VB/PowerBuilder/C++/Java programmer.” –“I’ll write the SQL, someone else (DBA) can tune it for me later.” –“I’ll tune it later” –“We can’t afford to tune it” When to tune: –Early is least costly & better. –Changing SQL/table designs in the design phase means that no applications need to be re-written. –Tuning SQL performance when SQL is first written usually means lower testing costs. –In production systems, testing SQL can sometimes be difficult... change control, production system availability, extra time to deal with larger data volumes. –Tune SQL early as possible to be most effective and economical. SQL Tuning

Dale Roberts 8-10 SQL Tuning

Dale Roberts 8-11 SQL Tuning Retrieving Data: –Full Table Scan - gets data from row 1 to high water mark –Row ID - gets data by physical location. Quickest way to get a row. –Index Lookup - matches up key value with Row ID –Hash Key Lookup - computes a Row ID with a mathematical formula applied to key value. Joining Data: –Sort Merge Join sorts each table’s key columns merges data together does not use indexes –Nested Loops Join full table scan used on smaller table key values of 1st table joined with the larger table’s index –Hash Join hash key is built for larger table, constructs index on the fly smaller table is then fully scanned data from smaller table is joined with the hash key index.

Dale Roberts 8-12 SQL Tuning Oracle Optimizers: –Rule Based Optimizer older optimizer, used since first versions of Oracle. set of rules which rank access paths. always picks an index over doing full table scan. –Cost Based Optimizer new in Oracle 7. takes advantage of database statistics to pick optimal access path. To collect table statistics: ANALYZE TABLE tablename CALCULATE STATISTICS; Optimizer Goals: –RULE, picks only rule based optimizer. –CHOOSE, picks cost based optimizer if any table in query has been analyzed. –ALL_ROWS, picks the cost based optimizer and finds an execution plan which is best for the entire query. Good for batch reporting. –FIRST_ROWS, pick the cost based optimizer and finds an execution plan which is best for the first row. Good for interactive applications.

Dale Roberts 8-13 SQL Tuning How to set the optimizer goal: –Change the database configuration file (init.ora). OPTIMIZER_MODE=FIRST_ROWS –Change settings for your session in SQL*Plus. ALTER SESSION SET OPTIMIZER_GOAL=RULE; –“Influence” the optimizer with “hints”. Example, use rule based optimizer: SELECT /*+ RULE */ * FROM EMPLOYEE WHERE SALARY > ; Example, use full table scan: select /*+ FULL(E) FULL(D) */ e.employee_id, e.surname, e.firstname from employee e, department d where d.location=‘Indianapolis’ and d.dept_id = e.dept_id; Example, recommend an index: select /*+ index(E, emp_dept_idx) */ e.employee_id, e.surname, e.firstname from employee e, department d where d.location=‘Indianapolis’ and d.dept_id = e.dept_id;

Dale Roberts 8-14 SQL Tuning Tracing Oracle SQL: –EXPLAIN PLAN, shows the execution plan. –SQL_TRACE, generates a trace file containing SQL executed by your session and resources used. –tkprof, formats SQL_TRACE output. –AUTOTRACE, SQL*Plus command to show exuction plans and statistics in your SQL*Plus session. –3rd Party Tools. Numerous GUI tools to quickly show this information, usually expensive.

Dale Roberts 8-15 EXPLAIN PLAN Executing: explain plan for select /*+RULE */ e.surname, e.firstname, e.date_of_birth from employee e, customers c where e.surname=c.contact_surname and e.firstname=c.contact_firstname and e.date_of_birth=c.date_of_birth order by e.surname, e.firstname; Formatting Plan Table in a Query: select rtrim(lpad(‘ ‘,2*level)|| rtrim(operation)||‘ ‘|| rtrim(options)||‘ ‘|| object_name) as query_plan from plan_table connect by prior id=parent_id start with id=0; Execution Plan Query: query_plan SELECT STATEMENT SORT ORDER BY NETED LOOPS TABLE ACCESS FULL CUSTOMERS TABLE ACCESS BY ROWID EMPLOYEES INDEX RANGE SCAN EMP_BOTH_IDX SQL Tuning

Dale Roberts 8/20/ Acknowledgements Loney, Oracle Database 10g The Complete Reference