SlideShare ist ein Scribd-Unternehmen logo
1 von 30
Downloaden Sie, um offline zu lesen
In 
Search 
of 
Plan 
Stability 
Part 
2 
Karen 
Morton 
Sr. 
Technical 
Consultant 
Now 
part 
of 
Accenture
karen.morton@enkitec.com 
karenmorton.blogspot.com 
@karen_morton
Topics 
• How 
SQL 
Plan 
Management 
(SPM) 
works 
• How 
SQL 
Plan 
Baselines 
are 
created 
• How 
SQL 
Plan 
Baselines 
are 
evolved/enabled 
for 
use 
• "InteresMng" 
SPM 
Mdbits
SQL 
Plan 
Management 
(SPM) 
• One 
or 
more 
persistent, 
opMmal 
plans 
per 
SQL 
• Plan 
Stability 
– Only 
known 
and 
accepted 
plans 
can 
be 
executed 
• Plan 
Flexibility 
– Capture 
new 
plans 
and 
evaluate 
their 
performance 
"off-­‐line" 
– New 
plans 
are 
acknowledged 
but 
not 
executed 
unMl 
"evolved" 
Goal 
Plan 
stability 
with 
controlled 
flexibility
SPM 
allows 
execuMon 
plans 
for 
SQL 
statements 
to 
be 
stored 
so 
that 
the 
plan 
remains 
consistent 
throughout 
various 
changes 
such 
as 
schema 
changes, 
database 
reorgs, 
data 
volume 
changes 
and 
more. 
SPM 
is 
an 
Oracle 
Enterprise 
Edi3on 
feature 
and 
does 
not 
require 
the 
tuning 
pack. 
For 
more 
details 
see 
the 
Op3mizer 
Development 
Team 
blog 
at 
hBps://blogs.oracle.com/op3mizer/entry/does_the_use_of_sql
Configuring 
SPM 
• Stored 
in 
SYSAUX 
tablespace 
• Two 
non-­‐init.ora 
parameters 
– space_budget_percent 
= 
10 
(storage 
usage 
in 
SYSAUX) 
– plan_retenMon_weeks 
= 
53 
(purge 
baselines 
not 
used 
in 
X 
weeks) 
• Use 
DBMS_SPM.CONFIGURE 
• Query 
configuraMon 
info 
from 
DBA_SQL_MANAGEMENT_CONFIG
Why 
use 
SPM? 
• Since 
execuMon 
plan 
selecMon 
depends 
on 
many 
things, 
when 
any 
of 
these 
things 
changes, 
plans 
can 
change 
• Like 
what? 
– Upgraded 
or 
patched 
database 
version 
– StaMsMcs 
changes 
(for 
tables, 
indexes, 
etc) 
– Parameter 
changes 
– Metadata 
changes 
(schema 
objects) 
– Cardinality 
feedback, 
adapMve 
cursor 
sharing 
and 
more…
How 
does 
SPM 
work? 
• A 
repository 
of 
execuMon 
plans 
is 
held 
for 
every 
SQL 
statement 
(DBA_SQL_PLAN_BASELINES) 
• At 
hard 
parse 
Mme 
– The 
repository 
is 
searched 
for 
a 
plan 
for 
the 
SQL 
being 
executed 
– When 
plan 
found 
(or 
none 
is 
found), 
that 
plan 
is 
used 
– When 
plan 
not 
found, 
but 
other 
accepted 
plans 
for 
the 
SQL 
are 
present, 
one 
of 
the 
accepted 
plans 
is 
used 
instead
How 
is 
SPM 
managed? 
• SPM 
is 
controlled 
by 
an 
init.ora 
parameter 
– opMmizer_use_sql_plan_baselines 
= 
true/false 
– Can 
be 
altered 
at 
both 
the 
system 
and 
session 
leveled 
• The 
supplied 
packaged, 
DBMS_SPM, 
provides 
addiMonal 
management 
features 
• SPM 
can 
be 
configured 
to 
work 
automaMcally 
or 
be 
manually 
controlled
SQL 
Plan 
Baselines 
Overview 
• A 
set 
of 
plans 
available 
to 
the 
CBO 
for 
a 
given 
SQL 
• IniMal 
occurrence 
of 
a 
plan 
is 
stored 
and 
accepted 
in 
SMB 
• Any 
new 
(i.e. 
changed) 
plan 
is 
added 
as 
a 
non-­‐accepted 
plan 
and 
must 
be 
verified 
later 
• Accepted 
plans 
have 
been 
verified 
to 
not 
cause 
performance 
regression 
or 
indicate 
performance 
improvement
How 
the 
SMB 
(plan 
history) 
works 
Parse 
of 
SQL0001 
ExecuMon 
Plan 
P1001 
SQL 
Plan 
Accepted? 
SQL0001 
P1001 
Y 
SQL0001 
P1002 
Y 
SQL0001 
P1003 
Y 
SQL0001 
P1004 
N 
SQL0002 
P2001 
Y 
If 
derived 
plan 
of 
SQL0001 
matches 
any 
SMB 
plan, 
use 
it. 
If 
no 
match, 
choose 
one 
of 
the 
already 
accepted 
plans. 
Load 
the 
new/different 
plan 
in 
"not 
accepted" 
state.
SPM 
Main 
Concepts 
• SQL 
Plan 
Baseline 
capture 
– Using 
SQL 
Tuning 
Set 
(STS) 
– From 
the 
cursor 
cache 
(shared 
pool/V$SQL_PLAN) 
– Export 
from 
one 
database; 
import 
into 
another 
– AutomaMcally 
• SQL 
Plan 
Baseline 
selecMon 
• SQL 
Plan 
Baseline 
evoluMon
Capture 
using 
SQL 
Tuning 
Set 
DBMS_SPM.LOAD_PLANS_FROM_SQLSET ( 
sqlset_name => 'name of STS' , 
sqlset_owner => 'owner of STS' , 
basic_filter => 'any WHERE clause' , 
fixed => 'NO (default) / YES' , 
enabled => 'YES (default) / NO' , 
commit_rows => '# plans loaded per commit' 
) 
Requires 
Tuning 
Pack
Capture 
from 
Shared 
Pool 
DBMS_SPM.LOAD_PLANS_FROM_CURSOR_CACHE ( 
sql_id => 
plan_hash_value => [NULL – all plans for SQL_ID] 
sql_text => 
sql_handle => 
attribute_name => [SQL_TEXT, PARSING_SCHEMA_NAME, MODULE, ACTION] 
attribute_value => 
fixed => 'NO (default) / YES' 
enabled => 'YES (default) / NO' 
)
Import 
from 
another 
database 
(1) 
DBMS_SPM.CREATE_STGTAB_BASELINE ( 
table_name => 
table_owner => 
) 
On 
source 
database
Import 
from 
another 
database 
(2) 
DBMS_SPM.PACK_STGTAB_BASELINE ( 
table_name => 
table_owner => 
sql_handle => 
plan_name => 
sql_text => 
creator => 
enabled => 
accepted => 
fixed => 
module => 
action => 
) 
On 
source 
database
Import 
from 
another 
database 
(3) 
DBMS_SPM.UNPACK_STGTAB_BASELINE ( 
table_name => 
table_owner => 
sql_handle => 
plan_name => 
sql_text => 
creator => 
enabled => 
accepted => 
fixed => 
module => 
action => 
) 
On 
target 
database
Capture 
automaMcally 
ALTER SESSION SET 
OPTIMIZER_CAPTURE_SQL_PLAN_BASELINES = 
TRUE; 
• First 
plan 
captured 
automaMcally 
accepted 
• Occurs 
only 
for 
repeatable 
statements 
– SQL 
must 
be 
executed 
at 
least 
twice 
– IniMal 
execuMon 
info 
kept 
in 
SYS.SQLLOG$ 
On 
target 
database
SQL 
Plan 
Baselines 
(1) 
• IdenMfied 
by 
SQL 
Handle 
and 
Signature 
– Hash 
funcMon 
on 
SQL 
Text 
– DBMS_SQLTUNE.SQLTEXT_TO_SIGNATURE 
• View 
DBA_SQL_PLAN_BASELINES 
– enabled 
= 
YES 
– accepted 
= 
YES
SQL 
Plan 
Baselines 
(2) 
• Stores 
plan_hash_value 
and 
verifies 
plan 
can 
be 
reproduced 
before 
using 
• Provides 
stability 
at 
the 
expense 
of 
Mme 
to 
review 
and 
evolve 
new 
plans 
(automaMc 
plan 
evoluMon 
available) 
• Must 
match 
SQL 
text 
exactly 
– No 
opMon 
for 
force_matching 
(as 
available 
with 
SQL 
Profiles)
What 
is 
a 
FIXED 
baseline? 
• When 
a 
baseline 
plan 
is 
fixed 
– The 
plan 
exists 
and 
is 
both 
accepted 
and 
enabled 
– Can 
be 
set 
manually 
– Alters 
the 
selecMon 
and 
capture 
process 
• Auto-­‐capture 
won't 
add 
any 
new 
not-­‐accepted 
plans 
for 
this 
SQL 
• The 
selecMon 
process 
will 
choose 
the 
FIXED/ENABLED 
plan 
for 
this 
SQL
SQL 
Plan 
Baseline 
EvoluMon 
• The 
way 
Oracle 
determines 
if 
not 
yet 
accepted 
plans 
can 
be 
turned 
into 
accepted 
plans 
• Done 
by 
execuMng 
waiMng 
plans 
and 
comparing 
performance 
with 
already 
accepted 
plans 
in 
the 
baseline 
• Use 
DBMS_SPM.EVOLVE_SQL_PLAN_BASELINE 
– Run 
and 
accept 
plan 
if 
performance 
is 
bemer 
– Run 
and 
report 
only 
(but 
do 
not 
accept) 
– Run 
and 
accept 
without 
tesMng/verifying 
performance 
• Schedule 
plan 
evoluMon 
to 
occur 
automaMcally 
– In 
nightly 
maintenance 
window 
(uses 
STA 
and 
must 
be 
licensed)
EVOLVE_SQL_PLAN_BASELINE 
DBMS_SPM.EVOLVE_SQL_PLAN_BASELINE ( 
sql_handle => 
plan_name => 
plan_list => 
time_limit => 
verify => 
commit => 
)
Manual 
SQL 
Plan 
Baseline 
EvoluMon 
SQL> variable spm_report clob; 
SQL> exec :spm_report := dbms_spm.evolve_sql_plan_baseline(); 
PL/SQL procedure successfully completed.
SQL> print :spm_report 
------------------------------------------------------------------------------- 
Evolve SQL Plan Baseline Report 
------------------------------------------------------------------------------- 
Inputs: 
------- 
SQL_HANDLE = 
PLAN_NAME = 
TIME_LIMIT = DBMS_SPM.AUTO_LIMIT 
VERIFY = YES 
COMMIT = YES 
Plan: SYS_SQL_PLAN_gdd261c97bcbc936 
----------------------------------- 
Plan was verified: Time used .2 seconds. 
Passed performance criterion: Compound improvement ratio >= 10.13 
Plan was changed to an accepted plan. 
Baseline Plan Test Plan Improv. Ratio 
------------- --------- ------------- 
Execution Status: COMPLETE COMPLETE 
Rows Processed: 942 942 
Elapsed Time(ms): 19 15 1.27 
CPU Time(ms): 18 15 1.2 
Buffer Gets: 1188 116 10.24 
Disk Reads: 0 0 
Direct Writes: 0 0 
Fetches: 0 0 
Executions: 1 1
SPM 
Tidbits 
• Statements 
must 
be 
executed 
twice 
to 
be 
captured 
– SYS.SQLLOG$ 
contains 
single 
SQL 
(helps 
with 
literal 
SQL) 
• Baselines 
don't 
actually 
hold 
the 
execuMon 
plan 
– Set 
of 
outline 
hints 
– 
injected 
into 
SQL 
text 
to 
produce 
plan 
– Plan 
hash 
ID 
– 
plan 
produced 
when 
baseline 
captured 
• EvoluMon 
of 
baselines 
on 
DML 
(insert/update/delete/ 
merge) 
have 
to 
execute 
the 
DML 
if 
VERIFY 
= 
YES 
– Bemer 
not 
have 
triggers 
with 
non-­‐transacMonal 
side-­‐effects!
SPM 
Tidbits 
• SPM 
inhibits 
intended 
funcMon 
of 
cardinality 
feedback 
and 
adapMve 
cursor 
sharing 
• SPM 
is 
intended 
to 
prevent 
performance 
degradaMon 
– Just 
like 
any 
feature, 
it's 
not 
a 
guaranteed 
"always" 
• SPM 
requires 
Tuning 
Pack 
only 
if 
used 
with 
automaMc 
evoluMon 
and 
the 
SQL 
Tuning 
Advisor
12c 
Enhancements 
• New 
evolve 
auto 
task 
– 
sys_auto_spm_evolve_task 
– See 
DBA_ADVISOR_TASKS 
– Use 
DBMS_SPM.REPORT_AUTO_EVOLVE_TASK 
• Integrated 
into 
EM 
– Maintains 
persistent 
store 
of 
evoluMon 
reports 
• In 
addiMon 
to 
plan 
hash, 
plan 
rows 
stored 
– Aids 
in 
diagnosis 
when 
plan 
cannot 
be 
reproduced
Wrap-­‐up 
• SPM 
is 
about 
controlled 
plan 
flexibility 
• SPM 
must 
be 
able 
to 
reproduce 
a 
plan 
in 
order 
to 
use 
it 
• SPM 
can 
have 
mulMple 
accepted 
plans 
in 
a 
baseline 
• SPM 
typically 
requires 
some 
Mme/resource 
commitment 
to 
manage 
well
Thank 
You!

