You are on page 1of 10

IonIdea - PTC Integrity Channel Partner

Krutika Shah 31 May 2013

Oracle Database and Performance Tuning

Oracle Training Part 3

AGENDA
Database Performance and Tuning Performance of Integrity Queries Performance of Triggers

8/13/2013

Oracle Database and Performance tuning

Database Performance and Tuning


Database Administrative Task
Use Statistics: Database maintain statistics about the data in various tables. If the statistics are not up to date, plans generated by the database will be too slow, thus making the queries slower. - im/si diag --diag= computestatics Use Tablespace: Moving tables or portion of tables with large data to a different table space helps achieving optimal performance. In particular the following tables: CMARCHBULK(value), and Attachments. - ALTER TABLE &table_name MOVE TABLESPACE &tbs_name

8/13/2013

Oracle Database and Performance tuning

Performance of Integrity Queries


Detecting suboptimal queries: To determine which IM queries are slow, run im
stats and look for the [Per Query] section. Each query should show up twice:

Number of issues returned


The amount of time taken, in microseconds.

Queries that have run a large number of times, but take more than say a few hundred

milliseconds are candidates for optimization

8/13/2013

Oracle Database and Performance tuning

Performance of Integrity Queries


Optimizing individual queries running slowly
Create Index - im diag --diag=createissuesindex indexName fieldname1 fieldname2 ...
Exmaple: im diag --diag=createissuesindex IssuesDueDate 'Due Date'

Use Static fields Move text fields to user-defined tables


1. Create the user-defined text table - im diag --diag=createuserdefinedtexttable 2. Move the data from the default location - im diag --diag=setuserdefinedtexttable 3. Re-create the index

8/13/2013

Oracle Database and Performance tuning

Performance of Integrity Queries


Setting query timeout
The query timeout is the time after which a query will abort if not completed. The default timeout limit is 15 seconds.

It can be changed by using the following diag:


im diag --diag=setintpolicy --param=QueryTimeOut --param=<InSeconds>

Detecting and stopping unusually long running queries


im diag --diag=running -It lists all running queries together with an identifier in case one of them needs to be stopped using the following diag : im diag --diag=kill --param=<threadID>

8/13/2013

Oracle Database and Performance tuning

Performance of Triggers
The statistics output will show you in the [Triggers] section the time spent in the
pre and post invocations of each trigger; or for a scheduled trigger.

8/13/2013

Oracle Database and Performance tuning

Other Performance Improvements


Reducing the Number of Issues Tables
Creating Indexes Across Multiple Issues Tables Changing Values on a Text Table

8/13/2013

Oracle Database and Performance tuning

Q&A

8/13/2013

Oracle Database and Performance tuning

10