You are on page 1of 2

Oracle PL/SQL Performance Tuning

5 day - Syllabus
(Duration: 40 hours)

Pre-requisite: Basic Oracle and Sql Knowledge

Section 1 - Introducing PL/SQL

Introduction
What is PL/SQL and Why Should I use It? Section 5 - Memory Management
PL/SQL Architecture
Overview of PL/SQL Elements Introduction
Blocks Bind Variables and the Shared Pool
Variables and Constants The NOCOPY Hint and Memory Usage
Using SQL in PL/SQL Bigger is Better for VARCHAR2 Variables
Branching and Conditional Control Using Packages Correctly
Looping Statements Pinning Packages in the Shared Pool
Goto Conclusion
Procedures, Functions and Packages
Records
Object Types Section 6 - Cursor Variables and REF CURSOR
Collections Types
Associative Arrays (Index-By Tables)
Nested Table Collections
Varrays Introduction
Collection Methods Defining Cursor Variables
Triggers Cursor Variables as Parameters
Error Handling Cursor Attributes and Cursor Variable Usage
My Ideal Environment Host Variables as Cursor Variables
Dynamic SQL and Variant Resultsets
Restrictions When Using Cursor Variables
Cursor Expressions
Section 2 - Writing Efficient PL/SQL

Introduction Section 7 - Table Functions and Pipelining


Bind Variables
Using Bind Variables Introduction
The cursor_sharing Parameter Pipelining Table Functions
Dynamic Binds using Contexts Parallel Enabled Table Functions
SQL Injection Creating Transformation Pipelines
Bulk Binds Deterministic
Using Rowids when Updating Miscellaneous Information
Short-circuit Evaluations and Ordering Logic
Implicit vs. Explicit Cursors
Declarations, Blocks, Functions and Procedures in Section 8 - Monitoring and Profiling PL/SQL
Loops
Duplication of Built-in String Functions Introduction
Minimize Datatype Conversions Producing Performance Baselines
The Trigger Compilation Myth Monitoring Specific Code
Efficient Function Calls Code Instrumentation (application tracing)
Using the NOCOPY Hint The DSP Package
Using PLS_INTEGER and BINARY_INTEGER dbms_application_info
Types dbms_session
Using BINARY_FLOAT and BINARY_DOUBLE dbms_system
Types dbms_profiler
Native Compilation of PL/SQL dbms_trace
Decoupling (cheating) for Performance SQL trace, trcsess and tkprof
Generating SQL Trace Files
trcsess
tkprof
Section 3 - Arrays and Bulk Binds Trace Example
Execution Plans
Introduction plan_table
Populating Collections Using Bulk Operations autotrace
Bulk collect Explain Plan
Bulk Collect from an Explicit Cursor utlxpls.sql
Chunking Bulk Collections Using the LIMIT dbms_xplan
Clause Identifying the Impact of Code at the Database
Manually Limiting Bulk Collection Volumes Level
Bulk Collection of DML Results Dynamic Performance Views (V$)
FORALL sessions.sql
Bulk INSERT Operations top_sessions.sql
Bulk UPDATE Operations top_sql.sql
Bulk DELETE Operations longops.sql
Sparse Collections session_waits.sql
Host Arrays in Bulk Operations session_events_by_sid.sql and system_events.sql
BULK_ROWCOUNT session_stats.sql and system_stats.sql
Handling Exceptions in Bulk Operations session_io.sql
Unhandled Exceptions open_cursors_by_sid.sql
Handled Exceptions locked_objects.sql
Bulk Operations that Complete STATSPACK
Dynamic SQL and Bulk Operations Automatic Workload Repository (AWR)
ADDM
Section 4 - Caching Session Data Using Oracle Enterprise Manager
Introduction
Using Arrays for Lookup Tables
Using Package Variables to Store Global Data
Using Contexts to Store Global Data
Conclusion

You might also like