performance tuning in oracle 10g part 1part 1 penny cookson - managing director sage computing...

101
www.sagecomputing.com.au www.sagecomputing.com.au Performance Tuning in Oracle 10g Performance Tuning in Oracle 10g Part 1 Part 1 Penny Cookson - Managing Director SAGE Computing Services SAGE Computing Services Customised Oracle Training Workshops Customised Oracle Training Workshops and Consulting and Consulting www.sagecomputing.com.au www.sagecomputing.com.au

Upload: others

Post on 17-Jul-2020

19 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Performance Tuning in Oracle 10g Part 1Part 1 Penny Cookson - Managing Director SAGE Computing Services Customised Oracle Training Workshops and Consulting . Agenda Identifying the

www.sagecomputing.com.auwww.sagecomputing.com.au

Performance Tuning in Oracle 10gPerformance Tuning in Oracle 10gPart 1Part 1

Penny Cookson - Managing Director

SAGE Computing ServicesSAGE Computing ServicesCustomised Oracle Training WorkshopsCustomised Oracle Training Workshops

and Consultingand Consultingwww.sagecomputing.com.auwww.sagecomputing.com.au

Page 2: Performance Tuning in Oracle 10g Part 1Part 1 Penny Cookson - Managing Director SAGE Computing Services Customised Oracle Training Workshops and Consulting . Agenda Identifying the

www.sagecomputing.com.auwww.sagecomputing.com.au

AgendaAgenda

Identifying the problemThe Automatic Workload RepositoryIdentifying high resource SQLResolving SQL problemsSQL Tuning AdvisorSQL Access AdvisorSystem StatisticsUsing wait events – Tuning I/OCommon tuning problems – examplesUsing ADDM

Page 3: Performance Tuning in Oracle 10g Part 1Part 1 Penny Cookson - Managing Director SAGE Computing Services Customised Oracle Training Workshops and Consulting . Agenda Identifying the

www.sagecomputing.com.auwww.sagecomputing.com.au

Identifying the problem

Page 4: Performance Tuning in Oracle 10g Part 1Part 1 Penny Cookson - Managing Director SAGE Computing Services Customised Oracle Training Workshops and Consulting . Agenda Identifying the

www.sagecomputing.com.auwww.sagecomputing.com.au

ApproachApproach

Identify tuning goalsInvestigate problemConsider alternative solutionsImplement chosen solutionTest against goals

Page 5: Performance Tuning in Oracle 10g Part 1Part 1 Penny Cookson - Managing Director SAGE Computing Services Customised Oracle Training Workshops and Consulting . Agenda Identifying the

www.sagecomputing.com.auwww.sagecomputing.com.au

Identifying the ProblemIdentifying the Problem

Possible problemsApplication issues - Contention High resource SQL – This is always the most likelyDatabase configurationOS configuration

ToolsWait eventsthe V$ tablesTracingEnterprise Manager

Page 6: Performance Tuning in Oracle 10g Part 1Part 1 Penny Cookson - Managing Director SAGE Computing Services Customised Oracle Training Workshops and Consulting . Agenda Identifying the

www.sagecomputing.com.auwww.sagecomputing.com.au

Identifying the ProblemIdentifying the Problem

When does it happenCurrent sessionAt specific timesAll the time

What is the scope of the problemSingle userParticular time/jobOverall performance

Has anything changed

Page 7: Performance Tuning in Oracle 10g Part 1Part 1 Penny Cookson - Managing Director SAGE Computing Services Customised Oracle Training Workshops and Consulting . Agenda Identifying the

www.sagecomputing.com.auwww.sagecomputing.com.au

Problems with a Current Problems with a Current SessionSession

Find waiting sessionsSELECT sid, serial# , username, event,

blocking_session, seconds_in_wait, sql_idFROM v$sessionWHERE state = 'WAITING'AND wait_class != 'Idle'

SID SERIAL# USERNAME EVENT BLOCKING_SESSION SECONDS_IN_WAIT SQL_ID---- ------- ------- ----------------------------- ---------------- --------------- -------------161 573 TRAIN enq: TX - row lock contention 130 1207 g3xry817zpwk3

Page 8: Performance Tuning in Oracle 10g Part 1Part 1 Penny Cookson - Managing Director SAGE Computing Services Customised Oracle Training Workshops and Consulting . Agenda Identifying the

www.sagecomputing.com.auwww.sagecomputing.com.au

Problems with a Current Problems with a Current SessionSession

Find the SQL the session is runningSELECT sql_textFROM v$sqlWHERE sql_id = 'g3xry817zpwk3'

SQL_TEXT-------------------------------------------------------------------UPDATE events set start_date = start_date+1 WHERE event_no = :b1

We can find the SQL the blocker is running but it may not be the blocking statement

Page 9: Performance Tuning in Oracle 10g Part 1Part 1 Penny Cookson - Managing Director SAGE Computing Services Customised Oracle Training Workshops and Consulting . Agenda Identifying the

www.sagecomputing.com.auwww.sagecomputing.com.au

Find Bind VariablesFind Bind Variables

SELECT value_stringFROM v$sql_bind_captureWHERE sql_id='g3xry817zpwk3'

VALUE_STRING----------------------------100

Bind capture is disabled when STATISTICS_LEVEL =BASIC

Page 10: Performance Tuning in Oracle 10g Part 1Part 1 Penny Cookson - Managing Director SAGE Computing Services Customised Oracle Training Workshops and Consulting . Agenda Identifying the

www.sagecomputing.com.auwww.sagecomputing.com.au

130 is blocking 161

Page 11: Performance Tuning in Oracle 10g Part 1Part 1 Penny Cookson - Managing Director SAGE Computing Services Customised Oracle Training Workshops and Consulting . Agenda Identifying the

www.sagecomputing.com.auwww.sagecomputing.com.au

Page 12: Performance Tuning in Oracle 10g Part 1Part 1 Penny Cookson - Managing Director SAGE Computing Services Customised Oracle Training Workshops and Consulting . Agenda Identifying the

www.sagecomputing.com.auwww.sagecomputing.com.au

Page 13: Performance Tuning in Oracle 10g Part 1Part 1 Penny Cookson - Managing Director SAGE Computing Services Customised Oracle Training Workshops and Consulting . Agenda Identifying the

www.sagecomputing.com.auwww.sagecomputing.com.au

Page 14: Performance Tuning in Oracle 10g Part 1Part 1 Penny Cookson - Managing Director SAGE Computing Services Customised Oracle Training Workshops and Consulting . Agenda Identifying the

www.sagecomputing.com.auwww.sagecomputing.com.au

Page 15: Performance Tuning in Oracle 10g Part 1Part 1 Penny Cookson - Managing Director SAGE Computing Services Customised Oracle Training Workshops and Consulting . Agenda Identifying the

www.sagecomputing.com.auwww.sagecomputing.com.au

