55. KONSTANTIN KEREKOVSKI
58
Work Experience:
American Express – Senior Oracle DBA, 11g, 12c, RAC, GG, ADG
Raymond James – Senior Oracle DBA, 11g, 12c, Exadata, ODA, RAC, GG, ADG
LinkedIn: www.linkedin.com/in/konstantin-kerekovski-34740071
Speaker:
IOUG Collaborate 2017
SOUG (Suncoast Oracle User Group)
NYOUG (New York Oracle User Group)
56. THE PROBLEM
59
• Production Oracle Data Integrator (ODI) jobs are running slowly due
to suboptimal execution plans on INSERT INTO XYZ SELECT….
queries.
• The INSERT queries cannot be readily altered due to declarative
nature of ODI and internal Change Management process.
• The business is being impacted because multiple other ETL and
batch jobs depend on the completion of ODI jobs.
60. IMPLEMENTATION
63
The implementation of the SQL Profiles and/or statistics gathering is as
simple as following the guided instructions from the OEM SQL Tuning
recommendations screen.
62. THE IMPACT OF SQL TUNING ADVISOR
65
• The long running ODI job’s runtime improved dramatically.
• No development effort was necessary, thus saving money on labor
costs on tuning efforts and regression testing efforts.
• The change was easily implementable and because SQL Profiles
can easily be disabled, the change can be backed out if any issues
arise.
• The change can be easily propagated throughout the entire SDLC
due to the portable nature of SQL Profiles.
• Business processes which depend on ODI jobs to complete were no
longer impacted and completed ahead of schedule.
63. 66
What is it?
- Extra information to be
used by the optimizer
during parsing.
When do I use it?
- When you just want to help
the optimizer with extra
information without
dictating a specific
execution plan.
- When SQL Execution
Plans are unstable and
changing adversely due to
issues such as
inaccurate/stale Optimizer
Statistics, bind variable
peeking, etc.
TIP
SHOULD I USE SQL BASELINES OR SQL
PROFILES ?
SQL PROFILE
What is it?
- A set of stored, approved
execution plans for a given
SQL statement that are used
instead of plans obtained
during normal hard parsing.
When do I use it?
- During Database Upgrades
for the purpose of avoiding
performance regression due
to new optimizer features (
E.G. Adaptive Plans in 12.1),
missing statistics, etc.
- When you only want one
specific execution plan to be
used.
SQL BASELINE