Weitere ähnliche Inhalte

Was ist angesagt?

Oracle core dba online training
Oracle core dba online trainingOracle core dba online training
Oracle core dba online trainingTRAINING ICON
 
2011 Collaborate IOUG Presentation
2011 Collaborate IOUG Presentation2011 Collaborate IOUG Presentation
2011 Collaborate IOUG PresentationBiju Thomas
 
Sql and PL/SQL Best Practices I
Sql and PL/SQL Best Practices ISql and PL/SQL Best Practices I
Sql and PL/SQL Best Practices ICarlos Oliveira
 
Less13 Performance
Less13 PerformanceLess13 Performance
Less13 Performancevivaankumar
 
Server control utility reference
Server control utility referenceServer control utility reference
Server control utility referenceFemi Adeyemi
 
Less17 moving data
Less17 moving dataLess17 moving data
Less17 moving dataAmit Bhalla
 
Performance Tuning And Optimization Microsoft SQL Database
Performance Tuning And Optimization Microsoft SQL DatabasePerformance Tuning And Optimization Microsoft SQL Database
Performance Tuning And Optimization Microsoft SQL DatabaseTung Nguyen Thanh
 
Oracle 12c New Features_RMAN_slides
Oracle 12c New Features_RMAN_slidesOracle 12c New Features_RMAN_slides
Oracle 12c New Features_RMAN_slidesSaiful
 