Session ProblemsSession Problems

V$SESSIONCurrently waiting

V$SESSION_WAIT

V$SESSION_WAIT_CLASS

V$SESS_TIME_MODELCurrent sessions

Recent sessionsV$SESSION_WAIT_HISTORY

V$ACTIVE_SESSION_HISTORY

DBA_HIST_ACTIVE_SESSION_HISTORYPastsessions

Page 16: Performance Tuning in Oracle 10g Part 1Part 1 Penny Cookson - Managing Director SAGE Computing Services Customised Oracle Training Workshops and Consulting . Agenda Identifying the

www.sagecomputing.com.auwww.sagecomputing.com.au

Current Session Problems Current Session Problems

If there is no current wait check the session’s wait classes

SELECT wait_class_id, wait_class#, wait_class, total_waits, time_waited

FROM v$session_wait_classWHERE sid=161

WAIT_CLASS_ID WAIT_CLASS# WAIT_CLASS TOTAL_WAITS TIME_WAITED------------- ----------- -------------------- ----------- -----------

4217450380 1 Application 210 626543386400367 5 Commit 3 02723168908 6 Idle 25 5450882000153315 7 Network 31 01740759767 8 User I/O 11 10

Locking problem

Page 17: Performance Tuning in Oracle 10g Part 1Part 1 Penny Cookson - Managing Director SAGE Computing Services Customised Oracle Training Workshops and Consulting . Agenda Identifying the

www.sagecomputing.com.auwww.sagecomputing.com.au

Problems with a Current Problems with a Current Session Session –– Example 2Example 2

Find waiting sessionsSELECT sid, serial# , username, event,

blocking_session, seconds_in_wait, sql_idFROM v$sessionWHERE state = 'WAITING'AND wait_class != 'Idle'

SID SERIAL# USERNAME EVENT BLOCKING_SESSION SECONDS_IN_WAIT SQL_ID--- ------- ---------- ------------------------ ---------------- --------------- ------------130 708 TRAIN2 db file scattered read 0 3s0z04m9qdusq

Page 18: Performance Tuning in Oracle 10g Part 1Part 1 Penny Cookson - Managing Director SAGE Computing Services Customised Oracle Training Workshops and Consulting . Agenda Identifying the

www.sagecomputing.com.auwww.sagecomputing.com.au

Current Session Problems Current Session Problems

Is this a one off event or a pattern

SELECT wait_class_id, wait_class#, wait_class, total_waits, time_waited

FROM v$session_wait_classWHERE sid=130

WAIT_CLASS# WAIT_CLASS TOTAL_WAITS TIME_WAITED----------- -------------------- ----------- -----------

0 Other 309 6701 Application 318 743792 Configuration 1233 97354 Concurrency 31 05 Commit 495 3256 Idle 605 7711747 Network 694 48 User I/O 21278 155269 System I/O 3099 4013

Page 19: Performance Tuning in Oracle 10g Part 1Part 1 Penny Cookson - Managing Director SAGE Computing Services Customised Oracle Training Workshops and Consulting . Agenda Identifying the

www.sagecomputing.com.auwww.sagecomputing.com.au

Current Session Problems Current Session Problems

Last 10 waits

SELECT event#, event, wait_time, wait_countFROM v$session_wait_historyWHERE sid = 130

EVENT# EVENT WAIT_TIME WAIT_COUNT---------- ---------------------------------------- ---------- ----------

294 db file sequential read 1 1586 SQL*Net message to client 0 1590 SQL*Net message from client 6 1586 SQL*Net message to client 0 1590 SQL*Net message from client 2 1586 SQL*Net message to client 0 1590 SQL*Net message from client 0 1586 SQL*Net message to client 0 1294 db file sequential read 0 1294 db file sequential read 0 1

Page 20: Performance Tuning in Oracle 10g Part 1Part 1 Penny Cookson - Managing Director SAGE Computing Services Customised Oracle Training Workshops and Consulting . Agenda Identifying the

www.sagecomputing.com.auwww.sagecomputing.com.au

Recent Session Problems Recent Session Problems

Active session historySELECT sample_time, event, wait_time, time_waitedFROM v$active_session_historyWHERE session_id = 130AND session_serial# = 708ORDER BY sample_time

SAMPLE_TIME EVENT WAIT_TIME TIME_WAITED------------------------------ ------------------------------ ---------- -----------21-MAY-05 08.35.46.570 AM control file sequential read 0 2407621-MAY-05 08.35.47.601 AM db file scattered read 117906 021-MAY-05 08.35.48.632 AM db file scattered read 117734 021-MAY-05 08.35.49.663 AM log file switch completion 0 27863621-MAY-05 08.35.50.694 AM db file sequential read 169 021-MAY-05 08.35.51.725 AM db file scattered read 0 2193821-MAY-05 08.35.52.757 AM db file scattered read 0 7124021-MAY-05 08.35.53.788 AM db file sequential read 0 1474021-MAY-05 08.35.54.819 AM db file sequential read 186 021-MAY-05 08.35.55.850 AM db file sequential read 0 14021-MAY-05 08.36.26.785 AM db file scattered read 0 889421-MAY-05 08.36.27.816 AM db file scattered read 0 586721-MAY-05 08.36.28.848 AM db file scattered read 0 45020

Page 21: Performance Tuning in Oracle 10g Part 1Part 1 Penny Cookson - Managing Director SAGE Computing Services Customised Oracle Training Workshops and Consulting . Agenda Identifying the

www.sagecomputing.com.auwww.sagecomputing.com.au

Current Session Problems Current Session Problems

Find where the session has spent its time

SELECT stat_name, valueFROM v$sess_time_modelWHERE sid=130

STAT_NAME VALUE-------------------------------------------------- ----------DB time 1258404159DB CPU 167882212background elapsed time 0background cpu time 0sequence load elapsed time 80535063parse time elapsed 15047886hard parse elapsed time 8505043sql execute elapsed time 1228185696connection management call elapsed time 2375failed parse elapsed time 174792failed parse (out of shared memory) elapsed time 0hard parse (sharing criteria) elapsed time 27209hard parse (bind mismatch) elapsed time 411PL/SQL execution elapsed time 996461inbound PL/SQL rpc elapsed time 0PL/SQL compilation elapsed time 359583Java execution elapsed time 0

Page 22: Performance Tuning in Oracle 10g Part 1Part 1 Penny Cookson - Managing Director SAGE Computing Services Customised Oracle Training Workshops and Consulting . Agenda Identifying the

www.sagecomputing.com.auwww.sagecomputing.com.au

Page 23: Performance Tuning in Oracle 10g Part 1Part 1 Penny Cookson - Managing Director SAGE Computing Services Customised Oracle Training Workshops and Consulting . Agenda Identifying the

www.sagecomputing.com.auwww.sagecomputing.com.au

