|Oracle® TimesTen In-Memory Database Operations Guide
11g Release 2 (11.2.2)
This section summarizes the new features and functionality of Oracle TimesTen In-Memory Database Release 11.2.2 that are documented in this guide, providing links into the guide for more information.
You can use the
ttIsql edit command to edit a file or edit
ttIsql commands in a text editor. The
ttIsql edit command starts a text editor such as
vi. For more information, see "Using the ttIsql edit command".
The default size of the user log file and support log file has been increased. The new default size of the user log file is 10 MB and the support log file is 100 MB. For more information, see "Modifying informational messages".
A parallel load operation may take a long time to execute. You can cancel and cleanly stop all threads that are performing a parallel load operation with either the
) ODBC function or by pressing Ctrl-C in the ttIsql utility. For more information, see "Cancel a parallel load operation".
TimesTen concurrently processes read and write queries optimally. Your read queries can be optimized for read-only concurrency when you use transaction level optimizer hints such as
ttOptSetFlag ('tblLock',1) or statement level optimizer hints such as
/*+ tt_tbllock(1) tt_rowlock(0) */. Write queries that operate concurrently with read optimized queries may result in contention. You can control read optimization during periods of concurrent write operations with the
ttDbWriteConcurrencyModeSet built-in procedure. For more information, see "Control read optimization during concurrent write operations".
By default, if an automatic recovery of the database is unsuccessful after a fatal error, TimesTen changes the
manual RAM policies to
InUse to prevent reoccurring failures. You can now modify the default recovery process including preventing the RAM policy from changing with the
-enablePolicyInactive option in the
ttendaemon.options file. This option also stops the database from being reloaded. For details, see "Changes to RAM policy after automatic recovery fails".
When recovering a database, TimesTen reloads the database into memory. If the invalidated database still exists in memory, reloading the database can fill up available RAM. See "Preventing an automatic reload of the database after failure" on how to stop automatic reloading of the database with the
ttAdmin -noautoreload command.
You can hold off command invalidation for commands in the SQL command cache until all statistics are generated or until after major changes to tables or indexes are complete. Once complete, you can manually invalidate the commands with the
ttOptCmdCacheInvalidate built-in procedure. For more information, see "Control the invalidation of commands in the SQL command cache".
You can use the
INDEX statement to create a unique or nonunique hash index. For more information on creating hash indexes, see "Understanding indexes".
Historically, during transaction reclaim operations (the portion of a transaction where resources are cleaned up), a small number of the transaction log records have been cached to reduce the need to access the transaction log on disk. This helps only with relatively small transactions, however. To improve performance for large transactions as well, TimesTen has now added the
CommitBufferSizeMax connection attribute, which allows users to configure the size of the cache. See "Transaction reclaim operations" for details.
TimesTen provides built-in procedures that measure and display the execution time of SQL operations to determine the performance of SQL statements. Instead of tracing, the built-in procedures sample the execution time of SQL statements as they are executed. For full details, see "Collect and evaluate sampling of execution times for SQL statements".
You can use the
ttStats utility and
TT_STATS PL/SQL package to collect and display database metrics. You can evaluate the collected metrics to evaluate the performance of your TimesTen database. See "Use metrics to evaluate performance".
You can apply hints to pass instructions to the TimesTen query optimizer. The optimizer considers these hints when choosing the best execution plan for your query. In this release, you can apply a statement level optimizer hint for a particular SQL statement. For details, see "Apply statement level optimizer hints for a SQL statement".
You can configure a range for all shared memory keys used by TimesTen with the
-shmkeyrange daemon option. For details, see "Configuring a range for shared memory keys".
A new tool, the Index Advisor, can be used to recommend a set of indexes that could improve the performance of a specific SQL workload. For more details, see "Using the Index Advisor to recommend indexes".
You can generate a SQL script with the
ttOptStatsExport built-in procedure from which you can restore the table statistics to the current state. For more information, see "Create script to regenerate current table statistics".
New tools have been added that enable you to load the results of a SQL query from a back-end Oracle database into a single table on TimesTen without creating a cache grid, cache group, and cache table to contain the results. TimesTen provides the tools that execute a user provided
SELECT statement on the Oracle database and load the result set into a table on TimesTen. For more information, see "Loading data from an Oracle database into a TimesTen table".
You can defragment a TimesTen database with the
ttMigrate utility. For full details, see "Defragmenting TimesTen databases".
To defragment multiple databases with minimal overall service downtime, use a combination of the
ttRepAdmin -duplicate utilities to defragment TimesTen databases that are involved in an active standby pair replication scheme. For details, see "Online defragmentation of TimesTen databases".
You can now declare, use, and set bind variables within
ttIsql with the
setvariable commands. In addition, automatic bind variables can also be created. See "Using, declaring, and setting variables" for more details.
You can cancel an ODBC function with Ctrl-C. See "Canceling ODBC functions" for more details.
WHENEVER SQLERROR command to control error recovery within
ttIsql. For more details, see "Error recovery with WHENEVER SQLERROR".
IF-THEN-ELSE command construct to implement conditional branching logic in a
ttIsql session. See "Conditional control with the IF-THEN-ELSE command construct" for more details.
It is important to verify at frequent intervals that there are no transaction log holds that could result in an excessive accumulation of transaction log files. If too many transaction log files accumulate and fill up available disk space, new transactions in the TimesTen database cannot begin until the transaction log hold is advanced and transaction log files are purged by the next checkpoint operation. See "Monitoring accumulation of transaction log files" for more details.
The LOB data type is now supported. See "SQL string and character functions" for more details.
Range indexes used to be referred to as T-tree indexes. Now all output and commands use range as the identifying terminology. In "Viewing and changing query optimizer plans", the
showplan command now takes
trytmprange as options and the output for the query plan shows range indexes, such as
There is a new
tablesize command within
ttIsql that shows the actual sizes of tables within the TimesTen database. For full details, see "Using the ttIsql tablesize command".