Was ist angesagt? (19)

Oracle core dba online training
Oracle core dba online trainingOracle core dba online training
Oracle core dba online training
 
Les 01 core
Les 01 coreLes 01 core
Les 01 core
 
Les 06 rec
Les 06 recLes 06 rec
Les 06 rec
 
Les 09 diag
Les 09 diagLes 09 diag
Les 09 diag
 
Les 13 memory
Les 13 memoryLes 13 memory
Les 13 memory
 
Les 05 create_bu
Les 05 create_buLes 05 create_bu
Les 05 create_bu
 
2011 Collaborate IOUG Presentation
2011 Collaborate IOUG Presentation2011 Collaborate IOUG Presentation
2011 Collaborate IOUG Presentation
 
Sql and PL/SQL Best Practices I
Sql and PL/SQL Best Practices ISql and PL/SQL Best Practices I
Sql and PL/SQL Best Practices I
 
Les 04 config_bu
Les 04 config_buLes 04 config_bu
Les 04 config_bu
 
Less13 Performance
Less13 PerformanceLess13 Performance
Less13 Performance
 
Les 14 perf_db
Les 14 perf_dbLes 14 perf_db
Les 14 perf_db
 
Les 10 fl1
Les 10 fl1Les 10 fl1
Les 10 fl1
 
Les 07 rman_rec
Les 07 rman_recLes 07 rman_rec
Les 07 rman_rec
 
Les 18 space
Les 18 spaceLes 18 space
Les 18 space
 
Server control utility reference
Server control utility referenceServer control utility reference
Server control utility reference
 
Les 16 resource
Les 16 resourceLes 16 resource
Les 16 resource
 
Less17 moving data
Less17 moving dataLess17 moving data
Less17 moving data
 
Performance Tuning And Optimization Microsoft SQL Database
Performance Tuning And Optimization Microsoft SQL DatabasePerformance Tuning And Optimization Microsoft SQL Database
Performance Tuning And Optimization Microsoft SQL Database
 
Oracle 12c New Features_RMAN_slides
Oracle 12c New Features_RMAN_slidesOracle 12c New Features_RMAN_slides
Oracle 12c New Features_RMAN_slides
 

Andere mochten auch

PL/SQL Tips and Techniques Webinar Presentation
PL/SQL Tips and Techniques Webinar PresentationPL/SQL Tips and Techniques Webinar Presentation
PL/SQL Tips and Techniques Webinar PresentationEmbarcadero Technologies
 
Find it. Fix it. Real-World SQL Tuning Cases with Karen Morton
Find it. Fix it. Real-World SQL Tuning Cases with Karen MortonFind it. Fix it. Real-World SQL Tuning Cases with Karen Morton
Find it. Fix it. Real-World SQL Tuning Cases with Karen MortonEmbarcadero Technologies
 
Congratulations, You’re a DBA... Now What?
Congratulations, You’re a DBA... Now What?Congratulations, You’re a DBA... Now What?
Congratulations, You’re a DBA... Now What?Embarcadero Technologies
 
Dan Hotka’s PL SQL Tips and Techniques, Part II
Dan Hotka’s PL SQL Tips and Techniques, Part IIDan Hotka’s PL SQL Tips and Techniques, Part II
Dan Hotka’s PL SQL Tips and Techniques, Part IIEmbarcadero Technologies
 
Improve Agility and Collaboration with ER/Studio XE7
Improve Agility and Collaboration with ER/Studio XE7Improve Agility and Collaboration with ER/Studio XE7
Improve Agility and Collaboration with ER/Studio XE7Embarcadero Technologies
 
7 Dangerous Myths DBAs Believe about Data Modeling
7 Dangerous Myths DBAs Believe about Data Modeling7 Dangerous Myths DBAs Believe about Data Modeling
7 Dangerous Myths DBAs Believe about Data ModelingEmbarcadero Technologies
 
Understanding Hardware: The Right Fights for the DBA to Pick with the Server ...
Understanding Hardware: The Right Fights for the DBA to Pick with the Server ...Understanding Hardware: The Right Fights for the DBA to Pick with the Server ...
Understanding Hardware: The Right Fights for the DBA to Pick with the Server ...Embarcadero Technologies
 
Model Confidence for Master Data with David Loshin
Model Confidence for Master Data with David LoshinModel Confidence for Master Data with David Loshin
Model Confidence for Master Data with David LoshinEmbarcadero Technologies
 
Metadata Melodies Webinar with David Loshin Presentation
Metadata Melodies Webinar with David Loshin PresentationMetadata Melodies Webinar with David Loshin Presentation
Metadata Melodies Webinar with David Loshin PresentationEmbarcadero Technologies
 