Page 24: Performance Tuning in Oracle 10g Part 1Part 1 Penny Cookson - Managing Director SAGE Computing Services Customised Oracle Training Workshops and Consulting . Agenda Identifying the

www.sagecomputing.com.auwww.sagecomputing.com.au

Page 25: Performance Tuning in Oracle 10g Part 1Part 1 Penny Cookson - Managing Director SAGE Computing Services Customised Oracle Training Workshops and Consulting . Agenda Identifying the

www.sagecomputing.com.auwww.sagecomputing.com.au

Page 26: Performance Tuning in Oracle 10g Part 1Part 1 Penny Cookson - Managing Director SAGE Computing Services Customised Oracle Training Workshops and Consulting . Agenda Identifying the

www.sagecomputing.com.auwww.sagecomputing.com.au

Page 27: Performance Tuning in Oracle 10g Part 1Part 1 Penny Cookson - Managing Director SAGE Computing Services Customised Oracle Training Workshops and Consulting . Agenda Identifying the

www.sagecomputing.com.auwww.sagecomputing.com.au

Problems with a Current Problems with a Current SessionSession

Turn tracing on for the session

BEGINdbms_monitor.session_trace_enable(session_id=>130, serial_num=>708, waits=>TRUE, binds=>TRUE);END;

Page 28: Performance Tuning in Oracle 10g Part 1Part 1 Penny Cookson - Managing Director SAGE Computing Services Customised Oracle Training Workshops and Consulting . Agenda Identifying the

www.sagecomputing.com.auwww.sagecomputing.com.au

Problems with a Current Problems with a Current SessionSession

Format the trace fileTkprof ora10g_ora_5868.trc tracea.prf sort=fchcpu,prscpu,execpu

Page 29: Performance Tuning in Oracle 10g Part 1Part 1 Penny Cookson - Managing Director SAGE Computing Services Customised Oracle Training Workshops and Consulting . Agenda Identifying the

www.sagecomputing.com.auwww.sagecomputing.com.au

Fix the ProblemFix the Problem

Kill one of the sessionsFix the application problemIdentify and fix the high resource SQL

Page 30: Performance Tuning in Oracle 10g Part 1Part 1 Penny Cookson - Managing Director SAGE Computing Services Customised Oracle Training Workshops and Consulting . Agenda Identifying the

www.sagecomputing.com.auwww.sagecomputing.com.au

Overall Performance Overall Performance Problems Problems -- SourcesSources

Alert logWait eventsOracle 10g gathers comprehensive statistics

Active session historyTime modelMetricsOS statistics

Page 31: Performance Tuning in Oracle 10g Part 1Part 1 Penny Cookson - Managing Director SAGE Computing Services Customised Oracle Training Workshops and Consulting . Agenda Identifying the

www.sagecomputing.com.auwww.sagecomputing.com.au

Wait EventsWait Events

Look for system wait classesSELECT wait_class_id, wait_class#, wait_class,

total_waits, time_waitedFROM v$system_wait_class

WAIT_CLASS_ID WAIT_CLASS# WAIT_CLASS TOTAL_WAITS TIME_WAITED------------- ----------- -------------------- ----------- -----------

1893977003 0 Other 6238 4444274217450380 1 Application 26661 8268163290255840 2 Configuration 2096 126053875070507 4 Concurrency 136 1863386400367 5 Commit 8151 19302723168908 6 Idle 683331 1977115872000153315 7 Network 205150 701740759767 8 User I/O 69290 572674108307767 9 System I/O 134573 57583

Page 32: Performance Tuning in Oracle 10g Part 1Part 1 Penny Cookson - Managing Director SAGE Computing Services Customised Oracle Training Workshops and Consulting . Agenda Identifying the

www.sagecomputing.com.auwww.sagecomputing.com.au

Wait EventsWait Events

Look for system wait events - ApplicationSELECT e.event, e.total_waits, e.total_timeouts,

e.time_waited, average_waitFROM v$system_event e, v$event_name nWHERE n.event_id = e.event_id

AND n.wait_class# = 1 -- Application

EVENT TOTAL_WAITS TOTAL_TIMEOUTS TIME_WAITED AVERAGE_WAIT------------------------------ ----------- -------------- ----------- ------------enq: RO - fast object reuse 33 0 11 0enq: TX - row lock contention 2690 2686 826242 307SQL*Net break/reset to client 24110 0 566 0

Page 33: Performance Tuning in Oracle 10g Part 1Part 1 Penny Cookson - Managing Director SAGE Computing Services Customised Oracle Training Workshops and Consulting . Agenda Identifying the

www.sagecomputing.com.auwww.sagecomputing.com.au

Wait EventsWait Events

Look for system wait events – User I/OSELECT e.event, e.total_waits, e.total_timeouts,

e.time_waited, average_waitFROM v$system_event e, v$event_name nWHERE n.event_id = e.event_idAND n.wait_class# = 8 -- User I/O

EVENT TOTAL_WAITS TOTAL_TIMEOUTS TIME_WAITED AVERAGE_WAIT------------------------------ ----------- -------------- ----------- ------------local write wait 7 0 0 0read by other session 1 0 1 1db file sequential read 58691 0 47970 1db file scattered read 7424 0 8271 1db file single write 151 0 14 0db file parallel read 1 0 3 3direct path read 1474 0 925 1direct path read temp 102 0 25 0direct path write 1473 0 160 0direct path write temp 168 0 2 0

Page 34: Performance Tuning in Oracle 10g Part 1Part 1 Penny Cookson - Managing Director SAGE Computing Services Customised Oracle Training Workshops and Consulting . Agenda Identifying the

www.sagecomputing.com.auwww.sagecomputing.com.au

Wait EventsWait Events

Look for system wait events – System I/OSELECT e.event, e.total_waits, e.total_timeouts,

e.time_waited, average_waitFROM v$system_event e, v$event_name nWHERE n.event_id = e.event_idAND n.wait_class# = 9 -- System I/O

EVENT TOTAL_WAITS TOTAL_TIMEOUTS TIME_WAITED AVERAGE_WAIT------------------------------ ----------- -------------- ----------- ------------ksfd: async disk IO 288 0 15 0control file sequential read 13938 0 21111 2control file single write 714 0 128 0control file parallel write 26960 0 10292 0recovery read 6 0 0 0log file sequential read 378 0 350 1log file single write 375 0 40 0log file parallel write 51020 0 17352 0db file parallel write 42478 0 8626 0

Page 35: Performance Tuning in Oracle 10g Part 1Part 1 Penny Cookson - Managing Director SAGE Computing Services Customised Oracle Training Workshops and Consulting . Agenda Identifying the

www.sagecomputing.com.auwww.sagecomputing.com.au

Wait EventsWait EventsLook for distribution of wait timesOne event with a long wait time could skew the results

