Advanced Oracle SQL Tuning Eğitimi

Ön Kayıt ve Fiyat Bilgi Formu




Eğitim Tipi ve Süresi

3.0 Days ILT    
Eğitim Sağlayıcı ve Kategori

Oracle Expert  » Oracle Uzmanlık Eğitimler
Oracle Expert  » Popular Courses Eğitimler
Oracle  » SQL Tuning Eğitimler

Ders Açıklaması

Gelişmiş SQL Tuning eğitiminde en iyi performans için SQL ifadelerinin derinlemesine bir anlayış ile formüle ederek , Oracle uzmanları tarafından sağlanan yoğun içeriğe sahip üç , dört ya da beş günlük bir eğitimdir.

 

Hedef Kitle

Bu eğitim SQL ifadeleriyle ilgili temel düzey bilgiye sahip Oracle DBA leri ve Sistem Yöneticileri için tasarlanmıştır.Oracle konusunda derinlemesine bilgiye ihtiyaç yoktur , ancak ilişkisel veritabanı yaklaşımı ile SQL kullanıyor olmak gereklidir.

 

SQL Tuning eğitiminin amacı , hızlı bir şekilde veritabanının iş yükünü hafifletici iyileştirmeleri bulmak ve gerekli değişiklikleri yaparak performans artışı sağlayabilmektir.

 

Öğrenme Hedefleri

Bu eğitimin sonunda katılımcılar , alt sorgular ve outer joinler tarzındaki gelişmiş SQL sorgularını kullanabiliceklerdir . Katılımcılar yine eksik indexleri gerekli alanlara ekleme , iyileştirici istatistikleri ayarlayarak , parametre değişiklikleriyle birlikte Oracle veritabanı için önemli SQL Tuning teknikleri konusunda detaylı bilgi sahibi olacaklardır .

 

Eğitim Taslağı

 

SQL Optimizasyonu Giriş

SQL Tuning Giriş

- SQL Tarihçesi

- SQL Evrimi

- Alıştırmalar

SQL komutları kullanarak yapılan İşlemler

- SQL Syntax ayrıştırma

- SQL Semantik analizi

- Yürütme Planları

- İyileştirici Planlar

- V$sql görünümünü kullanma

- V$sql_plan görünümünü kullanma

- Library Cache sorgulama

 

Istatistikler

- Istatistiklerin amacı

- Istatistik türleri(tablo/sütun/sistem)

- Histogram istatistikleri

- Dinamik örnekleme

- DBMS_STATS kullanımı

- Istatistik export/import

- Istatistik yönetimi

- Alıştırma – Sistem Istatistikleri Toplamak

- Optimizer Modları ve Hedefleri

- Sistem genelinde optimizasyon ile yönetim sorunları

- Farklı SQL optimizasyonu modları

- Bi-Modal Veritabanları

- Kural tabanlı optimizasyon

- Maliyet tabanlı optimizasyon

- Tüm satırlar optimizasyonu

- Ilk satır optimizasyonu

- Alıştırma – optimizer mode değiştirmek

- Tablo birleştirme

- Sıralama birleştirme

- İç içe döngü

- Hash birleştirme

- Star birleştirme

- Bitmap birleştirme

- SQL Tuning ve tam tablo taramaları

- Dosya temelleriyle I/O

- Sıralı ve dağınık okuma

- Tam tablo taramaları ne zaman gereklidir

- SGA önbelleğe alma

- Otomatik tablo önbelleğe alım

- Solid State Diskler

- AWR kullanımı

 

Execution Plan Internals

 

Oracle Paralel Sorgu ve Paralel DML

- Paralel ve SMP işleme

- Optimum derecede paralel sorgu

- Paralel sorgu yönetimi

- Paralel DML

- Paralellik

- Alıştırma – Bir paralel sorgu nasıl çalışır 

 

Execution Plan Yorumlaması

- Büyük tablo , tam tablo taramaları değerlendirmesi

- Index kullanım analizi

- Sistem genelinde SQL ile ilgili raporlar

- Alıştırma – Autotrace seçenekleri

- Planların değiştirilmesi

- Sistem genelinde optimizer modu değiştirmek

- Belirli tablolar için iyileştirme modu

- SQL sorguları yeniden yazmak

- Hint kullanımları

- Alıştırma – Optimizer maliyet modelleri

 

