This Oracle Database 11g: SQL Tuning Workshop
Release 2
training assists database developers, DBAs and SQL developers in
identifying
and tuning inefficient SQL statements. You'll explore investigative
methods to
reveal varying levels of detail about how the Oracle database executes
the SQL
statement; this helps you determine the root causes of the inefficient
SQL
statements.
Many
client/server
application programmers consider SQL a messaging language, because
queries are
issued and data is returned. However, client tools often generate
inefficient
SQL statements. Therefore, a good understanding of the database SQL
processing
engine is necessary for writing optimal SQL. This is especially true
for high
transaction processing systems.
Typically,
SQL statements issued by OLTP
applications operate on relatively few rows at a time. If an index can
point to
the exact rows that are required, then Oracle can construct an accurate
plan to
access those rows efficiently through the shortest possible path. In
decision
support system (DSS) environments, selectivity is less important,
because they
often access most of a table's rows. In such situations, full table
scans are
common, and indexes are not even used.
Course Objectives
- Identify poorly performing SQL
- Trace an application through its different levels of the application architecture
- Understand how the Query Optimizer makes decisions about how to access data
- Define how optimizer statistics affect the performance of SQL
- List the possible methods of accessing data, including different join methods
- Modify a SQL statement to perform at its best
Course Topics
Exploring the
Oracle Database Architecture
- Oracle Database Server Architecture: Overview
- Connecting to the Database Instance
- Physical Structure
- Oracle Database Memory Structures: Overview
- Automatic Shared Memory Management
- Automated SQL Execution Memory Management
- Database Storage Architecture, Logical and Physical Database Structures
- SYSTEM and SYSAUX Tablespaces
Introduction to
SQL Tuning
- Reason for Inefficient SQL Performance
- Performance Monitoring Solutions
- Monitoring and Tuning Tools: Overview
- CPU and Wait Time Tuning Dimensions
- Scalability with Application Design, Implementation, and Configuration
- Common Mistakes on Customer systems & Proactive Tuning Methodology
- Simplicity in Application Design
- Data Modeling, Table Design, Index Design, Using Views, SQL Execution Efficiency, Overview of SQL*Plus & SQL Developer
Introduction to
the Optimizer
- Structured Query Language
- SQL Statement Parsing: Overview
- Why Do You Need an Optimizer?
- Optimization During Hard Parse Operation
- Transformer & Estimator
- Cost-Based Optimizer
- Plan Generator
- Controlling the Behavior of the Optimizer, Optimizer Features and Oracle Database Releases
- What Is an Execution Plan? Where To Find Execution Plans and Viewing Execution Plans
- Plan Table & AUTOTRACE
- Using the V$SQL_PLAN View
- Automatic Workload Repository (AWR)
- SQL Monitoring: Overview
- Interpreting an Execution Plan
- Reading More Complex Execution Plans and Reviewing the Execution Plan
- Looking Beyond Execution Plans
Application Tracing
- End-to-End Application Tracing Challenge
- Location for Diagnostic Traces
- What is a Service? Use Services with Client Applications & Tracing Services
- Use Enterprise Manager to Trace Services
- Session Level Tracing: Example
- The trcsess Utility and SQL Trace File Contents
- Invoking the tkprof Utility and Output of the tkprof Command
- tkprof Output with and without Index: Example
Optimizer: Table
and Index Operations
- Row Source Operations, Main Structures and Access Paths
- Full Table Scan
- Indexes: Overview and B*-tree Indexes and Nulls
- Using Indexes: Considering Nullable Columns
- Index-Organized Tables
- Bitmap Indexes, Bitmap Operations and Bitmap Join Index
- Composite Indexes and Invisible Index
- Guidelines for Managing Indexes and Investigating Index Usage
Optimizer Join
Methods
- Nested Loops Join
- Nested Loops Join: 11g Implementation
- Sort Merge join
- Hash Join and Cartesian Join
- Equijoins and Nonequijoins
- Outer Joins
- Semijoins
- Antijoins
Optimizer: Other
Operators
- When Are Clusters Useful?
- Inlist Iterator and View Operator
- Count Stop Key Operator
- Min/Max and First Row Operators and Other N-Array Operations
- Filter operations and Concatenation Operations
- UNION [ALL], INTERSECT, MINUS
- Result Cache Operator
Case Study: Star
Transformation
- The Star Schema Model and The Snowflake Schema Model
- Star Transformation
- Retrieving Fact Rows from One Dimension and from All Dimensions
- Joining the Intermediate Result Set with Dimensions
- Star Transformation Plan Examples
- Star Transformation Hints
- Using Bitmap Join Indexes
- Bitmap Join Indexes: Join Model 1 to 4
Optimizer
Statistics
- Types of Optimizer Statistics
- Table, Index and Column Statistics
- Index Clustering Factor
- Histograms, Frequency Histograms and Histogram Considerations
- Multicolumn Statistics and Expression Statistics Overview
- Gathering System Statistics and Statistic Preferences
- Manual Statistics Gathering
- Locking Statistics, Export/Import Statistics and Set Statistics
Using Bind
Variables
- Cursor Sharing and Different Literal Values
- Cursor Sharing and Bind Variables
- Bind Variable Peeking
- Cursor Sharing Enhancements
- The CURSOR_SHARING Parameter
- Forcing Cursor Sharing
- Adaptive Cursor Sharing
- Interacting with Adaptive Cursor Sharing
Using SQL Tuning
Advisor
- Tuning SQL Statements Automatically
- Application Tuning Challenges
- SQL Tuning Advisor: Overview
- Stale or Missing Object Statistics and SQL Statement Profiling
- Plan Tuning Flow and SQL Profile Creation
- SQL Tuning Loop, Access Path Analysis and SQL Structure Analysis
- Database Control and SQL Tuning Advisor
- Implementing Recommendations
Using SQL Access
Advisor
- SQL Access Advisor: Overview
- Possible Recommendations
- SQL Access Advisor Session: Initial Options
- SQL Access Advisor: Recommendation Options
- SQL Access Advisor: Schedule and Review
- SQL Access Advisor: Results
- SQL Access Advisor: Results and Implementation
Using Automatic
SQL Tuning
- SQL Tuning Loop
- Automatic SQL Tuning
- Automatic Tuning Process
- Configuring Automatic SQL Tuning
- Automatic SQL Tuning: Result Summary
- Automatic SQL Tuning: Result Details
- Automatic SQL Tuning Result Details: Drilldown
- Automatic SQL Tuning Considerations
SQL Performance
Management
- Maintaining SQL Performance and SQL Plan Management: Overview
- SQL Plan Baseline: Architecture
- Important Baseline SQL Plan Attributes
- SQL Plan Selection
- Possible SQL Plan Manageability Scenarios
- SQL Performance Analyzer and SQL Plan Baseline Scenario
- Loading a SQL Plan Baseline Automatically and Purging SQL Management Base Policy
- Enterprise Manager and SQL Plan Baselines
Related Courses
Oracle Database 11g:
SQL Tuning Work
No comments:
Post a Comment