SELECT wait_time_milli, wait_countFROM v$event_histogramWHERE event = ‘enq: TX - row lock contention’

WAIT_TIME_MILLI WAIT_COUNT--------------- ----------

1 02 04 08 0

16 032 064 0

128 2256 2512 0

1024 02048 14096 2685

Page 36: Performance Tuning in Oracle 10g Part 1Part 1 Penny Cookson - Managing Director SAGE Computing Services Customised Oracle Training Workshops and Consulting . Agenda Identifying the

www.sagecomputing.com.auwww.sagecomputing.com.au

Wait EventsWait Events

Look for distribution of wait timesSELECT wait_time_milli, wait_countFROM v$event_histogramWHERE event = ‘db file sequential read’

WAIT_TIME_MILLI WAIT_COUNT--------------- ----------

1 286832 11204 30178 6987

16 1066732 567164 1933

128 391256 197512 28

1024 1

Page 37: Performance Tuning in Oracle 10g Part 1Part 1 Penny Cookson - Managing Director SAGE Computing Services Customised Oracle Training Workshops and Consulting . Agenda Identifying the

www.sagecomputing.com.auwww.sagecomputing.com.au

Time ModelTime Model

Records where the database is spending timeDB Time is overall database activity timeADDM’s goal is to minimise thisLook for high parse time as proportion of SQL execution time

Page 38: Performance Tuning in Oracle 10g Part 1Part 1 Penny Cookson - Managing Director SAGE Computing Services Customised Oracle Training Workshops and Consulting . Agenda Identifying the

www.sagecomputing.com.auwww.sagecomputing.com.au

Time ModelTime Model

Find where the system has spent its time

SELECT stat_name, valueFROM v$sys_time_model

STAT_NAME VALUE------------------------------------------------- ----------DB time 1.0306E+10DB CPU 526468001background elapsed time 5488738125background cpu time 496628001sequence load elapsed time 80675372parse time elapsed 71915940hard parse elapsed time 60198409sql execute elapsed time 1.0231E+10connection management call elapsed time 1390986failed parse elapsed time 302227failed parse (out of shared memory) elapsed time 0hard parse (sharing criteria) elapsed time 591387hard parse (bind mismatch) elapsed time 294519PL/SQL execution elapsed time 1031366155inbound PL/SQL rpc elapsed time 0PL/SQL compilation elapsed time 8411615Java execution elapsed time 1037473

Page 39: Performance Tuning in Oracle 10g Part 1Part 1 Penny Cookson - Managing Director SAGE Computing Services Customised Oracle Training Workshops and Consulting . Agenda Identifying the

www.sagecomputing.com.auwww.sagecomputing.com.au

MetricsMetrics

Calculated at intervalsV$SYSMETRICV$EVENTMETRICV$WAITCLASSMETRICV$FILEMETRICV$METRICNAME

Page 40: Performance Tuning in Oracle 10g Part 1Part 1 Penny Cookson - Managing Director SAGE Computing Services Customised Oracle Training Workshops and Consulting . Agenda Identifying the

www.sagecomputing.com.auwww.sagecomputing.com.au

MetricsMetricsShows traditional hit ratios

SELECT metric_name, AVG(value), metric_unitFROM v$sysmetricWHERE metric_unit LIKE '\%%' ESCAPE '\'GROUP BY metric_name, metric_unit

