Transcript Document

TUNING

Office of the Accountant General (A&E) Andhra Pradesh Hyderabad VLC - AG(AE) AP

Tuning

• When is tuning necessary? – Only if you feel that application is not running

fast enough

• What is to be tuned? – Oracle database – Application – Operating system – Network

VLC - AG(AE) AP

Tuning Goals

• To optimize the performance of

database

• To make database available to users

without making them wait for resources

• To perform maintenance operations

without interrupting users VLC - AG(AE) AP

Tuning Parameters

• Response time • Database availability • Database hit percentages • Memory utilization

VLC - AG(AE) AP

Tuning Steps

• Tune the design • Tune the application • Tune memory • Tune IO • Tune contention • Tune operating system

VLC - AG(AE) AP

Tuning Considerations

• Different for – OLTP databases – DSS databases – Hybrid databases • Our database – Hybrid database – Data entry and Report generation done

simultaneously VLC - AG(AE) AP

Hybrid Databases

• Number of rollback segments for data

entry

• Some large rollback segments for

report generation

• Balanced db_block_buffers and

log_buffers

• Medium size for db_block_size

VLC - AG(AE) AP

Tuning Hybrid Databases

• Tuning application is important in

hybrid databases

• Indexing plays an important role • Schedule batch processing if it is

heavy on resources

• Use less number of bind variables in

reports

• Optimize queries using hints

VLC - AG(AE) AP

Views, Utilities and Tools Used For Tuning

• Dynamic troubleshooting/performance

and dictionary views

– V$XXXX dynamic troubleshooting and

performance views

– DBA_XXX dictionary views • Utlbstat.sql and utlestat.sql • Alert logs and traces •

nitialization parameters VLC - AG(AE) AP

Tuning Statistics To Be Gathered

• Library cache statistics • System statistics • Wait event statistics • Latch statistics • Rollback contention statistics • Buffer busy wait statistics • Dictionary cache statistics • IO statistics per data file/table space • Period of measurement

VLC - AG(AE) AP

Alert Log Files

• The lert log file consists of a

chronological log of messages and errors

• Check the alert log file to: – Detect internal errors and block corruption

errors

– Monitor database operations – View the non-default initialization parameters • Remove or trim the alert log file

regularly after checking VLC - AG(AE) AP

Background Processes Trace Files

• The Oracle server dumps information

about errors detected by any background process in trace files

• Oracle support uses these trace files

to diagnose and trouble shoot problems VLC - AG(AE) AP

User Trace Files

• Server process tracing is enabled or disabled

at the session or instance level by:

– The ALTER_SESSION command – The SET_SQL_TRACE_IN_SESSION procedure – The initialization parameter SQL_TRACE • A user trace file contain statistics for traced

SQL statements for that session

• A user trace file is used for SQL tuning • The Oracle database creates user trace files

on per server process basis VLC - AG(AE) AP

Tuning Memory

• The amount of memory occupied by

Oracle is called SGA

• SGA contains – DB Block Buffers – Redo Log Buffers – Shared Pool o Library Cache o Data Dictionary Cache o UGA – Large Pool

VLC - AG(AE) AP

Tuning Memory

• In hybrid databases like VLC, memory

plays an important role

• Ideally DB_BLOCK_BUFFERS and

LOG_BUFFERS to be in 80-20 ratio

• SHARED_POOL_SIZE also plays an

important parameter in tuning memory VLC - AG(AE) AP

Tuning Library Cache

• Library Cache tuned – If the pins to misses ratio is more than 1% – If the get hit ratio of name space is less than

90%

• V$Views – V$LIBRARYCACHE – V$SQLAREA – V$SQLTEXT – V$DB_OBJECT_CACHE

VLC - AG(AE) AP

Tuning Library Cache

• To find hit ratio of library cache – Select namespace, gethitratio from

v$librarycache

• To find reloads of SQL statements – Select sql_text, users_executing, executions,

loads from v$sqlarea

• To find library cache reloads – Select sum(pins) Executions, sum(reloads)

Misses, sum(reloads)/sum(pins) Hitratio from v$librarycache VLC - AG(AE) AP

Tuning Library Cache

• Keep often used objects • Avoid parsing • Avoid large anonymous PL/SQL Blocks – Select sql_text from v$sqlarea where

command type=47;

• Reserve un-fragmentable memory in

shared pool

– SHARED_POOL_RESERVED_SIZE – SHARED_POOL_MIN_ALLOC

VLC - AG(AE) AP

Tuning Data Dictionary Cache

• Keep the ratio of the getmisses to gets

less than 15%

– Select parameter, gets, getmisses from

v$rowcache

• Increase shared pool size if the above

ratio is more than 15% VLC - AG(AE) AP

Tuning DB Block Buffer Cache

• DB hit ratio should always be more

than 90%

• To find DB Cache hit ratio – Select 1-(p.value)/(d.value+c.value) from

v$sysstat p, v$sysstat d, v$sysstat c where p.name = ‘physical reads and d.name = ‘db block gets’ and c.name = ‘consistent gets’; VLC - AG(AE) AP

Tuning Buffer Cache

• If DB hit ratio gets below 90% – Increase buffer cache size – Use multiple buffer pools – Cache tables – Bypass the buffer cache for sorting and

parallel reads VLC - AG(AE) AP

Tuning Buffer Pool

• To use multiple pool buffers set – DB_BLOCK_BUFFERS – DB_BLOCK_LRU_LATCHES – BUFFER_POOL_KEEP – BUFFER_POOL_RECYCLE • To enable table caching – Alter table with cache clause – Use cache hint in query

VLC - AG(AE) AP

Tuning Redo Log Buffer