Hint kullanımıyla SQL iyileştirmek

- Hint kapsamları (oturum yada komut düzeyinde)

- Optimizer modu hintleri

- Iyi yada kötü hintler

- Ordered ve Leading hintleri

- Index kullanımını zorlamak

- Alt sorgular için hint kullanımı

- Alıştırma – Hint kullanımı ile Execution plan değiştirmek

 

Oracle Index Optimizasyonu

- B-Tree indexleri

- Bitmap indexleri

- Fonksiyon bazlı indexler

- Clustered indexler

- Index Tabloları

- Alıştırma – Fonksiyon bazlı index yaratımı

 

Oracle Sıralama Iyileştirmesi

- Order by , group by kullanımı

- Iç sıralama ve indexlerle sıralama

- Dısk sıralama

- Hash cluster sıralaması

 

Gelişmiş SQL Iyileştirme Konuları

 

SQL Performans Görüntülemesi

- Yanıt Süresini Ölçme

- SQL hacmini Ölçme

- V$session_longops kullanımı

- Alıştırma – plan9i.sql kullanımı

 

Oracle DML Iyileştirmesi

- DML iyileştirmesi

- Optimize Oracle SQL Insert performansı

- Insert performans Teknikleri

- Toplu insert ipuçları

- Düşük performanslı insert teknikleri

- Nologging opsiyonu kullanımı

- Ters anahtar indexleri ve insert performansı

- Blocksize ve insert performansı

- Oracle Delete & Update Iyileştirmesi

- Yüksek performanslı Update teknikleri

- Düşük etkili teknikler

- PL/SQL Update leri için bulk bind kullanımları

- DML komutlarıyla alt sorgular

 

Materialized Views ve Geçici Objeler

- Materialized Views

- Küresel geçici tablolar

- With kullamını

- Geçici nesnelerle karmaşık SQLleri basitleştirme

- Alıştırma – With kullanımı ve karmaşık sorguları geçici tablolarla - yeniden yazmak

 

Alt Sorgu Iyileştirmeleri

- Alt Sorgu Iyileştirmeleri ve SQL

- Alt Sorgular için Iyileştirme Kuralları

- SQL alt Sorgulardan kaçınmak

- Where şartlarında alt sorgu kullanımı (IN – EXISTS)

- Aynı Sonuçlar , Farklı Komut ve Planlar

- İlişkili Alt Sorgular

- Scalar Alt Sorgular

- SQL Performansı için alt sorguları çıkartmak

- Geçici tablolar

- İlişkili Alt Sorgu Iyileştirmesi

- Exists – Not Exists Alt Sorguları

- Rank Fonksiyonları

- Hintlerle alt sorgular

- Push_subq hinti

- Anti-Join hinti

- Merge_aj hinti

 

Kötü SQL leri Giderme

Problemli SQL’lerdeki sorunları giderme

- SQL Tuning Bütünsel Yaklaşım

- Oracle SQL hataları giderme

- Kötü bir SQL nedir ?

- Sorunlu SQL’lerin belirlenmesi

- V$sql_plan ile sorun giderme

- V$sql_plan_statistics ile sorun giderme

- Indexleme fırsatları

 

Gelişmiş Istatistikler

- Histogramlar

- Istatistikleri Taşıma

- Istatistik Yönetimi

- Alıştırma – Şema ve Tablo Analizi

 


Course Description

Advanced Oracle SQL tuning is an intensive three-day, four-day, or five-day course designed to provide Oracle professionals with an in-depth understanding of Oracle SQL tuning and how to formulate and tune SQL statements for optimal performance.

 

Audience

This course is designed for practicing Oracle DBA's and Systems Administrators professionals who have basic experience with SQL statements. Prior experience with Oracle is not required, but experience using SQL with a relational database is highly desirable.

The goal of the SQL tuning class is to provide a comprehensive toolkit to allow the DBA to quickly locate and tune a database workload.

Learning Objectives

By the end of this course the student will be able to tune advanced SQL queries including correlated subqueries and outer joins. The student will also become familiar with all of the major SQL tuning techniques for Oracle, including global parameter and statistics changes, adding missing indexes and adjusting optimizer statistics.  The student will also see the internals of the Oracle optimizers, and see proven techniques for tuning Oracle SQL statements for optimal performance.

 

Course Outline