In the Beginning, There Was the Log - Webinar with Martin Hubel
In the Beginning, There Was the Log - Webinar with Martin HubelIn the Beginning, There Was the Log - Webinar with Martin Hubel
In the Beginning, There Was the Log - Webinar with Martin HubelEmbarcadero Technologies
 
The Future of ER/Studio: Better with Team Server
The Future of ER/Studio: Better with Team ServerThe Future of ER/Studio: Better with Team Server
The Future of ER/Studio: Better with Team ServerEmbarcadero Technologies
 
Embarcadero ER/Studio Enterprise Team Edition Overview
Embarcadero ER/Studio Enterprise Team Edition OverviewEmbarcadero ER/Studio Enterprise Team Edition Overview
Embarcadero ER/Studio Enterprise Team Edition OverviewEmbarcadero Technologies
 
Is This Really a SAN Problem? Understanding the Performance of Your IO Subsy...
Is This Really a SAN Problem? Understanding the Performance of  Your IO Subsy...Is This Really a SAN Problem? Understanding the Performance of  Your IO Subsy...
Is This Really a SAN Problem? Understanding the Performance of Your IO Subsy...Embarcadero Technologies
 

Andere mochten auch (20)

PL/SQL Tips and Techniques Webinar Presentation
PL/SQL Tips and Techniques Webinar PresentationPL/SQL Tips and Techniques Webinar Presentation
PL/SQL Tips and Techniques Webinar Presentation
 
Find it. Fix it. Real-World SQL Tuning Cases with Karen Morton
Find it. Fix it. Real-World SQL Tuning Cases with Karen MortonFind it. Fix it. Real-World SQL Tuning Cases with Karen Morton
Find it. Fix it. Real-World SQL Tuning Cases with Karen Morton
 
Congratulations, You’re a DBA... Now What?
Congratulations, You’re a DBA... Now What?Congratulations, You’re a DBA... Now What?
Congratulations, You’re a DBA... Now What?
 
Dan Hotka’s PL SQL Tips and Techniques, Part II
Dan Hotka’s PL SQL Tips and Techniques, Part IIDan Hotka’s PL SQL Tips and Techniques, Part II
Dan Hotka’s PL SQL Tips and Techniques, Part II
 
Data Architecture Success Stories
Data Architecture Success StoriesData Architecture Success Stories
Data Architecture Success Stories
 
These Are The Data You Are Looking For
These Are The Data You Are Looking ForThese Are The Data You Are Looking For
These Are The Data You Are Looking For
 
Improve Agility and Collaboration with ER/Studio XE7
Improve Agility and Collaboration with ER/Studio XE7Improve Agility and Collaboration with ER/Studio XE7
Improve Agility and Collaboration with ER/Studio XE7
 
7 Dangerous Myths DBAs Believe about Data Modeling
7 Dangerous Myths DBAs Believe about Data Modeling7 Dangerous Myths DBAs Believe about Data Modeling
7 Dangerous Myths DBAs Believe about Data Modeling
 
Introducing ER/Studio Team Server
Introducing ER/Studio Team ServerIntroducing ER/Studio Team Server
Introducing ER/Studio Team Server
 
Understanding Hardware: The Right Fights for the DBA to Pick with the Server ...
Understanding Hardware: The Right Fights for the DBA to Pick with the Server ...Understanding Hardware: The Right Fights for the DBA to Pick with the Server ...
Understanding Hardware: The Right Fights for the DBA to Pick with the Server ...
 
Secure Your Data Assets
Secure Your Data AssetsSecure Your Data Assets
Secure Your Data Assets
 
RAD studio XE7 first look webinar
RAD studio XE7 first look webinarRAD studio XE7 first look webinar
RAD studio XE7 first look webinar
 
Managing a Multi-Platform Environment
Managing a Multi-Platform EnvironmentManaging a Multi-Platform Environment
Managing a Multi-Platform Environment
 
Model Confidence for Master Data with David Loshin
Model Confidence for Master Data with David LoshinModel Confidence for Master Data with David Loshin
Model Confidence for Master Data with David Loshin
 
Working With Different Kinds of Data
Working With Different Kinds of DataWorking With Different Kinds of Data
Working With Different Kinds of Data
 
Metadata Melodies Webinar with David Loshin Presentation
Metadata Melodies Webinar with David Loshin PresentationMetadata Melodies Webinar with David Loshin Presentation
Metadata Melodies Webinar with David Loshin Presentation
 
In the Beginning, There Was the Log - Webinar with Martin Hubel
In the Beginning, There Was the Log - Webinar with Martin HubelIn the Beginning, There Was the Log - Webinar with Martin Hubel
In the Beginning, There Was the Log - Webinar with Martin Hubel
 
The Future of ER/Studio: Better with Team Server
The Future of ER/Studio: Better with Team ServerThe Future of ER/Studio: Better with Team Server
The Future of ER/Studio: Better with Team Server
 
Embarcadero ER/Studio Enterprise Team Edition Overview
Embarcadero ER/Studio Enterprise Team Edition OverviewEmbarcadero ER/Studio Enterprise Team Edition Overview
Embarcadero ER/Studio Enterprise Team Edition Overview
 
Is This Really a SAN Problem? Understanding the Performance of Your IO Subsy...
Is This Really a SAN Problem? Understanding the Performance of  Your IO Subsy...Is This Really a SAN Problem? Understanding the Performance of  Your IO Subsy...
Is This Really a SAN Problem? Understanding the Performance of Your IO Subsy...
 

Ähnlich wie In Search of Plan Stability Part 2 with Karen Morton

Performance Management in Oracle 12c
Performance Management in Oracle 12cPerformance Management in Oracle 12c
Performance Management in Oracle 12cAlfredo Krieg
 
Adapting and adopting spm v04
Adapting and adopting spm v04Adapting and adopting spm v04
Adapting and adopting spm v04Carlos Sierra
 
LVOUG meetup #2 - Forcing SQL Execution Plan Instability
LVOUG meetup #2 - Forcing SQL Execution Plan InstabilityLVOUG meetup #2 - Forcing SQL Execution Plan Instability
LVOUG meetup #2 - Forcing SQL Execution Plan InstabilityMaris Elsins
 
My Experience Using Oracle SQL Plan Baselines 11g/12c
My Experience Using Oracle SQL Plan Baselines 11g/12cMy Experience Using Oracle SQL Plan Baselines 11g/12c
My Experience Using Oracle SQL Plan Baselines 11g/12cNelson Calero
 
OUG Harmony 2012 - Using SQL Plan Baselines for Performance Testing
OUG Harmony 2012 -  Using SQL Plan Baselines for Performance TestingOUG Harmony 2012 -  Using SQL Plan Baselines for Performance Testing
OUG Harmony 2012 - Using SQL Plan Baselines for Performance TestingMaris Elsins
 
