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>