Introduction to SQL Optimization

Introduction to SQL Tuning

Intro to the class
History of SQL
Evolution of SQL
Exercise - declarative SQL

Internal processing of SQL statements

Parsing SQL Syntax 
SQL Semantic Analysis 
Generating the execution plan 
Using optimizer plan stability 
Using the v$sql view  
Using the v$sql_plan view 
Exercise – Query the library cache 

Optimizer Statistics

Purpose of statistics
Types of statistics (table, column, system)
Histogram statistics
Dynamic sampling
using dbms_stats
Exporting/importing statistics
Statistics management
Exercise – gather system stats

Optimizer modes and goals

Management issues with system-wide optimization
Different modes of SQL optimization
Bi-modal databases
Rule-based optimization
Cost-based optimization
All rows optimization
First_rows optimization
Exercise – display and change optimizer_mode
Table joining internals
Sort-merge joins 
Nested Loop joins 
Hash joins 
STAR joins 
Bitmap joins 
Exercise – Change table join techniques & evaluate performance 
SQL Tuning and full-table scans
Basics of file I/O
Sequential reads vs. scattered reads
When full scans are best
RAM caching in the SGA
Automating table caching
Solid State Disks
Tracking full-scans over time with AWR
Exercise – Query v$sql
 
Execution plan internals

 
Oracle parallel query and parallel DML

Parallel and SMP processing
Parallel query optimal degree
Parallel query management (system, session, statement)
Parallel DML
Parallel parallelism
Exercise: Run a parallel query

Exposing execution  plans 

Evaluating Large-table, full-table scans 
Index Usage Analysis 
Reports on system-wide SQL execution 
Exercise – run autotrace options
Altering SQL execution plans
Using hints 
Changing the system-wide optimizer mode 
Changing optimizer mode for specific statements 
Re-writing SQL queries  
Table join order evaluation 
Using the ordered hint 
Exercise – Optimizer costing models 

Tuning SQL with hints

Optimizer directives
Scope of hints (session-level, statement level)
Broad hints (optimizer mode) vs. narrow hints
Good Hints vs. bad hints
Using the ORDERED and LEADING HINTS
Forcing index usage
Using hints in subqueries
Exercise – change an execution  plan with a  hint

Oracle Index Optimization

B-Tree indexes  
Bitmap Indexes  
Function-based Indexes 
Clustered indexes 
Index-only tables 
Exercise – Create a function-based index
 
Tuning Oracle sorting

When a sort is invoked (order by, group by, etc.)
Sorting with indexes vs internal sorting
Detecting disk sorts
Sorted Hash Clusters
Exercise: Force two sort methods

Advanced SQL Tuning Topics

Monitoring SQL Performance

Measuring end-to-end response time
Measuring SQL throughput
Using v$session_longops
Optional Exercise – Run plan9i.sql

Oracle DML Tuning          

DML Tuning is not for neophytes             
Oracle DML tuning           
Optimizing Oracle SQL insert performance           
High Impact insert Tuning Techniques    
Tips for batch inserts      
Low-impact insert techniques (% and % faster)  
Tuning insert speed with the nologging option   
Reverse key indexes and insert performance     
Blocksize and insert performance             
Oracle Delete & Update Tuning      
High impact update techniques (over % faster):  
Low-impact techniques (between % and % faster)           
Using bulk binds for PL/SQL updates       
Oracle subquery factoring (with clause) for DML          
     
Tuning with materialized views and 
temporary objects

Materialized views
Global temporary tables
Using scalar subqueries (WITH clause)
Simplifying complex SQL with temporary objects
Exercise – Re-write complex query using temporary tables and WITH clause

Tuning subqueries 

Subquery Tuning and SQL            
Types of SQL Subqueries              
Tuning Guidelines for Subqueries             
Avoiding SQL Subqueries              
Subqueries in the where Clause                
In vs. exists Subqueries 
Same Results, Different Syntax and Plans             
Non-correlated subquery:           
Outer Join:          
Correlated Subquery:    
Tuning Scalar Subqueries              
Scalar Subquery Performance    
Removing Subqueries for Fast SQL Performance               
Internals of Temporary Tables   
Correlated vs. Non-correlated Subqueries             
Tuning Correlated Subqueries    
Automatic Rewriting not exists Subqueries          
Automatic Rewriting exists Subqueries  
Rewriting Non-equality Correlated Subqueries  
Rewriting exists Subqueries with the rank Function         
Subquery Hint Tuning    
Subquery Tuning with Index Hints            
Tuning Subqueries With the push_subq Hint       
Table Anti-Join Hints       
The merge_aj Hint          
SQL Tuning With the hash_aj Hint    
Exercise: Tune an anti-join         