Modernizing your database with SQL Server 2019
Modernizing your database with SQL Server 2019Modernizing your database with SQL Server 2019
Modernizing your database with SQL Server 2019Antonios Chatzipavlis
 
Performance Stability, Tips and Tricks and Underscores
Performance Stability, Tips and Tricks and UnderscoresPerformance Stability, Tips and Tricks and Underscores
Performance Stability, Tips and Tricks and UnderscoresJitendra Singh
 
Oracle - SQL-PL/SQL context switching
Oracle - SQL-PL/SQL context switchingOracle - SQL-PL/SQL context switching
Oracle - SQL-PL/SQL context switchingSmitha Padmanabhan
 
The Amazing and Elegant PL/SQL Function Result Cache
The Amazing and Elegant PL/SQL Function Result CacheThe Amazing and Elegant PL/SQL Function Result Cache
The Amazing and Elegant PL/SQL Function Result CacheSteven Feuerstein
 
In Search of Plan Stability - Part 1
In Search of Plan Stability - Part 1In Search of Plan Stability - Part 1
In Search of Plan Stability - Part 1Enkitec
 
Using SQL Plan Management (SPM) to Balance Plan Flexibility and Plan Stability
Using SQL Plan Management (SPM) to Balance Plan Flexibility and Plan StabilityUsing SQL Plan Management (SPM) to Balance Plan Flexibility and Plan Stability
Using SQL Plan Management (SPM) to Balance Plan Flexibility and Plan StabilityEnkitec
 
An Approach to Sql tuning - Part 1
An Approach to Sql tuning - Part 1An Approach to Sql tuning - Part 1
An Approach to Sql tuning - Part 1Navneet Upneja
 

Ähnlich wie In Search of Plan Stability Part 2 with Karen Morton (20)

Performance Management in Oracle 12c
Performance Management in Oracle 12cPerformance Management in Oracle 12c
Performance Management in Oracle 12c
 
Adapting and adopting spm v04
Adapting and adopting spm v04Adapting and adopting spm v04
Adapting and adopting spm v04
 
SQLDay2013_MarcinSzeliga_StoredProcedures
SQLDay2013_MarcinSzeliga_StoredProceduresSQLDay2013_MarcinSzeliga_StoredProcedures
SQLDay2013_MarcinSzeliga_StoredProcedures
 
LVOUG meetup #2 - Forcing SQL Execution Plan Instability
LVOUG meetup #2 - Forcing SQL Execution Plan InstabilityLVOUG meetup #2 - Forcing SQL Execution Plan Instability
LVOUG meetup #2 - Forcing SQL Execution Plan Instability
 
My Experience Using Oracle SQL Plan Baselines 11g/12c
My Experience Using Oracle SQL Plan Baselines 11g/12cMy Experience Using Oracle SQL Plan Baselines 11g/12c
My Experience Using Oracle SQL Plan Baselines 11g/12c
 
11g nf sql_anlz
11g nf sql_anlz11g nf sql_anlz
11g nf sql_anlz
 
OUG Harmony 2012 - Using SQL Plan Baselines for Performance Testing
OUG Harmony 2012 -  Using SQL Plan Baselines for Performance TestingOUG Harmony 2012 -  Using SQL Plan Baselines for Performance Testing
OUG Harmony 2012 - Using SQL Plan Baselines for Performance Testing
 
Sql optimize
Sql optimizeSql optimize
Sql optimize
 
Oracle SQL Tuning
Oracle SQL TuningOracle SQL Tuning
Oracle SQL Tuning
 
11gR2 Upgrade.pdf
11gR2 Upgrade.pdf11gR2 Upgrade.pdf
11gR2 Upgrade.pdf
 
11gR2 Upgrade.pdf
11gR2 Upgrade.pdf11gR2 Upgrade.pdf
11gR2 Upgrade.pdf
 
Modernizing your database with SQL Server 2019
Modernizing your database with SQL Server 2019Modernizing your database with SQL Server 2019
Modernizing your database with SQL Server 2019
 
Performance Stability, Tips and Tricks and Underscores
Performance Stability, Tips and Tricks and UnderscoresPerformance Stability, Tips and Tricks and Underscores
Performance Stability, Tips and Tricks and Underscores
 
Oracle - SQL-PL/SQL context switching
Oracle - SQL-PL/SQL context switchingOracle - SQL-PL/SQL context switching
Oracle - SQL-PL/SQL context switching
 
The Amazing and Elegant PL/SQL Function Result Cache
The Amazing and Elegant PL/SQL Function Result CacheThe Amazing and Elegant PL/SQL Function Result Cache
The Amazing and Elegant PL/SQL Function Result Cache
 
01 oracle architecture
01 oracle architecture01 oracle architecture
01 oracle architecture
 
In Search of Plan Stability - Part 1
In Search of Plan Stability - Part 1In Search of Plan Stability - Part 1
In Search of Plan Stability - Part 1
 
AutoDOPandRest
AutoDOPandRestAutoDOPandRest
AutoDOPandRest
 
Using SQL Plan Management (SPM) to Balance Plan Flexibility and Plan Stability
Using SQL Plan Management (SPM) to Balance Plan Flexibility and Plan StabilityUsing SQL Plan Management (SPM) to Balance Plan Flexibility and Plan Stability
Using SQL Plan Management (SPM) to Balance Plan Flexibility and Plan Stability
 
An Approach to Sql tuning - Part 1
An Approach to Sql tuning - Part 1An Approach to Sql tuning - Part 1
An Approach to Sql tuning - Part 1
 

Mehr von Embarcadero Technologies

PyTorch for Delphi - Python Data Sciences Libraries.pdf
PyTorch for Delphi - Python Data Sciences Libraries.pdfPyTorch for Delphi - Python Data Sciences Libraries.pdf
PyTorch for Delphi - Python Data Sciences Libraries.pdfEmbarcadero Technologies
 