• Following parameters effect log buffer – LOG_BUFFER – LOG_CHECK_POINT_INTERVAL – LOG_CHECK_POINT_TIMEOUT • Check for – Redo buffer space event – Redo buffer allocation retries – Redo log space requests – Logfile switch (check point incomplete) – Logfile switch (archive needed)

VLC - AG(AE) AP

Tuning Check Point

• Each checkpoint cause IO operations • Frequent checkpoints reduces runtime

performance

• Parameters – FAST_START_IO_TARGET – LOG_CHECK_POINT_INTERVAL – LOG_CHECK_POINT_TIMEOUT – DB_BLOCK_MAX_DIRTY_TARGET – LOG_CHECK_POINT_TO_ALERT

VLC - AG(AE) AP

Tuning Large Pool

• Used for oracle maintenance

operations

• UGA in MTS mode • Parallel query • IO-server process • Tuning parameters – LARGE_POOL_SIZE – DBWR_IO_SLAVES

VLC - AG(AE) AP

Latches

• Contention areas that the DBA can

tune:

– Redo allocation latch – Redo copy latch – LRU latch • Latch types – Willing to wait o Gets, misses, sleeps – Immediate o Immediate gets and immediate waits

VLC - AG(AE) AP

LRU Latches

• LRU latches regulate the least recently

used (LRU) lists used by the buffer cache

• By default, the Oracle server set the

number of LRU latches to one-half the number of CPUs, with a minimum of one

• Each latch controls a minimum of 50

buffers VLC - AG(AE) AP

LRU Latch Tuning Goals

• Ensure there are sufficient number of

LRU latches for the data buffer cache so that contention between server processes is minimized

• Balance the number of latches with

the number of CPUs

• Set one DBWn process for each latch

VLC - AG(AE) AP

Resolving LRU Latch Contention

• If the hit percentage for the LRU latch

is less than 99%

– Increase the number of LRU latches by setting

the parameter DB_BLOCK_LRU_LATCHES

– The maximum number of latches is the lower

of:

o Number of CPUs*2*3 o Number of buffers/50

VLC - AG(AE) AP

Free Lists

• A free list for an object maintains a list

of blocks that are available for inserts

• The number of free lists for an object

cannot be set dynamically

• Single CPU systems do not benefit

greatly from multiple free lists

• The tuning goal is to ensure that an

object has sufficient free lists to minimize contention VLC - AG(AE) AP

Resolving Free List Contention

• Query the V$SESSION_WAIT view • Identify the object and get free lists

for the segment from DBA_SEGMENTS

• Re-create the object in question

VLC - AG(AE) AP

Tuning IO-contentions

• Keep data files and log files on

separate disks

• Stripe table data • Reduce Disk IO • Evaluate the use of RAW devices • To know IO of files – Select d.name, f.phyrds, f.phyrds from

v$datafile d, v$filestat where d.file# = f.file# VLC - AG(AE) AP

Oracle File Striping

• Operating system striping – Use operating system striping software or

RAID

– Decide on the right stripe size • Manual striping – Use the create table or alter table ALLOCATE

command

– Is worth while with parallel query usage

VLC - AG(AE) AP

Tuning Data Files

• Keep data files and log files on

separate disks to reduce IO contention

• Specify the initialization parameter

DB_FILE_MULTIBLOCK_READ_COUNT

– To determine the number of database blocks

the server reads at once

– To influence the execution plan of the cost-

based optimizer VLC - AG(AE) AP

Tuning Log Files

• Size redo log files to minimize the

contention

• Have enough groups to prevent

waiting

• Store redo log files on separate faster

devices

• Dynamic views – V$LOG – V$LOGFILE

VLC - AG(AE) AP

Tuning Archive Log Files

• Keep archive log files on separate IO

faster devices

• Archive log operations parameters – LOG_ARCHIVE_MAX_PROCESSES – LOG_ARCHIVE_DEST • Dynamic views – V$ARCHIVE_DEST – V$ARCHIVE_LOG – V$ARCHIVE_PROCESSES

VLC - AG(AE) AP

Tuning Rollback Segments

• Transactions should never wait for

access to rollback segments

• Rollback segments should not extend

during normal running

• Users and utilities should try to use

less rollback

• No transaction should ever run out of

rollback space

• Readers should always see the read-

consistent images they need VLC - AG(AE) AP

Tuning Rollback Segments

• The ratio of the sum of waits to the

sum of gets should be less than 1%

– Select sum(gets) ‘gets’, sum(waits) ‘waits’,

sum(waits)*100/sum(gets) ‘ratio’ from v$rollstat;

• If the ratio is more than 1% then

create more rollback segments

• The number of waits for any class

should be less than 1% of the total number of requests VLC - AG(AE) AP

Sizing Transaction Rollback Data

• Deletes are expensive • Inserts use minimal rollback space • Updates use rollback space depending

on the number of columns

• Index maintenance adds rollback

VLC - AG(AE) AP

Possible Problems

• Transactions fails for lack of rollback

space

• “Snapshot too old” error occurs if: – The inserted transaction list in the block being

queried has been reused, and the SCN in the block is newer than the SCN at the start of the query

– The transaction slot in the rollback segment

header has been reused

– The undo data in the rollback segment has

been overlaid after a commit VLC - AG(AE) AP

Tablespace Usage

• Reserve the SYSTEM tablespace usage for

data dictionary objects

• Create locally managed tablespaces to avoid

space management issues

• Split tables and indexes into separate

tablespaces

• Create separate rollback tablespaces • Store very large database objects in their

own tablespace

• Create one or more temporary tablespaces

VLC - AG(AE) AP