Troubleshooting bad SQL

Troubleshooting Problem SQL    
The Holistic Approach to SQL Tuning        
Troubleshooting Oracle SQL Bugs              
What is Bad SQL             
Identifying Problem SQL               
Troubleshooting with v$sql_plan              
SQL Troubleshooting with v$sql_plan_statistics 
Finding indexing opportunities  
Exercise: Find top SQL hogs

Advanced Optimizer Statistics

Histograms
Exporting/importing statistics
Statistics management
Exercise – Analyze schema and tables

Advanced Topics

Tuning Distributed SQL 

Distributed Database Technology             
Coordinating Distributed Databases        
Distributed SQL Table Joins          
The remote-to-remote Distributed Join                
The local-to-remote distributed join       
Troubleshooting Distributed Oracle SQL                
Performance Issues with Distributed Queries     
Creating Cross-database Execution Plans              
Determining the Driving Site and Driving Table for Cross-database Queries           
The Problem of Remote Joins    
Sorting and Distributed SQL         
Parallelism and Distributed Queries         
Using Views for Distributed SQL                
Tuning with the driving_site Hint              
Forcing Partition Pruning on Distributed SQL        
Tuning distributed DDL  
 
Tuning with partitioning

Types of partitioning
Sub-partitioning
Partition-aware SQL performance

Time-series SQL Tuning

estat-bstat reports
Statspack
ASH
AWR Reports
Using linear regression
Identifying signatures
Exercise: Analyze a AWR report
Advanced WHERE clause tuning
Sequence of SQL Predicates (ordered_predicates)
Ordering clauses in WHERE statements
CASE statement
Using the ordered_predicates hint
Optional exercise: Change predicate order
Optimizer Statistics
Purpose of statistics
Types of statistics (table, column, system)
Histogram statistics
Dynamic sampling
using dbms_stats
Exporting/importing statistics
Exercise:  Use 11g extended statistics
 
Row re-sequencing for SQL performance
 
Using clustering factor
Using CTAS with ORDER BY
Using sorted hash clusters
Using IOT’s
Reorganizing Tables for High Performance           
Faster SQL with Database Reorganizations           
Tuning SQL Access with clustering_factor              
Tuning SQL with Cluster Tables  
Managing Row Chaining in Oracle             
A Summary of Object Tuning Rules 

 

Advanced SQL Tuning Topics
 
Tuning Object-oriented SQL
        
Object Oriented Oracle SQL        
The SQL Impedance Mismatch   
SQL Object Extension Performance         
Performance of Oracle Object-oriented SQL       
Repeating Data Items in Relational Tables             
Inside Varray Tables       
Execution Plans for varray Tables              
Oracle Nested tables and SQL Performance      
ADTs and Oracle SQL      
Abstract Datatypes and SQL Performance    
Exercise: Test performance of an abstract datatype

 
Tuning with the SPA

The history of automated advisors
The SQLAccess and SQLTuning advisors
Recommending “missing” indexes
Recommending materialized views
The future for automatic SQL Tuning

 
Data compression and SQL Performance

Types of Oracle compression
Compression and disk space
Effect of compression on full-scan behavior

 
 SQL Tuning with Views  

Tuning SQL with Views  
Benefits of Oracle Views              
Drawbacks in Tuning SQL that Contains Views     
Abusing Views in Oracle SQL       
Merging Views and SQL Tuning  
Predicate Pushing with Views    
Combining Hints and Views         
Oracle In-line Views        
Tips for Tuning SQL with Views  
SQL Tuning with Materialized Views        
Materialized Views and Automatic SQL Query Rewrite   
A Case Study in Materialized Views         
Exercise: Tuning an in-line view

 
Tracing execution Plans

Using TKPROF
Using the 10046 trace event
Exercise – run TKPROF
Expert SQL Tuning Secrets (Summary and review)

 

 

 



Eğitim içeriğini PDF olarak indir

Diğer Oracle Expert, Oracle Eğitimleri