TimesTenのttIsqlユーティリティは、TimesTenデータソースを処理するための一般的なツールです。ttIsqlコマンドライン・インタフェースを使用して、SQL文および組込みttIsqlコマンドを実行して様々なタスクを実行します。通常ttIsqlを使用して行う処理は次のとおりです。
データベースの設定およびメンテナンス。表と索引の作成、既存の表の変更および表統計の更新は、ttIsqlを使用して迅速かつ簡単に実行できます。
データベースの構造に関する情報の検索。表、索引、およびキャッシュ・グループの定義は、組込みttIsqlコマンドを使用して検索できます。また、データベースの現在のサイズおよび状態を表示することもできます。
データベース処理の最適化。ttIsqlユーティリティを使用して、SQL操作をチューニングするために問合せオプティマイザ計画を変更または表示できます。また、様々なODBC関数コールの実行に必要な時間も表示できます。
次の項では、ttIsqlユーティリティを使用してこれらのタスクを実行する方法について説明します。
TimesTen SQLおよびすべてのttIsqlコマンドの詳細は、『Oracle TimesTen In-Memory Databaseリファレンス』のttIsqlに関する項を参照してください。
ttIsqlユーティリティは、バッチ・モードまたは対話モードで使用できます。ttIsqlを対話モードで使用する場合、ユーザーはコンソールからttIsqlに直接コマンドを入力します。ttIsqlをバッチ・モードで使用する場合は、コマンドを含むファイルの名前を指定して、事前に準備したttIsqlコマンドのスクリプトを実行します。
通常、バッチ・モードは、次のようなタスクで使用します。
表統計の更新、データベースの圧縮、ログ・ファイルのパージなどの定期的なメンテナンス処理の実行
表、索引、およびキャッシュ・グループを作成し、その表にデータを移入することによるデータベースの初期化
一般的な問合せを実行することによる簡単なレポートの作成
対話モードは、次のような処理に適しています。
TimesTen機能の検証、代替設計のテストおよび問合せパフォーマンスの向上
データベース統計の調査による、データベース問題の解決
通常どおりには実行されないその他のデータベース・タスク
デフォルトでは、シェルからttIsqlを起動すると、ttIsqlは対話モードになります。ttIsqlユーティリティは、Command>プロンプトを表示することによって、有効なttIsql組込みコマンドまたはSQL文の入力を求めます。
C:\>ttIsql ttIsql (c) 1996-2009, Oracle. All rights reserved. Type ? or "help" for help, type "exit" to quit ttIsql. Command>
バッチ・モードは、2つの異なる方法で使用できます。最も一般的な方法は、ttIsqlコマンドラインで、実行するファイルの名前を-fオプションの後に指定する方法です。
たとえば、CREATE TABLE文を含むファイルを実行する場合は次のようになります。
C:\>ttIsql -f create.sql MY_DSN ttIsql (c) 1996-2009, Oracle. All rights reserved. Type ? or "help" for help, type "exit" to quit ttIsql. Command> connect "DSN=MY_DSN" Connection successful: DSN=MY_DSN;DataStore=E:\ds\MY_DSN; DRIVER=E:\WINNT\System32\TTdv1121.dll; (Default setting AutoCommit=1) Command> run "create.sql" CREATE TABLE LOOKUP (KEY NUMBER NOT NULL PRIMARY KEY, VALUE CHAR (64)) Command> exit Disconnecting... Done. C:\>
バッチ・モードを使用するもう1つの方法は、対話形式のコマンド・プロンプトからrunコマンドを直接入力する方法です。実行するttIsql組込みコマンドおよびSQL文を含むファイルの名前をrunコマンドの後に指定します。
Command> run "create.sql"; CREATE TABLE LOOKUP (KEY NUMBER NOT NULL PRIMARY KEY, VALUE CHAR (64)) Command>
コマンド・プロンプトからttIsqlセッションが開始されるたびに、一連のコマンドライン・オプションが自動的に実行されるように、ttIsqlユーティリティをカスタマイズできます。これは、TTISQLという環境変数を適切なttIsqlコマンドラインの値に設定して行うことができます。次に、ttIsqlコマンドライン・オプションの概要を示します。ttIsqlコマンドライン・オプションの詳細は、『Oracle TimesTen In-Memory Databaseリファレンス』のttIsqlに関する項を参照してください。
Usage: ttIsql [-h | -help | -helpcmds | -helpfull | -V]
[-connStr <connection_string>]
[-f <filename>]
[-v <verbosity>]
[-e <initialization_commands>]
[-interactive]
[-N <ncharencoding>]
[-wait]
TTISQL環境変数には、ttIsqlコマンドラインと同じ構文要件があります。ttIsqlは、起動時にTTISQL環境変数の値を読み取り、現行のttIsqlセッションに対する変数で指定されたすべてのオプションを適用します。特定のコマンドライン・オプションがTTISQL環境変数およびコマンドラインの両方に指定されている場合は、コマンドラインに指定されているオプションが常に優先されます。
環境変数の値を設定する手順は、プラットフォーム、およびttIsqlが起動されるシェルによって異なります。たとえば、WindowsでTTISQL環境変数を設定する場合は、次のように入力します。
C:\>set TTISQL=-connStr "DSN=MY_DSN" -e "autocommit 0;dssize;"
この例では、次に示すように、ttIsqlがMY_DSNというDSNに自動的に接続し、自動コミットを無効にし、データベースのサイズを表示します。
C:\>ttIsql ttIsql (c) 1996-2009, Oracle. All rights reserved. Type ? or "help" for help, type "exit" to quit ttIsql. Command> connect "DSN=MY_DSN"; Connection successful: DSN=MY_DSN;DataStore=E:\ds\MY_DSN;DRIVER=E:\WINNT\System32\TTdv1121.dll; (Default setting AutoCommit=1) Command> autocommit 0; Command> alltables; SYS.ACCESS$ SYS.ARGUMENT$ SYS.CACHE_GROUP SYS.COLUMNS SYS.COLUMN_HISTORY SYS.COL_STATS SYS.DEPENDENCY$ SYS.DIR$ SYS.DUAL SYS.ERROR$ SYS.IDL_CHAR$ SYS.IDL_SB4$ SYS.IDL_UB1$ SYS.IDL_UB2$ SYS.INDEXES SYS.MONITOR ... 59 tables found. Command>
ttIsqlコマンド・プロンプトは、prompt属性を指定してsetコマンドを使用するとカスタマイズできます。
Command> set prompt MY_DSN; MY_DSN
現行の接続の名前を戻す文字列書式(%c)を指定できます。
Command> set prompt %c; con1
空白を埋め込む場合は、文字列を引用符で囲む必要があります。
Command> set prompt "MY_DSN %c> "; MY_DSN con1>
ttIsqlユーティリティには、オンライン・バージョンのttIsql組込みコマンドのコマンド構文の定義および説明が用意されています。ttIsql内からこのオンライン・ヘルプにアクセスするには、helpコマンドを使用します。ttIsql組込みコマンドの詳細を表示するには、ヘルプを表示する1つ以上のttIsqlコマンドをhelpコマンドの後に入力します。次に、connectおよびdisconnectコマンドのオンライン・ヘルプの表示例を示します。
Command> help connect disconnect Arguments in <> are required. Arguments in [] are optional. Command Usage: connect [DSN|connection_string] [as <connection_id>] Command Aliases: (none) Description: Connects to the data source specified by the optional DSN or connection string argument. If an argument is not given, then the DSN or connection string from the last successful connection is used. A connection ID may optionally be specified, for use in referring to the connection when multiple connections are enabled. The DSN is used as the default connection ID. If that ID is already in use, the connection will be assigned the ID "conN", where N is some number larger than 0. Requires an active connection: NO Requires autocommit turned off: NO Reports elapsed execution time: YES Works only with a TimesTen data source: NO Example: connect; -or- connect RunData; -or- connect "DSN=RunData"; -or- connect RunData as rundata1; Command Usage: disconnect [all] Command Aliases: (none) Description: Disconnects from the currently connected data source or all connections when the "all" argument is included. If a transaction is active when disconnecting then the transaction will be rolled back automatically. If a connection exists when executing the "bye", "quit" or "exit" commands then the "disconnect" command will be executed automatically. Requires an active connection: NO Requires autocommit turned off: NO Reports elapsed execution time: YES Works only with a TimesTen data source: NO Example: disconnect;
すべてのttIsql組込みコマンドの簡単な説明を表示するには、引数を指定しないでhelpコマンドを入力します。すべてのttIsql組込みコマンドの詳細を表示するには、helpコマンドの後にall引数を入力します。
ttIsqlを使用して設定または表示可能な属性のリストを表示するには、次のように入力します。
Command> help attributes
UNIXシステムでは、editlineライブラリを使用して、emacs(デフォルト)またはviバインディングを設定できます。これらのバインディングを設定すると、前のttIsqlコマンドをスクロールしたり、編集して再送信することができます。この機能は、Windowsでは使用不可(不要)です。
ttIsqlのeditline機能を無効にするには、ttIsqlコマンドのset editline offを使用します。
設定およびキーストロークに関する情報を、エディタのタイプごとに説明します。
emacsバインディングを使用するには、~/.editrc ファイルを作成し、そのファイルの最後の行にbindを挿入してttIsqlを実行します。editline libによって、現行のバインディングが表示されます。
emacsバインディングでttIsqlを使用する場合のキーストロークは、次のとおりです。
| キーストローク | アクション |
|---|---|
| <[←]> | 挿入点を左に移動します。後退します。 |
| <[→]> | 挿入点を右に移動します。前進します。 |
| <[↑]> | 表示されているコマンドの1つ前のコマンドにスクロールします。カーソルは行末に移動します。 |
| <[↓]> | 最新のコマンド履歴項目までスクロールします。カーソルは行末に移動します。 |
| <[Ctrl] + [A]> | 挿入点を行の先頭まで移動します。 |
| <[Ctrl] + [E]> | 挿入点を行末まで移動します。 |
| <[Ctrl] + [K]> | コマンドライン上の現在の位置から行末までの文字を保存して削除(Kill)します。 |
| <[Ctrl] + [Y]> | 以前保存した文字をリストア(Yank)して現在の挿入点に挿入します。 |
| <[Ctrl] + [F]> | カーソルを右に1文字移動します([→]を参照)。 |
| <[Ctrl] + [B]> | カーソルを左に1文字移動します([←]を参照)。 |
| <[Ctrl] + [P]> | 前の履歴に移動します([↑]を参照)。 |
| <[Ctrl] + [N]> | 次の履歴に移動します([↓]を参照)。 |
viバインディングを使用するには、${HOME}/.editrcファイルを作成し、そのファイルにbind-vを挿入してttIsqlを実行します。現在の設定を取得するには、${HOME}/.editrc ファイルを作成し、そのファイルの最後の行にbindを挿入します。ttIsqlを実行すると、editline libによって現在のバインディングが表示されます。
viバインディングでttIsqlを使用する場合のキーストロークは、次のとおりです。
| キーストローク | アクション |
|---|---|
| [←]、[h] | 挿入点を左に移動します(後退)。 |
| [→]、[l] | 挿入点を右に移動します(前進)。 |
| [↑]、[k] | 履歴内の前のコマンドにスクロールします。カーソルは行末に移動します。 |
| [↓]、[j] | 履歴内の次のコマンドにスクロールします。カーソルは行末に移動します。 |
| [Esc] | viコマンド・モードです。 |
| 0, $ | 挿入点を行の先頭に移動します。カーソルは行末に移動します。 |
| [i]、[I] | 挿入モード。行の先頭の挿入モードです。 |
| [a]、[A] | 追加(後ろに挿入)モード。行末に追加します。 |
| [R] | 置換モード。 |
| [C] | 行末まで変更します。 |
| [B] | 前の単語まで移動します。 |
| [e] | 単語末まで移動します。 |
| <[Ctrl] + [P]> | 前の履歴に移動します([↑]を参照)。 |
| <[Ctrl] + [N]> | 次の履歴に移動します([↓]を参照)。 |
ttIsqlユーティリティでは、現行のttIsqlセッションで最後に実行した100個のコマンドのリストが保存されます。このリスト内のコマンドは、コマンド全体を入力せずに再度参照または実行できます。履歴リストには、SQL文およびttIsql組込みコマンドの両方が保存されます。historyコマンド(h)を使用すると、以前に実行したコマンドを参照できます。次に例を示します。
Command> h; 8 INSERT INTO T3 VALUES (3) 9 INSERT INTO T1 VALUES (4) 10 INSERT INTO T2 VALUES (5) 11 INSERT INTO T3 VALUES (6) 12 autocommit 0 13 showplan 14 SELECT * FROM T1, t2, t3 WHERE A=B AND B=C AND A=B 15 trytbllocks 0 16 tryserial 0 17 SELECT * FROM T1, t2, t3 WHERE A=B AND B=C AND A=B Command>
historyコマンドによって、最後に実行された10個のSQL文またはttIsql組込みコマンドが表示されます。この最後10個以外のコマンドを表示するには、historyコマンドに引数として表示最大数を指定します。
履歴リストの各エントリは、一意の番号で識別されています。コマンド番号を!の後に指定すると、そのコマンドを再度実行できます。次に例を示します。
Command> Command> ! 12; autocommit 0 Command>
最後のコマンドを実行するには、2つの!を連続して入力します。
Command> !!; autocommit 0 Command>
特定の文字列で始まっている最後のコマンドを実行するには、そのコマンドの最初の数文字を!の後に入力します。次に例を示します。
Command> ! auto; autocommit 0 Command>
savehistoryコマンドを使用すると、ttIsqlによって保存されるコマンドのリストを保存できます。
Command> savehistory history.txt;
出力ファイルがすでに存在している場合は、-aオプションを使用してこのファイルに新しいコマンド履歴を追加するか、または-fオプションを使用してこのファイルを上書きします。次の例では、既存のファイルに新しいコマンド履歴を追加する方法を示します。
Command> savehistory -a history.txt;
clearhistoryコマンドを使用すると、ttIsqlによって保存されるコマンドのリストを消去できます。
Command> clearhistory;
ttIsqlユーティリティでは、『Oracle TimesTen In-Memory Databaseリファレンス』のサポートされているキャラクタ・セットの項に記載されているキャラクタ・セットがサポートされています。ttIsqlで文字を表示する機能は、ttIsqlを使用している端末のネイティブ・オペレーティング・システムのロケール設定によって異なります。
ロケール・ベースの出力書式を上書きするには、ncharencodingオプションまたは-Nオプションを使用します。これらのオプションの有効な値は、LOCALE(デフォルト)およびASCIIです。ASCIIを選択した場合にttIsqlでUnicode文字が検出されると、Unicode文字はエスケープされた書式で表示されます。
出力方法を変更する場合、アクティブな接続は必要ありません。
データベース構造に関する情報を表示するいくつかのttIsqlコマンドが用意されています。次に、最も有効なコマンドの概要を示します。
describeコマンドを使用して、各データベース・オブジェクトに関する情報を表示します。準備済のSQL文および組込みプロシージャに関するパラメータを表示します。describeコマンドの引数として、表、ビュー、マテリアライズド・ビュー、マテリアライズド・ビュー・ログ、順序、シノニムなどの名前、組込みプロシージャ、SQL文、事前に準備済のSQL文のコマンドID、PL/SQL関数、PL/SQLプロシージャまたはPL/SQLパッケージを指定できます。
describeコマンドを終了するには、セミコロンを指定する必要があります。
Command> CREATE TABLE T1 (KEY NUMBER NOT NULL PRIMARY KEY, VALUE CHAR (64));
Command> describe T1
> ;
Table USER.T1:
Columns:
*KEY NUMBER NOT NULL
VALUE CHAR (64)
1 table found.
(primary key columns are indicated with *)
Command> describe SELECT * FROM T1 WHERE KEY=?;
Prepared Statement:
Parameters:
Parameter 1 NUMBER
Columns:
KEY NUMBER NOT NULL
VALUE CHAR (64)
Command> describe ttOptUseIndex;
Procedure TTOPTUSEINDEX:
Parameters:
Parameter INDOPTION VARCHAR (1024)
Columns:
(none)
1 procedure found.
Command>
cachegroupsコマンドを使用すると、現行のデータベースで定義されているキャッシュ・グループの詳細が表示されます。キャッシュ・グループに関連付けられているWHERE句のみでなく、キャッシュ・グループに定義されているroot表および子表の属性も表示されます。cachegroupsコマンドには、情報を表示するキャッシュ・グループの名前を引数として指定します。
Command> cachegroups MY_CACHE_GROUP Cache Group USER.MY_CACHE_GROUP: Duration: 40 Minutes Root Table: USER.T1 Where Clause: (T1.KEY < 100) Type: Not Propagate Child Table: USER.T2 Where Clause: (none) Type: Propagate 1 cache group found. Command>
dssizeコマンドを使用すると、データベースの最大サイズ、割当てサイズおよび使用中サイズのみでなく、永続パーティションおよび一時パーティションの現在のメモリー・ステータスがレポートされます。
monitorコマンドを使用すると、dssizeコマンドで戻されるすべての情報およびデータベースがメモリーにロードされてから収集された接続数、チェックポイント、ロック・タイムアウト、コミット、ロールバックなどに関する追加の統計情報が表示されます。
Command> monitor; TIME_OF_1ST_CONNECT: Mon Feb 23 11:32:49 2009 DS_CONNECTS: 11 DS_DISCONNECTS: 0 DS_CHECKPOINTS: 0 DS_CHECKPOINTS_FUZZY: 0 DS_COMPACTS: 0 PERM_ALLOCATED_SIZE: 40960 PERM_IN_USE_SIZE: 5174 PERM_IN_USE_HIGH_WATER: 5174 TEMP_ALLOCATED_SIZE: 18432 TEMP_IN_USE_SIZE: 4527 TEMP_IN_USE_HIGH_WATER: 4527 SYS18: 0 TPL_FETCHES: 0 TPL_EXECS: 0 CACHE_HITS: 0 PASSTHROUGH_COUNT: 0 XACT_BEGINS: 2 XACT_COMMITS: 1 XACT_D_COMMITS: 0 XACT_ROLLBACKS: 0 LOG_FORCES: 0 DEADLOCKS: 0 LOCK_TIMEOUTS: 0 LOCK_GRANTS_IMMED: 17 LOCK_GRANTS_WAIT: 0 SYS19: 0 CMD_PREPARES: 1 CMD_REPREPARES: 0 CMD_TEMP_INDEXES: 0 LAST_LOG_FILE: 0 REPHOLD_LOG_FILE: -1 REPHOLD_LOG_OFF: -1 REP_XACT_COUNT: 0 REP_CONFLICT_COUNT: 0 REP_PEER_CONNECTIONS: 0 REP_PEER_RETRIES: 0 FIRST_LOG_FILE: 0 LOG_BYTES_TO_LOG_BUFFER: 64 LOG_FS_READS: 0 LOG_FS_WRITES: 0 LOG_BUFFER_WAITS: 0 CHECKPOINT_BYTES_WRITTEN: 0 CURSOR_OPENS: 1 CURSOR_CLOSES: 1 SYS3: 0 SYS4: 0 SYS5: 0 SYS6: 0 CHECKPOINT_BLOCKS_WRITTEN: 0 CHECKPOINT_WRITES: 0 REQUIRED_RECOVERY: 0 SYS11: 0 SYS12: 1 TYPE_MODE: 0 SYS13: 0 SYS14: 0 SYS15: 0 SYS16: 0 SYS17: 0 SYS9:
ttIsqlを使用して、データベース内の表、索引、ビュー、順序、シノニム、PL/SQL関数、プロシージャおよびパッケージを表示できます。先頭にallの付いたコマンドでは、このタイプのオブジェクトがすべて表示されます。たとえば、functionsコマンドではユーザーが所有するPL/SQL関数が表示されますが、allfunctionsでは、すべてのPL/SQL関数が表示されます。
オプションで、オブジェクト所有者およびオブジェクト名のパターンを指定することもできます。
データベース・オブジェクトを表示するには、次のコマンドを使用します。
tablesおよびalltables: 表の表示
indexesおよびallindexes: 索引の表示
viewsおよびallviews: ビューの表示
sequencesおよびallsequences: 順序の表示
synonymsおよびallsynonyms: シノニムの表示
functionsおよびallfunctions: PL/SQL関数を表示します。
proceduresおよびallprocedures: PL/SQLプロシージャを表示します。
packagesおよびallpackages: PL/SQLパッケージを表示します。
|
注意: これらの各コマンドの詳細は、『Oracle TimesTen In-Memory Databaseリファレンス』のttIsqlに関する項を参照してください。 |
次の例に、proceduresおよびallproceduresコマンドを示します。ユーザーTERRYが、myDSNへの接続中にproc1という名前のプロシージャを作成します。PL/SQL文に続く新しい行には、スラッシュ(/)が入力されています。
proceduresコマンドおよびallproceduresコマンドでは、これがデータベース内の唯一のPL/SQLプロシージャであることが示されます。
$ ttisql myDSN
Copyright (c) 1996-2009, Oracle. All rights reserved.
Type ? or "help" for help, type "exit" to quit ttIsql.
connect "DSN=myDSN";
Connection successful:
DSN=myDSN;UID=terry;DataStore=/scratch/terry/myDSN;DatabaseCharacter
Set=AL32UTF8;ConnectionCharacterSet=US7ASCII;PermSize=32;TypeMode=0;
(Default setting AutoCommit=1)
Command> create or replace procedure proc1 as begin null; end;
> /
Procedure created.
Command> procedures;
TERRY.PROC1
1 procedure found.
Command> allprocedures;
TERRY.PROC1
1 procedure found.
次に、同じDSNにPatとして接続し、qという名前のプロシージャを作成します。allproceduresコマンドでは、Terryとpatによって作成されたPL/SQLプロシージャが表示されます。
$ ttisql "dsn=myDSN;uid=PAT"
Copyright (c) 1996-2009, Oracle. All rights reserved.
Type ? or "help" for help, type "exit" to quit ttIsql.
connect "dsn=myDSN;uid=PAT";
Connection successful: DSN=myDSN;UID=PAT;DataStore=/scratch/terry/myDSN;DatabaseCharacterSet=AL32UTF8;
ConnectionCharacterSet=US7ASCII;PermSize=32;TypeMode=0;
(Default setting AutoCommit=1)
Command> create or replace procedure q as begin null; end;
> /
Procedure created.
Command> procedures;
PAT.Q
1 procedure found.
Command> allprocedures;
TERRY.PROC1
PAT.Q
2 procedures found.
ttIsqlのshowおよびsetコマンドを使用すると、接続属性を表示および設定できます。ttIsqlを使用して表示および設定できる属性のリストは、『Oracle TimesTen In-Memory Databaseリファレンス』の接続属性に関する説明を参照してください。
Passthrough属性の設定を表示するには、次のように入力します。
Command> show passthrough; PassThrough = 0
Passthrough設定を変更するには、次のように入力します。
Command> set passthrough 1;
ttIsqlユーティリティには、トランザクションを管理するためのいくつかの組込みコマンドが用意されています。次に、これらのコマンドの概要を示します。
commitdurable: 現行のトランザクションをコミットし、データベース障害の場合にコミット済の作業をリカバリできるようにします。
sqlquerytimeout: アプリケーションに戻されるまでのSQL文の実行待機時間(秒)を指定します。これは、setコマンドの属性としても設定できます。
デフォルトでは、ttIsqlを起動すると、自動コミット機能が有効になります。このモードでは、データベースに対するすべてのSQL操作が自動的にコミットされます。自動コミット機能を無効にするには、引数0を指定してttIsqlのautocommitコマンドを実行します。
自動コミットが無効になっている場合は、ttIsqlのcommitコマンド、commitdurableコマンド、またはrollbackコマンドを実行して、トランザクションを手動でコミットまたはロールバックする必要があります。commitdurableコマンドを実行すると、データベース障害が発生した場合でも、トランザクションの結果が保持されます。
ttIsqlのisolationコマンドを使用すると、現行の接続のトランザクション独立性プロパティを変更できます。独立性は、トランザクションの開始時にのみ変更できます。isolationコマンドには、READ_COMMITTEDまたはSERIALIZABLEのいずれかを定数として指定できます。isolationコマンドを引数を指定しないで変更すると、現在の分離レベルがレポートされます。
ttIsqlのsqlquerytimeoutコマンドでは、SQL文のタイムアウト間隔を設定します。SQL文の実行時間がsqlquerytimeoutコマンドで設定した秒数を超えると、SQL文は実行されず、6111エラーが生成されます。詳細は、『Oracle TimesTen In-Memory Database Java開発者ガイド』および『Oracle TimesTen In-Memory Database C開発者ガイド』の、SQL文を実行する場合のタイムアウト値の設定に関する説明を参照してください。
|
注意: TimesTenのロールバック機能および問合せタイムアウト機能を使用しても、Oracleで処理中のIMDBキャッシュ操作が停止されることはありません。このような操作には、PassThrough文、フラッシング、手動ロード、手動リフレッシュ、SYNCHRONOUS WRITETHROUGH、伝播および動的ロードが含まれます。 |
次に、ttIsqlの組込みトランザクション管理コマンドの一般的な使用例を示します。
E:\>ttIsql ttIsql (c) 1996-2009, Oracle. All rights reserved. Type ? or "help" for help, type "exit" to quit ttIsql. Command> connect "DSN=MY_DSN"; Connection successful: DSN=MY_DSN;DataStore=E:\ds\MY_DSN;DRIVER=E:\WINNT\System32\ TTdv1121.dll; (Default setting AutoCommit=1) Command> autocommit 0; Command> CREATE TABLE LOOKUP (KEY NUMBER NOT NULL PRIMARY KEY, VALUE CHAR (64)); Command> commit; Command> INSERT INTO LOOKUP VALUES (1, 'ABC'); 1 row inserted. Command> SELECT * FROM LOOKUP; < 1, ABC > 1 row found. Command> rollback; Command> SELECT * FROM LOOKUP; 0 rows found. Command> isolation; isolation = READ_COMMITTED Command> commitdurable; Command> sqlquerytimeout 10; Command> sqlquerytimeout; Query timeout = 10 seconds Command> disconnect; Disconnecting... Command> exit; Done. E:\>
TimesTenアプリケーションでは、SQL文を1回のみ準備してそれを複数回実行する方が、実行のたびに文を繰り返し準備するより効率的です。ttIsqlには、準備済のSQL文を使用するための一連の組込みコマンドが用意されています。次に、これらのコマンドの概要を示します。
execandfetch: 事前に準備済の文を実行し、すべての結果行をフェッチします。1つ以上のSQLFetchコールの前に実行されるSQLExecuteコールに対応します。
close: 結果セットが生成された以前に実行済の文に対する結果セットのカーソルをクローズします。SQL_CLOSEオプションが指定されたSQLFreeStmtコールに対応します。
free: 事前に準備済の文をクローズします。SQL_DROPオプションが指定されたSQLFreeStmtコールに対応します。
ttIsqlユーティリティの準備済の文コマンドは、SQL文のパラメータ・マーカーも処理します。準備済のSQL文にパラメータ・マーカーが含まれている場合は、ttIsqlの実行時に、文の各パラメータに値を入力するように自動的に求められます。
次の例では、ttIsqlユーティリティの準備済の文コマンドを使用して、NUMBERおよびCHAR列を含む表のINSERT文を準備します。文が準備された後、文の2つのパラメータに対してそれぞれ異なる値を使用して2回実行されます。また、ttIsqlユーティリティのtimingコマンドを使用して、各コマンドに関連付けられている主要ODBC関数コールの実行に必要な経過時間を表示します。
Command> connect "DSN=MY_DSN"; Connection successful: DSN=MY_DSN;DataStore=E:\ds\MY_DSN;DRIVER= E:\WINNT\Sys tem32\TTdv1121.dll; (Default setting AutoCommit=1) Command> timing 1; Command> create table t1 (key number not null primary key, value char(20)); Execution time (SQLExecute) = 0.007247 seconds. Command> prepare insert into t1 values (:f, :g); Execution time (SQLPrepare) = 0.000603 seconds. Command> exec; Type '?' for help on entering parameter values. Type '*' to end prompting and abort the command. Type '-' to leave the parameter unbound. Type '/' to leave the remaining parameters unbound and execute the command. Enter Parameter 1 'F' (NUMBER) > 1; Enter Parameter 2 'G' (CHAR) > 'abc'; 1 row inserted. Execution time (SQLExecute) = 0.000454 seconds. Command> exec; Type '?' for help on entering parameter values. Type '*' to end prompting and abort the command. Type '-' to leave the parameter unbound. Type '/' to leave the remaining parameters unbound and execute the help command. Enter Parameter 1 'F' (NUMBER) > 2; Enter Parameter 2 'G' (CHAR) > 'def'; 1 row inserted. Execution time (SQLExecute) = 0.000300 seconds. Command> free; Command> select * from t1; < 1, abc > < 2, def > 2 rows found. Execution time (SQLExecute + Fetch Loop) = 0.000226 seconds. Command> disconnect; Disconnecting... Execution time (SQLDisconnect) = 2.911396 seconds. Command>
前述の例では、準備するSQL文がprepareコマンドの直後に指定されています。ttIsqlでSQL文を準備すると、常に、一意のコマンドIDが準備済の文に割り当てられます。ttIsqlユーティリティでは、複数の準備済の文の追跡にこのIDが使用されます。ttIsqlセッションには、最大256の準備済の文が同時に存在できます。freeコマンドを実行すると、準備済のSQL文に対するコマンドIDの関連付けが自動的に解除されます。
準備済の文コマンドを使用した場合にttIsqlによって生成されるコマンドIDを表示するには、文を準備する前にverbosityコマンドを使用して冗長性レベルを4に設定するか、またはdescribe *コマンドを使用して準備済のすべての文をそれらのIDとともに表示します。
コマンドIDは、ttIsqlの準備済の文コマンドを使用する場合に明示的に参照できます。ttIsqlの準備済の文コマンドの構文の詳細は、『Oracle TimesTen In-Memory Databaseリファレンス』のttIsqlの項を参照するか、またはttIsqlコマンド・プロンプトでhelpと入力してください。
次の例では、1つのNUMBERパラメータを含む述語が指定されているSELECT文を準備および実行します。fetchoneコマンドは、この文によって生成された結果行をフェッチするために使用します。showplanコマンドは、この文の実行時にTimesTen問合せオプティマイザで使用される実行計画を表示するために使用します。また、冗長性レベルは、準備済の文を追跡するためにttIsqlで使用されるコマンドIDが表示されるように4に設定します。
Command> connect "DSN=MY_DSN"; Connection successful: DSN=MY_DSN;DataStore=E:\ds\MY_DSN;DRIVER=E:\WINNT\Sys tem32\TTdv1121.dll; (Default setting AutoCommit=1) The command succeeded. Command> CREATE TABLE T1 (KEY NUMBER NOT NULL PRIMARY KEY, VALUE CHAR (64)); The command succeeded. Command> INSERT INTO T1 VALUES (1, 'abc'); 1 row inserted. The command succeeded. Command> autocommit 0; The command succeeded. Command> showplan 1; The command succeeded. Command> verbosity 4; The command succeeded. Command> prepare SELECT * FROM T1 WHERE KEY=?; Assigning new prepared command id = 0. Query Optimizer Plan: STEP: 1 LEVEL: 1 OPERATION: RowLkHashScan TBLNAME: T1 IXNAME: T1 PRED: T1.KEY = qmark_1 OTHERPRED: <NULL> The command succeeded. Command> exec; Executing prepared command id = 0. Type '?;' for help on entering parameter values. Type '*;' to abort the parameter entry process. Enter Parameter 1 (NUMBER) >1; The command succeeded. Command> fetchone; Fetching prepared command id = 0. < 1, abc > 1 row found. The command succeeded. Command> close; Closing prepared command id = 0. The command succeeded. Command> free; Freeing prepared command id = 0. The command succeeded. Command> commit; The command succeeded. Command> disconnect; Disconnecting... The command succeeded. Command>
PL/SQLブロックは、ttIsqlコマンドラインから作成および実行できます。
PL/SQLブロックから生成された結果を表示するには、serveroutputをonに設定します。
Command> set serveroutput on
出力バッファにテキスト行を挿入する無名ブロックを作成します。ブロックはスラッシュ(/)で終了する必要があります。
Command> BEGIN
> DBMS_OUTPUT.put_line(
> 'Welcome!');
> END;
> /
Welcome!
PL/SQL procedure successfully completed.
Command>
その他の例は、『Oracle TimesTen In-Memory Database PL/SQL開発者ガイド』を参照してください。
OUTパラメータを使用して、PL/SQLからアプリケーションにデータを戻すことができます。次の例では、TimesTenデータベースの空き状況に関する情報を戻します。
tt_space_info PL/SQLプロシージャを作成し、SQLを使用してpermpct、permmaxpct、temppctおよびtempmaxpctの各パラメータに値を入力します。
Command> CREATE OR REPLACE PROCEDURE tt_space_info
> (permpct OUT PLS_INTEGER,
> permmaxpct OUT PLS_INTEGER,
> temppct OUT PLS_INTEGER,
> tempmaxpct OUT PLS_INTEGER) AS
> monitor sys.monitor%ROWTYPE;
> BEGIN
> SELECT * INTO monitor FROM sys.monitor;
> permpct := monitor.perm_in_use_size * 100 /
monitor.perm_allocated_size;
> permmaxpct := monitor.perm_in_use_high_water * 100 /
monitor.perm_allocated_size;
> temppct := monitor.temp_in_use_size * 100 /
monitor.temp_allocated_size;
> tempmaxpct := monitor.temp_in_use_high_water * 100 /
monitor.temp_allocated_size;
> END;
>/
Procedure created.
変数を宣言し、tt_space_infoをコールします。出力できるように、パラメータ値がttIsqlに戻されます。
Command> VAR permpct NUMBER
Command> VAR permpctmax NUMBER
Command> VAR temppct NUMBER
Command> VAR temppctmax NUMBER
Command> BEGIN
> tt_space_info(:permpct, :permpctmax, :temppct, :temppctmax);
> END;
>/
PL/SQL procedure successfully completed.
Command> PRINT permpct;
PERMPCT : 4
Command> PRINT permpctmax;
PERMPCTMAX : 4
Command> PRINT temppct;
TEMPPCT : 11
Command> PRINT temppctmax;
TEMPPCTMAX : 11
また、PL/SQL文で実行可能な文ハンドルを、OUT参照カーソル・パラメータで戻すこともできます。PL/SQL文はカーソルに関連付けられている問合せを選択できます。次の例は、昇順と降順をランダムに選択する参照カーソルをオープンします。
Command> VARIABLE ref REFCURSOR;
Command> BEGIN
> IF (mod(dbms_random.random(), 2) = 0) THEN
> open :ref for select object_name from SYS.ALL_OBJECTS order by 1 asc;
> ELSE
> open :ref for select object_name from SYS.ALL_OBJECTS order by 1 desc;
> end if;
> END;
> /
PL/SQL procedure successfully completed.
参照カーソルから結果セットをフェッチするには、PRINTコマンドを使用します。
Command> PRINT ref REF : < ACCESS$ > < ALL_ARGUMENTS > < ALL_COL_PRIVS > < ALL_DEPENDENCIES > ... 143 rows found.
または、結果セットが降順になっている場合、次のように出力されます。
Command> PRINT ref REF : < XLASUBSCRIPTIONS > < WARNING_SETTINGS$ > < VIEWS > ... 143 rows found.
次の項では、問合せオプティマイザ計画、SQLコマンド・キャッシュ内のコマンド、またはSQLコマンド・キャッシュ内のコマンドに関する問合せ計画を表示する方法について説明します。
組込みshowplanコマンドを使用すると、TimesTen Data Managerで問合せの実行に使用される問合せオプティマイザ計画が表示されます。また、ttIsqlには、この問合せオプティマイザ計画を変更するための組込み問合せオプティマイザ・ヒント・コマンドが用意されています。showplanコマンドを次に示す組込みコマンドと組み合せて使用すると、最適な実行計画を設計できます。TimesTen問合せオプティマイザの詳細は、「TimesTen問合せオプティマイザ」を参照してください。
showplanコマンドおよび問合せオプティマイザ・ヒント・コマンドを使用する場合は、自動コミット機能が無効である必要があります。自動コミットを無効にするには、ttIsqlのautocommit組込みコマンドを使用します。
次の例では、これらのコマンドを使用して問合せオプティマイザの実行計画を変更する方法を示します。
Command> CREATE TABLE T1 (A NUMBER); Command> CREATE TABLE T2 (B NUMBER); Command> CREATE TABLE T3 (C NUMBER); Command> Command> INSERT INTO T1 VALUES (3); 1 row inserted. Command> INSERT INTO T2 VALUES (3); 1 row inserted. Command> INSERT INTO T3 VALUES (3); 1 row inserted. Command> INSERT INTO T1 VALUES (4); 1 row inserted. Command> INSERT INTO T2 VALUES (5); 1 row inserted. Command> INSERT INTO T3 VALUES (6); 1 row inserted. Command> Command> autocommit 0; Command> showplan; Command> SELECT * FROM T1, T2, T3 WHERE A=B AND B=C AND A=B; Query Optimizer Plan: STEP: 1 LEVEL: 3 OPERATION: TblLkSerialScan TBLNAME: T1 IXNAME: <NULL> PRED: <NULL> OTHERPRED: <NULL> STEP: 2 LEVEL: 3 OPERATION: TblLkSerialScan TBLNAME: T2 IXNAME: <NULL> PRED: <NULL> OTHERPRED: T1.A = T2.B AND T1.A = T2.B STEP: 3 LEVEL: 2 OPERATION: NestedLoop TBLNAME: <NULL> IXNAME: <NULL> PRED: <NULL> OTHERPRED: <NULL> STEP: 4 LEVEL: 2 OPERATION: TblLkSerialScan TBLNAME: T3 IXNAME: <NULL> PRED: <NULL> OTHERPRED: T2.B = T3.C STEP: 5 LEVEL: 1 OPERATION: NestedLoop TBLNAME: <NULL> IXNAME: <NULL> PRED: <NULL> OTHERPRED: <NULL> < 3, 3, 3 > 1 row found. Command> trytbllocks 0; Command> tryserial 0; Command> SELECT * FROM T1, t2, t3 WHERE A=B AND B=C AND A=B; Query Optimizer Plan: STEP: 1 LEVEL: 3 OPERATION: TmpTtreeScan TBLNAME: T1 IXNAME: <NULL> PRED: <NULL> OTHERPRED: <NULL> STEP: 2 LEVEL: 3 OPERATION: TmpTtreeScan TBLNAME: T2 IXNAME: <NULL> PRED: T2.B >= T1.A OTHERPRED: <NULL> STEP: 3 LEVEL: 2 OPERATION: MergeJoin TBLNAME: <NULL> IXNAME: <NULL> PRED: T1.A = T2.B AND T1.A = T2.B OTHERPRED: <NULL> STEP: 4 LEVEL: 2 OPERATION: TmpTtreeScan TBLNAME: T3 IXNAME: <NULL> PRED: <NULL> OTHERPRED: T2.B = T3.C STEP: 5 LEVEL: 1 OPERATION: NestedLoop TBLNAME: <NULL> IXNAME: <NULL> PRED: <NULL> OTHERPRED: <NULL> < 3, 3, 3 > 1 row found. Command>
この例では、3つの表に対して問合せが実行され、問合せオプティマイザの計画が表示されています。1つ目のバージョンの問合せでは、問合せオプティマイザのデフォルトの実行計画が使用されています。一方、2つ目のバージョンでは、trytbllocksおよびtryserial組込みヒント・コマンドを使用して問合せオプティマイザの計画が変更されています。2つ目のバージョンの問合せでは、シリアル・スキャンおよびネステッド・ループ結合ではなく、一時索引スキャンおよびマージ結合が使用されています。
このように、showplanコマンドをttIsqlの組込み問合せオプティマイザ・ヒント・コマンドと組み合せて使用すると、アプリケーション要件を満たすために使用する実行計画を迅速に決定できます。
次の項では、コマンドおよびその実行計画の表示方法について説明します。
ttIsqlのcmdcacheコマンドで、ttSqlCmdCacheInfo組込みプロシージャが起動され、TimesTen SQLコマンド・キャッシュの内容が表示されます。このプロシージャの詳細は、「SQLコマンド・キャッシュに格納されたコマンドの表示」を参照してください。
パラメータなしでcmdcacheコマンドを実行する場合、SQLコマンド・キャッシュの内容がすべて表示されます。ttSqlCmdCacheInfo組込みプロシージャと同様、コマンドIDを指定して、表示する特定のコマンドを指定できます。
また、特定の所有者または問合せテキストと一致するコマンドのみが表示されるように、ttIsqlのcmdcacheコマンドで結果をフィルタ処理できます。
cmdcacheコマンドの構文は次のとおりです。
cmdcache [[by {sqlcmdid | querytext | owner}] <query_substring>
ownerパラメータを指定した場合、結果が所有者によりフィルタ処理され、<query_substring>により識別され、戻された各コマンドに表示されます。querytextパラメータを指定した場合、<query_substring>内で指定された部分文字列を含む問合せがすべて表示されるように結果がフィルタ処理されます。cmdcacheの<query_substring>など、<query_substring>のみを指定した場合、コマンドでは<query_substring>で問合せテキストがフィルタ処理されます。
ttIsqlのexplainコマンドでは、個々のSQLコマンドに関する問合せ計画を表示します。
SQLコマンド・キャッシュからコマンドIDを指定した場合、explainコマンドによりttSqlCmdQueryPlan組込みプロシージャが起動され、TimesTen SQLコマンド・キャッシュに格納された個々のコマンドに関する問合せ計画が表示されます。実行計画を書式設定された方法で表示する場合は、ttSqlCmdQueryPlan組込みプロセスをコールするかわりに、explainコマンドを実行します。どちらの方法でも同じ情報が提示されますが、ttSqlCmdQueryPlan組込みプロセスではデータが生データ形式で提示されます。ttSqlCmdQueryPlanプロシージャの詳細は、「SQLコマンド・キャッシュに格納されているコマンドに関連付けられた問合せ計画の表示」を参照してください。
SQL文または履歴項目番号を指定した場合、そのSQL文に関する実行計画を表示するために必要なSQL文をexplainコマンドで実行します。
explainコマンドの構文は次のとおりです。
explain [plan for] {[<Connid>.]<ttisqlcmdid> | sqlcmdid <sqlcmdid> | <sqlstmt> | !<historyitem>}
ttSqlCmdQueryPlan組込みプロシージャと同様、コマンドIDを提示して、表示する特定のコマンドを指定できます。コマンドIDは、「SQLコマンド・キャッシュに格納されたコマンドの表示」で説明されているとおり、cmdcacheコマンドで取得できます。
次の例に、38001456というコマンドIDに関する実行計画を示します。
Command> explain sqlcmdid 38001456; Query Optimizer Plan: Query Text: select * from all_objects where object_name = 'DBMS_OUTPUT' STEP: 1 LEVEL: 12 OPERATION: TblLkTtreeScan TABLENAME: OBJ$ TABLEOWNERNAME: SYS INDEXNAME: USER$.I_OBJ INDEXEDPRED: NONINDEXEDPRED: (RTRIM( NAME )) = DBMS_OUTPUT;NOT( 10 = TYPE#) ;( FLAGS ^ 128 = 0) ; STEP: 2 LEVEL: 12 OPERATION: RowLkTtreeScan TABLENAME: OBJAUTH$ TABLEOWNERNAME: SYS INDEXNAME: OBJAUTH$.I_OBJAUTH1 INDEXEDPRED: ( (GRANTEE#=1 ) OR (GRANTEE#=10 ) ) AND ( (PRIVILEGE#=8 ) ) NONINDEXEDPRED: OBJ# = OBJ#; STEP: 3 LEVEL: 11 OPERATION: NestedLoop(Left OuterJoin) TABLENAME: TABLEOWNERNAME: INDEXNAME: INDEXEDPRED: NONINDEXEDPRED: ... STEP: 21 LEVEL: 1 OPERATION: Project TABLENAME: TABLEOWNERNAME: INDEXNAME: INDEXEDPRED: NONINDEXEDPRED: Command>
また、ttIsqlのexplainコマンドで、指定したSQL問合せに関する実行計画を生成できます。たとえば、select * from dual;というSQL問合せに関する実行計画は次のようになります。
Command> explain select * from dual; Query Optimizer Plan: STEP: 1 LEVEL: 1 OPERATION: RowLkSerialScan TBLNAME: DUAL IXNAME: <NULL> INDEXED CONDITION: <NULL> NOT INDEXED: <NULL>
また、コマンド履歴をもとに実行計画を取得することもできます。次の例では、以前に実行したSQL文の実行計画を、履歴コマンドIDを使用して表示する方法を示します。
Command> select * from all_objects where object_name = 'DBMS_OUTPUT'; < SYS, DBMS_OUTPUT, <NULL>, 241, <NULL>, PACKAGE, 2009-10-13 10:41:11, 2009-10-13 10:41:11, 2009-10-13:10:41:11, VALID, N, N, N, 1, <NULL> > < PUBLIC, DBMS_OUTPUT, <NULL>, 242, <NULL>, SYNONYM, 2009-10-13 10:41:11, 2009-10-13 10:41:11, 2009-10-13:10:41:11, INVALID, N, N, N, 1, <NULL> > < SYS, DBMS_OUTPUT, <NULL>, 243, <NULL>, PACKAGE BODY, 2009-10-13 10:41:11, 2009-10-13 10:41:11, 2009-10-13:10:41:11, VALID, N, N, N, 2, <NULL> > 3 rows found. Command> history; 1 connect "DSN=cache"; 2 help cmdcache; 3 cmdcache; 4 explain select * from dual; 5 select * from all_objects where object_name = 'DBMS_OUTPUT'; Command> explain !5; Query Optimizer Plan: STEP: 1 LEVEL: 10 OPERATION: TblLkTtreeScan TBLNAME: SYS.OBJ$ IXNAME: USER$.I_OBJ INDEXED CONDITION: <NULL> NOT INDEXED: O.FLAGS & 128 = 0 AND CAST(RTRIM (O.NAME) AS VARCHAR2(30 BYTE) INLINE) = 'DBMS_OUTPUT' AND O.TYPE# <> 10 STEP: 2 LEVEL: 10 OPERATION: RowLkTtreeScan TBLNAME: SYS.OBJAUTH$ IXNAME: OBJAUTH$.I_OBJAUTH1 INDEXED CONDITION: (OA.GRANTEE# = 1 OR OA.GRANTEE# = 10) AND OA.PRIVILEGE# = 8 NOT INDEXED: OA.OBJ# = O.OBJ# STEP: 3 LEVEL: 9 OPERATION: NestedLoop(Left OuterJoin) TBLNAME: <NULL> IXNAME: <NULL> INDEXED CONDITION: <NULL> NOT INDEXED: <NULL> STEP: 4 LEVEL: 9 OPERATION: TblLkTtreeScan TBLNAME: SYS.OBJAUTH$ IXNAME: OBJAUTH$.I_OBJAUTH1 INDEXED CONDITION: (OBJAUTH$.GRANTEE# = 1 OR OBJAUTH$.GRANTEE# = 10) AND (OBJAUTH$.PRIVILEGE# = 2 OR OBJAUTH$.PRIVILEGE# = 3 OR OBJAUTH$.PRIVILEGE# = 4 OR OBJAUTH$.PRIVILEGE# = 5 OR OBJAUTH$.PRIVILEGE# = 8) NOT INDEXED: O.OBJ# = OBJAUTH$.OBJ# ... STEP: 19 LEVEL: 1 OPERATION: NestedLoop(Left OuterJoin) TBLNAME: <NULL> IXNAME: <NULL> INDEXED CONDITION: <NULL> NOT INDEXED: O.OWNER# = 1 OR (O.TYPE# IN (7,8,9) AND (NOT( ISNULLROW (SYS.OBJAUTH$.ROWID)) OR NOT( ISNULLROW (SYS.SYSAUTH$.ROWID)))) OR (O.TYPE# IN (1,2,3,4,5) AND NOT( ISNULLROW (SYS.SYSAUTH$.ROWID))) OR (O.TYPE# = 6 AND NOT( ISNULLROW (SYS.SYSAUTH$.ROWID))) OR (O.TYPE# = 11 AND NOT( ISNULLROW (SYS.SYSAUTH$.ROWID))) OR (O.TYPE# NOT IN (7,8,9,11) AND NOT( ISNULLROW (SYS.OBJAUTH$.ROWID))) OR (O.TYPE# = 28 AND NOT( ISNULLROW (SYS.SYSAUTH$.ROWID))) OR (O.TYPE# = 23 AND NOT( ISNULLROW (SYS.SYSAUTH$.ROWID))) OR O.OWNER# = 10
一般的なODBC関数コールの実行に必要な時間に関する情報は、ttIsqlのtimingコマンドを使用して表示できます。タイミング機能が有効になっている場合は、多くの組込みttIsqlコマンドによって、実行されるttIsqlコマンドに対応する第一のODBC関数コールの実行経過時間がレポートされます。
たとえば、ttIsqlのconnectコマンドの実行時には、いくつかのODBC関数コールが実行されますが、connectに関連付けられている第一のODBC関数コールはSQLDriverConnectです。この関数コールは、次に示すように測定およびレポートされます。
Command> timing 1; Command> connect "DSN=MY_DSN"; Connection successful: DSN=MY_DSN;DataStore=E:\ds\MY_DSN;DRIVER=E:\WINNT\System32\ TTdv1121.dll; (Default setting AutoCommit=1) Execution time (SQLDriverConnect) = 1.2626 seconds. Command>
前述の例では、SQLDriverConnectコールの実行に約1.26秒かかりました。
問合せを測定するtimingコマンドを使用すると、問合せの実行に必要な時間および問合せ結果のフェッチに必要な時間が測定されます。問合せ結果を書式設定し表示する時間の測定を回避するには、問合せを実行する前に冗長性レベルを0(ゼロ)に設定します。
Command> timing 1; Command> verbosity 0; Command> SELECT * FROM T1; Execution time (SQLExecute + FetchLoop) = 0.064210 seconds. Command>
xlabookmarkdeleteコマンドを使用すると、現在のXLAブックマークのステータスの確認およびブックマークの削除を行うことができます。このコマンドには、XLA権限またはオブジェクト所有権が必要です。
たとえば、XLAアプリケーションxlaSimpleを実行している場合は、次のように入力してブックマークのステータスを確認できます。
Command> xlabookmarkdelete; XLA Bookmark: xlaSimple Read Log File: 0 Read Offset: 630000 Purge Log File: 0 Purge Offset: 629960 PID: 2808 In Use: No 1 bookmark found.
ブックマークを削除するには、次のように入力します。
Command> xlabookmarkdelete xlaSimple; Command>