DBO2: Database Performance: Tables and Indexes.

You might also like

Download as doc, pdf, or txt
Download as doc, pdf, or txt
You are on page 1of 13

DBO2: Database Performance: Tables and Indexes.

DATABASE SYSTEM:
It gives the database type, SID, date of analysis.
To view the updated screen, press REFRESH tab, and go for perform database checks.
TABLESPACE
We can have total DB size and available free space.

Current Sizes:
Observe the used (%) column. It gives the used space of TS. When it is above 90% we have to add a
datafile. The no under the column ‘free’ gives the free space available in the TS. When it is less than
10GB we have to add datafile.
The general datafile size is around 2GB. At OS level oracle/sid/sapdata1 is the path.
The default no of datafiles is 254. In init.ora parameter is db_files to change the no.

Detailed Analysis: We can find the largest table.

Total maximum autoextensible size (Kbyte)


With Oracle Version 8 you can set datafiles to "autoextensible". These datafiles then increase automatically. This field indicates
whether the Autoextend function is being used. It can have the values: "AutoExtend off", "Unlimited" (there is no limit to the
growth of at least one datafile) or a size in KB. This size is the maximum to which a datafile, a tablespace, or the entire database
can increase.

CAUTION: This size is only a logical limit. It cannot be guaranteed that there will be enough space on the disks for the extension.

See also: DB02 -> Goto -> Tablespaces -> Dba_Data_Files

You can find more information in the Oracle documentation on the table "dba_data_files", fields "autoextensible", "maxbytes",
"maxblocks", "increment_by".
Missing Indexes: It gives the missing indexes that were missing in the DB but defined in DD cache. It also
gives the unknown indexes that are unknown to the DD cache but existed in the table.
Select the missing index by clicking on the index name. Now click on the button. You
will be prompted to select Processing Type. If the table is big and contains more rows, select
background. If the table is small, select Online.

Space Critical Objects: When an object is trying to pick up space equal to Next Extent and when that
amount of space is unavailable in the TS then it becomes a space critical object.

To view indexes on a particular table: SE11give table name Display tab Indexes Tab.
ST04:
1) Database Buffer: It is part of SGA where the actual data blocks retrieved from DB is stored.
Here the quality of the buffer should be above 95%, such that the system performance doesn’t degrade.
It may be due to DB buffer low size,
Corrupted Indexes on a table,
DB statistics not running properly,
I/O Expensive SQL stmt.(SELECT,UPDATE,DELETE)
For this we have to increase the DB buffer size by increasing the value for DB_CACHE_SIZE in
init<sid>.ora.
Reads: Gives the total no of buffer and disk reads.
Physical Reads: Gives the total no of disk reads. This should as low as possible.
Due to Low size of DB buffer dbms will go to disk for the required data.
May be DBWR is not working properly.
For this we have to increase the size of DB buffer.

2) Shared Pool: It is also a part of SGA which is having Data Dictionary Cache and Library Cache.
Data Dictionary Cache includes user account information, datafile names, table descriptions, user
privileges, and other information.
The database server manages the size of the Data Dictionary Cache internally and the size depends
on the size of the Shared Pool in which the Data Dictionary Cache resides. If the size is too small, then
the data dictionary tables that reside on disk must be queried often for information and this will slow
down performance
DD cache quality should be > 90%. < 90% could indicate that the Shared Pool is too small.

3) Redo Log Buffer: The Redo Log Buffer memory object stores images of all changes made to database
blocks. Changes include insert, update, delete, create, alter, or drop.
Allocation Fault Rate should always be Zero. Allocation Fault gives the no of times the changes couldn’t
write to redo log buffer as it is getting empty slowly due to slow LGWR process.
.
4) Go to Detail Analysis Menu.

Buffer Busy Waits:


Oracle process is waiting for data block, segment header, etc to get into DB buffer from disk.
Such attempts made are under NUMBER column and TIME column gives the time it has waited.
Finally the total average time must be as low as possible.
This happens when DB buffer size is low, no statistical info in library cache for that table or there might
not be proper indexes on that table.

File System Requests:

I/O monitoring is done.


Data file reads and writes is to be checked.
To have a file with high reads/writes clk on that column value and go for SORT button.
When the above times are high then disk is busy.
This happens when the whole data (tablespaces’s) are placed on a single disk.
If we have undo, temp, etc TS’s on different disks we can have less reads and writes.

Click on I/O per path

Observe avg (ms).It should be as low as possible.


Wait Events:

Here the busy wait time indicates the time the processes are waiting due to unavailability of resources like
empty online redo log file (or small online redo log files) for LGWR. This may cause to hang DB.
So LGWR, DBWR, ARC0 shouldn’t have high wait times.

SQL request:

Here we find a sql statement which is expensive by comparing with other sql statements.
Disk reads: When the data is not in buffer then oracle will go for disk.
Disk reads are high due to improper statistic updates,
Table not having proper indexes.(ask ABAP’ers to assign Indexes)
Datafile segregation into different volumes reduces disk reads.
For this proper disk planning is to be done as shown below.

Sapdata1 datafile1, datafile4


Sapdata2 datafile2, datafile5
Sapdata3 datafile3, datafile6
The above screen gives the estimated costs and rows to a table.
These are statistics updated by CBO.
After reading 54 rows of the table the sql stmt couldn’t get any row.
So it goes for entire table scan which makes disk busy.
So go for proper indexes on a table.

Buffer gets/exec
Out of 524 executions the stmt could find its related data in the buffer only 3 times for each execution.
So remaining times it went for disk.
Low buffer size may cause to disk read.

CPU time/exec:

Time spend in CPU by an SQL stmt.


It shouldn’t be high.
When the SQL stmt is in upper case then it is from buttons, if not, it’s from report by our ABAP
programmer.

TABLE ACCESS: We need to analyze more on the user tables’ i.e. organizational defined tables and
indexes Hit ratio should be observed. If it high then it is from buffer, if not it is from disk.
To keep table in a buffer as fixed (pinning into buffer)
SE11table namedisplaytechnical settings (buffering type) generic area buffered.

PERFORM DATABASE.
How to check the buffer quality of previous day?
Sol) Just click on perform database.

DISPLAY V$VALUES:
V$recover_file TO know whether systems needs recovery or not.
Check ONLINE column: When it is displayed as RECOVERED, go for recovery.
SUMMARY REPORT:
It gives you the whole summary of the database, the following are the contents of the summary.

Performance:
1 Performance Summary
2 Wait Events
3 File I/O Statistics
State on Disk:
4 Tablespaces: Storage check
5 Tablespaces: Critical Objects
6 Tablespace status
7 Missing indices
8 Database tables without unique Index
9 Extents of Tables and Indices
10 Database Backup

Send to SAP India.


Every Button data is kept in single report.

Database Message Log will give all alerts and messages regarding DB actions.
Oracle/sid/saptrace/background is the OS path for alert. log.
Parameter Changes: u can view init<sid>.ora
Oracle/sid/920_64/database is the OS path for init<sid>.ora.

You might also like