Technical data
Application is slow
2-12 Oracle TimesTen In-Memory Database Troubleshooting Procedures Guide
For more information about updating statistics, see "The TimesTen Query Optimizer"
in the Oracle TimesTen In-Memory Database Operations Guide.
Verify lock and isolation levels
The manner in which multiple applications concurrently access the data store can have
a major impact on performance.
An application can acquire locks on the entire data store, individual tables, and
individual rows. Additionally, applications can set an isolation level that determines
whether they hold read and update locks until their transactions commit or roll back.
Check the SYS.MONITOR table or use the ttXactAdmin utility to detect whether an
application is spending time waiting for locks. See "Check for deadlocks and timeouts"
on page 2-14 and "Using the ttXactAdmin utility" on page 1-19.
If lock contention is high, you may be able to improve the overall performance of your
system by implementing the following:
■ Set the LockLevel configuration attribute or use the ttLockLevel procedure to
place locks on rows, rather than on the entire data store. (Row locking is the
default.)
■ Use the ttOptSetFlag procedure to prevent the query optimizer from placing
locks on tables. (Table locks are sometimes the default, particularly for updates
that affect many rows.)
■ Use read-committed isolation level (Isolation=1, the default) for those applications
do not require serializable access to the transaction data.
If you see a lot of lock contention, but the above settings are all set to minimize
contention, then the contention may be related to the application itself. For example,
concurrent threads may be repeatedly accessing the same row. The ttXactAdmin
utility can sometimes help you detect this sort of contention. Tracing can also be useful
in this situation.
For more information about locks and isolation levels, see "Concurrency control
through isolation and locking" in the Oracle TimesTen In-Memory Database Operations
Guide.
Check trace settings
Use ttTraceMon -e show as described in "Using the ttTraceMon utility" on page 1-6
to confirm tracing is off on all TimesTen components. ERR should be set to 1; all other
components should be set to 0. Trace levels are preserved when a data store is
reloaded.
On Windows platforms, confirm that ODBC tracing is disabled. Double-click ODBC in
the Control Panel to open the ODBC Data Source Administrator. Select the Tracing tab
and confirm tracing is disabled. See "Using ODBC tracing" on page 1-20.
Check partition counts for the tables
When a table is created, it has one partition. When you use ALTER TABLE ... ADD
COLUMN to add new columns, a new partition is added to the table. Adding multiple
columns with a single ALTER TABLE ... ADD COLUMN statement only adds one
partition.
There is a limit of 255 partitions per table. Exceeding this number generates an 8204
error. An extra read for each new partition slightly degrades performance for each of