METRIC_NAME AVG(VALUE) METRIC_UNIT----------------------------------- ---------- --------------------------------User Limit % 0 % Sessions/License_LimitPGA Cache Hit % 99 % Bytes/TotalBytesProcess Limit % 22 % Processes/LimitSession Limit % 21 % Sessions/LimitSoft Parse Ratio 75 % SoftParses/TotalParsesUser Calls Ratio 25 % UserCalls/AllCallsMemory Sorts Ratio 100 % MemSort/(MemSort + DiskSort)Shared Pool Free % 12 % Free/TotalRow Cache Hit Ratio 100 % Hits/GetsRow Cache Miss Ratio 0 % Misses/GetsBuffer Cache Hit Ratio 100 % (LogRead - PhyRead)/LogReadCursor Cache Hit Ratio 0 % CursorCacheHit/SoftParseDatabase CPU Time Ratio 84.5 % Cpu/DB_TimeLibrary Cache Hit Ratio 99 % Hits/PinsUser Commits Percentage 100 % (UserCommit/TotalUserTxn)Database Wait Time Ratio 31 % Wait/DB_TimeHost CPU Utilization (%) 1 % Busy/(Idle+Busy)Library Cache Miss Ratio 0 % Misses/GetsRedo Allocation Hit Ratio 100 % (#Redo - RedoSpaceReq)/#RedoUser Rollbacks Percentage 0 % (UserRollback/TotalUserTxn)Execute Without Parse Ratio 90 % (ExecWOParse/TotalExec)

Page 41: Performance Tuning in Oracle 10g Part 1Part 1 Penny Cookson - Managing Director SAGE Computing Services Customised Oracle Training Workshops and Consulting . Agenda Identifying the

www.sagecomputing.com.auwww.sagecomputing.com.au

OS StatsOS Stats

SELECT stat_name, valueFROM v$osstat

STAT_NAME VALUE------------------------------------------------- ----------NUM_CPUS 2IDLE_TICKS 13545990BUSY_TICKS 2211629USER_TICKS 1420457SYS_TICKS 791172AVG_IDLE_TICKS 6771706AVG_BUSY_TICKS 9.2234E+18AVG_USER_TICKS 708943AVG_SYS_TICKS 394246RSRC_MGR_CPU_WAIT_TIME 0IN_BYTES 2.8167E+10OUT_BYTES 1550938112AVG_IN_BYTES 1.4083E+10AVG_OUT_BYTES 775469056

Page 42: Performance Tuning in Oracle 10g Part 1Part 1 Penny Cookson - Managing Director SAGE Computing Services Customised Oracle Training Workshops and Consulting . Agenda Identifying the

www.sagecomputing.com.auwww.sagecomputing.com.auClick here to analyse the problem

Page 43: Performance Tuning in Oracle 10g Part 1Part 1 Penny Cookson - Managing Director SAGE Computing Services Customised Oracle Training Workshops and Consulting . Agenda Identifying the

www.sagecomputing.com.auwww.sagecomputing.com.au

Page 44: Performance Tuning in Oracle 10g Part 1Part 1 Penny Cookson - Managing Director SAGE Computing Services Customised Oracle Training Workshops and Consulting . Agenda Identifying the

www.sagecomputing.com.auwww.sagecomputing.com.au

Page 45: Performance Tuning in Oracle 10g Part 1Part 1 Penny Cookson - Managing Director SAGE Computing Services Customised Oracle Training Workshops and Consulting . Agenda Identifying the

www.sagecomputing.com.auwww.sagecomputing.com.au

More OEM Diagnostics

Top sessionsTop SQLTop consumersInstance activity

Page 46: Performance Tuning in Oracle 10g Part 1Part 1 Penny Cookson - Managing Director SAGE Computing Services Customised Oracle Training Workshops and Consulting . Agenda Identifying the

www.sagecomputing.com.auwww.sagecomputing.com.au

The Automatic Workload Repository(AWR)

Page 47: Performance Tuning in Oracle 10g Part 1Part 1 Penny Cookson - Managing Director SAGE Computing Services Customised Oracle Training Workshops and Consulting . Agenda Identifying the

www.sagecomputing.com.auwww.sagecomputing.com.au

AWRAWR

Persistent storage of system statisticsActive session historyV$tablesPlansAutomatic Database Diagnostic Monitor results

Gathered in memory and flushed to disk by MMONPurged every 7 daysSnapshots can be preservedCheck that AWR collection is not causing library cache waits

Page 48: Performance Tuning in Oracle 10g Part 1Part 1 Penny Cookson - Managing Director SAGE Computing Services Customised Oracle Training Workshops and Consulting . Agenda Identifying the

www.sagecomputing.com.auwww.sagecomputing.com.au

DBMS_WORKLOAD_REPOSITORYDBMS_WORKLOAD_REPOSITORY

Create an AWR snapshotdbms_workload_repository.create_snapshot

Produce a report using two snapshotsdbms_workload_repository.awr_report_htmldbms_workload_repository.awr_report_text$ORACLE_HOME/rdbms/admin/awrrpt.sqlCreate a baselinedbms_workload_repository.create_baseline

Page 49: Performance Tuning in Oracle 10g Part 1Part 1 Penny Cookson - Managing Director SAGE Computing Services Customised Oracle Training Workshops and Consulting . Agenda Identifying the

www.sagecomputing.com.auwww.sagecomputing.com.au

DBA_HIST…….DBA_HIST…….

DBA_HIST_DATABASE_INSTANCEDBA_HIST_SNAPSHOTDBA_HIST_SNAP_ERRORDBA_HIST_BASELINEDBA_HIST_WR_CONTROLDBA_HIST_DATAFILEDBA_HIST_FILESTATXSDBA_HIST_TEMPFILEDBA_HIST_TEMPSTATXSDBA_HIST_SQLSTATDBA_HIST_SQLTEXTDBA_HIST_SQL_SUMMARYDBA_HIST_SQL_PLANDBA_HIST_SQLBINDDBA_HIST_OPTIMIZER_ENVDBA_HIST_EVENT_NAMEDBA_HIST_SYSTEM_EVENTDBA_HIST_BG_EVENT_SUMMARYDBA_HIST_WAITSTATDBA_HIST_ENQUEUE_STATDBA_HIST_LATCH_NAMEDBA_HIST_LATCHDBA_HIST_LATCH_CHILDRENDBA_HIST_LATCH_PARENTDBA_HIST_LATCH_MISSES_SUMMARYDBA_HIST_LIBRARYCACHEDBA_HIST_DB_CACHE_ADVICE

DBA_HIST_BUFFER_POOL_STATDBA_HIST_ROWCACHE_SUMMARYDBA_HIST_SGADBA_HIST_SGASTATDBA_HIST_PGASTATDBA_HIST_RESOURCE_LIMITDBA_HIST_SHARED_POOL_ADVICEDBA_HIST_SQL_WORKAREA_HSTGRMDBA_HIST_PGA_TARGET_ADVICEDBA_HIST_INSTANCE_RECOVERYDBA_HIST_JAVA_POOL_ADVICEDBA_HIST_THREADDBA_HIST_STAT_NAMEDBA_HIST_SYSSTATDBA_HIST_SYS_TIME_MODELDBA_HIST_OSSTAT_NAMEDBA_HIST_OSSTATDBA_HIST_PARAMETER_NAMEDBA_HIST_PARAMETERDBA_HIST_UNDOSTATDBA_HIST_SEG_STATDBA_HIST_SEG_STAT_OBJDBA_HIST_METRIC_NAMEDBA_HIST_SYSMETRIC_HISTORYDBA_HIST_SYSMETRIC_SUMMARYDBA_HIST_SESSMETRIC_HISTORYDBA_HIST_FILEMETRIC_HISTORY

Page 50: Performance Tuning in Oracle 10g Part 1Part 1 Penny Cookson - Managing Director SAGE Computing Services Customised Oracle Training Workshops and Consulting . Agenda Identifying the

www.sagecomputing.com.auwww.sagecomputing.com.au

AWR TablesAWR Tables

WRH$.... TablesHistory of statisticse.g. WRH$_SQLSTAT_BL

WRI$...... TablesAdvice/recommendation tablese.g WRI$_ADV_RECOMMENDATIONS

WRM$...... TablesSnapshot / baseline tablese.g WRM$_SNAPSHOT

Page 51: Performance Tuning in Oracle 10g Part 1Part 1 Penny Cookson - Managing Director SAGE Computing Services Customised Oracle Training Workshops and Consulting . Agenda Identifying the

www.sagecomputing.com.auwww.sagecomputing.com.au

Page 52: Performance Tuning in Oracle 10g Part 1Part 1 Penny Cookson - Managing Director SAGE Computing Services Customised Oracle Training Workshops and Consulting . Agenda Identifying the

www.sagecomputing.com.auwww.sagecomputing.com.au

Page 53: Performance Tuning in Oracle 10g Part 1Part 1 Penny Cookson - Managing Director SAGE Computing Services Customised Oracle Training Workshops and Consulting . Agenda Identifying the

www.sagecomputing.com.auwww.sagecomputing.com.au

Page 54: Performance Tuning in Oracle 10g Part 1Part 1 Penny Cookson - Managing Director SAGE Computing Services Customised Oracle Training Workshops and Consulting . Agenda Identifying the

www.sagecomputing.com.auwww.sagecomputing.com.au

Page 55: Performance Tuning in Oracle 10g Part 1Part 1 Penny Cookson - Managing Director SAGE Computing Services Customised Oracle Training Workshops and Consulting . Agenda Identifying the

www.sagecomputing.com.auwww.sagecomputing.com.au

Page 56: Performance Tuning in Oracle 10g Part 1Part 1 Penny Cookson - Managing Director SAGE Computing Services Customised Oracle Training Workshops and Consulting . Agenda Identifying the

www.sagecomputing.com.auwww.sagecomputing.com.au

AWRAWR

Save snapshots for standard work profilesUse as a source for ADDMUse as a baselineCompare timelinesCreate a SQL Tuning set from a range of snapshots

Page 57: Performance Tuning in Oracle 10g Part 1Part 1 Penny Cookson - Managing Director SAGE Computing Services Customised Oracle Training Workshops and Consulting . Agenda Identifying the

www.sagecomputing.com.auwww.sagecomputing.com.au

Identifying High Resource SQL

Page 58: Performance Tuning in Oracle 10g Part 1Part 1 Penny Cookson - Managing Director SAGE Computing Services Customised Oracle Training Workshops and Consulting . Agenda Identifying the

www.sagecomputing.com.auwww.sagecomputing.com.au

Turn Trace 10046 OnTurn Trace 10046 On

Turn tracing on for the system (performance overhead) or sessionIdentify location of user_dump_destCheck max_dump_file_size

BEGINdbms_monitor.session_trace_enable(session_id=>130, serial_num=>708, waits=>TRUE, binds=>TRUE);END;

ALTER system set events ’10046 trace name context forever, level 12’

Page 59: Performance Tuning in Oracle 10g Part 1Part 1 Penny Cookson - Managing Director SAGE Computing Services Customised Oracle Training Workshops and Consulting . Agenda Identifying the

www.sagecomputing.com.auwww.sagecomputing.com.au

Consolidate and Format Consolidate and Format Trace FilesTrace Files

trcsess output=all_traces.trcservice=ora10g *.trc

tkprof all_traces.trc all_traces.prfsort=execpu, prscpu, fchcpu

Page 60: Performance Tuning in Oracle 10g Part 1Part 1 Penny Cookson - Managing Director SAGE Computing Services Customised Oracle Training Workshops and Consulting . Agenda Identifying the

www.sagecomputing.com.auwww.sagecomputing.com.au

Format the trace file

Page 61: Performance Tuning in Oracle 10g Part 1Part 1 Penny Cookson - Managing Director SAGE Computing Services Customised Oracle Training Workshops and Consulting . Agenda Identifying the

www.sagecomputing.com.auwww.sagecomputing.com.au

High Resource SQLHigh Resource SQL

V$SQL has buffer gets and physical reads for statements in the SGAV$SQL_PLAN has plans for statements in the SGAdba_hist_sqlstat and dba_hist_sqltext have buffer gets and physical reads for past statementdba_hist_sql_plan has plans for past statement

Page 62: Performance Tuning in Oracle 10g Part 1Part 1 Penny Cookson - Managing Director SAGE Computing Services Customised Oracle Training Workshops and Consulting . Agenda Identifying the

www.sagecomputing.com.auwww.sagecomputing.com.au

AWR Data for High AWR Data for High Resource SQLResource SQL

Look for high buffer getsSELECT s.snap_id, s.sql_id, s.buffer_gets_total, s.executions_total,

s.buffer_gets_total/NULLIF(executions_total,0) reads, t.sql_textFROM dba_hist_sqlstat s, dba_hist_sqltext tWHERE t.sql_id = s.sql_idAND buffer_gets_total/NULLIF(executions_total,0) > 1000000

SNAP_ID SQL_ID BUFFER_GETS_TOTAL EXECUTIONS_TOTAL READS---------- ------------- ----------------- ---------------- ----------SQL_TEXT---------------------------------------------------------------------------

824 3s0z04m9qdusq 4979957 1 4979957insert into bookings_largeselect booking_seq.nextval, mod(event2_seq.nextval,100000)+201,resource_code, chargeable, made_by, quantity,cost, status, commentsfrom bookings_large

Page 63: Performance Tuning in Oracle 10g Part 1Part 1 Penny Cookson - Managing Director SAGE Computing Services Customised Oracle Training Workshops and Consulting . Agenda Identifying the

www.sagecomputing.com.auwww.sagecomputing.com.au

AWR Data for High AWR Data for High Resource SQLResource SQL

Find execution pathSELECT lpad(to_char(id),level) ID, parent_id PT,

decode(id,0,'Cost: '||cost,object_name) OB, operation OP, rpad(options,30)|| rpad(access_predicates,30)|| rpad(filter_predicates,30) OT,to_number(decode(id,0,null,position)) PS, cardinality CD

FROM dba_hist_sql_planCONNECT BY prior id = parent_idAND sql_id = '&&sql_id'START WITH parent_id is nullAND sql_id = '&&sql_id';

Id Par Object Operation Options Pos Rows------ --- -------------- -------------------- ------------------------------ ---- ----------0 Cost: 1322 INSERT STATEMENT1 0 SEQUENCE 12 1 BOOKINGS_LARGE TABLE ACCESS FULL 1 810770

Page 64: Performance Tuning in Oracle 10g Part 1Part 1 Penny Cookson - Managing Director SAGE Computing Services Customised Oracle Training Workshops and Consulting . Agenda Identifying the

www.sagecomputing.com.auwww.sagecomputing.com.au

Resolving SQL Problems

Page 65: Performance Tuning in Oracle 10g Part 1Part 1 Penny Cookson - Managing Director SAGE Computing Services Customised Oracle Training Workshops and Consulting . Agenda Identifying the

www.sagecomputing.com.auwww.sagecomputing.com.au

Tune the SQL Tune the SQL –– First stepsFirst steps

Are statistics up to date?Are histograms gathered on skewed data?Are system statistics collected?Are the initialisation parameters appropriateUse trace 10053

Page 66: Performance Tuning in Oracle 10g Part 1Part 1 Penny Cookson - Managing Director SAGE Computing Services Customised Oracle Training Workshops and Consulting . Agenda Identifying the

www.sagecomputing.com.auwww.sagecomputing.com.au

Tune the SQL Tune the SQL –– Second stepsSecond steps

Use SQL Tuning AdvisorUse SQL Access AdvisorConsider rewriting the statementConsider hintsConsider new indexes

Page 67: Performance Tuning in Oracle 10g Part 1Part 1 Penny Cookson - Managing Director SAGE Computing Services Customised Oracle Training Workshops and Consulting . Agenda Identifying the

www.sagecomputing.com.auwww.sagecomputing.com.au

If the If the optimiseroptimiser is already is already using the best pathusing the best path

Run the statement overnightConsider materialised viewsConsider partitioning

Page 68: Performance Tuning in Oracle 10g Part 1Part 1 Penny Cookson - Managing Director SAGE Computing Services Customised Oracle Training Workshops and Consulting . Agenda Identifying the

www.sagecomputing.com.auwww.sagecomputing.com.au

Automatic SQL Tuning Automatic SQL Tuning

SQL Tuning AdvisorOptimiser runs in tuning modeTakes more time to decideUses dynamic samplingUses partial executionUses past execution

Page 69: Performance Tuning in Oracle 10g Part 1Part 1 Penny Cookson - Managing Director SAGE Computing Services Customised Oracle Training Workshops and Consulting . Agenda Identifying the

www.sagecomputing.com.auwww.sagecomputing.com.au

Automatic SQL Tuning Automatic SQL Tuning

Source can be:Top SQLStatementSQL Tuning SetSnapshotPreserved snapshot set

Page 70: Performance Tuning in Oracle 10g Part 1Part 1 Penny Cookson - Managing Director SAGE Computing Services Customised Oracle Training Workshops and Consulting . Agenda Identifying the

www.sagecomputing.com.auwww.sagecomputing.com.au

Automatic Tuning Automatic Tuning OptimiserOptimiser

StatisticsRecommendations to gather Implement these and rerunCreate auxiliary statistics

SQL ProfilesStore auxiliary statisticsVerify and correct estimates

Complex predicatesSkewed join dataSparse join data

Custom optimiser modeNot run in limited modeRerun when significant data changes

Page 71: Performance Tuning in Oracle 10g Part 1Part 1 Penny Cookson - Managing Director SAGE Computing Services Customised Oracle Training Workshops and Consulting . Agenda Identifying the

www.sagecomputing.com.auwww.sagecomputing.com.au

Automatic Tuning Automatic Tuning OptimiserOptimiser

Access pathIndexesOnly for this statement

SQL StructureChanges to codeDatatype mismatchesUNION/UNION ALLModified columns

Page 72: Performance Tuning in Oracle 10g Part 1Part 1 Penny Cookson - Managing Director SAGE Computing Services Customised Oracle Training Workshops and Consulting . Agenda Identifying the

www.sagecomputing.com.auwww.sagecomputing.com.au

Page 73: Performance Tuning in Oracle 10g Part 1Part 1 Penny Cookson - Managing Director SAGE Computing Services Customised Oracle Training Workshops and Consulting . Agenda Identifying the

www.sagecomputing.com.auwww.sagecomputing.com.au

Page 74: Performance Tuning in Oracle 10g Part 1Part 1 Penny Cookson - Managing Director SAGE Computing Services Customised Oracle Training Workshops and Consulting . Agenda Identifying the

www.sagecomputing.com.auwww.sagecomputing.com.au

Page 75: Performance Tuning in Oracle 10g Part 1Part 1 Penny Cookson - Managing Director SAGE Computing Services Customised Oracle Training Workshops and Consulting . Agenda Identifying the

www.sagecomputing.com.auwww.sagecomputing.com.au

Page 76: Performance Tuning in Oracle 10g Part 1Part 1 Penny Cookson - Managing Director SAGE Computing Services Customised Oracle Training Workshops and Consulting . Agenda Identifying the

www.sagecomputing.com.auwww.sagecomputing.com.au

Check StatisticsCheck Statistics

Is data skewed?SELECT min (num), max(num)FROM(SELECT event_no, count(*) numFROM bookings_largeGROUP BY event_no)

MIN(NUM) MAX(NUM)---------- ----------

1 16

Do we have system statisticsSELECT * FROM sys.aux_stats$

SNAME PNAME PVAL1 PVAL2--------------- --------------- ---------- --------------SYSSTATS_INFO STATUS COMPLETEDSYSSTATS_INFO DSTART 05-21-2005 08:17SYSSTATS_INFO DSTOP 05-21-2005 11:36SYSSTATS_INFO FLAGS 1SYSSTATS_MAIN CPUSPEEDNW 904.86697SYSSTATS_MAIN IOSEEKTIM 10SYSSTATS_MAIN IOTFRSPEED 4096SYSSTATS_MAIN SREADTIM 5.747SYSSTATS_MAIN MREADTIM 14.17

Page 77: Performance Tuning in Oracle 10g Part 1Part 1 Penny Cookson - Managing Director SAGE Computing Services Customised Oracle Training Workshops and Consulting . Agenda Identifying the

www.sagecomputing.com.auwww.sagecomputing.com.au

Trace 10053 Trace 10053

Page 78: Performance Tuning in Oracle 10g Part 1Part 1 Penny Cookson - Managing Director SAGE Computing Services Customised Oracle Training Workshops and Consulting . Agenda Identifying the

www.sagecomputing.com.auwww.sagecomputing.com.au

Page 79: Performance Tuning in Oracle 10g Part 1Part 1 Penny Cookson - Managing Director SAGE Computing Services Customised Oracle Training Workshops and Consulting . Agenda Identifying the

www.sagecomputing.com.auwww.sagecomputing.com.au

Page 80: Performance Tuning in Oracle 10g Part 1Part 1 Penny Cookson - Managing Director SAGE Computing Services Customised Oracle Training Workshops and Consulting . Agenda Identifying the

www.sagecomputing.com.auwww.sagecomputing.com.au

Compare Plans

Page 81: Performance Tuning in Oracle 10g Part 1Part 1 Penny Cookson - Managing Director SAGE Computing Services Customised Oracle Training Workshops and Consulting . Agenda Identifying the

www.sagecomputing.com.auwww.sagecomputing.com.au

Page 82: Performance Tuning in Oracle 10g Part 1Part 1 Penny Cookson - Managing Director SAGE Computing Services Customised Oracle Training Workshops and Consulting . Agenda Identifying the

www.sagecomputing.com.auwww.sagecomputing.com.au

Find the ProfileFind the Profile

SELECT id, name FROM WRI$_ADV_TASKS

Id NAME---------------- -----------------------------

1065 BOOKINGS_BY_EVENT_NO1062 TUNE_BK_LG11035 ADDM:3843294908_1_8101036 ADDM:3843294908_1_8111037 ADDM:3843294908_1_8121049 ADDM:3843294908_1_8241034 ADDM:3843294908_1_8091050 ADDM:3843294908_1_8251051 ADDM:3843294908_1_8261053 ADDM:3843294908_1_828

SELECT id, attr1FROM WRI$_ADV_RATIONALE WHERE task_id = 1065

Id ATTR1----- -------------------------------------

1 FIRST_ROWS(1)2 OPTIMIZER_FEATURES_ENABLE(default)

Page 83: Performance Tuning in Oracle 10g Part 1Part 1 Penny Cookson - Managing Director SAGE Computing Services Customised Oracle Training Workshops and Consulting . Agenda Identifying the

www.sagecomputing.com.auwww.sagecomputing.com.au

Test the ProfileTest the Profile

EXPLAIN PLAN FOR SELECT event_no, costFROM TRAIN2.bookings_largeWHERE event_no < 90001

PLAN_TABLE_OUTPUT--------------------------------------------------------------------------------------Plan hash value: 1469695226------------------------------------------------------------------------------------| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |------------------------------------------------------------------------------------| 0 | SELECT STATEMENT | | 1304K| 9M| 1745 (6)| 00:00:11 ||* 1 | TABLE ACCESS FULL| BOOKINGS_LARGE | 1304K| 9M| 1745 (6)| 00:00:11 |------------------------------------------------------------------------------------

Predicate Information (identified by operation id):---------------------------------------------------

1 - filter("EVENT_NO"<90001)

Note-----

- SQL profile "SYS_SQLPROF_050521160626750" used for this statement

Page 84: Performance Tuning in Oracle 10g Part 1Part 1 Penny Cookson - Managing Director SAGE Computing Services Customised Oracle Training Workshops and Consulting . Agenda Identifying the

www.sagecomputing.com.auwww.sagecomputing.com.au

Manage ProfilesManage Profiles

Disable a profileBEGIN

DBMS_SQLTUNE.ALTER_SQL_PROFILE(name => 'BOOKINGS_BY_EVENT_NO', attribute_name => 'STATUS', value => 'DISABLED');

END;

Drop a profileBEGIN

DBMS_SQLTUNE.DROP_SQL_PROFILE(name => 'BOOKINGS_BY_EVENT_NO');END;

Page 85: Performance Tuning in Oracle 10g Part 1Part 1 Penny Cookson - Managing Director SAGE Computing Services Customised Oracle Training Workshops and Consulting . Agenda Identifying the

www.sagecomputing.com.auwww.sagecomputing.com.au

SQL Access Advisor SQL Access Advisor

Source can be:Top SQLSQL Tuning SetDefined SQLSchemas and/or tablesFilter by

UsersTablesTop resource usersModule IDsActions

Page 86: Performance Tuning in Oracle 10g Part 1Part 1 Penny Cookson - Managing Director SAGE Computing Services Customised Oracle Training Workshops and Consulting . Agenda Identifying the

www.sagecomputing.com.auwww.sagecomputing.com.au

SQL Access Advisor SQL Access Advisor

OptionsDefine workload typeInclude dropping indexes

IndexesMaterialised viewsBothLimitedComprehensive

Page 87: Performance Tuning in Oracle 10g Part 1Part 1 Penny Cookson - Managing Director SAGE Computing Services Customised Oracle Training Workshops and Consulting . Agenda Identifying the

www.sagecomputing.com.auwww.sagecomputing.com.au

Page 88: Performance Tuning in Oracle 10g Part 1Part 1 Penny Cookson - Managing Director SAGE Computing Services Customised Oracle Training Workshops and Consulting . Agenda Identifying the

www.sagecomputing.com.auwww.sagecomputing.com.au

Page 89: Performance Tuning in Oracle 10g Part 1Part 1 Penny Cookson - Managing Director SAGE Computing Services Customised Oracle Training Workshops and Consulting . Agenda Identifying the

www.sagecomputing.com.auwww.sagecomputing.com.au

Page 90: Performance Tuning in Oracle 10g Part 1Part 1 Penny Cookson - Managing Director SAGE Computing Services Customised Oracle Training Workshops and Consulting . Agenda Identifying the

www.sagecomputing.com.auwww.sagecomputing.com.au

Page 91: Performance Tuning in Oracle 10g Part 1Part 1 Penny Cookson - Managing Director SAGE Computing Services Customised Oracle Training Workshops and Consulting . Agenda Identifying the

www.sagecomputing.com.auwww.sagecomputing.com.au

Page 92: Performance Tuning in Oracle 10g Part 1Part 1 Penny Cookson - Managing Director SAGE Computing Services Customised Oracle Training Workshops and Consulting . Agenda Identifying the

www.sagecomputing.com.auwww.sagecomputing.com.au

Page 93: Performance Tuning in Oracle 10g Part 1Part 1 Penny Cookson - Managing Director SAGE Computing Services Customised Oracle Training Workshops and Consulting . Agenda Identifying the

www.sagecomputing.com.auwww.sagecomputing.com.au

Page 94: Performance Tuning in Oracle 10g Part 1Part 1 Penny Cookson - Managing Director SAGE Computing Services Customised Oracle Training Workshops and Consulting . Agenda Identifying the

www.sagecomputing.com.auwww.sagecomputing.com.au

Partitions

Page 95: Performance Tuning in Oracle 10g Part 1Part 1 Penny Cookson - Managing Director SAGE Computing Services Customised Oracle Training Workshops and Consulting . Agenda Identifying the

www.sagecomputing.com.auwww.sagecomputing.com.au

PartitioningPartitioning

Single logical table Physically stored as a series of separate segmentsAvailability – partition maintenancePerformance

Partition eliminationPartition wise joinsParallelisation

Page 96: Performance Tuning in Oracle 10g Part 1Part 1 Penny Cookson - Managing Director SAGE Computing Services Customised Oracle Training Workshops and Consulting . Agenda Identifying the

www.sagecomputing.com.auwww.sagecomputing.com.au

PartitioningPartitioning

RangeHashListComposite

Page 97: Performance Tuning in Oracle 10g Part 1Part 1 Penny Cookson - Managing Director SAGE Computing Services Customised Oracle Training Workshops and Consulting . Agenda Identifying the

www.sagecomputing.com.auwww.sagecomputing.com.au

Prefixed IndexesPrefixed Indexes

Allow the pruning of index partitionsMore useful in OLTP type applications

Table partitions based on year

1988 1989 20001987

1987

JAN

1988JAN

1989JAN

2000JAN

Index on YEAR,MONTH

Index partitions based on year

1987 1988 1989 2000

Page 98: Performance Tuning in Oracle 10g Part 1Part 1 Penny Cookson - Managing Director SAGE Computing Services Customised Oracle Training Workshops and Consulting . Agenda Identifying the

www.sagecomputing.com.auwww.sagecomputing.com.au

Non Prefixed IndexesNon Prefixed Indexes

Useful in decision support databasesAllow probes of the multiple index partitions to be performed in parallel

Table partitions based on year

1988 1989 20001987

10 10 10 10

Index on DEPT

Index partitions based on year

1987 1988 1989 2000

Page 99: Performance Tuning in Oracle 10g Part 1Part 1 Penny Cookson - Managing Director SAGE Computing Services Customised Oracle Training Workshops and Consulting . Agenda Identifying the

www.sagecomputing.com.auwww.sagecomputing.com.au

Partition Design Partition Design -- ExampleExample

Main table ACCOUNTS partitioned on Year and MonthSub partitioned on hash of Client_no

Joining table CLIENTSpartitioned on hash of Client_no

Page 100: Performance Tuning in Oracle 10g Part 1Part 1 Penny Cookson - Managing Director SAGE Computing Services Customised Oracle Training Workshops and Consulting . Agenda Identifying the

www.sagecomputing.com.auwww.sagecomputing.com.au

Partition Design Partition Design -- ExampleExample

2005 JAN 2005 FEB 2005 MAR 2005 APR

1 2 3 41 2 3 41 2 3 4 1 2 3 4ACCOUNTS

Partition scan for one month’s reporting

Page 101: Performance Tuning in Oracle 10g Part 1Part 1 Penny Cookson - Managing Director SAGE Computing Services Customised Oracle Training Workshops and Consulting . Agenda Identifying the

www.sagecomputing.com.auwww.sagecomputing.com.au

Partition Design Partition Design --ExampleExample

2005 JAN 2005 FEB 2005 MAR 2005 APR

1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4ACCOUNTS

1 2 3 4CLIENTS

Partition Wise Join