Android on Windows 11 - A Developer's Perspective (Windows Subsystem For Andr...
Android on Windows 11 - A Developer's Perspective (Windows Subsystem For Andr...Android on Windows 11 - A Developer's Perspective (Windows Subsystem For Andr...
Android on Windows 11 - A Developer's Perspective (Windows Subsystem For Andr...Embarcadero Technologies
 
Linux GUI Applications on Windows Subsystem for Linux
Linux GUI Applications on Windows Subsystem for LinuxLinux GUI Applications on Windows Subsystem for Linux
Linux GUI Applications on Windows Subsystem for LinuxEmbarcadero Technologies
 
Python on Android with Delphi FMX - The Cross Platform GUI Framework
Python on Android with Delphi FMX - The Cross Platform GUI Framework Python on Android with Delphi FMX - The Cross Platform GUI Framework
Python on Android with Delphi FMX - The Cross Platform GUI Framework Embarcadero Technologies
 
Introduction to Python GUI development with Delphi for Python - Part 1: Del...
Introduction to Python GUI development with Delphi for Python - Part 1:   Del...Introduction to Python GUI development with Delphi for Python - Part 1:   Del...
Introduction to Python GUI development with Delphi for Python - Part 1: Del...Embarcadero Technologies
 
FMXLinux Introduction - Delphi's FireMonkey for Linux
FMXLinux Introduction - Delphi's FireMonkey for LinuxFMXLinux Introduction - Delphi's FireMonkey for Linux
FMXLinux Introduction - Delphi's FireMonkey for LinuxEmbarcadero Technologies
 
Python for Delphi Developers - Part 1 Introduction
Python for Delphi Developers - Part 1 IntroductionPython for Delphi Developers - Part 1 Introduction
Python for Delphi Developers - Part 1 IntroductionEmbarcadero Technologies
 
RAD Industrial Automation, Labs, and Instrumentation
RAD Industrial Automation, Labs, and InstrumentationRAD Industrial Automation, Labs, and Instrumentation
RAD Industrial Automation, Labs, and InstrumentationEmbarcadero Technologies
 
Embeddable Databases for Mobile Apps: Stress-Free Solutions with InterBase
Embeddable Databases for Mobile Apps: Stress-Free Solutions with InterBaseEmbeddable Databases for Mobile Apps: Stress-Free Solutions with InterBase
Embeddable Databases for Mobile Apps: Stress-Free Solutions with InterBaseEmbarcadero Technologies
 
Rad Server Industry Template - Connected Nurses Station - Setup Document
Rad Server Industry Template - Connected Nurses Station - Setup DocumentRad Server Industry Template - Connected Nurses Station - Setup Document
Rad Server Industry Template - Connected Nurses Station - Setup DocumentEmbarcadero Technologies
 
Move Desktop Apps to the Cloud - RollApp & Embarcadero webinar
Move Desktop Apps to the Cloud - RollApp & Embarcadero webinarMove Desktop Apps to the Cloud - RollApp & Embarcadero webinar
Move Desktop Apps to the Cloud - RollApp & Embarcadero webinarEmbarcadero Technologies
 
Getting Started Building Mobile Applications for iOS and Android
Getting Started Building Mobile Applications for iOS and AndroidGetting Started Building Mobile Applications for iOS and Android
Getting Started Building Mobile Applications for iOS and AndroidEmbarcadero Technologies
 
ER/Studio 2016: Build a Business-Driven Data Architecture
ER/Studio 2016: Build a Business-Driven Data ArchitectureER/Studio 2016: Build a Business-Driven Data Architecture
ER/Studio 2016: Build a Business-Driven Data ArchitectureEmbarcadero Technologies
 
The Secrets of SQL Server: Database Worst Practices
The Secrets of SQL Server: Database Worst PracticesThe Secrets of SQL Server: Database Worst Practices
The Secrets of SQL Server: Database Worst PracticesEmbarcadero Technologies
 
Driving Business Value Through Agile Data Assets
Driving Business Value Through Agile Data AssetsDriving Business Value Through Agile Data Assets
Driving Business Value Through Agile Data AssetsEmbarcadero Technologies
 
Troubleshooting Plan Changes with Query Store in SQL Server 2016
Troubleshooting Plan Changes with Query Store in SQL Server 2016Troubleshooting Plan Changes with Query Store in SQL Server 2016
Troubleshooting Plan Changes with Query Store in SQL Server 2016Embarcadero Technologies
 

Mehr von Embarcadero Technologies (20)

PyTorch for Delphi - Python Data Sciences Libraries.pdf
PyTorch for Delphi - Python Data Sciences Libraries.pdfPyTorch for Delphi - Python Data Sciences Libraries.pdf
PyTorch for Delphi - Python Data Sciences Libraries.pdf
 
Android on Windows 11 - A Developer's Perspective (Windows Subsystem For Andr...
Android on Windows 11 - A Developer's Perspective (Windows Subsystem For Andr...Android on Windows 11 - A Developer's Perspective (Windows Subsystem For Andr...
Android on Windows 11 - A Developer's Perspective (Windows Subsystem For Andr...
 
Linux GUI Applications on Windows Subsystem for Linux
Linux GUI Applications on Windows Subsystem for LinuxLinux GUI Applications on Windows Subsystem for Linux
Linux GUI Applications on Windows Subsystem for Linux
 
Python on Android with Delphi FMX - The Cross Platform GUI Framework
Python on Android with Delphi FMX - The Cross Platform GUI Framework Python on Android with Delphi FMX - The Cross Platform GUI Framework
Python on Android with Delphi FMX - The Cross Platform GUI Framework
 
Introduction to Python GUI development with Delphi for Python - Part 1: Del...
Introduction to Python GUI development with Delphi for Python - Part 1:   Del...Introduction to Python GUI development with Delphi for Python - Part 1:   Del...
Introduction to Python GUI development with Delphi for Python - Part 1: Del...
 
FMXLinux Introduction - Delphi's FireMonkey for Linux
FMXLinux Introduction - Delphi's FireMonkey for LinuxFMXLinux Introduction - Delphi's FireMonkey for Linux
FMXLinux Introduction - Delphi's FireMonkey for Linux
 
Python for Delphi Developers - Part 2
Python for Delphi Developers - Part 2Python for Delphi Developers - Part 2
Python for Delphi Developers - Part 2
 
Python for Delphi Developers - Part 1 Introduction
Python for Delphi Developers - Part 1 IntroductionPython for Delphi Developers - Part 1 Introduction
Python for Delphi Developers - Part 1 Introduction
 
RAD Industrial Automation, Labs, and Instrumentation
RAD Industrial Automation, Labs, and InstrumentationRAD Industrial Automation, Labs, and Instrumentation
RAD Industrial Automation, Labs, and Instrumentation
 
Embeddable Databases for Mobile Apps: Stress-Free Solutions with InterBase
Embeddable Databases for Mobile Apps: Stress-Free Solutions with InterBaseEmbeddable Databases for Mobile Apps: Stress-Free Solutions with InterBase
Embeddable Databases for Mobile Apps: Stress-Free Solutions with InterBase
 
Rad Server Industry Template - Connected Nurses Station - Setup Document
Rad Server Industry Template - Connected Nurses Station - Setup DocumentRad Server Industry Template - Connected Nurses Station - Setup Document
Rad Server Industry Template - Connected Nurses Station - Setup Document
 
TMS Google Mapping Components
TMS Google Mapping ComponentsTMS Google Mapping Components
TMS Google Mapping Components
 
Move Desktop Apps to the Cloud - RollApp & Embarcadero webinar
Move Desktop Apps to the Cloud - RollApp & Embarcadero webinarMove Desktop Apps to the Cloud - RollApp & Embarcadero webinar
Move Desktop Apps to the Cloud - RollApp & Embarcadero webinar
 
Useful C++ Features You Should be Using
Useful C++ Features You Should be UsingUseful C++ Features You Should be Using
Useful C++ Features You Should be Using
 
Getting Started Building Mobile Applications for iOS and Android
Getting Started Building Mobile Applications for iOS and AndroidGetting Started Building Mobile Applications for iOS and Android
Getting Started Building Mobile Applications for iOS and Android
 
Embarcadero RAD server Launch Webinar
Embarcadero RAD server Launch WebinarEmbarcadero RAD server Launch Webinar
Embarcadero RAD server Launch Webinar
 
ER/Studio 2016: Build a Business-Driven Data Architecture
ER/Studio 2016: Build a Business-Driven Data ArchitectureER/Studio 2016: Build a Business-Driven Data Architecture
ER/Studio 2016: Build a Business-Driven Data Architecture
 
The Secrets of SQL Server: Database Worst Practices
The Secrets of SQL Server: Database Worst PracticesThe Secrets of SQL Server: Database Worst Practices
The Secrets of SQL Server: Database Worst Practices
 
Driving Business Value Through Agile Data Assets
Driving Business Value Through Agile Data AssetsDriving Business Value Through Agile Data Assets
Driving Business Value Through Agile Data Assets
 
Troubleshooting Plan Changes with Query Store in SQL Server 2016
Troubleshooting Plan Changes with Query Store in SQL Server 2016Troubleshooting Plan Changes with Query Store in SQL Server 2016
Troubleshooting Plan Changes with Query Store in SQL Server 2016
 

Kürzlich hochgeladen

What Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the SituationWhat Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the SituationJuha-Pekka Tolvanen
 
Artyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxArtyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxAnnaArtyushina1
 
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...chiefasafspells
 
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benonimasabamasaba
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastPapp Krisztián
 
WSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - KeynoteWSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - KeynoteWSO2
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024VictoriaMetrics
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrainmasabamasaba
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfonteinmasabamasaba
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...masabamasaba
 
WSO2Con2024 - Hello Choreo Presentation - Kanchana
WSO2Con2024 - Hello Choreo Presentation - KanchanaWSO2Con2024 - Hello Choreo Presentation - Kanchana
WSO2Con2024 - Hello Choreo Presentation - KanchanaWSO2
 
%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in sowetomasabamasaba
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park masabamasaba
 
BUS PASS MANGEMENT SYSTEM USING PHP.pptx
BUS PASS MANGEMENT SYSTEM USING PHP.pptxBUS PASS MANGEMENT SYSTEM USING PHP.pptx
BUS PASS MANGEMENT SYSTEM USING PHP.pptxalwaysnagaraju26
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...masabamasaba
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension AidPhilip Schwarz
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnAmarnathKambale
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...SelfMade bd
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2
 

Kürzlich hochgeladen (20)

What Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the SituationWhat Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the Situation
 
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
 
Artyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxArtyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptx
 
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
 
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the past
 
WSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - KeynoteWSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - Keynote
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
 
WSO2Con2024 - Hello Choreo Presentation - Kanchana
WSO2Con2024 - Hello Choreo Presentation - KanchanaWSO2Con2024 - Hello Choreo Presentation - Kanchana
WSO2Con2024 - Hello Choreo Presentation - Kanchana
 
%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
 
BUS PASS MANGEMENT SYSTEM USING PHP.pptx
BUS PASS MANGEMENT SYSTEM USING PHP.pptxBUS PASS MANGEMENT SYSTEM USING PHP.pptx
BUS PASS MANGEMENT SYSTEM USING PHP.pptx
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go Platformless
 

In Search of Plan Stability Part 2 with Karen Morton

  • 1. In Search of Plan Stability Part 2 Karen Morton Sr. Technical Consultant Now part of Accenture
  • 3. Topics • How SQL Plan Management (SPM) works • How SQL Plan Baselines are created • How SQL Plan Baselines are evolved/enabled for use • "InteresMng" SPM Mdbits
  • 4. SQL Plan Management (SPM) • One or more persistent, opMmal plans per SQL • Plan Stability – Only known and accepted plans can be executed • Plan Flexibility – Capture new plans and evaluate their performance "off-­‐line" – New plans are acknowledged but not executed unMl "evolved" Goal Plan stability with controlled flexibility
  • 5. SPM allows execuMon plans for SQL statements to be stored so that the plan remains consistent throughout various changes such as schema changes, database reorgs, data volume changes and more. SPM is an Oracle Enterprise Edi3on feature and does not require the tuning pack. For more details see the Op3mizer Development Team blog at hBps://blogs.oracle.com/op3mizer/entry/does_the_use_of_sql
  • 6. Configuring SPM • Stored in SYSAUX tablespace • Two non-­‐init.ora parameters – space_budget_percent = 10 (storage usage in SYSAUX) – plan_retenMon_weeks = 53 (purge baselines not used in X weeks) • Use DBMS_SPM.CONFIGURE • Query configuraMon info from DBA_SQL_MANAGEMENT_CONFIG
  • 7. Why use SPM? • Since execuMon plan selecMon depends on many things, when any of these things changes, plans can change • Like what? – Upgraded or patched database version – StaMsMcs changes (for tables, indexes, etc) – Parameter changes – Metadata changes (schema objects) – Cardinality feedback, adapMve cursor sharing and more…
  • 8. How does SPM work? • A repository of execuMon plans is held for every SQL statement (DBA_SQL_PLAN_BASELINES) • At hard parse Mme – The repository is searched for a plan for the SQL being executed – When plan found (or none is found), that plan is used – When plan not found, but other accepted plans for the SQL are present, one of the accepted plans is used instead
  • 9. How is SPM managed? • SPM is controlled by an init.ora parameter – opMmizer_use_sql_plan_baselines = true/false – Can be altered at both the system and session leveled • The supplied packaged, DBMS_SPM, provides addiMonal management features • SPM can be configured to work automaMcally or be manually controlled
  • 10. SQL Plan Baselines Overview • A set of plans available to the CBO for a given SQL • IniMal occurrence of a plan is stored and accepted in SMB • Any new (i.e. changed) plan is added as a non-­‐accepted plan and must be verified later • Accepted plans have been verified to not cause performance regression or indicate performance improvement
  • 11. How the SMB (plan history) works Parse of SQL0001 ExecuMon Plan P1001 SQL Plan Accepted? SQL0001 P1001 Y SQL0001 P1002 Y SQL0001 P1003 Y SQL0001 P1004 N SQL0002 P2001 Y If derived plan of SQL0001 matches any SMB plan, use it. If no match, choose one of the already accepted plans. Load the new/different plan in "not accepted" state.
  • 12. SPM Main Concepts • SQL Plan Baseline capture – Using SQL Tuning Set (STS) – From the cursor cache (shared pool/V$SQL_PLAN) – Export from one database; import into another – AutomaMcally • SQL Plan Baseline selecMon • SQL Plan Baseline evoluMon
  • 13. Capture using SQL Tuning Set DBMS_SPM.LOAD_PLANS_FROM_SQLSET ( sqlset_name => 'name of STS' , sqlset_owner => 'owner of STS' , basic_filter => 'any WHERE clause' , fixed => 'NO (default) / YES' , enabled => 'YES (default) / NO' , commit_rows => '# plans loaded per commit' ) Requires Tuning Pack
  • 14. Capture from Shared Pool DBMS_SPM.LOAD_PLANS_FROM_CURSOR_CACHE ( sql_id => plan_hash_value => [NULL – all plans for SQL_ID] sql_text => sql_handle => attribute_name => [SQL_TEXT, PARSING_SCHEMA_NAME, MODULE, ACTION] attribute_value => fixed => 'NO (default) / YES' enabled => 'YES (default) / NO' )
  • 15. Import from another database (1) DBMS_SPM.CREATE_STGTAB_BASELINE ( table_name => table_owner => ) On source database
  • 16. Import from another database (2) DBMS_SPM.PACK_STGTAB_BASELINE ( table_name => table_owner => sql_handle => plan_name => sql_text => creator => enabled => accepted => fixed => module => action => ) On source database
  • 17. Import from another database (3) DBMS_SPM.UNPACK_STGTAB_BASELINE ( table_name => table_owner => sql_handle => plan_name => sql_text => creator => enabled => accepted => fixed => module => action => ) On target database
  • 18. Capture automaMcally ALTER SESSION SET OPTIMIZER_CAPTURE_SQL_PLAN_BASELINES = TRUE; • First plan captured automaMcally accepted • Occurs only for repeatable statements – SQL must be executed at least twice – IniMal execuMon info kept in SYS.SQLLOG$ On target database
  • 19. SQL Plan Baselines (1) • IdenMfied by SQL Handle and Signature – Hash funcMon on SQL Text – DBMS_SQLTUNE.SQLTEXT_TO_SIGNATURE • View DBA_SQL_PLAN_BASELINES – enabled = YES – accepted = YES
  • 20. SQL Plan Baselines (2) • Stores plan_hash_value and verifies plan can be reproduced before using • Provides stability at the expense of Mme to review and evolve new plans (automaMc plan evoluMon available) • Must match SQL text exactly – No opMon for force_matching (as available with SQL Profiles)
  • 21. What is a FIXED baseline? • When a baseline plan is fixed – The plan exists and is both accepted and enabled – Can be set manually – Alters the selecMon and capture process • Auto-­‐capture won't add any new not-­‐accepted plans for this SQL • The selecMon process will choose the FIXED/ENABLED plan for this SQL
  • 22. SQL Plan Baseline EvoluMon • The way Oracle determines if not yet accepted plans can be turned into accepted plans • Done by execuMng waiMng plans and comparing performance with already accepted plans in the baseline • Use DBMS_SPM.EVOLVE_SQL_PLAN_BASELINE – Run and accept plan if performance is bemer – Run and report only (but do not accept) – Run and accept without tesMng/verifying performance • Schedule plan evoluMon to occur automaMcally – In nightly maintenance window (uses STA and must be licensed)
  • 23. EVOLVE_SQL_PLAN_BASELINE DBMS_SPM.EVOLVE_SQL_PLAN_BASELINE ( sql_handle => plan_name => plan_list => time_limit => verify => commit => )
  • 24. Manual SQL Plan Baseline EvoluMon SQL> variable spm_report clob; SQL> exec :spm_report := dbms_spm.evolve_sql_plan_baseline(); PL/SQL procedure successfully completed.
  • 25. SQL> print :spm_report ------------------------------------------------------------------------------- Evolve SQL Plan Baseline Report ------------------------------------------------------------------------------- Inputs: ------- SQL_HANDLE = PLAN_NAME = TIME_LIMIT = DBMS_SPM.AUTO_LIMIT VERIFY = YES COMMIT = YES Plan: SYS_SQL_PLAN_gdd261c97bcbc936 ----------------------------------- Plan was verified: Time used .2 seconds. Passed performance criterion: Compound improvement ratio >= 10.13 Plan was changed to an accepted plan. Baseline Plan Test Plan Improv. Ratio ------------- --------- ------------- Execution Status: COMPLETE COMPLETE Rows Processed: 942 942 Elapsed Time(ms): 19 15 1.27 CPU Time(ms): 18 15 1.2 Buffer Gets: 1188 116 10.24 Disk Reads: 0 0 Direct Writes: 0 0 Fetches: 0 0 Executions: 1 1
  • 26. SPM Tidbits • Statements must be executed twice to be captured – SYS.SQLLOG$ contains single SQL (helps with literal SQL) • Baselines don't actually hold the execuMon plan – Set of outline hints – injected into SQL text to produce plan – Plan hash ID – plan produced when baseline captured • EvoluMon of baselines on DML (insert/update/delete/ merge) have to execute the DML if VERIFY = YES – Bemer not have triggers with non-­‐transacMonal side-­‐effects!
  • 27. SPM Tidbits • SPM inhibits intended funcMon of cardinality feedback and adapMve cursor sharing • SPM is intended to prevent performance degradaMon – Just like any feature, it's not a guaranteed "always" • SPM requires Tuning Pack only if used with automaMc evoluMon and the SQL Tuning Advisor
  • 28. 12c Enhancements • New evolve auto task – sys_auto_spm_evolve_task – See DBA_ADVISOR_TASKS – Use DBMS_SPM.REPORT_AUTO_EVOLVE_TASK • Integrated into EM – Maintains persistent store of evoluMon reports • In addiMon to plan hash, plan rows stored – Aids in diagnosis when plan cannot be reproduced
  • 29. Wrap-­‐up • SPM is about controlled plan flexibility • SPM must be able to reproduce a plan in order to use it • SPM can have mulMple accepted plans in a baseline • SPM typically requires some Mme/resource commitment to manage well