TimesTen組込みプロシージャによって、標準のODBCおよびJDBC機能が拡張されます。これらのプロシージャは、ODBCまたはJDBCのプロシージャ・コール・インタフェースを使用してコールできます。プロシージャは、次の例に示すとおり、SQL文と同様に実行されます。
次のODBCのSQLExecDirectコールはttOpsSetFlag組込みプロシージャを起動し、オプティマイザに対して、コマンドを準備するときに一時ハッシュ索引を作成しないように指示します。
SQLExecDirect (hstmt, (SQLCHAR*)
"{CALL ttOptSetFlag ('TmpHash', 0)}", SQL_NTS);
このコールは、次のJDBCコールと同等です。
CallableStatement cstmt = con.prepareCall
("{CALL ttOptSetFlag ('TmpHash', 0)}");
cstmt.execute();
TimesTen組込みプロシージャは、次の例に示すとおり、CALLとともにEXECUTE IMMEDIATE文を使用してPL/SQLからコールすることもできます。この文の詳細は、『Oracle TimesTen In-Memory Database PL/SQL開発者ガイド』を参照してください。
たとえば、組込みプロシージャttConfigurationをコールするには、PL/SQLレコード型を作成した後、SELECT INTOを実行してそのレコード型に値を入れます。ttConfigurationでは複数の行が返されるため、BULK COLLECTを使用します。
Command> DECLARE
> TYPE ttConfig_record IS RECORD
> (name varchar2(255), value varchar2 (255));
> TYPE ttConfig_table IS TABLE OF ttConfig_record;
> v_ttConfigs ttConfig_table;
> BEGIN
> EXECUTE IMMEDIATE 'CALL ttConfiguration'
> BULK COLLECT into v_ttConfigs;
> DBMS_OUTPUT.PUT_LINE ('Name: ' || v_ttConfigs(1).name
> || ' Value: ' || v_ttConfigs(1).value);
> end;
> /
Name: CacheGridEnable Value: 0
PL/SQL procedure successfully completed.
|
注意: 組込みプロシージャの文字列パラメータ値は、値がNULLである場合を除き、この例で示すように一重引用符で囲む必要があります。 |
説明
このプロシージャは、Least Recently Used(LRU)エージング・ポリシーを指定して定義されたすべての通常の表にLRUエージング属性を設定します。キャッシュ表の場合、エージング・ポリシーはルート表に定義されますが、キャッシュ・グループのすべての表に適用されます。エージング・ポリシーは、CREATE TABLEまたはALTER TABLE SQL文を使用して、エージング・ポリシーが作成または変更されるときに表に定義されます。
LRUエージング機能を使用すると、使用頻度が最も少ないデータを削除して、指定したしきい値以下にデータベースの使用サイズを保持できます。
使用中のデータベース領域が指定されているしきい値を超えると、データが削除されます。キャッシュ・グループの場合、エージングはキャッシュ・インスタンス全体のルート表で定義されます。AUTOREFRESH属性が指定されていると、キャッシュ・グループが動的である場合を除いて、キャッシュ・グループにLRUエージングを指定できません。AUTOREFRESH属性を指定したキャッシュ・グループが明示的にロードされている場合は、時間ベース・エージングを使用してください。
パラメータ
ttAgingLRUConfigには、次のオプションのパラメータがあります。
| パラメータ | データ型 | 説明 |
|---|---|---|
lowUsageThreshold |
BINARY_FLOAT |
データベースのPermSize割合の下限値を設定、表示またはリセットします(小数で指定)。これはしきい値範囲の最小値であり、この値を下回るとLRUエージングが停止します。デフォルトは80%です。 |
highUsageThreshold |
BINARY_FLOAT |
データベースのPermSize割合の上限値を設定、表示またはリセットします(小数で指定)。これはしきい値範囲の最大値であり、この値を上回るとLRUエージングがアクティブになります。デフォルトは90%です。 |
agingCycle |
TT_INTEGER |
エージングが実行されるサイクル間隔(分単位)を設定、表示またはリセットします。デフォルトは1分です。このプロシージャを使用してエージングのサイクル間隔を変更すると、サイクルは、このプロシージャがコールされる時間に基づいてリセットされます。たとえば、このプロシージャを午後12時にコールし、15分のサイクルを指定すると、エージングは、12時15分、12時30分、12時45分というように実行されます。
サイクルが値 |
例
エージングしきい値の下限を75%、上限を95%、エージング・サイクル間隔を5分に設定するには、次のように実行します。
CALL ttAgingLRUConfig (.75, .90, 5); <.7500000, .9000000, 5>
LRUエージング・ポリシーを指定して定義したすべての表の現在のLRUエージング・ポリシーを表示するには、パラメータなしでttAgingLRUConfigをコールします。
Call ttAgingLRUConfig();
表がデフォルトのしきい値およびエージング・サイクルで定義される場合、プロシージャは次の結果を返します。
<.8000000, .9000000, 1> 1 row found.
しきい値の下限を60%、エージング・サイクルを5分に変更し、しきい値の上限は変更しない場合は、次のようにします。
Call ttAgingLRUConfig (60,,5); < .6000000, .9000000, 5 > 1 row found.
説明
このプロシージャは、エージング・サイクルの値にかかわらずエージング・プロセスを開始します。進行中のエージング・プロセスが存在しないかぎり、プロシージャがコールされた直後にエージング・プロセスが開始されます。その場合、組込みプロシージャをコールしたときに進行中だったエージング・プロセスが完了すると、新しいエージング・プロセスが開始されます。
このプロシージャをコールすると、エージングは1回だけ行われます。このプロシージャではエージング属性は変更されません。以前のエージングの状態はそのままです。たとえば、ttAgingScheduleNowをコールしたときにエージングの状態がOFFの場合、エージング・プロセスが開始されます。エージングが完了したときに、エージングの状態がOFFの場合、エージングは続行されません。エージングを続行するには、エージング・サイクルの値に基づいて次にエージングが行われるように、ttAgingScheduleNowを再度コールするか、エージングの状態をONに変更する必要があります。
エージングがONになっている表の場合は、ttAgingScheduleNowがコールされた時点にエージング・サイクルがリセットされます。たとえば、午後12時にこのプロシージャをコールし、15分のエージング・サイクルを指定すると、エージングは、すぐに実行された後、12時15分、12時30分、12時45分というように再度実行されます。
このプロシージャをcronジョブなどの外部スケジューラで使用する場合や手動で実行する場合、このプロシージャは、進行中のエージング・プロセスがないときはプロシージャの実行時に、または現在のエージング・プロセスが完了するとすぐにエージング・プロセスを開始します。外部スケジューラがttAgingScheduleNowプロシージャを実行するか、または手動でコールしたときにのみエージングを行う場合は、エージングの状態をOFFに設定します。
エージングは、1秒ごとに起動して処理が必要かどうかをチェックするバックグラウンド・スレッドによって実行されます。ttAgingScheduleNowをコールしても、指定された表がエージング・スレッドによって処理されるのは次の1秒間になります。組込みプロシージャがコールされたときにエージング・スレッドが別の表を処理していた場合は、指定された表の処理が開始されるまでに多少時間がかかる可能性があります。エージング・スレッドによって削除がコミットされるまで、行は表示されています。
パラメータ
ttAgingScheduleNowには、次のパラメータがあります。
| パラメータ | データ型 | 説明 |
|---|---|---|
tblname |
TT_CHAR (61) |
エージング・プロセスを開始する表の名前です。
表名の指定にシノニムは使用できません。 |
例
LRUエージングおよび時間ベース・エージングの両方が定義された表を含む、すべての表でエージングをスケジュールするには、パラメータ値を指定せずにttAgingScheduleNowをコールします。
CALL ttAgingScheduleNow ();
この例では、時間ベースのエージング・ポリシーを指定し、エージングの状態をOFFに設定した表agingexを作成します。エージング・プロセスを1回起動するために、ttIsqlユーティリティを使用してttAgingScheduleNowをコールします。行は表から削除されます。ttAgingScheduleNowをコールした後も、エージングの状態はOFFのままです。エージングを続行するには、表を変更し、エージング状態をOFFに設定します。
Command> CREATE TABLE agingex (col1 TT_INTEGER PRIMARY KEY NOT NULL,
ts TIMESTAMP NOT NULL)
AGING USE ts LIFETIME 1 MINUTES CYCLE 30 MINUTES OFF;
Command> DESCRIBE agingex;
Table TTUSER.AGINGEX:
Columns:
*COL1 TT_INTEGER NOT NULL
TS TIMESTAMP (6) NOT NULL
Aging use TS lifetime 1 minute cycle 30 minutes off
1 table found.
(primary key columns are indicated with *)
Command> INSERT INTO agingex VALUES (1, SYSDATE);
1 row inserted.
Command> INSERT INTO agingex VALUES (2, SYSDATE);
1 row inserted.
Command> SELECT * FROM agingex;
< 1, 2011-03-25 13:06:29.000000 >
< 2, 2011-03-25 13:06:42.000000 >
2 rows found.
Command> CALL ttAgingScheduleNow ('agingex');
Command> SELECT * FROM agingex;
0 rows found.
説明
このプロシージャは、データベースの現在のバックアップまたは最後のバックアップに関する情報が含まれる単一の行を返します。バックアップが進行中の場合は、この情報は現在のバックアップのものになります。バックアップが行われていない場合は、この情報は最後に実行されたバックアップのものになります。
最後に初期接続を行った後にデータベースをバックアップしていない場合は、statusフィールドが0になり、その他の列はNULLになります。
結果セット
ttBackupStatusは次の結果を返します。
| 列 | データ型 | 説明 |
|---|---|---|
status |
TT_INTEGERNOT NULL |
バックアップの現在の進捗状況または最後のバックアップの完了状態を表すINTEGERコード。値は次のいずれかです。
|
destination |
TT_INTEGER |
実行されたバックアップのタイプ。データベースで実行されたバックアップがない場合、値はNULLです。次のいずれかの値です。
|
backupType |
TT_INTEGER |
バックアップのタイプ(全体または増分のいずれか)。データベースで実行されたバックアップがない場合、値はNULLです。次のいずれかの値です。
|
startTime |
TT_TIMESTAMP |
バックアップを開始した時間。データベースで実行されたバックアップがない場合、値はNULLです。 |
endTime |
TT_TIMESTAMP |
バックアップが完了した時間。この値がNULLで、startTimeがNULL以外の場合、バックアップは進行中です。 |
backupLFN |
TT_INTEGER |
バックアップ・ポイントのトランザクション・ログ・ファイル番号。データベースで実行されたバックアップがない場合、値はNULLです。 |
backupLFO |
TT_BIGINT |
バックアップ・ポイントのトランザクション・ログ・ファイルのオフセット。データベースで実行されたバックアップがない場合、値はNULLです。 |
error |
TT_INTEGER |
バックアップが失敗した場合、この列に失敗の理由が示されます。値は、TimesTenエラー番号のいずれかです。データベースで実行されたバックアップがない場合、値はNULLです。 |
processId |
TT_INTEGER |
バックアップを実行しているプロセスまたはデーモンのID(特定できる場合)。 |
説明
このプロシージャは、TimesTenトランザクション・ログに関する情報を返します。トランザクション・ログ内のレコードは、次の整数のペアによって識別されます。
トランザクション・ログ・ファイル番号。
そのトランザクション・ログ・ファイルのオフセット。
トランザクション・ログ・ファイル番号は、トランザクション・ログ・ファイルに指定されたファイル・システム名に対応します。たとえば、トランザクション・ログ・ファイルSalesData.log29のトランザクション・ログ・ファイル番号は29です。
ttBookmarkの結果行では、次の3つのログ・レコードが識別されます。
最後に書き込まれたログ・レコードの識別。
最後にディスクに書き込まれたログ・レコードの識別。
レプリケーション・ブックマーク。レプリケーション・ブックマークとは、更新が別のシステムへレプリケートされていないことを示す、最も古いログ・レコードのことです。
結果セット
ttBookmarkは次の結果セットを返します。
| 列 | データ型 | 説明 |
|---|---|---|
writeLFN |
TT_INTEGER |
最後に書き込まれたトランザクション・ログ・ファイル。 |
writeLFO |
TT_BIGINT |
トランザクション・ログ・ファイルに最後に書き込まれたオフセット。 |
forceLFN |
TT_INTEGER |
最後にディスクに書き込まれたトランザクション・ログ・ファイル。 |
forceLFO |
TT_BIGINT |
最後にディスクに書き込まれたトランザクション・ログ・ファイルのオフセット。 |
holdLFN |
TT_INTEGER |
レプリケーション・ブックマークのトランザクション・ログ・ファイル。 |
holdLFO |
TT_BIGINT |
レプリケーション・ブックマークのログのオフセット。 |
説明
ttCacheAllowFlushAwtSet組込みプロシージャは、AWTキャッシュ・グループに対してFLUSH CACHE GROUP文を実行できるようにし、『Oracle TimesTen In-Memory Database開発者および管理者ガイド』のキャッシュ・グループに非同期データが存在する場合に関する項に示すように、特定のリカバリ・シナリオでのみ使用されます。
enableFlushパラメータを1に設定している場合、ttCacheAllowFlushAwtSet組込みプロシージャを実行する前にAutocommitを無効に設定します(そうしない場合、このパラメータは、組込みプロシージャの実行後、直接自動的に0にリセットします)。その後、FLUSH CACHE GROUP文を実行してttCacheAllowFlushAwtSet組込みプロシージャを実行した後にコミットを実行して、enableFlushパラメータを0にリセットします。
パラメータ
ttCacheAllowFlushAwtSetには、次のパラメータがあります。
| パラメータ | データ型 | 説明 |
|---|---|---|
enableFlush |
TT_INTEGER |
0: AWTキャッシュ・グループに対してFLUSH CACHE GROUP文を実行できません(これは意図した制約です)。
|
パラメータ
ttCacheAutorefIntervalStatsGetには、次のパラメータがあります。
| パラメータ | データ型 | 説明 |
|---|---|---|
autoRefInterval |
TT_BIGINTNOT NULL |
autorefreshIntervalは統計を収集するキャッシュ・グループ(この自動リフレッシュ間隔値のキャッシュ・グループ)を指定します。
自動リフレッシュ間隔(ミリ秒単位)の整数値は、自動リフレッシュの頻度を示すために自動リフレッシュ・キャッシュ・グループが作成されたときに最初に指定した値と同じ値です。 |
isStatic |
TT_INTEGER |
指定された間隔の値で静的キャッシュ・グループの情報を取得するか、動的キャッシュ・グループの情報を取得するかを示します。
デフォルトは静的です。 |
結果セット
ttCacheAutorefIntervalStatsGetは、特定の自動リフレッシュ間隔の過去10回の自動リフレッシュ・サイクルについての統計情報を返します。
| 列 | データ型 | 説明 |
|---|---|---|
autorefInterval |
TT_BIGINT |
自動リフレッシュ間隔(ミリ秒)。 |
isStatic |
TT_INTEGER |
指定された間隔値で静的キャッシュ・グループまたは動的キャッシュ・グループの情報を示します。
|
autorefNumber |
TT_BIGINT |
自動リフレッシュ番号。 |
startTimestamp |
TT_TIMESTAMP |
自動リフレッシュ開始時間。 |
selectLimit |
TT_BIGINT |
増分自動リフレッシュ・キャッシュ・グループの行の制限セットを選択します。 |
numRows |
TT_BIGINT |
リフレッシュされる行数。 |
numOps |
TT_BIGINT |
実行されたSQL操作数。 |
numCommits |
TT_BIGINT |
コミット数。 |
commitBufSize |
TT_BIGINT |
最大コミット・バッファ・サイズ(バイト)。 |
commitBufMaxReached |
TT_BIGINT |
コミット処理に使用されたメモリー量(バイト)。 |
commitBufNumOverflows |
TT_BIGINT |
各トランザクションに対してオーバーフローしたコミット・バッファの回数。 |
totalNumRows |
TT_BIGINT |
自動リフレッシュ・スレッドが開始してからリフレッシュされた行数。 |
totalNumOps |
TT_BIGINT |
自動リフレッシュ・スレッドが開始してからSQL操作が実行された回数。 |
totalNumCommits |
TT_BIGINT |
自動リフレッシュ・スレッドが開始してからのコミット数。 |
totalNumRollbacks |
TT_BIGINT |
自動リフレッシュ・スレッドが開始してからのロールバック数。 |
totalNumSnapshotOld |
TT_BIGINT |
自動リフレッシュ・スレッドが開始してから受信した「Snapshot too old」エラーの数。 |
例
次の例では、静的であり7秒の間隔があると定義された自動リフレッシュ・キャッシュ・グループの統計を取得するための、ttCacheAutorefIntervalStatsGet組込みプロシージャを実行する方法を示しています。
Command> call ttCacheAutorefIntervalStatsGet(7000,1); < 7000, 1, 41, 2013-04-25 15:17:00.000000, 0, 0, 0, 1, 0, 0, <NULL>, 132121, 132121, 13, 21, 0, 0, 0, 0 > < 7000, 1, 40, 2013-04-25 15:16:53.000000, 0, 0, 0, 1, 0, 0, <NULL>, 132121, 132121, 12, 21, 0, 0, 0, 0 > < 7000, 1, 39, 2013-04-25 15:16:46.000000, 0, 0, 0, 1, 0, 0, <NULL>, 132121, 132121, 11, 21, 0, 0, 0, 0 > < 7000, 1, 38, 2013-04-25 15:16:39.000000, 0, 0, 0, 1, 0, 0, <NULL>, 132121, 132121, 10, 21, 0, 0, 0, 0 > < 7000, 1, 37, 2013-04-25 15:16:32.000000, 0, 6305, 6305, 1, 0, 131072, <NULL>, 132121, 132121, 9, 21, 0, 0, 0, 0 > < 7000, 1, 36, 2013-04-25 15:16:24.000000, 0, 15616, 15616, 1, 0, 131072, <NULL>, 125816, 125816, 8, 21, 0, 0, 0, 0 > < 7000, 1, 35, 2013-04-25 15:16:17.000000, 0, 18176, 18176, 1, 0, 131072, <NULL>, 110200, 110200, 7, 21, 0, 0, 0, 0 > < 7000, 1, 34, 2013-04-25 15:16:10.000000, 0, 14336, 14336, 1, 0, 131072, <NULL>, 92024, 92024, 6, 21, 0, 0, 0, 0 > < 7000, 1, 33, 2013-04-25 15:16:03.000000, 0, 15360, 15360, 1, 0, 131072, <NULL>, 77688, 77688, 5, 21, 0, 0, 0, 0 > < 7000, 1, 32, 2013-04-25 15:15:56.000000, 0, 11520, 11520, 1, 0, 131072, <NULL>, 62328, 62328, 4, 21, 0, 0, 0, 0 > 10 rows found.
関連項目
ttCacheAutorefreshSelectLimitttCacheAutorefreshXactLimit説明
このプロシージャは、指定されたキャッシュ・グループと同じ自動リフレッシュ間隔を共有することで関連付けられている一連のキャッシュ・グループに対して、即時自動リフレッシュを開始します。通常は、この関連付けられた一連のキャッシュ・グループは、自動で同時にリフレッシュされます。自動リフレッシュ・プロセスへの影響は、指定されたキャッシュ・グループと同じリフレッシュ間隔を持つに新しいキャッシュ・グループを追加する場合と同じです。このプロシージャは、Oracle Databaseで更新が発生した場合に、次のスケジュールされた自動リフレッシュの前にキャッシュ・グループを更新したいときに役立ちます。
既存のトランザクションにロックされている表オブジェクトがあり、それらの表オブジェクトが自動リフレッシュの対象となる一連のキャッシュ・グループに属している場合、このプロシージャは何もアクションを行わずにエラーを返します。このプロシージャは、そのセッションで他の処理を実行する前にコミットまたはロールバックが必要であるという条件を設定します。
パラメータ
ttCacheAutorefreshには、次のパラメータがあります。
| パラメータ | データ型 | 説明 |
|---|---|---|
cgOwner |
VARCHAR2 (30) |
キャッシュ・グループの所有者の名前。 |
cgName |
VARCHAR2 (30) NOT NULL |
キャッシュ・グループの名前。 |
synchronous |
TT_INTEGER |
データを同期または非同期のどちらで更新するかを指定します。
|
説明
ttCacheAutorefreshLogDefrag組込みプロシージャは、キャッシュ自動リフレッシュ表のトリガー・ログ領域を圧縮します。
使用方法の詳細は、『Oracle TimesTen Application-Tier Database Cacheユーザーズ・ガイド』の表領域での変更ログ表のデフラグに関する説明を参照してください。
説明
このプロシージャは、指定されたキャッシュ・グループで実行された過去10回の自動リフレッシュ・トランザクションに関する情報を返します。この情報は、AUTOREFRESHの状態がONまたはPAUSEDで、キャッシュ・エージェントが実行中である場合のみ返されます。
この組込みプロシージャが返す情報は、次の場合に常にリセットされます。
キャッシュ・エージェントが再起動された場合
状態がOFFに設定されてからONまたはPAUSEDに戻された場合
キャッシュ・グループが削除されて再作成された場合
パラメータ
ttCacheAutorefreshStatsGetには、次のパラメータがあります。
| パラメータ | データ型 | 説明 |
|---|---|---|
cgOwner |
VARCHAR2 (30) |
キャッシュ・グループの所有者の名前。 |
cgName |
VARCHAR2 (30) NOT NULL |
自動リフレッシュに関する情報を返すキャッシュ・グループの名前。 |
結果セット
ttCacheAutorefreshStatsGet組込みプロシージャは、自動リフレッシュ・モードがFULLのキャッシュ・グループには、列情報のサブセットのみを返します。入手できない情報に対しては列値0が返されます。
ttCacheAutorefreshStatsGetは次の結果を返します。
| 列名 | 列型 | 説明 | 完全自動リフレッシュで返されるか |
|---|---|---|---|
cgId |
TT_BIGINT |
キャッシュ・グループID。 | Y |
startTimestamp |
TT_TIMESTAMP |
この時間隔で自動リフレッシュが開始された時間のタイムスタンプ。次の注意を参照してください。 | Y |
cacheAgentUpTime |
TT_BIGINT |
この時間隔で自動リフレッシュ・トランザクションが開始されてからのキャッシュ・エージェントの経過時間(ミリ秒)。この値は累積値で、キャッシュ・エージェント・プロセスが開始されるとリセットされます。次の注意を参照してください。 | Y |
autorefNumber |
TT_BIGINT |
キャッシュ・グループの自動リフレッシュ番号は、キャッシュ・エージェントの開始後にこのキャッシュ・グループが何回増分リフレッシュされたかを示します。キャッシュ・エージェントの開始時に、この番号は0に初期化されます。 |
Y |
autorefDuration |
TT_BIGINT |
この自動リフレッシュ・トランザクションで経過した時間(ミリ秒)。 | Y |
autorefNumRows |
TT_BIGINT |
この自動リフレッシュで自動リフレッシュされた行数。ルート表および子表の行を含む、すべての行が含まれます。
複数の表が含まれるキャッシュ・グループの場合、子表の行は複数回更新されます。したがって、自動リフレッシュされる行の数は、Oracle Databaseで更新される行の数を超える場合があります。 |
N |
numOracleBytes |
TT_BIGINT |
この自動リフレッシュ・トランザクションでOracle Databaseから転送されたバイト数。 | N |
autorefNumRootTblRows |
TT_BIGINT |
この自動リフレッシュ・トランザクションで自動リフレッシュされたルート表の行数。 | Y |
autorefQueryExecDuration |
TT_BIGINT |
Oracle Databaseで自動リフレッシュ問合せの実行にかかった時間(ミリ秒)。 | N |
autorefQueryFetchDuration |
TT_BIGINT |
自動リフレッシュ問合せでOracle Databaseからの行フェッチにかかった時間(ミリ秒)。 | N |
autorefTtApplyDuration |
TT_BIGINT |
TimesTenによる自動リフレッシュの適用にかかった時間(ミリ秒)。 | N |
totalNumRows |
TT_BIGINT |
キャッシュ・エージェントの起動後に自動リフレッシュされた行の合計数。
自動リフレッシュされる行の総数は、Oracle Databaseで更新される行の数とは異なる場合があります。これはログのマーキングの遅延によるもので、一部の更新は自動リフレッシュされて複数回カウントされる場合があります。 |
N |
totalNumOracleBytes |
TT_BIGINT |
キャッシュ・エージェントの起動後にOracle Databaseから転送された総バイト数。 | N |
totalNumRootTblRows |
TT_BIGINT |
キャッシュ・エージェントの起動後に自動リフレッシュされたルート表の行の合計数。 | Y |
totalDuration |
TT_BIGINT |
キャッシュ・エージェントの起動後の自動リフレッシュの合計経過時間(ミリ秒)。 | Y |
status |
VARCHAR2 (128) |
現在の自動リフレッシュの状態を説明する文字列。次の注意を参照してください。このフィールドでサポートされている値は次のとおりです。
|
Y |
numlogrows |
TT_BIGINT |
この自動リフレッシュでOracle Databaseからフェッチされた行数。 | Y |
totalnumlogrows |
TT_BIGINT |
この自動リフレッシュでOracle Databaseからフェッチされた行の累積数。 | Y |
autorefLogFragmentationPct |
TT_BIGINT |
最低レベルの表使用率(パーセント)。表使用率が指定されたパーセントよりも低い場合には、表は圧縮されます。 | Y |
autorefLogFragmentationTs |
TT_TIMESTAMP |
使用率または断片率が最後に計算されたときのタイムスタンプ。 | Y |
autorefLogDefragGcnt |
TT_BIGINT |
表が圧縮された回数。 | Y |
例
この例では、testcacheは、1つの表を持ち、増分自動リフレッシュ時間隔が10秒のREADONLYキャッシュ・グループです。
Command> call ttcacheautorefreshstatsget('user1','testcache');
< 1164260, 2011-07-23 15:43:52.000000, 850280, 44,
0, 75464, 528255, 75464, 310, 110, 6800, 1890912,
12439795, 1890912, 160020, InProgress, 2, 74 >
< 1164260, 2011-07-23 15:43:33.000000, 831700, 43,
13550, 108544, 759808, 108544, 1030, 230, 12290, 1815448,
11911540, 1815448, 160020, Complete, 2, 72 >
< 1164260, 2011-07-23 15:43:12.000000, 810230, 42,
17040, 115712, 809984, 115712, 610, 330, 16090, 1706904,
11151732, 1706904, 146470, Complete, 2, 70>
< 1164260, 2011-07-23 15:42:52.000000, 790190, 41,
14300, 94208, 659456, 94208,560, 320, 13410, 1591192,
10341748, 1591192, 129430, Complete, 2, 68 >
< 1164260, 2011-07-23 15:42:32.000000, 770180, 40,
12080, 99328, 695296, 99328,450, 290, 11340, 1496984,
9682292, 1496984, 115130, Complete, 2, 66 >
< 1164260, 2011-07-23 15:42:12.000000, 750130, 39,
10380, 86016, 598368, 86016,430, 230, 9720, 1397656,
8986996, 1397656, 103050, Complete, 2, 64 >
< 1164260, 2011-07-23 15:41:52.000000, 730130, 38,
13530, 112640, 700768, 112640, 530, 220, 12780, 1311640,
8388628, 1311640, 92670, Complete, 2, 62 >
< 1164260, 2011-07-23 15:41:32.000000, 710120, 37,
9370, 56320, 326810, 56320, 310, 160, 8900, 1199000,
7687860, 1199000, 79140, Complete, 2, 60 >
< 1164260, 2011-07-23 15:41:22.000000, 700120, 36,
2120, 10240, 50330, 10240, 50, 200, 1870, 1142680,
7361050, 1142680, 69770, Complete, 2, 58 >
< 1164260, 2011-07-23 15:41:12.000000, 690110, 35,
0, 0, 0, 0, 0, 0, 0, 1132440, 7310720, 1132440,
67650, Complete, 2, 56 >
10 rows found.
注意
ここでレポートされているほとんどの列値は、キャッシュ・グループ・レベルで収集されます。たとえば、autorefDurationおよびautorefNumRowsには、指定したキャッシュ・グループの情報のみが含まれます。このルールの例外は、列値cacheAgentUpTime、startTimestampおよびautorefreshStatusです。これらの値は、自動リフレッシュ時間隔レベルでレポートされます。
StartTimestampは、自動リフレッシュ時間隔における自動リフレッシュの開始時に取得されます。キャッシュ・グループは、時間隔の自動リフレッシュが開始されるとただちにin progress状態になります。時間隔のすべてのキャッシュ・グループの自動リフレッシュが完了すると、completeとマークされます。
このプロシージャは、TimesTen Cacheでのみ使用可能です。
説明
Oracle Databaseの実表を自動リフレッシュ変更ログ表の制限された行数と結合するために増分自動リフレッシュを設定することは、選択制限の設定として知られています。これはttCacheAutorefreshSelectLimit組込みプロシージャで実行できます。
パラメータ
ttCacheAutorefreshSelectLimitには、次のパラメータがあります。
| パラメータ | データ型 | 説明 |
|---|---|---|
autorefreshInterval |
TT_VARCHAR (30) NOT NULL |
autorefreshIntervalはvalueを適用するキャッシュ・グループ(この自動リフレッシュ間隔値のキャッシュ・グループ)を指定します。
自動リフレッシュ間隔(ミリ秒単位)の整数値は、自動リフレッシュの頻度を示すために自動リフレッシュ・キャッシュ・グループが作成されたときに最初に指定した値と同じ値です。 |
value |
TT_VARCHAR(30) |
valueは、キャッシュ表に適用する自動リフレッシュ変更ログ・ファイルから選択した行数の制限を示します。これらの変更は自動リフレッシュ変更ログ表のすべての行が適用されるまで、増分的に適用されます。
値が変更された場合、その変更は次の自動リフレッシュ・サイクルの開始時に適用されます。
|
結果セット
ttCacheAutorefreshSelectLimitは特定の自動リフレッシュ間隔に設定された次の選択制限の値を返します。
| 列 | データ型 | 説明 |
|---|---|---|
autorefreshInterval |
TT_VARCHAR(30) |
autorefreshIntervalはキャッシュ・グループ(この自動リフレッシュ間隔値のキャッシュ・グループ)を指定します。 |
value |
TT_VARCHAR(30) |
現在のvalueは、キャッシュ表に適用する自動リフレッシュ変更ログ・ファイルから選択された行数を示します。 |
例
NULL値を指定するか、パラメータを指定しないことで現在の設定を表示できます。次の例では間隔値が7秒の増分自動リフレッシュ・キャッシュ・グループの設定を表示します。
Command> call ttCacheAutorefreshSelectLimit('7000', NULL);
< 7000, 2000 >
1 row found.
Command> call ttCacheAutorefreshSelectLimit('7000');
< 7000, 2000 >
1 row found.
次の例では間隔値が7秒の増分自動リフレッシュ・キャッシュ・グループに対して選択制限を2000行に設定しています。
Command> call ttCacheAutorefreshSelectLimit('7000', '2000');
< 7000, 2000 >
1 row found.
注意
このプロシージャは、TimesTen Cacheでのみ使用可能です。
ttCacheAutotrefreshSelectLimit組込みプロシージャは、キャッシュ・グループが増分自動リフレッシュを設定した静的読取り専用キャッシュ・グループとして定義されている1つの表を含む単一のキャッシュ・グループに定義した間隔のみに選択制限を設定できます。
ttCacheAutorefreshSelectLimitの設定は、レプリケートまたは複製されません。ユーザーは、アクティブ・ノードおよびスタンバイ・ノードの両方において組込みを実行する必要があります。
その間隔のすべてのキャッシュ・グループを削除した場合、設定はリセットされません。
ttMigrate、ttBackup、ttRestore組込みプロシージャは、ttCacheAutorefreshSelectLimitの設定を保存しません。
キャッシュ・グループ自動リフレッシュ間隔を変更する場合、キャッシュ・グループに対してttCacheAutorefreshSelectLimitの実行を介して以前設定された内容は変更されません。ttCacheAutorefreshSelectLimit組込みプロシージャでキャッシュ・グループの選択制限のみを変更できます。
関連項目
ttCacheAutorefIntervalStatsGet説明
このプロシージャは、指定された自動リフレッシュ間隔内で、単一表のキャッシュ・グループに対して即時自動リフレッシュを行う間隔を指定し、指定された数の操作の後にコミットします。
このプロシージャは、Oracle Databaseで更新が発生した場合に、次のスケジュールされた自動リフレッシュの前にキャッシュ・グループで更新をリフレッシュしたいときに役立ちます。
再利用バッファ・サイズを変更するには、ttDBConfig組込みプロシージャを使用します。
パラメータ
ttCacheAutorefreshXactLimitには、次のパラメータがあります。
| パラメータ | データ型 | 説明 |
|---|---|---|
intervalValue |
VARCHAR2 (50) NOT NULL |
自動リフレッシュ・キャッシュ・グループの実行が定義される間隔をミリ秒の単位で指定します。IntervalValueは、自動リフレッシュ・キャッシュ・グループが作成されたときに指定された、自動リフレッシュの頻度を示すミリ秒単位の整数です。 |
value |
VARCHAR2 (200) |
Valueは、次のいずれかになります。
|
結果セット
ttCacheAutorefreshXactLimitは次の結果を返します。
| 列 | データ型 | 説明 |
|---|---|---|
intervalValue |
VARCHAR2 (50) NOT NULL |
自動リフレッシュ・キャッシュ・グループの実行が定義される間隔(ミリ秒)。 |
value |
VARCHAR2 (200) |
Valueは、次のいずれかになります。
|
例
次の例では、10秒の間隔値で定義されたすべての増分自動リフレッシュ読取り専用キャッシュ・グループに対し、トランザクション制限を256回の操作後ごとにコミットするように設定しています。
call ttCacheAutorefreshXactLimit('10000', 'ON');
月末の処理が完了し、増分自動リフレッシュ読取り専用キャッシュ・グループがリフレッシュされた後、10秒の間隔値で定義された増分自動リフレッシュ読取り専用キャッシュ・グループに対し、トランザクション制限を無効にします。
call ttCacheAutorefreshXactLimit('10000', 'OFF');
増分自動リフレッシュ読取り専用キャッシュ・グループが2000回の操作後ごとにコミットするようにトランザクション制限を有効にするには、次のように2000を値として指定します。
call ttCacheAutorefreshXactLimit('10000', '2000');
注意
このプロシージャは、TimesTen Cacheでのみ使用可能です。この組込みプロシージャは、増分自動リフレッシュを備えた静的読取りキャッシュ・グループにのみ適用されます。
自動リフレッシュが実行中および複数の小さいトランザクションに適用されている間は、トランザクション一貫性は維持できません。自動リフレッシュ・サイクルが完了すると、データはトランザクション一貫性があります。
ttCacheAutorefreshXactLimitの設定は、レプリケートまたは複製されません。ユーザーは、アクティブ・ノードおよびスタンバイ・ノードの両方で組込みプロシージャを実行する必要があります。
その間隔のすべてのキャッシュ・グループを削除した場合、設定はリセットされません。
ttMigrate、ttBackup、ttRestore組込みプロシージャは、ttCacheAutorefreshXactLimitの設定を保存しません。
キャッシュ・グループの自動リフレッシュ間隔を変更しても、ttCacheAutorefreshXactLimitの設定は変更されません。
関連項目
ttCacheAutorefIntervalStatsGet説明
このプロシージャを使用すると、監視を有効にして、AWTキャッシュ・グループのワークフローの各コンポーネントに費やされた時間を確認できます。監視結果を表示するには、-awtmoninfoおよび-showstatusオプションを指定してttRepAdminユーティリティを使用します。
レプリケーション・エージェントが起動されると、監視は無効になります。監視状態をOFFに設定すると、監視ツールの内部カウンタがリセットされます。
このプロシージャは、AWTの変更をOracle Databaseにレプリケートしているレプリケーション・ノードで実行します。アクティブ・スタンバイ・ペアが正常に機能している場合、AWTの変更をレプリケートするノードがスタンバイ・ノードです。アクティブ・ノードがスタンドアロンで動作している場合は、AWTの変更をレプリケートしているノードがアクティブ・ノードになります。
アクティブ・データベースのあるノードで障害が発生した場合、スタンバイ・ノードが新しいアクティブ・ノードになります。その場合は、このプロシージャを新しいアクティブ・ノードに対して実行します。
パラメータ
ttCacheAWTMonitorConfigには、次のオプションのパラメータがあります。
| パラメータ | データ型 | 説明 |
|---|---|---|
state |
TT_CHAR(10) |
AWT監視を有効および無効にします。値は、ONまたはOFFです。デフォルトはOFFです。 |
samplingRate |
TT_INTEGER |
AWTワークフローがサンプリングされる頻度を指定する正の整数。samplingRateを1に設定すると、すべてのAWT処理が監視されます。値が大きいほど、サンプリングの頻度は低くなります。正確性とパフォーマンスの観点から推奨される値は16です。stateがONに設定されている場合、samplingRateのデフォルトは16です。stateがOFFに設定されている場合、samplingRateのデフォルトは0です。 |
結果セット
パラメータを何も指定しない場合、ttCacheAWTMonitorConfigは次の結果を返します。レプリケーション・エージェントが実行中でない場合、またはAWTキャッシュ・グループが作成されていない場合は、エラーを返します。
| 列 | データ型 | 説明 |
|---|---|---|
state |
TTVARCHAR (10) NOT NULL |
AWT監視の現在の状態。値は、ONまたはOFFです。 |
AWTSamplingFactor |
TT_INTEGERNOT NULL |
AWTワークフローがサンプリングされる頻度を指定する正の整数。 |
説明
このプロシージャは、AWTが停止しているか、または大幅な遅延が発生しているとみなされるまでに蓄積されるトランザクション・ログ・ファイル数のしきい値を示します。この設定は、データベースのすべてのサブスクライバに適用されます。しきい値を超えた場合、更新はOracle Databaseに送信されなくなります。しきい値が設定されてない場合のデフォルトは、0(ゼロ)です。
この組込みプロシージャを使用すると、AWTキャッシュ・グループが作成された後にしきい値を設定できます。
この設定は、データベースのログ障害しきい値をリセットするCREATE REPLICATION文によって上書きできます。
説明
ttCacheCheck組込みプロシージャは、Oracle Database上のキャッシュされた表に対する制約が失われていないかをチェックします。
キャッシュされるOracle Database表の列に対する任意の一意索引、一意制約または外部キー制約は、TimesTen内の非同期ライトスルー・キャッシュ表でも作成する必要があります。これらの制約をAWTキャッシュ表に作成しておらず、キャッシュ・グループをパラレル伝播用に構成している場合には、TimesTenは制約が失われている表に対するDML操作によってトランザクションをシリアライズします。
このプロシージャでは、失われている制約およびシリアライズされた伝播用にマークされた表についての情報が提供されます。
失われている制約を手動でチェックするには、次の状況でttCacheCheckをコールします。
一連のDROP CACHE GROUP文の完了後。
Oracle Database上で一意索引または外部キーを作成または削除した後。
複数のトランザクションがシリアライズされている理由を判断するため。
このプロシージャは、表に対して実行されたDMLがシリアライズされる必要があるかないかを示すためにシステム表を更新します。したがって、ttCacheCheck組込みの完了後に、コミットまたはロールバックする必要があります。
パラレル伝播の詳細は、『Oracle TimesTen Application-Tier Database Cacheユーザーズ・ガイド』のOracle Database表へのパラレル伝播の構成に関する説明を参照してください。
パラメータ
ttCacheCheckには、次のパラメータがあります。
| パラメータ | データ型 | 説明 |
|---|---|---|
operation |
TT_VARCHAR(30) |
チェックする制約を指定します。有効な値は次のとおりです。
|
cgOwner |
TT_VARCHAR(30) |
キャッシュされたOracle Database表の所有者を指定します。
|
cgName |
TT_VARCHAR(30) |
キャッシュされたOracle Database表の名前を指定します。
|
結果セット
ttCacheCheckは、次の結果セットを返します。
| 列 | データ型 | 値 |
|---|---|---|
cgOwner |
TT_VARCHAR (30) NOT NULL |
キャッシュ・グループの所有者。 |
cgName |
TT_VARCHAR (30) NOT NULL |
キャッシュ・グループの名前。 |
tblOwner |
TT_VARCHAR(30) |
表の所有者。 |
tblName |
TT_VARCHAR(30) |
表の名前。 |
objectType |
TT_VARCHAR(15) |
Oracleオブジェクトのタイプ: 一意索引、制約または外部キー。 |
objectOwner |
TT_VARCHAR(30) |
Oracleオブジェクトの所有者。 |
objectName |
TT_VARCHAR(30) |
オブジェクト名。 |
msgType |
TT_SMALLINT NOT NULL |
メッセージの種類。
|
msg |
TT_VARCHAR (100000) NOT NULL |
問題を説明するメッセージ。 |
objectDesc |
VARCHAR2(200000) |
オブジェクトの説明。オブジェクトがAWTチェックの場合、説明はオブジェクトを記述するSQL文になります。 |
例
次の例では、cacheuserが所有するキャッシュ・グループupdate_ordersにおいて失われている制約がないかどうかを判定しています。警告メッセージを含む結果セットが返されます。update_ordersキャッシュ・グループのordertab表は、逐次伝播されたトランザクションであると示されています。
Command> call ttCacheCheck( NULL, 'cacheuser', 'update_orders'); < CACHEUSER, UPDATE_ORDERS, CACHEUSER, ORDERTAB, Foreign Key, CACHEUSER, CUST_FK, 1, Transactions updating this table will be serialized to Oracle because: The missing foreign key connects two AWT cache groups., table CACHEUSER.ORDERTAB constraint CACHEUSER.CUST_FK foreign key(CUSTID) references CACHEUSER.ACTIVE_CUSTOMER(CUSTID) > 1 row found.
説明
同じOracleインスタンスのデータをキャッシュするすべてのキャッシュ・グループに対し、このプロシージャは、Oracle Databaseサーバーが使用不可になっており、キャッシュ・エージェントまたはデータベースが停止しているとみなされる場合の、タイムアウト値とリカバリ・ポリシーを指定します。
データベースとキャッシュ・グループの自動リフレッシュの状態は、プロシージャttCacheDbCgStatusで確認できます。
パラメータ
ttCacheConfigには、次のパラメータがあります。
| パラメータ | データ型 | 説明 |
|---|---|---|
Param |
VARCHAR2(50) NOT NULL |
Valueで設定するパラメータを指定します。
|
tblOwner |
VARCHAR2(30) |
キャッシュされたOracle Database表の所有者を指定します。
このパラメータは、 表名の指定にシノニムは使用できません。 |
tblName |
VARCHAR2(30) |
キャッシュされたOracle Database表の名前を指定します。
このパラメータは、 表名の指定にシノニムは使用できません。 |
Value |
VARCHAR2(200) |
Paramに設定する値を指定します。
あるいは、
|
結果セット
ttCacheConfigは、アプリケーションによりパラメータ値の設定に使用される場合、結果を返しません。パラメータ設定を返す目的で使用される場合、ttCacheConfigは次の結果を返します。
| 列 | データ型 | 値 |
|---|---|---|
Param |
VARCHAR2(50) |
パラメータ名は、次のいずれかです。
|
tblOwner |
VARCHAR2(30) |
キャッシュされたOracle Database表の所有者。 |
tblName |
VARCHAR2(30) |
キャッシュされたOracle Database表の名前。
表名の指定にシノニムは使用できません。 |
Value |
VARCHAR2(200) |
Paramの値セットです。
|
例
キャッシュ・エージェントのタイムアウトを600秒(10分)に設定するには、次のように入力します。
CALL ttCacheConfig('AgentTimeout',,,'600');
キャッシュ・エージェントの現在のタイムアウト設定を確認するには、次のように入力します。
CALL ttCacheConfig('AgentTimeout');
< AgentTimeout, <NULL>, <NULL>, 600 >
1 row found.
自動リフレッシュ状態がdeadのキャッシュ・グループに対して、リカバリ方法をManualに設定するには、次のように入力します。
CALL ttCacheconfig('DeadDbRecovery',,,'Manual');
キャッシュされたOracle Database表に更新があり、キャッシュ管理ユーザーの表領域に空きがない場合に、自動完全リフレッシュを防ぎ、Oracle Databaseエラーを受信するようにTimesTenキャッシュを構成します。Oracle Database表はterry.customerです。
CALL ttCacheConfig('TblSpaceFullRecovery','terry','customer','None');
キャッシュされたOracle Database表terry.customerのTblSpaceFullRecoveryについて現在の設定を確認するには、次のように入力します。
CALL ttCacheConfig('TblSpaceFullRecovery','terry','customer');
< TblSpaceFullRecovery, TERRY, CUSTOMER, none >
1 row found.
キャッシュ管理ユーザーの表領域が85%使用されているときに、キャッシュされたOracle Database表に対する更新処理が発生した場合に警告を受け取るようにするには、次のように入力します。
CALL ttCacheConfig('AutoRefreshLogTblSpaceUsagePCT',,,'85');
Oracle RAC環境で作業している場合、次のようにフェイルオーバー・タイムアウトの値を取得します。
Command> call ttCacheConfig('AgentFailoverTimeout');
< AgentFailoverTimeout, <NULL>, <NULL>, 4 >
1 row found.
.
次の例では、フェイルオーバー・タイムアウトを5分に設定しています。
Command> call ttCacheConfig('AgentFailoverTimeout',,,5);
< AgentFailoverTimeout, <NULL>, <NULL>, 5 >
1 row found.
Command>
注意
このプロシージャは、TimesTen Cacheでのみ使用可能です。
ttCacheConfig組込みプロシージャは、キャッシュ・グリッドまたはアクティブ・スタンバイ・ペアの各ノードからコールする必要があります。
関連項目
ttCacheDbCgStatusttCachePolicyGetttCachePolicySetttCacheStartttCacheStopttCacheUidGetttCacheUidPwdSet説明
このプロシージャは、データベースおよび指定されたキャッシュ・グループの自動リフレッシュの状態を返します。パラメータに値を指定しない場合、プロシージャはデータベースの自動リフレッシュの状態を返します。
パラメータ
ttCacheDbCgStatusには、次のオプションのパラメータがあります。
| パラメータ | データ型 | 説明 |
|---|---|---|
cgOwner |
VARCHAR2(30) |
キャッシュ・グループ所有者のユーザー名を指定します。 |
cgName |
VARCHAR2(30) |
キャッシュ・グループ名を指定します。 |
結果セット
ttCacheDbCgStatusは次の結果を返します。
| 列 | データ型 | 値 |
|---|---|---|
dbStatus |
VARCHAR2(20) |
データベース内のすべてのキャッシュ・グループの自動リフレッシュの状態を指定します。次のいずれかの状態になります。
|
cgStatus |
VARCHAR2(20) |
指定されたキャッシュ・グループの自動リフレッシュの状態を指定します。次のいずれかの状態になります。
|
このプロシージャは、キャッシュされたOracle Database表に対して発行されたDDL文の追跡を有効または無効にします。デフォルトでは、DDL文は追跡されません。
DDL追跡では、キャッシュされたすべてのOracle Database表の変更履歴が保存されます。DDL追跡表が1つ作成され、キャッシュされた任意のOracle Database表に対して発行されたDDL文が格納されます。この情報を使用して自動リフレッシュの問題を診断できます。
『Oracle TimesTen Application-Tier Database Cacheユーザーズ・ガイド』のキャッシュされたOracle Database表に対して発行されたDDL文の追跡に関する説明を参照してください。
説明
このプロシージャは、接続されたデータベースに対してTimesTenキャッシュ・エージェントを実行するタイミングを決定する現在のポリシーを返します。ポリシーは、alwaysまたはmanualのいずれかです。
結果セット
ttCachePolicyGetは次の結果を返します。
| 列 | データ型 | 値 |
|---|---|---|
cachePolicy |
TT_VARCHAR(10) |
データベースに対してTimesTenキャッシュ・エージェントを実行するタイミングを決定するために使用するポリシーを指定します。有効な値は、次のとおりです。
|
説明
このプロシージャは、接続されたデータベースに対してTimesTenキャッシュ・エージェントを実行するタイミングを決定するポリシーを定義します。ポリシーは、alwaysまたはmanualのいずれかです。
パラメータ
ttCachePolicySetには、次のパラメータがあります。
| パラメータ | データ型 | 説明 |
|---|---|---|
cachePolicy |
TT_VARCHAR(10) NOT NULL |
データベースに対してTimesTenキャッシュ・エージェントを実行するタイミングを決定するために使用するポリシーを指定します。有効な値は、次のとおりです。
|
注意
このプロシージャは、TimesTen Cacheでのみ使用可能です。
ポリシーをmanualからalwaysに変更することによって、相対パスを使用してデータベースに対してTimesTenキャッシュ・エージェントを起動しようとすると、TimesTenはTimesTen Data Managerが起動している場所に対する相対パスでデータベースを検索し、失敗します。たとえば、Windows上でデータベースのパスにDataStore=./payrollを指定し、この組込みプロシージャでTimesTenキャッシュ・エージェントを起動しようとしても、TimesTen Data Managerはデータベースをinstall_dir\srvディレクトリで検索するため、起動しません。UNIXの場合は、/var/TimesTen/instanceディレクトリを検索します。
ポリシーの設定をalwaysに設定すると、キャッシュ・エージェントが停止している場合は自動的に起動されます。
説明
このプロシージャを使用すると、Oracle Databaseに対する現在のトランザクションにおいてコミットされた更新(DML文の実行結果)の伝播を無効にできます。フラグをゼロに設定した後のDML文実行による更新は、バックエンドのOracle Databaseに伝播されることはありません。そのため、これらの更新はTimesTenデータベースにのみ存在します。その後、フラグをリセットすることでDML文の伝播を再度有効にできます。
パラメータ
ttCachePropagateFlagSetには、次のパラメータがあります。
| パラメータ | データ型 | 説明 |
|---|---|---|
CommitsOn |
TT_INTEGERNOT NULL |
0の場合、更新がOracle Databaseに送信されないようにするフラグを設定します。トランザクションが終了するまで、またはプロシージャが1に設定されるまで、このフラグの設定は変更されません。
|
注意
このプロシージャは、TimesTen Cacheでのみ使用可能です。
1つのトランザクションの中でttCachePropagateFlagSetの値が複数回有効になった場合、トランザクションの一部のみがOracle Databaseに伝播されます。
ttCachePropagateFlagSetは、FLUSH、LOAD、REFRESHおよびUNLOADなどの他のキャッシュ・グループ処理のいずれかとして、アプリケーションが同じトランザクション内で使用できる唯一の組込みプロシージャです。
コミットまたはロールバックの後、伝播フラグはリセットされます。
このプロシージャを使用する場合、AutoCommitを無効にする必要があります。無効にしない場合は、プロシージャを呼び出した後でトランザクションが終了するため、Oracle Databaseへの伝播が再度有効になります。
例
この例では、autocommitを無効に設定して、コミットの後に伝播フラグが無効から有効に切り替わらないようにします。ttCachePropagateFlagSetを呼び出して伝播を無効にします。oratt.writetabのTimesTenキャッシュ・ディテール表に1行が挿入されます。その後、ttCachePropagateFlagSet組込みプロシージャを呼び出してフラグを1に設定することで、伝播は再度有効になります。
Command> set autocommit off; Command> call ttCachePropagateFlagSet(0); Command> INSERT INTO oratt.writetab VALUES (103, 'Agent'); 1 row inserted. Command> COMMIT; Command> SELECT * FROM oratt.writetab; < 100, Oracle > < 101, TimesTen > < 102, Cache > < 103, Agent > 4 rows found. Command> call ttCachePropagateFlagSet(1);
Oracle Databaseのすべての行を選択する場合、伝播が無効のときに挿入された行は、Oracleのoratt.writetab表にはありません。
Command> set passthrough 3; Command> SELECT * FROM oratt.writetab; < 100, Oracle > < 101, TimesTen > < 102, Cache > 3 rows found.
説明
このプロシージャは、次のキャッシュ・グループのOracleオブジェクトをインストールまたは削除するOracle Database SQL文を生成します。
読取り専用キャッシュ・グループ
増分自動リフレッシュが指定されたユーザー管理キャッシュ・グループ
非同期ライトスルー(AWT)キャッシュ・グループ
このプロシージャは、キャッシュ・グループを作成しているユーザーにOracle Databaseに書き込むための適切な権限がない場合に有効です。そのため、Oracle DBAではこの組込みプロシージャによって生成されたスクリプトを使用してOracle Databaseオブジェクトを作成できます。
パラメータ
ttCacheSqlGetには、次のパラメータがあります。
| パラメータ | データ型 | 説明 |
|---|---|---|
feature_name |
TT_VARCHAR (100) |
INCREMENTAL_AUTOREFRESHまたはASYNCHRONOUS_WRITETHROUGHに指定できます。 |
cache_group_name |
TT_VARCHAR (100) |
キャッシュ・グループの名前。非同期ライトスルー・キャッシュ・グループのオブジェクトをインストールする場合、または自動リフレッシュ・ユーザー・アカウント内のすべてのOracle Databaseオブジェクトを削除する場合には、NULLを指定します。 |
install_flag |
TT_INTEGER NOT NULL |
install_flagが1の場合、ttCacheSqlGetは、自動リフレッシュまたは非同期ライトスルーのOracle DatabaseオブジェクトをインストールするOracle SQLを返します。
|
結果セット
ttCacheSqlGetは次の結果セットを返します。
| 列 | データ型 | 説明 |
|---|---|---|
retval |
TT_VARCHAR (4096) NOT NULL |
自動リフレッシュまたは非同期ライトスルーのOracle Databaseオブジェクトをインストールまたは削除するOracle SQL文。 |
continueFlag |
TT_SMALLINT NOT NULL |
結果列retvalのOracle SQL文が4096バイトを超え、次の結果行に続ける必要がある場合のみ、0(ゼロ)以外の値になります。 |
例
CALL ttCacheSqlGet('INCREMENTAL_AUTOREFRESH', 'westernCustomers', 1);
自動リフレッシュ・ユーザー・アカウントのすべてのOracle Databaseオブジェクトを削除するには、次のコマンドを使用します。
CALL ttCacheSqlGet('INCREMENTAL_AUTOREFRESH', NULL, 0);
注意
このプロシージャは、TimesTen Cacheでのみ使用可能です。
返された各retvalフィールドには、Oracle Databaseで直接実行される別々のOracle SQL文が含まれます。continueFlagフィールドで示されるように、1つの行は文の途中で終わっている場合があります。この場合、使用可能なSQL文を生成するために、前の行と連結する必要があります。
このプロシージャのスクリプト出力は、OracleのSQL*Plusユーティリティと互換性がありません。ただし、ttIsql cachesqlgetコマンドを使用すると、SQL*Plusユーティリティと互換性のあるスクリプトを生成できます。
cache_group_nameオプションに対してNULLを指定すると、ttDestroyユーティリティによってデータベースが破棄された後でOracle DatabaseオブジェクトをクリーンアップするOracle SQLを生成できます。
注意
このプロシージャは、TimesTen Cacheでのみ使用可能です。
データベースに自動リフレッシュ・キャッシュ・グループまたは非同期ライトスルー・キャッシュ・グループがある場合、またはある可能性がある場合は、キャッシュ管理ユーザーIDおよびパスワードをttCacheUidPwdSet組込みプロシージャで設定してから、キャッシュ・エージェントを起動する必要があります。
ポリシーをmanualからalwaysに変更することによって、相対パスを使用してデータベースに対してTimesTenキャッシュ・エージェントを起動しようとすると、TimesTenはTimesTen Data Managerが起動している場所に対する相対パスでデータベースを検索し、失敗します。たとえば、Windows上でデータベースのパスにDataStore=./payrollを指定し、この組込みプロシージャでTimesTenキャッシュ・エージェントを起動しようとしても、TimesTen Data Managerはデータベースを\srvディレクトリで検索するため、起動しません。UNIXの場合は、/var/TimesTen/instanceディレクトリを検索します。
このプロシージャを使用する場合、コールを実行するアプリケーションを含めたすべてのアプリケーションは、データベース・レベルのロック(LockLevel=1)を指定する接続を保持することができません。
パラメータ
ttCacheStopには、次のパラメータがあります。
| パラメータ | データ型 | 説明 |
|---|---|---|
timeout |
TT_INTEGER |
timeout秒数内にキャッシュ・エージェントが停止しない場合は、TimesTenデーモンに停止するように指定します。0を設定すると、デーモンはキャッシュ・エージェントを無期限待機します。デフォルト値は100です。 |
注意
このプロシージャは、TimesTen Cacheでのみ使用可能です。
キャッシュ・グループを削除または変更した直後にキャッシュ・エージェントを停止しないでください。かわりに、少なくとも2分間待機します。待機しないと、キャッシュ・エージェントは、AUTOREFRESH機能で使用されたOracle Databaseオブジェクトをクリーンアップすることができません。
このプロシージャを使用する場合、コールを実行するアプリケーションを含めたすべてのアプリケーションは、データベース・レベルのロック(LockLevel=1)を指定する接続を保持することができません。
説明
このプロシージャは、データベースのキャッシュ管理ユーザーIDを返します。キャッシュ管理ユーザーIDおよびパスワードがttCacheUidPwdSet組込みプロシージャを使用してデータベースに設定されていない場合、ttCacheUidGetはNULLを返します。
パラメータ
ttCacheUidPwdSetには、次のパラメータがあります。
| パラメータ | データ型 | 説明 |
|---|---|---|
UID |
TT_VARCHAR (30) |
自動リフレッシュ・キャッシュ・グループおよび非同期ライトスルー・キャッシュ・グループで使用される、キャッシュ管理ユーザーID。 |
PWD |
TT_VARCHAR (30) |
キャッシュ管理ユーザーのパスワード。 |
注意
このプロシージャは、クライアント/サーバー接続からコールできません。
このプロシージャは、TimesTen Cacheでのみ使用可能です。
DDLReplicationLevelのすべてのレベルにおいて、キャッシュ・エージェントまたはレプリケーション・エージェントが実行されている場合は、キャッシュ管理ユーザーIDおよびパスワードを設定できます。キャッシュ管理ユーザーIDまたはパスワードの変更の詳細は、『Oracle TimesTen Application-Tier Database Cacheユーザーズ・ガイド』のキャッシュ・ユーザーの名前およびパスワードの変更に関する説明を参照してください。
キャッシュ管理ユーザーIDは、データベースにキャッシュ・グループがある間はリセットできません。キャッシュ管理パスワードはいつでも変更できます。
説明
このプロシージャは、非ブロッキング・チェックポイント処理を実行します。ブロッキング・チェックポイントの詳細は、「ttCkptBlocking」を参照してください。チェックポイント処理は、データベースの現在の状態をディスクに記録し、トランザクション・ログ・ファイルを削除するために行われます。非ブロッキング・チェックポイントでは、データベースに対するロックは必要ありません。
アプリケーションでは、バックグラウンド・チェックポイント属性(CkptFrequencyおよびCkptLogVolume)を設定するか、このプロシージャを明示的にコールし、データベースに対して定期的にチェックポイントを実行する必要があります。このプロシージャは、データベースで実行されている他のどのアプリケーションに対しても、非同期でコールすることができます。
デフォルトで、TimesTenはバックグラウンド・チェックポイントを一定間隔で実行します。
バックアップの実行中にアプリケーションがチェックポイント処理を実行しようとした場合、実行中のバックアップは、チェックポイント処理が終了するまで待機します。チェックポイント処理が、バックグラウンド・チェックポイント、またはアプリケーションで要求されたチェックポイントのどちらの場合でも、次のように処理されます。
バックアップまたはチェックポイント処理の実行中に、ユーザーがバックアップを実行しようとした場合は、実行中のバックアップまたはチェックポイント処理の終了を待ちます。
バックアップまたはチェックポイント処理の実行中に、チェックポイント処理を実行しようとした場合は、実行中の処理が終了するまで待機しません。すぐにエラーを返します。
バックグラウンド・チェックポイントを無効にするには、CkptFrequency=0およびCkptLogVolume=0を設定します。
データベースに障害が発生したとき、ディスク上のチェックポイントが非ブロッキング・チェックポイントだった場合、TimesTenはログ・ファイルを使用してリカバリを行います。
説明
このプロシージャは、ブロッキング・チェックポイント処理を実行します。チェックポイント処理は、データベースの現在の状態をディスクに記録し、トランザクション・ログ・ファイルを削除するために行われます。このチェックポイントでは、データベースへの排他アクセスを必要とするため、チェックポイントの実行中は他のアプリケーションがデータベースからブロックされる可能性があります。
このプロシージャが呼び出されると、現行のトランザクションがコミットまたはロールバックされたときに、TimesTenはブロッキング・チェックポイントを実行します。その時点で他のトランザクションが進行中であれば、チェックポイントを実行する接続は、他のトランザクションがコミットまたはロールバックされるまで待機します。チェックポイント接続の待機中は、起動する他の新しいトランザクションは、チェックポイントを実行しているトランザクションの後のキューに入ります。その結果、長時間実行するトランザクションがあると、他の多数のトランザクションを待機させることとなります。したがって、このブロッキング・チェックポイントは注意して使用してください。非ブロッキング・チェックポイントを実行するには、ttCkptプロシージャを使用します。
ブロッキング・チェックポイントを使用している場合、ログ・ファイルは必要ありません。ログが存在する場合、TimesTenではリカバリ後にそのログを使用してデータベースが最新状態になります。
パラメータ
ttCkptBlockingには、次のオプションのパラメータがあります。
| パラメータ | データ型 | 説明 |
|---|---|---|
timeout |
TT_INTEGER |
ttCkptBlockingがタイムアウトする前にデータベース・ロックを取得するために待機する時間(秒)。timeoutの値は0から1,000,000です。指定しない場合、チェックポイントのタイムアウトは発生しません。 |
retries |
TT_INTEGER |
タイムアウトが発生した場合にttCkptBlockingがデータベース・ロックを取得しようとする回数。retriesの値は0から10です。指定しない場合、デフォルトは0です。 |
注意
このチェックポイントはコミットまたはロールバック時に実行されるため、ttCkptBlockingの呼出しは常に成功します。コミットまたはロールバックの実行時に、チェックポイント処理についての問題(ディスク領域の不足やタイムアウト)が発生すると、アプリケーションに警告が返されます。チェックポイントに問題があるコミットやロールバックは、チェックポイントが失敗したとしても成功するため、チェックポイントの問題はエラーとして扱われません。ODBCでは、リターン・コードSQL_SUCCESS_WITH_INFOを伴って警告が返されます。
チェックポイントの詳細は、『Oracle TimesTen In-Memory Databaseオペレーション・ガイド』のトランザクション管理に関する説明を参照してください。
説明
このプロシージャは、バックグラウンド・チェックポイント処理を動的に再構成したり、構成パラメータの現在アクティブな設定を返します。ttCkptConfigを使用して加えられた変更は、ただちに有効になります。したがって、ckptRateの変更は現在処理中のチェックポイントに影響します。
ttCkptConfigを使用してバックグラウンド・チェックポイント処理に加えられた変更は永続的です。DSNまたは接続文字列でCkptFrequencyおよびCkptLogVolume接続属性が指定されないかぎり、その後のデータベースのロードでは、変更された設定が使用されます(属性の指定があった場合は、その値が使用されます)。
パラメータ
ttCkptConfigには、次のパラメータがあります。
| パラメータ | データ型 | 説明 |
|---|---|---|
ckptFrequency |
TT_INTEGER |
チェックポイント頻度(秒)。0からMAXINTの値を指定できます。0の値は、チェックポイントのスケジュール時にチェックポイント頻度が考慮されないことを意味します。 |
ckptLogVolume |
TT_INTEGER |
チェックポイント間のログ・ボリューム(MB)。0からMAXINTの値を指定できます。0の値は、チェックポイントのスケジュール時にチェックポイント・ログ・ボリュームが考慮されないことを意味します。 |
ckptRate |
TT_INTEGER |
チェックポイントをディスクに書き込む速度をMB/秒単位で指定します。
|
結果セット
ttCkptConfigは次の結果を返します。
| 列 | データ型 | 説明 |
|---|---|---|
ckptFrequency |
TT_INTEGERNOT NULL |
チェックポイント頻度の現在アクティブな設定(秒)。 |
ckptLogVolume |
TT_INTEGERNOT NULL |
チェックポイント間のログ・ボリュームの現在アクティブな設定(MB)。 |
ckptRate |
TT_INTEGERNOT NULL |
TimesTenにおいてチェックポイントがディスクに書き込まれる現在の速度。 |
例
バックグラウンド・チェックポイント構成パラメータの現在の設定を表示するには、次のように実行します。
CALL ttCkptConfig; < 600, 32, 0 > 1 row found.
ログが制限に到達しないかぎり、チェックポイントの開始からバックグラウンド・チェックポイント処理を停止するには、次のように実行します。
CALL ttCkptConfig(0); < 0, 32, 0 > 1 row found.
チェックポイントの開始からバックグラウンド・チェックポイント処理を停止するには、次のように実行します。
CALL ttCkptConfig(0, 0); < 0, 0, 0 > 1 row found.
600秒ごとにチェックポイントを実行するか、ログが32MBに到達したときにチェックポイントを実行する(先に実行される方)ようにバックグラウンド・チェックポイント構成を設定するには、次のように実行します。
CALL ttCkptConfig(600, 32); < 600, 32, 0 > 1 row found.
注意
デフォルトで、TimesTenはバックグラウンド・チェックポイントを一定間隔で実行します。
バックアップの実行中にアプリケーションがチェックポイント処理を実行しようとした場合、実行中のバックアップは、チェックポイント処理が終了するまで待機します。チェックポイント処理が、バックグラウンド・チェックポイント、またはアプリケーションで要求されたチェックポイントのどちらの場合でも、次のように処理されます。
バックアップまたはチェックポイント処理の実行中に、ユーザーがバックアップを実行しようとした場合は、実行中のバックアップまたはチェックポイント処理の終了を待ちます。
バックアップまたはチェックポイント処理の実行中に、チェックポイント処理を実行しようとした場合は、実行中の処理が終了するまで待機しません。すぐにエラーを返します。
バックグラウンド・チェックポイントを無効にするには、CkptFrequency=0およびCkptLogVolume=0を設定します。
結果セット
ttCkptHistoryは次の結果セットを返します。
| 列 | データ型 | 説明 |
|---|---|---|
startTime |
TT_TIMESTAMP NOT NULL |
チェックポイントが開始された時間。 |
endTime |
TT_TIMESTAMP |
チェックポイントが完了した時間。 |
type |
TT_CHAR(16) NOT NULL |
実行されたチェックポイントのタイプ。次のいずれかの値です。
|
status |
TT_CHAR(16) NOT NULL |
チェックポイント処理の結果のステータス。次のいずれかの値です。
In
|
initiator |
TT_CHAR(16) NOT NULL |
チェックポイント・リクエストのソース。次のいずれかの値です。
|
error |
TT_INTEGER |
チェックポイントが失敗した場合、この列に失敗の理由が示されます。値は、TimesTenエラー番号のいずれかです。 |
ckptFileNum |
TT_INTEGERNOT NULL |
チェックポイントで使用されるデータベース・ファイル番号。このファイル番号は、チェックポイント・ファイル拡張子datastore.ds0またはdatastore.ds1の番号に対応しています。 |
ckptLFN |
TT_INTEGER |
チェックポイント・ログ・レコードのトランザクション・ログ・ファイル番号。 |
ckptLFO |
TT_BIGINT |
チェックポイント・ログ・レコードのトランザクション・ログ・ファイル・オフセット。 |
blksTotal |
TT_BIGINT |
現在データベースに割り当てられている永続ブロック数。これらのブロックは、チェックポイントの実行対象となります。 |
bytesTotal |
TT_BIGINT |
blksTotalによって占有されるバイト数。 |
blksInUse |
TT_BIGINT |
blksTotalのうち、現在使用中のブロック数。 |
bytesInUse |
TT_BIGINT |
blksInUseによって占有されるバイト数。 |
blksDirty |
TT_BIGINT |
このチェックポイントによって書き込まれた使用済ブロック数。 |
bytesDirty |
TT_BIGINT |
blksDirtyによって占有されるバイト数。 |
bytesWritten |
TT_BIGINT |
このチェックポイントによって書き込まれた合計バイト数。 |
Percent_Complete |
TT_INTEGER |
処理中のチェックポイントがある場合に、完了したチェックポイントの割合を示します。処理中のチェックポイントがない場合の値はNULLです。戻り値は、直前に書き込まれたブロックのブロックIDとデータベースのPermSizeを比較して計算されます。この値は、必ずしもチェックポイントの完了に必要な残り時間を正確に表すものではありませんが、ディスク書込みに必要な残り時間の目安にはなります。このフィールドには、使用済ブロックの書込みの進捗状況のみが表示され、チェックポイントの最後に追加のブックキーピングは含まれません。チェックポイントの処理中にこのプロシージャをコールすると、値はNULL以外になります。 |
ckptVNo |
TT_INTEGERNOT NULL |
チェックポイントごとに増加するチェックポイント順序番号。 |
例
処理中のチェックポイントの例を次に示します。
Call ttckpthistory; < 2011-04-14 16:56:34.169520, <NULL>, Fuzzy , In Progress , User , <NULL>, 0, <NULL>, <NULL>, <NULL>, <NULL>, <NULL>, <NULL>, <NULL>, <NULL>, <NULL>, 13, 6 > < 2011-04-14 16:55:47.703199, 2011-04-14 16:55:48.188764, Fuzzy , Completed , Checkpointer , <NULL>, 1, 0, 8964304, 294, 33554432, 291, 5677288, 27, 1019512, 1065408, <NULL>, 5 > < 2011-04-14 16:54:47.106110, 2011-04-14 16:54:47.723379, Static , Completed , Subdaemon , <NULL>, 0, 0, 8960328, 294, 33554432, 291, 5677288, 256, 33157172, 5321548, <NULL>, 4 > < 2011-04-14 16:54:41.633792, 2011-04-14 16:54:42.568469, Blocking , Completed , User , <NULL>, 1, 0, 8958160, 294, 33554432, 291, 5677288, 31, 1162112, 6604976, <NULL>, 3 > < 2011-04-14 16:54:37.438827, 2011-04-14 16:54:37.977301, Static , Completed , User , <NULL>, 0, 0, 1611984, 93, 33554432, 92, 1853848, 93, 33554432, 1854052, <NULL>, 2 > < 2011-04-14 16:54:36.861728, 2011-04-14 16:54:37.438376, Static , Completed , User , <NULL>, 1, 0, 1609936, 93, 33554432, 92, 1853848, 93, 33554432, 1854052, <NULL>, 1 > 6 rows found.
最新のチェックポイントの試行中に発生したエラーの例を次に示します。
call ttckpthistory; < 2011-04-14 16:57:14.476860, 2011-04-14 16:57:14.477957, Fuzzy , Failed , User , 847, 1, <NULL>, <NULL>, 0, 0, 0, 0, 0, 0, 0, <NULL>, 7 > < 2011-04-14 16:56:34.169520, 2011-04-14 16:56:59.715451, Fuzzy , Completed , User , <NULL>, 0, 0, 8966472, 294, 33554432, 291, 5677288, 5, 522000, 532928, <NULL>, 6 > < 2011-04-14 16:55:47.703199, 2011-04-14 16:55:48.188764, Fuzzy , Completed , Checkpointer , <NULL>, 1, 0, 8964304, 294, 33554432, 291, 5677288, 27, 1019512, 1065408, <NULL>, 5 > < 2011-04-14 16:54:47.106110, 2011-04-14 16:54:47.723379, Static , Completed , Subdaemon , <NULL>, 0, 0, 8960328, 294, 33554432, 291, 5677288, 256, 33157172, 5321548, <NULL>, 4 > < 2011-04-14 16:54:41.633792, 2011-04-14 16:54:42.568469, Blocking , Completed , User , <NULL>, 1, 0, 8958160, 294, 33554432, 291, 5677288, 31, 1162112, 6604976, <NULL>, 3 > < 2011-04-14 16:54:37.438827, 2011-04-14 16:54:37.977301, Static , Completed , User , <NULL>, 0, 0, 1611984, 93, 33554432, 92, 1853848, 93, 33554432, 1854052, <NULL>, 2 > < 2011-04-14 16:54:36.861728, 2011-04-14 16:54:37.438376, Static , Completed , User , <NULL>, 1, 0, 1609936, 93, 33554432, 92, 1853848, 93, 33554432, 1854052, <NULL>, 1 > 7 rows found.
説明
この組込みプロシージャは、コミット・バッファのオーバーフロー回数、およびトランザクション・コミット処理の間にトランザクション再利用レコードに使用された最大メモリー量を返します。
このプロシージャ・コールの結果によって提供される情報は、CommitBufferSizeMax接続属性またはALTER SESSION SQL文(『Oracle TimesTen In-Memory Database SQLリファレンス』を参照)を使用してコミット・バッファの最大サイズを明示的に設定する場合に役立ちます。このプロシージャにより、オーバーフローの回数および再利用レコードによる最大メモリー使用量に基づいて、再利用バッファの正しいサイズを選択できるようになります。
バッファ・オーバーフローがある場合には、コミット・バッファの最大サイズを増やすことを検討します。バッファ・オーバーフローがなく、最大メモリー使用量がコミット・バッファの最大サイズを十分に下回っている場合には、コミット・バッファの最大サイズを減らすことを検討します。
コミット・バッファ・サイズの設定方法を含む再利用操作の詳細は、『Oracle TimesTen In-Memory Databaseオペレーション・ガイド』のトランザクション再利用操作に関する説明を参照してください。
結果セット
ttCommitBufferStatsは次の結果を返します。
| 列 | データ型 | 説明 |
|---|---|---|
overflows |
TT_BIGINTNOT NULL |
コミット・バッファ・オーバーフローの合計回数。 |
maxReached |
TT_BIGINTNOT NULL |
トランザクション・コミット・バッファに現在使用されている最大量(バイト)。 |
例
次の例は、コミット・バッファ・オーバーフローがなく、トランザクション・コミット・バッファが500MBに設定されているセッションの結果を示しています。
Command> ALTER SESSION SET COMMIT_BUFFER_SIZE_MAX = 500; Session altered. Command> CALL ttCommitBufferStats( ); < 0, 524288000 > 1 row found
コミット・バッファ・オーバーフローが10回あり、トランザクション・コミット・バッファが2MBに設定されているセッションでは、このプロシージャの出力は次のようになります。
Command> ALTER SESSION SET COMMIT_BUFFER_SIZE_MAX = 2; Session altered. Command> CALL ttCommitBufferStats( ); < 0, 2097152 > 1 row found
注意
組込みプロシージャttCommitBufferStatsResetをコールすると、コミット・バッファ統計はバイトで表されます。ただし、ttConfigurationの出力および接続属性CommitBufferSizeMaxによって設定された値はMBで表されます。
説明
このプロシージャはttCompactと似ていますが、ttCompactがデータベース全体を圧縮するのに対して、ttCompactTSはデータベースの小さな断片を圧縮するために使用します。ttCompactTSは、ttCompactを時間で区切ったものです。ttCompactTSは、データベース内のすべてのブロックについて、指定した分量の圧縮を繰り返します。圧縮が1回行われるごとに、MONITOR表のDS_COMPACTSフィールドの値が増加します。
このプロシージャは、下位互換用にサポートされています。新しいアプリケーションではコールしません。
説明
ttComputeTabSizes組込みプロシージャは、TimesTenのシステム表に格納された表サイズの統計をリフレッシュします。この組込みプロシージャをコールした後で、DBA_TAB_SIZES、USER_TAB_SIZESまたはALL_TAB_SIZESの各ビューを問い合せると、統計の最新情報を確認できます。
このプロシージャは、表内の行を格納するために割り当てられている記憶域、表外バッファおよびシステムの使用量などの、指定された表に割り当てられている様々なタイプの記憶域を計算します。表を指定しない場合、このプロシージャは、そのユーザーがSELECT権限を持つすべての表のサイズを計算します。この組込みプロシージャを実行すると、DDL文と同様に、プロシージャの開始直後にトランザクションがコミットされ、処理が正常に完了すると再度コミットされます。
パラメータ
ttComputeTabSizesには、次のパラメータがあります。
| パラメータ | データ型 | 説明 |
|---|---|---|
tblName |
TT_CHAR(61) |
アプリケーション表の名前。表の所有者を含めることができます。NULL値または空の文字列を指定すると、現在のすべての表に対する統計が更新されます。
想定される表のタイプは次のとおりです。
|
includeOutOfLine |
TT_INTEGER |
0(no)または1(yes)。デフォルトは1(yes)です。
値が 表外の値の計算を省くと、このプロシージャの待機時間が大幅に短縮されます。 |
説明
ttConfiguration組込みプロシージャは、現在のデータベース接続のほとんど(すべてではない)の接続属性の値を返します。具体的には、ttConfiguration組込みプロシージャは、次の接続属性の値を返します。
CacheAwtMethodCacheAwtParallelismCacheGridEnableCacheGridMsgWaitCkptFrequencyCkptLogVolumeCkptRateCkptReadThreadsCommitBufferSizeMaxConnectionCharacterSetConnectionNameConnectionsDDLCommitBehaviorDDLReplicationActionDDLReplicationLevelDataBaseCharacterSetDataStoreDynamicLoadEnableDuplicateBindModeDurableCommitsDynamicLoadErrorModeIsolationRangeIndexTypeLockLevelLockWaitLogAutoTruncateLogBufMBLogBufParallelismLogDirLogFileSizeLogFlushMethodLogPurgeMemoryLockNLS_LENGTH_SEMANTICSNLS_NCHAR_CONV_EXCPNLS_SORTOracleNetServiceNamePLSCOPE_SETTINGSPLSQLPLSQL_CCFLAGSPLSQL_CODE_TYPEPLSQL_CONN_MEM_LIMITPLSQL_MEMORY_ADDRESSPLSQL_MEMORY_SIZEPLSQL_OPTIMIZE_LEVELPLSQL_TIMEOUTPassThroughPermSizePermWarnThresholdPreallocatePrivateCommandsQueryThresholdRACCallbackReceiverThreadsRecoveryThreadsReplicationApplyOrderingReplicationParallelismReplicationTrackSQLQueryTimeoutTempSizeTempWarnThresholdTemporaryTypeModeUIDパラメータ
ttConfigurationには、次のオプションのパラメータがあります。
| パラメータ | データ型 | 説明 |
|---|---|---|
paramName |
TT_VARCHAR (30) |
このプロシージャで値を返す接続属性の名前。 |
結果セット
ttConfigurationは次の結果セットを返します。
| 列 | データ型 | 説明 |
|---|---|---|
paramName |
TT_VARCHAR (30) NOT NULL |
接続文字列中に指定されている接続属性の名前。アルファベット順に返されます。 |
paramValue |
TT_VARCHAR (1024) |
接続文字列中に指定されている接続属性の値。 |
説明
このプロシージャは、現在の接続のコンテキスト値をBINARY(8)値として返します。コンテキストを使用して、ttStatusユーティリティおよびttDataStoreStatus組込みプロシージャによって提示される接続リストから、データベースに一意の接続を関連付けることができます。
説明
このプロシージャは、データベースに接続されたプロセスのリストを返します。dataStoreパラメータにNULLを指定すると、アクティブなすべてのデータベースの状態が返されます。
結果セットは、ttStatusユーティリティの出力と似ています。
パラメータ
ttDataStoreStatusには、次のパラメータがあります。
| パラメータ | データ型 | 説明 |
|---|---|---|
dataStore |
TT_VARCHAR (256) |
特定のデータベースのフルパス名、またはすべてのデータベースの場合はNULL。 |
結果セット
ttDataStoreStatusは、次の結果セットを返します。
| 列 | データ型 | 説明 |
|---|---|---|
dataStore |
TT_VARCHAR (256) NOT NULL |
データベースのフルパス名。 |
PID |
TT_INTEGERNOT NULL |
プロセスID。 |
Context |
BINARY(8) NOT NULL |
接続のコンテキスト値。 |
conType |
TT_CHAR (16) NOT NULL |
接続しているプロセスのタイプ。結果は、次のいずれかです。
|
ShmID |
TT_VARCHAR (260) NOT NULL |
データベースが占有する共有メモリーIDの出力可能な形式。 |
connection_Name |
TT_CHAR (30) NOT NULL |
データベース接続のシンボリック名。 |
connID |
TT_INTEGERNOT NULL |
データベース接続の数値ID。 |
パラメータ
ttDBConfigには、次のパラメータがあります。
| パラメータ | データ型 | 説明 |
|---|---|---|
param |
VARCHAR2(30) NOT NULL |
値を設定するまたは現在の値を確認する対象のシステム・パラメータ。この引数の許容値は次のとおりです。
|
value |
VARCHAR2(200) |
システム・パラメータの値。
値を指定しない場合、このプロシージャは指定したパラメータの現在の値を返します。 |
パラメータ/値のペア
次の名前/値のペアが結果セットで返されます。
| 名前 | 値 | 説明 |
|---|---|---|
CacheParAwtBatchSize |
バッチ内の行数 | 単一のバッチに含まれる行数に対するしきい値を設定します。最大の行数に達すると、TimesTenがトランザクションに残りの行を含めますが(TimesTenはトランザクションを解除しません)、バッチにそれ以上のトランザクションを追加しません。
注意: Oracle TimesTenテクニカル・サポートからのアドバイスがないかぎり、このパラメータの値は変更しないでください。 |
CacheAwtMethod |
0: SQL配列実行メソッド
|
Oracle Databaseサーバーに変更を適用するためのAWT伝播で、PL/SQL実行メソッドを使用するか、SQL配列実行メソッドを使用するかを指定します。
詳細は、 この組込みプロシージャで設定された場合、接続属性の値は無視されます。 |
CacheAgentCommitBufSize |
MBで表されるサイズ | キャッシュ・エージェントに再利用バッファの最大サイズを指定します。キャッシュ・エージェントは値が変更されたかどうかを定期的に確認します。サイズは一時パーティションのサイズより大きくできません。
詳細は、『Oracle TimesTen Application-Tier Database Cacheユーザーズ・ガイド』の自動リフレッシュ処理時にメモリーを再利用する際のパフォーマンスの向上に関する説明を参照してください。 |
ParReplMaxDrift |
秒数 | パラレル・レプリケーションの追跡間で可能なドリフトの秒数を指定します。自動パラレル・レプリケーションを使用し、コミットの依存性を無効にすると、一部の追跡が他追跡の前に移動する場合があります。このしきい値を過ぎると、TimesTenは、すべてのレプリケーション追跡が互いに追いつくように、これらを同期化します。デフォルトでは、これはゼロに設定され、追跡間のドリフトのチェックは無効になっています。
詳細は、『Oracle TimesTen In-Memory Database開発者および管理者ガイド』のコミット依存性が無効化された自動パラレル・レプリケーションの構成に関する項を参照してください。 |
RepAgentCommitBufSize |
MBで表されるサイズ | レプリケーション・エージェントに再利用バッファの最大サイズを指定します。レプリケーション・エージェントは値が変更されたかどうか定期的に確認します。サイズは一時パーティションのサイズより大きくできません。
詳細は、『Oracle TimesTen Application-Tier Database Cacheユーザーズ・ガイド』の自動リフレッシュ処理時にメモリーを再利用する際のパフォーマンスの向上に関する説明を参照してください。 |
結果セット
ttDBConfigは、次の結果セットを返します。
| 列 | データ型 | 説明 |
|---|---|---|
param |
VARCHAR2(30) |
システム・パラメータの名前。 |
value |
VARCHAR2(200) |
指定されたパラメータの現在の値を表示します。 |
例
CacheParAwtBatchSizeの現在の値を取得するには次のように実行します。
CALL ttDBConfig('CacheParAwtBatchSize');
<CACHEPARAWTBATCHSIZE, 125>
1 row found.
RepAgentCommitBufSizeの値を50MBに設定するには、次のように実行します。
CALL ttDBConfig('RepAgentCommitBufSize', '50');
<REPAGENTCOMMITBUFSIZE, 50>
1 row found.
CacheAgentCommitBufSizeの現在の値を100に設定するには、次のように実行します。
Command> call ttDBConfig('CacheAgentCommitBufSize', '100');
< CACHEAGENTCOMMITBUFSIZE, 100 >
1 row found.
注意
この組込みプロシージャを使用してパラメータ値を設定した後には、チェックポイントを開始してパラメータ変更の永続性を確認してください。ttCheckpointプロシージャの詳細は、『Oracle TimesTen In-Memory Databaseオペレーション・ガイド』のチェックポイント処理に関する説明を参照してください。チェックポイントの組込みプロシージャの詳細は、この章の「ttCkpt」を参照してください。
ttDbConfigによるパラメータ値の変更はロールバックできません。
関連項目
結果セット
ttDbWriteConcurrencyModeGetは結果セットを返します。
| 列 | データ型 | 説明 |
|---|---|---|
ts |
TIMESTAMP NOT NULL |
ステータス情報が収集された時刻。 |
mode |
TT_INTEGER NOT NULL |
書込み同時実行モード。
|
operation |
VARCHAR2 (50) |
書込み同時実行モードの移行状態。次のいずれかです。
|
status |
VARCHAR2 (100) NOT NULL |
書込み同時実行モードの移行状態。次のいずれかです。
|
msg |
VARCHAR2 (5000) |
NULLまたはステータスの説明メッセージ。 |
説明
ttDbWriteConcurrencyModeSet組込みプロシージャは同時書込み処理中に読取り最適化を制御します。
モードを1に設定すると、拡張書込み同時実行モードが有効になり、読込み最適化が無効になります。モードを0 (ゼロ)に設定すると、拡張書込み同時実行モードが無効になり、読込み最適化が再び有効になります。モードを1に設定すると、すべてのトランザクションおよび文の表ロックのヒントが抑制されます。これはSELECT文および副問合せに対してヒントでトリガーされたSn表ロック、およびDML文に対してヒントでトリガーされたW表ロックにも影響します。表ロックのヒントを抑制すると、スター結合などの実行計画を促す他の表ロックのヒントも抑制されます。モード設定にかかわらず、表ロックのヒントでトリガーされない表ロックは影響されません。
パラメータ
ttDbWriteConcurrencyModeSetには次のパラメータがあります。
| パラメータ | データ型 | 説明 |
|---|---|---|
mode |
TT_INTEGERNOT NULL |
書込み同時実行モード。
|
wait |
TT_INTEGERNOT NULL |
0: モード移行の開始後すぐに返します。
|
説明
このプロシージャは、現在のトランザクションをコミット時に永続的にすることを指定します。このプロシージャは、DurableCommitsが無効であり、アプリケーションがデータベースに接続されている場合にかぎり有効です。
また、ttDurableCommitをコールすることによって、現在のトランザクションおよび以前にコミットされた遅延永続トランザクションもすべて永続的になります。ttDurableCommitをコールした後にコミットされたトランザクションに対しては効果がありません。ttDurableCommitはトランザクションをコミットしません。たとえば、アプリケーションをコミットするには、SQLTransactなどをコールする必要があります。
説明
このプロシージャは、既存のローカル・キャッシュ・グリッドにグリッド・メンバーをアタッチします。スタンドアロンのTimesTenデータベースまたはTimesTenアクティブ・スタンバイ・ペアをグリッド・メンバーにすることができます。
メンバーがアクティブ・スタンバイ・ペアの場合、ペアの両方のノードをグリッドにアタッチする必要があります。ttGridAttach組込みプロシージャをアクティブ・スタンバイ・ペアの各ノードからコールする場合、両方のノードのIPアドレスまたはホスト名を指定してください。
ttGridAttach組込みプロシージャは、キャッシュ・エージェントがまだ実行中でない場合に、エージェントを自動的に起動します。また、ttGridAttach組込みプロシージャは、指定されたTCP/IPポートをキャッシュ・エージェントに設定し、グローバル・キャッシュ・グループを容易にします。
このプロシージャによって設定される情報を取得するには、組込みプロシージャttGridNodeStatusをコールします。
まだ実行されていない場合は、このプロシージャによってキャッシュ・エージェントが起動されます。このプロシージャをリモートで実行することはできません。
構文
スタンドアロンのTimesTenデータベースの場合は、次のようになります。
ttGridAttach(currentNode, 'name1', IPAddr1, port1)
アクティブ・スタンバイ・ペアのノードの場合は、次のようになります。
ttGridAttach(currentNode, 'name1', IPAddr1, port1 'name2', IPAddr2, port2)
パラメータ
ttGridAttachには、次のパラメータがあります。
| パラメータ | データ型 | 説明 |
|---|---|---|
currentNode |
TT_INTEGERNOT NULL |
マスター・データベース用のノード番号。このパラメータに有効な値は、次のとおりです。
|
name1 |
TT_VARCAR (30) |
アクティブ・マスター・データベースのグリッド・メンバーを一意に識別する完全修飾名。 |
IPAddr1 |
TT_VARCHAR (128) NOT NULL |
アクティブ・マスター・データベースが存在するノードのIPアドレス。 |
port1 |
TT_INTEGERNOT NULL |
アクティブ・マスター・データベースまたはスタンドアロン・データベースのキャッシュ・エージェント・プロセスのポート番号。 |
name2 |
TT_VARCAR (30) |
スタンバイ・マスター・データベースのグリッド・メンバーを一意に識別する完全修飾名。 |
IPAddr2 |
TT_VARCHAR (128) |
スタンバイ・マスター・データベースが存在するノードのIPアドレス。 |
port2 |
TT_INTEGER |
スタンバイ・マスター・データベースのキャッシュ・エージェント・プロセスのポート番号。 |
例
スタンドアロンのTimesTenデータベースをグリッドにアタッチするには、次のように実行します。
CALL ttGridAttach (1, 'alone2','sys2',5002);
アクティブ・マスター・データベースをグリッドにアタッチするには、次のように実行します。
CALL ttGridAttach(1,'cacheact','sys1',5003,'cachestand','sys2',5004);
スタンバイ・マスター・データベースをグリッドにアタッチするには、次のように実行します。
CALL ttGridAttach(2,'cacheact','sys1',5003,'cachestand','sys2',5004);
アクティブおよびスタンバイのマスター・データ・ストアをアタッチするコールの内容は、ノード番号を除いて同じです。
関連項目
ttGridCheckOwnerttGridCreatettGridDestroyttGridDetachttGridDetachListttGridDetachAllttGridGlobalCGResumettGridGlobalCGSuspendttGridNameSetttGridNodeStatus説明
このプロシージャは、グローバル・キャッシュ・グループの行数が、所有者表の行数と同じかどうかをチェックします。このプロシージャは、キャッシュ・グリッドが実行されていない場合にのみコールしてください。
パラメータ
ttGridCheckOwnerには、次のオプションのパラメータがあります。
| パラメータ | データ型 | 説明 |
|---|---|---|
cvName |
TT_VARCHAR (30) |
チェックするキャッシュ・グループの名前。NULLで、所有者が指定されている場合、所有者に所有されるすべてのキャッシュ・グループがチェックされます。NULLで、所有者が指定されていない場合、すべてのキャッシュ・グループがチェックされます。 |
cvOwner |
TT_VARCHAR (30) |
チェックするキャッシュ・グループの所有者。NULLの場合、すべてのキャッシュ・グループがチェックされます。 |
例
ユーザーterryが所有するmygroupキャッシュ・グループの情報を取得するには、次のように実行します。
CALL ttGridCheckOwner ('mygroup', 'terry');
すべてのキャッシュ・グループの情報を取得するには、次のように実行します。
CALL ttGridCheckOwner();
関連項目
ttGridAttachttGridCreatettGridDestroyttGridDetachttGridDetachAllttGridDetachListttGridGlobalCGResumettGridGlobalCGSuspendttGridNameSetttGridNodeStatus説明
このプロシージャは、キャッシュ・グリッドを作成します。グリッドを作成するには、このプロシージャを一度のみ実行します。この組込みプロシージャは、スタンドアロンのデータベース、あるいはアクティブ・スタンバイ・ペアのアクティブ・マスター・データベースまたはスタンバイ・マスター・データベースから実行できます。
AUTOCOMMIT=0の場合は、このプロシージャをコールした後にコミットする必要があります。
CALL ttGridCreate ('mygrid');
関連項目
ttGridAttachttGridCheckOwnerttGridDestroyttGridDetachttGridDetachAllttGridDetachListttGridGlobalCGResumettGridGlobalCGSuspendttGridNameSetttGridNodeStatus説明
このプロシージャは、Oracle Databaseに格納されているすべてのキャッシュ・グリッド・オブジェクトを削除して、キャッシュ・グリッドを破棄します。
デフォルトでは、この組込みプロシージャは、アタッチ中のメンバーまたは既存のキャッシュ・グループが存在する間は、グリッドを破棄しません。
キャッシュ・グリッドを破棄する前に、キャッシュ・グリッドからすべてのTimesTenデータベースをデタッチしてください。グリッドを強制的に破棄するには、forceパラメータの引数に1を指定します。
パラメータ
ttGridDestroyには、次のパラメータがあります。
| パラメータ | データ型 | 説明 |
|---|---|---|
gridName |
TT_VARCHAR (30) NOT NULL |
破棄するグリッドの完全修飾名。 |
force |
TT_INTEGER |
このオプションのパラメータでは、キャッシュ・グリッドにアタッチされているグリッド・メンバーが残っている場合、またはキャッシュ・グループがまだ含まれている場合でも、強制的にキャッシュ・グリッドが破棄されます。有効な値は1です。 |
関連項目
ttGridAttachttGridCheckOwnerttGridCreatettGridDetachttGridDetachAllttGridDetachListttGridGlobalCGResumettGridGlobalCGSuspendttGridNameSetttGridNodeStatus説明
このプロシージャは、キャッシュ・グリッドからノードをデタッチします。
このプロシージャは、キャッシュ・グリッドを破棄する前に使用します。キャッシュ・グリッドにアタッチされているノードがある場合、キャッシュ・グリッドを破棄できません。
パラメータ
ttGridDetachには、次のオプションのパラメータがあります。
| パラメータ | データ型 | 説明 |
|---|---|---|
nodeMemberName |
TT_VARCHAR (200) |
グリッドからデタッチするノードを指定します。
アクティブ・スタンバイ・ペアの場合、各ノードを個別にデタッチする必要があります。 |
force |
TT_INTEGER |
ノードが停止しているかどうかをチェックせずにそのノードがデタッチされます。有効な値は1です。 |
oraclePropWaitSec |
TT_INTEGER |
ノードをデタッチする前に、すべてのトランザクションがOracle Databaseに伝播されるまで待機する時間(秒)を指定します。-1は永久に待機することを表します。値を指定しない場合、ttGridDetachの待機時間は1秒になります。 |
例
現在のノードをグリッドからデタッチするには、次のように実行します。
CALL ttGridDetach();
リモート・ノードTTGRID_alone2_2をグリッドからデタッチするには、次のように実行します。
CALL ttGridDetach('TTGRID_alone2_2',1);
関連項目
ttGridAttachttGridCheckOwnerttGridCreatettGridDetachAllttGridDetachListttGridDestroyttGridGlobalCGResumettGridGlobalCGSuspendttGridNameSetttGridNodeStatus説明
このプロシージャは、アタッチされているすべてのメンバーをグリッドからデタッチします。スタンドアロンのTimesTenデータベースまたはTimesTenアクティブ・スタンバイ・ペアをグリッド・メンバーにすることができます。
まだ実行されていない場合は、このプロシージャによってキャッシュ・エージェントが起動されます。
パラメータ
ttGridDetachAllには、次のオプションのパラメータがあります。
| パラメータ | データ型 | 説明 |
|---|---|---|
oraclePropWaitSec |
TT_INTEGER |
すべてのノードをデタッチする前に、すべてのトランザクションがOracle Databaseに伝播されるまで待機する時間(秒)を指定します。-1は永久に待機することを表します。値を指定しない場合、ttGridDetachAllの待機時間は1秒になります。 |
関連項目
ttGridAttachttGridCheckOwnerttGridCreatettGridDestroyttGridDetachttGridDetachListttGridGlobalCGResumettGridGlobalCGSuspendttGridNameSetttGridNodeStatusパラメータ
ttGridDetachListには、次のパラメータがあります。
| パラメータ | データ型 | 説明 |
|---|---|---|
nodeMemberName |
TT_VARCHAR (8192) NOT NULL |
削除するノードの完全修飾名。 |
force |
TT_INTEGER |
このオプションのパラメータでは、ノードが停止しているかどうかをチェックせずにノードがデタッチされます。有効な値は1です。 |
oraclePropWaitSec |
TT_INTEGER |
このオプションのパラメータでは、リスト内のノードをデタッチする前に、すべてのトランザクションがOracle Databaseに伝播されるまで待機する時間(秒)を指定します。-1は永久に待機することを表します。値を指定しない場合、ttGridDetachListの待機時間は1秒になります。 |
関連項目
ttGridAttachttGridCheckOwnerttGridCreatettGridDetachttGridDetachAllttGridDestroyttGridGlobalCGResumettGridGlobalCGSuspendttGridNameSetttGridNodeStatus説明
このプロシージャは、ttGridAttach組込みプロシージャと似ています。ここでは、グリッドのアタッチされているすべてのメンバーが停止した場合、このプロシージャをコールしてグリッドの最初のメンバーをアタッチします。
このプロシージャは、1つのメンバーからのみコールしてください。この組込みプロシージャをコールする前に、他のすべてのメンバーのキャッシュ・エージェントが停止していることを確認します(そうでない場合、プロシージャで障害が発生します)。
ttGridFirstMemberAttach組込みプロシージャは、キャッシュ・エージェントがまだ実行中でない場合に、エージェントを自動的に起動します。また、ttGridFirstMemberAttach組込みプロシージャは、指定されたTCP/IPポートをキャッシュ・エージェントに設定し、グローバル・キャッシュ・グループを容易にします。
このプロシージャによって設定される情報を取得するには、組込みプロシージャttGridNodeStatusをコールします。
まだ実行されていない場合は、このプロシージャによってキャッシュ・エージェントが起動されます。このプロシージャをリモートで実行することはできません。
構文
スタンドアロンのTimesTenデータベースの場合は、次のようになります。
ttGridFirstMemberAttach(currentNode, 'name1', IPAddr1, port1)
アクティブ・スタンバイ・ペアのノードの場合は、次のようになります。
ttGridFirstMemberAttach(currentNode, 'name1',
IPAddr1, port1 'name2', IPAddr2, port2)
パラメータ
ttGridFirstMemberAttachには、次のパラメータがあります。
| パラメータ | データ型 | 説明 |
|---|---|---|
currentNode |
TT_INTEGERNOT NULL |
マスター・データベース用のノード番号。このパラメータに有効な値は、次のとおりです。
|
name1 |
TT_VARCHAR (30) |
アクティブ・マスター・データベースのグリッド・メンバーを一意に識別する完全修飾名。 |
IPAddr1 |
TT_VARCHAR (128) NOT NULL |
アクティブ・マスター・データベースが存在するノードのIPアドレス。 |
port1 |
TT_INTEGERNOT NULL |
アクティブ・マスター・データベースまたはスタンドアロン・データベースのキャッシュ・エージェント・プロセスのポート番号。 |
name2 |
TT_VARCAR (30) |
スタンバイ・マスター・データベースのグリッド・メンバーを一意に識別する完全修飾名。 |
IPAddr2 |
TT_VARCHAR (128) |
スタンバイ・マスター・データベースが存在するノードのIPアドレス。 |
port2 |
TT_INTEGER |
スタンバイ・マスター・データベースのキャッシュ・エージェント・プロセスのポート番号。 |
例
スタンドアロンのTimesTenデータベースをグリッドにアタッチするには、次のように実行します。
CALL ttGridFirstMemberAttach (1, 'alone2','sys2',5002);
関連項目
ttGridCheckOwnerttGridCreatettGridDestroyttGridDetachttGridDetachListttGridDetachAllttGridGlobalCGResumettGridGlobalCGSuspendttGridNameSetttGridNodeStatus関連項目
ttGridAttachttGridCheckOwnerttGridCreatettGridDestroyttGridDetachttGridDetachAllttGridDetachListttGridGlobalCGSuspendttGridNameSetttGridNodeStatus説明
このプロシージャは、グローバル・キャッシュ・グループのキャッシュ・インスタンスの動的なロードおよび削除を一時的にブロックします。これらのアクションを再度有効にするには、ttGridGlobalCGResumeプロシージャを使用します。
パラメータ
ttGridGlobalCGSuspendには、次のパラメータがあります。
| パラメータ | データ型 | 説明 |
|---|---|---|
wait |
TT_INTEGER |
保留中の削除処理がOracle Databaseに伝播されるか、保留中の透過的ロード処理が完了して戻されるまでコマンドが待機する秒数です。保留中の削除処理または保留中の透過的ロード処理が指定した時間内に完了できなかった場合に、TimesTenはエラーを返します。
値が指定されない場合は、待機時間はありません。 |
関連項目
ttGridAttachttGridCheckOwnerttGridCreatettGridDestroyttGridDetachttGridDetachAllttGridDetachListttGridGlobalCGResumettGridNameSetttGridNodeStatusパラメータ
ttGridInfoには、次のオプションのパラメータがあります。
| パラメータ | データ型 | 説明 |
|---|---|---|
gridName |
TT_VARCHAR (30) |
gridNameが指定された場合、指定されたグリッドに関する情報が表示されます。指定されていない場合は、すべてのグリッドに関する情報が表示されます。 |
結果セット
ttGridInfoによって、キャッシュ・グリッドに関する情報が返されます。
| 列 | データ型 | 説明 |
|---|---|---|
gridName |
TT_VARCHAR (30) |
指定されたグリッドの名前。 |
cacheAdminID |
TT_VARCHAR (30)
|
グリッドに関連付けられているキャッシュ管理ユーザーID。 |
platform |
TT_VARCHAR (100) |
グリッドが稼働しているオペレーティング・システム・プラットフォーム。
プラットフォーム値は次のように表示されます。
次に例を示します。
|
major1 |
TT_VARCHAR (10) |
グリッドに関連付けられているTimesTenのメジャー・リリースの最初の番号。たとえば、リリースが11.2.2の場合、11となります。 |
major2 |
TT_VARCHAR (10) |
グリッドに関連付けられているTimesTenのメジャー・リリースの2番目の番号。たとえば、リリースが11.2.2の場合、2となります。 |
major3 |
TT_VARCHAR (10) |
グリッドに関連付けられているTimesTenのメジャー・リリースの3番目の番号。たとえば、リリースが11.2.2の場合、2となります。 |
例
mygridキャッシュ・グリッドの情報を取得するには、次のように実行します。
CALL ttGridInfo ('mygrid');
< MYGRID, CACHEUSER, Linux Intel x86, 32-bit, 11, 2, 2 >
すべてのグリッドの情報を取得するには、次のように実行します。
CALL ttGridInfo();
関連項目
ttGridAttachttGridCheckOwnerttGridCreatettGridDestroyttGridDetachttGridDetachAllttGridDetachListttGridGlobalCGResumettGridGlobalCGSuspendttGridNameSetttGridNodeStatusパラメータ
ttGridNameSetには、次のパラメータがあります。
| パラメータ | データ型 | 説明 |
|---|---|---|
gridName |
TT_VARCHAR (30) |
プロシージャをコールするTimesTenデータベースを、gridNameで指定されたグリッドに関連付けます。 |
関連項目
ttGridAttachttGridCheckOwnerttGridCreatettGridDestroyttGridDetachttGridDetachAllttGridDetachListttGridGlobalCGResumettGridGlobalCGSuspendttGridNodeStatus説明
このプロシージャは、指定されたキャッシュ・グリッドのすべてのメンバーに関する情報を返します。グリッド名が指定されない場合、Oracle Databaseに関連付けられているすべてのキャッシュ・グリッドのすべてのメンバーに関する情報を表示します。
パラメータ
ttGridNodeStatusには、次のオプションのパラメータがあります。
| パラメータ | データ型 | 説明 |
|---|---|---|
gridName |
TT_VARCHAR (30) |
gridNameが指定された場合、指定されたグリッドのすべてのメンバーに関する情報が表示されます。指定されていない場合は、すべてのグリッドに関する情報が表示されます。 |
結果セット
ttGridNodeStatusは次の結果を返します。
| 列 | データ型 | 説明 |
|---|---|---|
gridName |
TT_VARCHAR (30) |
グリッドの名前。 |
nodeID |
TT_INTEGERNOT NULL |
グリッド・ノードの一意のID。 |
activeNode |
TT_INTEGERNOT NULL |
アクティブ・マスター・データベースまたはスタンドアロン・データベースが現在存在するノードの番号。 |
node1Attached |
CHAR (1) NOT NULL |
アクティブ・ノードがグリッドにアタッチされているかどうかを示します。
|
Host1 |
TT_VARCHAR (200) NOT NULL |
アクティブ・データベースが存在するホスト名。 |
memberName1 |
TT_VARCHAR (200) NOT NULL |
スタンドアロン・データベースまたはアクティブ・スタンバイ・データベースの一意のメンバー名。 |
IPaddr1 |
TT_VARCHAR (128) NOT NULL |
アクティブ・マスター・データベースまたはスタンドアロン・データベースが存在する場所のIPアドレス。 |
port1 |
TT_INTEGERNOT NULL |
アクティブ・マスター・データベースまたはスタンドアロン・データベースのキャッシュ・エージェント・プロセスのポート番号。 |
node2Attached |
CHAR (1) |
スタンバイ・ノードがグリッドにアタッチされているかどうかを示します。
|
host2 |
TT_VARCHAR (200) |
スタンバイ・マスター・データベースが存在するホスト名。 |
memberName2 |
TT_VARCHAR (200) |
スタンドアロン・データベースまたはアクティブ・スタンバイ・データベースの一意のメンバー名。 |
IPaddr2 |
TT_VARCHAR (128) |
スタンバイ・マスター・データベースが存在するIPアドレス。 |
port2 |
TT_INTEGER |
スタンバイ・マスター・データベースのキャッシュ・エージェント・プロセスのポート番号。 |
スタンドアロン・データベースのグリッド・メンバーの場合、結果セットに表示される列数はアクティブ・スタンバイ・ペアのメンバーよりも少なくなります。
例
ttgridがデータベースの唯一のキャッシュ・グリッドの場合、そのメンバーに関する情報を表示するには、次のように実行します。
Command> call ttGridNodeStatus; < TTGRID, 1, 1, T, sys1, TTGRID_alone1_1, 140.87.0.201, 5001, <NULL>, <NULL>,<NULL>, <NULL>, <NULL> > < TTGRID, 2, 1, T, sys2, TTGRID_alone2_2, 140.87.0.202, 5002, <NULL>, <NULL>,<NULL>, <NULL>, <NULL> > < TTGRID, 3, 1, T, sys3, TTGRID_cacheact_3A, 140.87.0.203, 5003, T, sys4, TTGRID_cachestand_3B, 140.87.0.204, 5004 >
関連項目
ttGridAttachttGridCheckOwnerttGridCreatettGridDestroyttGridDetachttGridDetachAllttGridDetachListttGridGlobalCGResumettGridGlobalCGSuspendttGridNameSet説明
このプロシージャは、現在のローカル・ホスト名を返します。戻り値は、現在のセッションでのみ有効です。システム全体に対する設定ではなく、現在のセッションが切断された後は無効になります。
スキーム内の特定のストア名が現在のホストを参照しているかどうかを確認する場合に、このプロシージャを使用します。これは、レプリケーション・スキームを構成する際に便利です。
説明
このプロシージャは、現在のデータベースのデフォルトのローカル・ホスト名を指定します。この値は、現在のセッションのみで使用される値であり、システム全体に対する設定値ではなく、現在のセッションの接続が切断されると無効になります。
マスター/サブスクライバの関係およびレプリケーション・オブジェクトのアクセス権を正しく構成するには、スクリプトが現在実行されているコンピュータをレプリケーション・スキームで使用されるホスト名が参照しているかどうかを、レプリケーションDDLのプロセスで判断できることが必要です。このプロシージャを使用すると、現在のホスト名を確立する必要があるときにはいつでも、レプリケーションDDLのプロセスが使用する現在のセッションのデフォルト・ホスト名をアプリケーションから設定できるようになります。
パラメータ
ttHostNameSetには、次のパラメータがあります。
| パラメータ | データ型 | 説明 |
|---|---|---|
hostName |
TT_VARCHAR (200) |
ローカル・コンピュータの必要なデフォルト名。デフォルト値をクリアするには、NULLを指定します。 |
説明
このプロシージャは現在の接続または現在のデータベースの既存の取得データを削除します。そのレベルのttIndexAdviceCaptureOutputへの後続のコールは行を返しません。
このプロシージャおよびこれに関連するプロシージャをIndex Advisorと呼びます。これらのプロシージャの使用法の詳細は、『Oracle TimesTen In-Memory Databaseオペレーション・ガイド』の索引を推奨するためのIndex Advisorの使用に関する説明を参照してください。
パラメータ
ttIndexAdviceCaptureDropには次のオプション・パラメータがあります。
| パラメータ | データ型 | 説明 |
|---|---|---|
captureLevel |
TT_INTEGER |
取得レベルの有効な値は次のとおりです。
|
注意
接続レベルの取得とデータベース・レベルの取得の両方を削除するには、コマンドを2回呼び出します(それぞれの取得レベルについて1回ずつ)。
削除を試行しているレベルで取得が進行中にこのコマンドをコールすると、エラーになります。
関連項目
ttIndexAdviceCaptureEndttIndexAdviceCaptureInfoGetttIndexAdviceCaptureOutputttIndexAdviceCaptureStart説明
このプロシージャは現在の接続のアクティブな接続レベルの取得またはアクティブなデータベース・レベルの取得のいずれかを終了します。
このプロシージャおよびこれに関連するプロシージャをIndex Advisorと呼びます。これらのプロシージャの使用法の詳細は、『Oracle TimesTen In-Memory Databaseオペレーション・ガイド』の索引を推奨するためのIndex Advisorの使用に関する説明を参照してください。
パラメータ
ttIndexAdviceCaptureEndには次のオプション・パラメータがあります。
| パラメータ | データ型 | 説明 |
|---|---|---|
captureLevel |
TT_INTEGER |
取得レベルの有効な値は次のとおりです。
|
注意
接続レベルの取得とデータベース・レベルの取得の両方を終了するには、コマンドを2回呼び出します(それぞれの収集レベルについて1回ずつ)。
最初にttIndexAdviceCaptureStartプロシージャをコールして、指定したレベルで取得を開始せずにこのプロシージャをコールすると、エラーになります。
関連項目
ttIndexAdviceCaptureDropttIndexAdviceCaptureInfoGetttIndexAdviceCaptureOutputttIndexAdviceCaptureStart説明
このプロシージャはアクティブな取得に対して行を返します。取得は、索引アドバイス取得を開始した場合、または索引アドバイス取得は中止したが取得データがまだ使用可能な場合は、アクティブです。
接続レベルの取得が存在する場合、1行が接続レベルの取得に関連します。データベース・レベルの取得が存在する場合は、別の行がデータベース・レベルの取得に関連します。最大で、1つの接続レベルの取得と1つのデータベース・レベルの取得が存在します。
進行中の取得がなく、データが存在しない場合、このプロシージャは行を返しません。
このプロシージャおよびこれに関連するプロシージャをIndex Advisorと呼びます。これらのプロシージャの使用法の詳細は、『Oracle TimesTen In-Memory Databaseオペレーション・ガイド』の索引を推奨するためのIndex Advisorの使用に関する説明を参照してください。
結果セット
ttIndexAdviceCaptureInfoGetは次の結果セットを返します。
| 列 | データ型 | 説明 |
|---|---|---|
captureState |
TT_INTEGERNOT NULL |
取得の状態は次のとおりです。
|
connID |
TT_INTEGER |
最後の取得、または現在進行中の取得がある場合はその取得を開始した接続の接続ID。
取得が開始されていない場合には、この行は返されません。 |
captureLevel |
TT_INTEGER |
一番新しい取得のレベル。
取得が開始されていない場合には、この行は返されません。 |
captureMode |
TT_INTEGER |
一番新しい取得のモード。
取得が開始されていない場合には、この行は返されません。 |
numPrepared |
TT_INTEGER |
取得期間に準備された文の数。
開始された取得がない場合、この値は |
numExecuted |
TT_INTEGER |
取得期間に実行された文の数。
開始された取得がない場合、この値は |
captureStartTime |
TT_TIMESTAMP |
取得期間の開始時のタイム・スタンプ。
取得が開始されていない場合には、この行は返されません。 |
captureEndTime |
TT_TIMESTAMP |
取得期間の終了時のタイム・スタンプ。
取得が進行中でない場合、この値は |
例
この例は、363の作成済の文および369の実行された文に対する、完了した接続レベルの取得の取得情報を示しています。
Command> CALL ttIndexAdviceCaptureInfoGet(); < 0, 1, 0, 0, 363, 369, 2012-07-27 11:44:08.136833, 2012-07-27 12:07:35.410993 > 1 row found.
関連項目
ttIndexAdviceCaptureDropttIndexAdviceCaptureEndttIndexAdviceCaptureOutputttIndexAdviceCaptureStart説明
この組込みプロシージャは、指定したレベルで最後に記録された取得の索引の推奨リストを返します。また、推奨された索引を作成するための実行可能CREATE INDEX SQL文も返します。
このプロシージャおよびこれに関連するプロシージャをIndex Advisorと呼びます。これらのプロシージャの使用法の詳細は、『Oracle TimesTen In-Memory Databaseオペレーション・ガイド』の索引を推奨するためのIndex Advisorの使用に関する説明を参照してください。
接続レベルの取得の場合は、その取得が開始された接続と同じ接続でこのプロシージャを実行します。データベース・レベルの取得の場合は、ADMIN権限のある接続でこのプロシージャを実行します。
パラメータ
ttIndexAdviceCaptureOutputには、次のパラメータがあります。
| パラメータ | データ型 | 説明 |
|---|---|---|
captureLevel |
TT_INTEGER |
取得レベルの有効な値は次のとおりです。
|
結果セット
ttIndexAdviceCaptureOutputは次の結果セットを返します。
| 列 | データ型 | 説明 |
|---|---|---|
stmtCount |
TT_INTEGER |
この索引が存在していた場合はその索引を利用した可能性がある、取得ワークロードでの文の数。 |
createStmt |
TT_VARCHAR (8300) NOT NULL |
推奨された索引を作成できる実行可能文。 |
例
次の例は、HR.PURCHASE表のPURCHASE_i1と呼ばれる索引のCREATE INDEX文を示しています。このSQLワークロードの索引を利用する可能性のある文は、4つ、別々にあります。
CALL ttIndexAdviceCaptureOutput(); < 4, create index PURCHASE_i1 on HR.PURCHASE(AMOUNT); > 1 row found.
関連項目
ttIndexAdviceCaptureDropttIndexAdviceCaptureEndttIndexAdviceCaptureInfoGetttIndexAdviceCaptureStart説明
このプロシージャは索引アドバイス取得を有効化します。このプロシージャをコールする前に、ttOptEstimateStatsを使用して統計を更新し、'invalidate'パラメータを'yes'に設定することをお薦めします。この方法で統計を更新することにより、統計を最新の状態にしておくことができ、取得中に文を強制的に再作成できます。かわりに、統計を既知の値に設定するには、'invalidate'パラメータを'yes'に設定してttOptSetTblStatsをコールします。
このプロシージャおよびこれに関連するプロシージャをIndex Advisorと呼びます。これらのプロシージャの使用法の詳細は、『Oracle TimesTen In-Memory Databaseオペレーション・ガイド』の索引を推奨するためのIndex Advisorの使用に関する説明を参照してください。
パラメータ
ttIndexAdviceCaptureStartには、次のオプションのパラメータがあります。
| パラメータ | データ型 | 説明 |
|---|---|---|
captureLevel |
TT_INTEGER |
取得レベルの有効な値は次のとおりです。
|
captureMode |
TT_INTEGER |
取得モードの有効な値は次のとおりです。
|
注意
索引アドバイスがcaptureLevelパラメータで指定されたレベルで、またはレベルが指定されていない場合には接続レベルですでに取得されている場合に、このプロシージャをコールするとエラーになります。接続レベルの取得は、競合せずに独立した接続で並行的に実行できます。データベース・レベルの取得の開始時に、残っている進行中の接続レベルの取得は予定どおりに終了します。
関連項目
ttIndexAdviceCaptureDropttIndexAdviceCaptureEndttIndexAdviceCaptureInfoGetttIndexAdviceCaptureOutput説明
このプロシージャはTimesTenの表名、Oracle SELECT文、およびパラレル・ロードのスレッド数をとります。Oracle Database表に対して問合せを実行し、指定したTimesTen表に結果セットをロードします。
Oracle DatabaseからTimesTenの表にデータをロードする際、キャラクタ・セットの変換は行われません。TimesTenデータベースとOracle Databaseは同じキャラクタ・セットを使用する必要があります。
このプロシージャでは接続属性UID、接続属性OraclePWDおよび接続属性OracleNetServiceNameを指定する必要があります。このプロシージャをコールした後に、コミットする必要があります。
詳細と使用法の情報については、『Oracle TimesTen In-Memory Databaseオペレーション・ガイド』のOracle DatabaseからTimesTen表へのデータのロードに関する説明を参照してください。
パラメータ
ttLoadFromOracleには、次のパラメータがあります。
| パラメータ | データ型 | 説明 |
|---|---|---|
tblOwner |
TT_CHAR (30) |
TimesTen表の所有者(オプション)。指定しない場合は、接続IDが使用されます。 |
tblName |
TT_CHAR(30) NOT NULL |
Oracle Databaseからのデータがロードされる表の名前。表がまだない場合には、組込みプロシージャttTableSchemaFromOraQueryGetを使用して、表を作成するスキーマを取得できます。
指定するTimesTen表はシステム表、シノニム、ビュー、マテリアライズド・ビューまたはマテリアライズド・ビューの詳細表、グローバル一時表、キャッシュ・グループ表とすることはできません。 |
Query |
TT_VARCHAR (409600) NOT NULL |
表の列定義を導出する、Oracle Databaseに対するSELECT問合せ。
Oracle Databaseに対する問合せはパラメータ・バインディングを持つことができません。 |
numThreads |
TT_INTEGER |
パラレル・ロードのスレッド数(オプション)。NULLの場合は、デフォルトの4になります。
表のパラレル・ロードを指定します。同時にロードを実行するスレッドの数を指定します。1つのスレッドがOracleからのバルク・フェッチを実行し、他のスレッドがTimesTenへの挿入を実行します。各スレッドで独自の接続またはトランザクションが使用されます。 NumThreadsの最小値は2です。最大値は10です。10より大きい値を指定すると、TimesTenは値10を割り当てます。 |
例
次の例ではOracle DatabaseのHR.EMPLOYEES表から従業員に関する情報を選択し、それをTimesTen HR.EMPLOYEES表にロードしています。この例では、情報で107人の従業員が検出されました。
Command> CALL ttLoadFromOracle ('HR','EMPLOYEES',
'SELECT * FROM HR.EMPLOYEES');
< 107 >
1 row found.
注意
TimesTenはロードするまでは表を空にしません。ターゲット表には主キーが必要ありません。列タイプの不一致または列数の不一致により問合せの出力が表に変換できない場合、TimesTenはエラーを返します。TimesTen LOB列へのデータのロードはサポートされていません。Oracle Databaseに対する問合せにLOB出力がある場合、VAR型にマップされます。
ロード・プロセスでは、TimesTen表の列のデータ型とサイズが結果セットのデータ型とサイズに一致することを確認しません。かわりに、挿入が試行され、列のデータ型をマップできない場合、またはSQL問合せからのOracle DatabaseデータがTimesTenの列サイズを超える場合、TimesTenはエラーを返します。LOB列は4MBに切り捨てられます。
列を追加するために表を変更すると、セカンダリ・パーティションが追加されます。表への複数のパーティションのロードは、ttLoadFromOracleではサポートされていません。
説明
この接続の次のトランザクションとすべての後続トランザクションに対して、行レベルのロックとデータベース・レベルのロックでロック・レベルを変更します。アプリケーションでは、再度ttLockLevelを呼び出すことによって、再度ロック・レベルを変更できます。初期値は、LockLevel接続属性によって異なります。各種ロック・レベルの詳細は、「LockLevel」を参照してください。
パラメータ
ttLockLevelには、次のパラメータがあります。
| パラメータ | データ型 | 説明 |
|---|---|---|
lockLevel |
TT_CHAR(20) NOT NULL |
接続で使用するロック・レベル。 |
lockLevelの値は次の文字列のいずれかで、大文字と小文字は区別されません。
Row: 行レベル・ロックに設定します。
DS: データベース・レベル・ロックに設定します。
説明
このプロシージャは、アプリケーションで、現在の接続のロック・タイムアウト間隔を変更できるようにします。変更はただちに有効になり、現在のトランザクションでのすべての後続文および接続しているすべての後続トランザクションにも適用されます。
ロック待機時間は、ロックの競合が発生した際に待機する秒数です。秒の小数部も指定できます。
タイムアウトを検出するエージェントのスケジュールにより、ロック待機時間は不正確で、通常、最大100ミリ秒超過する場合があります。0(ゼロ)秒のタイムアウトの場合はこの不正確さは該当せず、タイムアウトはすぐにレポートされます。
キャッシュ・グリッドはロック待機時間とともにメッセージ待機時間を使用します。キャッシュ・グリッド使用時は、ロック待機時間は指定した値の約半分になります。アプリケーションでロック待機時間のすべてが必要な場合は、必要な秒数の2倍を指定します。
パラメータ
ttLockWaitには、次の必須のパラメータがあります。
| パラメータ | データ型 | 説明 |
|---|---|---|
seconds |
NUMBER (8,1) NOT NULL |
競合が発生した際にロックを待機する時間(秒)。秒の小数部も指定できます。有効な値は0.0から1000000.0の範囲です。 |
例
ロック待機を6秒に指定するには、次のように実行します。
CALL ttLockWait (6);
ロック待機を10分の1秒に指定するには、次のように実行します。
CALL ttLockWait (0.1);
説明
このプロシージャは、トランザクション・ログの保持に関する情報を返し、これには増分バックアップ、レプリケーション・ピア、アクティブ・スタンバイ・ペア(およびサブスクライバ)、AWTキャッシュ・グループ、永続XLAサブスクライバ、XA、長時間実行トランザクションおよびチェックポイントのかわりに作成されたログも含まれます。このプロシージャは、チェックポイント処理ですべての不要なトランザクション・ログ・ファイルが消去されていない可能性がある状況を診断する場合に役立ちます。
アプリケーションではログの保持とログ・ファイルの蓄積を監視する必要があります。詳細は、『Oracle TimesTen In-Memory Database開発者および管理者ガイド』のレプリケートされたログの保持の表示に関する説明および『Oracle TimesTen In-Memory Databaseオペレーション・ガイド』のトランザクション・ログ・ファイルの蓄積の監視に関する説明を参照してください。
結果セット
ttLogHoldsは次の結果セットを返します。
| 列 | データ型 | 説明 |
|---|---|---|
HoldLFN |
TT_INTEGERNOT NULL |
保持されているトランザクション・ログ・ファイルの番号を返します。 |
HoldLFO |
TT_BIGINTNOT NULL |
保持されているトランザクション・ログ・ファイルのオフセットを返します。 |
type |
TT_CHAR(30) NOT NULL |
保持されているログ・タイプを返します。次のいずれかです。
|
description |
TT_VARCHAR (1024) NOT NULL |
保持されたログ・タイプ固有のオブジェクトの説明です。それぞれの説明は、返されるタイプに対応しています。次のいずれかです。
|
例
CALL ttLogHolds(); < 0, 1148544, Long-Running XA Transaction , 0x1-476c6f62616c-5861637431 > < 0, 1149752, Long-Running Transaction, 4.2 > < 0, 1149992, Checkpoint , sample.ds1 > < 0, 1150168, Checkpoint , sample.ds0 >
次の例では、アクティブ・スタンバイ・ペアのレプリケーション・スキームに対するttLogHolds組込みプロシージャの出力を示します(アクティブ・マスターはmaster1、スタンバイ・マスターはmaster2、単一サブスクライバはsubscriber1です)。
Command> call ttLogHolds; < 0, 3569664, Checkpoint , master1.ds0 > < 0, 15742976, Checkpoint , master1.ds1 > < 0, 16351496, Replication , ADC6160529:SUBSCRIBER1 > < 0, 16351640, Replication , ADC6160529:MASTER2 > 4 rows found.
次の例では、Oracle DatabaseへのAWTキャッシュ・グループの非同期伝播の進行状況を示します。記述フィールドには、AWTキャッシュ・グループ伝播のトランザクション・ログの保持を識別するために「_ORACLE」が含まれます。
Command> call ttLogHolds(); < 0, 18958336, Checkpoint , cachealone1.ds0 > < 0, 19048448, Checkpoint , cachealone1.ds1 > < 0, 19050904, Replication , ADC6160529:_ORACLE > 3 rows found.
説明
このプロシージャは、指定した表の統計を消去します(これによって、TimesTen問合せオプティマイザで、表に関連する後続の問合せに対して、推測値またはデフォルト値が使用されるようになります)。このプロシージャは、統計が古い場合や、アプリケーションで組込みのデフォルト値を使用する場合に役立ちます。このプロシージャによって、指定した表に関連するシステム表TBL_STATSおよびCOL_STATSから、すべての行が削除されます。詳細は、『Oracle TimesTen In-Memory Databaseシステム表およびビュー・リファレンス』の「SYS.TBL_STATS」および「SYS.COL_STATS」を参照してください。
必要な権限
このプロシージャには、表の所有者の権限は必要ありません。tblNameが指定されていない場合、このプロシージャに権限は必要ありません(これは、tblNameが指定されていない場合、このプロシージャは現在のユーザーの表に対して操作を行うためです)。
ユーザーが表の所有者でない場合、このプロシージャにはALTER ANY TABLE権限が必要です。
パラメータ
ttOptClearStatsには、次のパラメータがあります。
| パラメータ | データ型 | 説明 |
|---|---|---|
tblName |
TT_CHAR (61) |
アプリケーション表の名前。表の所有者を含めることができます。tblNameが空の文字列であるか指定されていない場合、データベース内の現在のユーザーが所有するすべての表で統計が消去されます。
表名の指定にシノニムは使用できません。 |
invalidate |
TT_INTEGER |
0(no)または1(yes)。デフォルトは0です。
|
説明
依存コマンドが再度呼び出された場合、この組込みプロシージャは、再コンパイルを強制するか、キャッシュからそのコマンドを削除します(ユーザーは再度それを準備する必要があります)。
このプロシージャは、次のような場合にコールします。
すべての必要な統計を収集した後。
表のカーディナリティが大幅に変更された場合。
コマンドは、プロシージャによって再コンパイルが必要または無効としてマークされます。
コマンドの実行を停止するオプションはありません。
パラメータ
ttOptCmdCacheInvalidateには、次のパラメータがあります。
| パラメータ | データ型 | 説明 |
|---|---|---|
tblname |
TT_CHAR(61) |
依存コマンドを無効化または再コンパイルする必要のある表の名前。 |
invalidate |
TT_INTEGER |
依存コマンドを強制的に再コンパイルまたは無効化します。
|
説明
ttOptEstimateStatsプロシージャは、指定した表の統計を更新します。このプロシージャは、指定した表内の行をランダムにサンプリングすることによって統計を推定します。サンプルのサイズは、指定した行の数(sampleStrの形式がn ROWSの場合)または、行の総数の割合(sampleStrの形式がp PERCENTの場合)です。
tblNameが指定されていない場合、このプロシージャは現在のユーザーのすべての表に対して操作されます。
必要な権限
ユーザーが表の所有者である場合、またはtblNameが指定されていない場合、このプロシージャに権限は必要ありません。ユーザーが表の所有者でない場合、このプロシージャにはALTER ANY TABLE権限が必要です。
パラメータ
ttOptEstimateStatsには、次のパラメータがあります。
| パラメータ | データ型 | 説明 |
|---|---|---|
tblName |
TT_CHAR(61) |
アプリケーション表の名前。表の所有者を含めることができます。tblNameが空の文字列の場合、データベース内の現在のユーザーが所有するすべての表で統計が推定されます。
表名の指定にシノニムは使用できません。 |
invalidate |
TT_INTEGER |
0(いいえ)または1(はい)。invalidateが1の場合、他のユーザーが準備したコマンドを含む、影響を受ける表を参照するすべてのコマンドは、再実行時に自動的に再準備されます。invalidateが0の場合、統計は変更されたとはみなされず、既存のコマンドは再準備されません。
|
sampleStr |
TT_VARCHAR (255) NOT NULL |
n ROWSという形式の文字列(nは0(ゼロ)より大きい整数)、またはp PERCENTという形式の文字列(pは0.0から100.0の間の浮動小数点)。 |
例
CALL ttOptEstimateStats ( 'ACCTS', 1, '5 PERCENT' ); CALL ttOptEstimateStats ( 'ACCTS', 1, '75 ROWS' );
注意
TimesTenの統計には、各表の行数、各列の一意の値の数、各列の最大値および最小値が含まれます。TimesTenでは、列の値の配分は均一であると想定しています。
このプロシージャは、表の行の50%より少ないサンプルで実行した場合にのみ、ttOptUpdateStatsよりも高速で実行されます。
2,048バイトを超える列の場合、推定は行われず、これらの列の統計は更新されません。2,048バイトを超える列の統計を更新するには、ttOptUpdateStats組込みプロシージャを使用します。可変長列の場合、このプロシージャによって更新されるのは、列の最大長が2,048バイト以下である場合の統計のみです。
sampleStrパラメータに非常に小さな値を選択した場合、このプロシージャは高速に実行されますが、実行計画は最適にはならない可能性があります。計画の正確性を低下させることなく、統計の計算を高速に実行し、適切なデータ分布を得るには、10%程度の選択が適しています。指定した行の数が十分であるか、または対象となる表が十分に小さい場合、TimesTenはパフォーマンスを向上させるために、長さが2,048バイト以下のすべての列に対して、正確な統計を計算します。たとえば、次の2つの相違点として、
ttOptEstimateStats ('ACCTS', 1, '100 PERCENT' )
と
ttOptUpdateStats( 'ACCTS', 1 )
前者が長い列の統計を計算しないということのみです。
統計は、システム表TBL_STATSおよびCOL_STATSに格納されます。
パフォーマンス上の理由から、ttOptEstimateStatsでは、統計が計算される際に表または行のロックは保持されません。統計の計算をそのように行った場合でも、パフォーマンスが低下する可能性があります。統計は、正確に計算するよりも推定した方が一般にパフォーマンスは向上します。
システム表を更新する権限がある場合、空の表リストを指定して統計を見積もり、または更新すると、システム表の統計も更新されます。
パラメータ
ttOptGetColStatsには、次のパラメータがあります。
| パラメータ | データ型 | 説明 |
|---|---|---|
tblName |
TT_CHAR (61) |
統計情報が返される表の名前です。NULLが渡された場合、すべての表の値が返されます。
表名の指定にシノニムは使用できません。 |
colName |
TT_CHAR (30) |
統計が返される列の名前です。NULLが渡された場合、指定された表のすべての列の統計が返されます。 |
結果セット
ttOptGetColStatsは次の結果セットを返します。
| 列 | データ型 | 説明 |
|---|---|---|
tblName |
TT_CHAR (30) |
表の名前。
表名の指定にシノニムは使用できません。 |
colName |
TT_CHAR (30) |
列の名前。 |
stats |
TT_VARCHAR (409600) NOT NULL |
テキスト形式の統計。 |
説明
このプロシージャは、現在のトランザクションのオプティマイザ・フラグの設定を返します。結果はSQL SELECT文の結果と同様に、ODBC SQLFetch関数またはJDBC ResultSet.getXXX()メソッドを使用して取得できる結果セットとして返されます。アプリケーションはttOptGetFlagにフラグ名を渡すことによって、特定のオプティマイザ・フラグの値をリクエストできます。また、NULLを渡すことによって、すべてのオプティマイザ・フラグの値をリクエストすることもできます。オプティマイザ・フラグとそれらの意味については、ttOptSetFlag組込みプロシージャで説明します。
パラメータ
ttOptGetFlagには、次のパラメータがあります。
| パラメータ | データ型 | 説明 |
|---|---|---|
flagName |
TT_CHAR (32) |
値が返されるフラグの名前です。NULLを渡した場合、すべてのフラグの値が返されます。 |
結果セット
ttOptGetFlagは次の結果セットを返します。
| 列 | データ型 | 説明 |
|---|---|---|
flagName |
TT_VARCHAR (32) NOT NULL |
フラグの名前。有効なフラグの値については、「ttOptSetFlag」を参照してください。 |
value |
TT_INTEGERNOT NULL |
現在のフラグ値(0または1)。 |
説明
このプロシージャは、コンパイル済SQLコマンド・キャッシュの空きリストのサイズを返します。キャッシュ・サイズをリセットするには、マテリアライズド・ビューについてはttOptSetMaxPriCmdFreeListCntを使用し、通常の表についてはttOptSetMaxCmdFreeListCntを使用します。
説明
このプロシージャは、現在のトランザクションの結合順序を含む、単一行の結果セットを返します。この結果セットは、SQL SELECT文の結果と同様に、ODBC SQLFetch関数またはJDBC ResultSet.getXXX()メソッドを使用して取得できます。結合順序については、ttOptSetOrder組込みプロシージャで説明します。
説明
このプロシージャは、時間隔情報を含む、指定した列の統計を変更します。このプロシージャを使用すると、TimesTenが自動的に統計を計算するのではなく、アプリケーションによって統計を手動で設定できます。この機能は、データが挿入される前にコマンドを準備したり、表の特性が実行計画の選択に与える影響を調べる場合に役立ちます。このプロシージャによって、COL_STATSシステム表の関連する行が変更されます。現在索引付けされていない列に対する時間隔統計の変更は無効です。
このプロシージャは表にデータが存在する前から使用できるため、基本的な妥当性チェックは実行されますが、指定する値は実際の値とは関係のないものでもかまいません。
パラメータ
ttOptSetColIntvlStatsには、次のパラメータがあります。
| パラメータ | データ型 | 説明 |
|---|---|---|
tblName |
TT_CHAR (61) NOT NULL |
アプリケーション表の名前。表の所有者を含めることができます。表名の指定にシノニムは使用できません。 |
colName |
TT_CHAR (30) NOT NULL |
その表内の列の名前。 |
invalidate |
TT_INTEGER |
0(no)または1(yes)。invalidateが1の場合、影響を受ける表を参照するすべてのコマンドは、再実行時に自動的に再準備されます。このようなコマンドには、他のユーザーが準備したコマンドが含まれます。invalidateが0の場合、統計は変更されたとはみなされず、既存のコマンドは再準備されません。 |
stats |
VARBINARY (409600) NOT NULL |
次の形式を使用して、列のstatsを設定します。
モーダル値( このパラメータは複合構造であるため、ODBC関数を使用してパラメータ化することも、 |
例
列t1.x1に次のような統計を設定します。
2つの時間隔
整数型
10行のNULL値
10の一意値
100行
時間隔1(最も頻繁に出現する値の他に4つの一意値、最も頻繁に出現する値以外の値を持つ40の行、最も頻繁に出現する値を持つ10の行、min = 1、max = 10、mod = 5)
時間隔2(最も頻繁に出現する値の他に4つの一意値、最も頻繁に出現する値以外の値を持つ20の行、最も頻繁に出現する値を持つ20の行、min = 11、max = 20、mod = 15)
この場合、次の文を実行します。
CALL ttOptSetColIntvlStats('t1', 'x1', 1, (2, 10, 10, 100,
(4, 40, 10, 1, 10, 5), (4, 20, 20, 11, 20, 15)));
説明
このプロシージャは、指定した列の統計を変更します。このプロシージャを使用すると、TimesTenが自動的に統計を計算するのではなく、アプリケーションによって統計を手動で設定できます。この機能は、データが挿入される前にコマンドを準備したり、表の特性が実行計画の選択に与える影響を調べる場合に役立ちます。このプロシージャによって、COL_STATSシステム表の関連する行が変更されます。
このプロシージャは表にデータが移入される前から使用できるため、基本的な妥当性チェックは実行されますが、指定する値は実際の値とは関係のないものでもかまいません。
パラメータ
ttOptSetColStatsには、次のパラメータがあります。
| パラメータ | データ型 | 説明 |
|---|---|---|
tblName |
TT_CHAR (61) NOT NULL |
アプリケーション表の名前。表の所有者を含めることができます。
表名の指定にシノニムは使用できません。 |
colName |
TT_CHAR (30) NOT NULL |
その表内の列の名前。 |
num_Uniq |
TT_INTEGERNOT NULL |
列内の一意値の数。 |
minVal |
VARBINARY(1024) NOT NULL |
列内の最小値(切り捨てられる可能性あり)。 |
maxVal |
VARBINARY(1024) NOT NULL |
列内の最大値(切り捨てられる可能性あり)。 |
invalidate |
TT_INTEGER |
0(no)または1(yes)。invalidateが1の場合、影響を受ける表を参照するすべてのコマンドは、再実行時に自動的に再準備されます。このようなコマンドには、他のユーザーが準備したコマンドが含まれます。invalidateが0の場合、統計は変更されたとはみなされず、既存のコマンドは再準備されません。 |
num_Null |
TT_INTEGER |
列のNULLの総数を指定します。 |
説明
このプロシージャは、アプリケーションで、TimesTen問合せオプティマイザによる実行計画の生成を変更できるようにします。フラグを設定して、様々なアクセス方法の使用を有効または無効にします。このコールによって加えられた変更は、文を準備するときに有効になり、それ以降に現在のトランザクションで実行される、ODBC関数SQLPrepareおよびSQLExecDirectへのすべてのコール、またはJDBCメソッドConnection.prepareCallおよびStatement.executeへのすべてのコールが影響を受けます。オプティマイザのすべてのフラグは、トランザクションがコミットまたはロールバックされた時点でそれぞれのデフォルト値にリセットされます。AutoCommitがオンのときにオプティマイザ・フラグセットされた場合、それらは無視されます。
パラメータ
ttOptSetFlagには、次のパラメータがあります。
| パラメータ | データ型 | 説明 |
|---|---|---|
optFlag |
TT_CHAR (32) NOT NULL |
オプティマイザ・フラグの名前。 |
optVal |
TT_INTEGERNOT NULL |
オプティマイザ・フラグの値。次の「オプティマイザ・フラグ」に記載されている場合を除き、通常、値は0(無効/禁止)または1(有効/許可)です。 |
オプティマイザ・フラグ
オプティマイザ・フラグを設定する場合は、次の文字列を使用します。大文字と小文字は区別されません。
さらに文字列AllFlagsをすべてのオプティマイザ・フラグを参照するために使用し、文字列Defaultをデフォルトのフラグを参照するために使用できます。Defaultには、GenPlanフラグ以外のすべてのオプティマイザ・フラグが含まれます。
フラグの説明
各フラグの値は1または0です。
1の場合、処理は有効
0の場合、必要時以外、処理は無効
GenPlan以外のすべての初期フラグ値は1です(すべての処理が許可されます)。
たとえば、アプリケーションで、中間結果を格納する計画をオプティマイザが選択できないようにできます。
ttOptSetFlag ( 'TmpTable', 0 )
同様に、アプリケーションでMergeJoinのプリファレンスを指定できます。
ttOptSetFlag ( 'MergeJoin', 0 )
2つ目の例では、マージ結合が不可能な場合(たとえば、マージ結合条件がない場合)、オプティマイザはネステッド・ループ・ジョインを選択できます。同様に、オプティマイザが、表スキャンを回避するアプリケーション・リクエストを満たすことができない場合もあります(Scanフラグが0に設定されている場合)。
特定の処理が特定の計画手順で禁止されると指定すること、または特定の2つの表では必ず特定の結合方法が使用されると指定することはできません。同様に、特定の索引が使用されると指定すること、または特定の条件を評価するためにハッシュ索引が使用されると指定することもできません。各処理は、完全に許可されているか、完全に制限されているかのいずれかです。
コマンドが準備されている場合は、現在のオプティマイザ・フラグ、索引ヒントおよび結合順序はコマンドのコンパイル済形式の構造で保持され、システムによってそのコマンドが再準備されるときに使用されます。再準備された文の例については、『Oracle TimesTen In-Memory Databaseオペレーション・ガイド』のTimesTen問合せオプティマイザに関する説明を参照してください。
RowLock およびTblLockの両方が無効な場合、TimesTenでは行ロックが使用されます。RowLockおよびTblLockの両方が有効な場合、TimesTenでは、パフォーマンスがより高い方のロック・スキームが使用されます。
| TblLockの状態 | RowLockの状態 | オプティマイザへの影響 |
|---|---|---|
| 無効 | 無効 | 行レベル・ロックの使用。 |
| 有効 | 無効 | 表レベル・ロックの使用。 |
| 無効 | 有効 | 行レベル・ロックの使用。 |
| 有効 | 有効 | 行レベル・ロックまたは表レベル・ロックをオプティマイザが選択します。 |
通常、問合せによって表の行の重要な部分がアクセスされる場合、またはその表に同時アクセスしているトランザクションの数が非常に少ない場合に、表レベル・ロックは有効です。
説明
このプロシージャは、通常の表に対するコンパイル済SQLコマンドの空きリストの最大カウントを設定します。現在の設定値を取得するには、ttOptGetMaxCmdFreeListCntプロシージャを使用します。
説明
このプロシージャは、マテリアライズド・ビューのメンテナンスを実行するコンパイル済SQLコマンドの空きリストの最大カウントを設定します。
このコマンドを設定すると、解放可能なコンパイル済マテリアライズド・ビュー・コマンドは通常の表とは別にカウントされます。このコマンドを設定しない場合、コンパイル済マテリアライズド・ビュー・コマンドは通常のコマンドとしてカウントされます。
説明
このプロシージャは、オプティマイザが表を結合する順序を指定します。文字列は、カンマではなく空白で区切られた表名または表の相関名のリストで、問合せまたは副問合せで参照されます。最初にリストされている表が、計画によって最初にスキャンされます。たとえば、ネステッド・ループ結合では一番外側になります。相関名は、修飾された表名のショートカットまたは別名です。この組込みプロシージャの実行中は、AutoCommitをOFFに設定する必要があります。
パラメータ
ttOptSetOrderには、次の必須のパラメータがあります。
| パラメータ | データ型 | 説明 |
|---|---|---|
join_Order |
TT_VARCHAR(1024) |
空白で区切られた表名または表相関名のリスト。表名を区別するために所有者が必要な場合は、表相関名を使用します。joinOrderを指定しない場合、問合せオプティマイザの動作はデフォルトに戻ります。 |
例
CALL ttOptSetOrder ('EMPS DEPTS ACCTS');
アプリケーションが次のコールを実行するとします。
call ttOptSetOrder('ORDERS CUSTOMERS');
オプティマイザは、1つ以上の未出荷注文を持つすべての顧客を表示する次の問合せを評価する際に、CUSTOMERSをスキャンする前に、ORDERS表をスキャンします。
SELECT CUSTOMERS.NAME
FROM CUSTOMERS
WHERE EXISTS (SELECT 1
FROM ORDERS
WHERE CUSTOMERS.ID = ORDERS.CUSTID
AND ORDER.STATUS ='UN-SHIPPED');
アプリケーションが次のコールを実行するとします。
ttOptSetOrder('DEPTS EMPS ACCTS');
オプティマイザは、特定のアカウントで働いている従業員の数を評価する際に、DEPTSとACCTSの間で結合を実行することはできません。
SELECT COUNT(DISTINCT EMPS.ID) FROM ACCTS, DEPTS, EMPS WHERE ACCTS.DEPTS = DEPTS.ID AND EMPS.DEPTS = DEPTS.ID AND ACCTS.NUM = :AcctNum
アプリケーションで、結合順序をリセットせずに、3つの各表を参照しないコマンドを準備しようとすると、オプティマイザによって警告番号965が発行されます。指定した結合順序は適用されません。TimesTenでは、コマンドが準備される際、有効な結合順序が考慮され、指定した結合順序は無視されます。
注意
結合順序では、導出された表の別名はサポートされていません。表の別名を指定すると、TimesTenによって、その順序は適用できないことを示す警告メッセージ965が返されます。
文字列の長さは1,024バイトに制限されています。文字列がこの長さを超えると、切り捨てられ、警告が発行されます。
副問合せで参照される相関名が結合順序に含まれていると、TimesTenでは、内部的に分離モードに切り替えられます。
コマンドが準備されている場合は、現在のオプティマイザ・フラグ、索引ヒントおよび結合順序はコマンドのコンパイル済形式の構造で保持され、システムによってそのコマンドが再準備されるときに使用されます。再準備された文の例については、『Oracle TimesTen In-Memory Databaseオペレーション・ガイド』のTimesTen問合せオプティマイザに関する説明を参照してください。
このコールによって加えられた変更はただちに有効になり、現在のトランザクションでのODBC関数SQLPrepareまたはJDBCメソッドConnection.prepareCallへの後続のすべてのコールに影響します。後続のトランザクションに備えて、問合せオプティマイザの動作はデフォルトに戻ります。
結合順序を使用する場合、問合せによって参照される表の名前は、指定した名前と厳密に一致している必要があります(比較では大文字と小文字が区別されません)。部分的な順序を指定するメカニズムはないため、完全な順序を指定する必要があります。問合せに副問合せがある場合、結合順序は副問合せの中の相関名も参照する必要があります。つまり、結合順序は問合せの中のすべての相関名を参照する必要があります。TimesTenオプティマイザは、GROUP BYを使用して、特別な種類の結合問合せとして副問合せを内部的に実装します。結合順序を適用可能にするには、すべての相関名を参照する必要があります。矛盾がある場合はTimesTenでは警告が発行され、指定した結合順序は完全に無視されます。
結合の順序は、特定のSQL文の中で文レベル・オプティマイザ・ヒントを使用して設定することもできます。詳細は、『Oracle TimesTen In-Memory Database SQLリファレンス・ガイド』の文レベル・オプティマイザ・ヒントに関する説明を参照してください。特にヒントの各スタイルの動作を理解するには、文レベルとトランザクション・レベルのオプティマイザ・ヒントの違いに関する説明を参照してください。
パラメータ
ttOptSetTblStatsには、次のパラメータがあります。
| パラメータ | データ型 | 説明 |
|---|---|---|
tblName |
TT_CHAR (61) NOT NULL |
アプリケーション表の名前。表の所有者を含めることができます。
表名の指定にシノニムは使用できません。 |
num_Rows |
TT_INTEGERNOT NULL |
表の行数。 |
invalidate |
TT_INTEGER |
0(no)または1(yes)。invalidateが1の場合、他のユーザーが準備したコマンドを含む、影響を受ける表を参照するすべてのコマンドは、再実行時に自動的に再準備されます。invalidateが0の場合、統計は変更されたとはみなされず、既存のコマンドは再準備されません。 |
説明
このプロシージャは、現在のトランザクションで最後に準備または実行されたSQL文(SELECT、UPDATE、DELETEおよびINSERT SELECT)の結合順序を返します。結合順序を収集するには、同じトランザクションで、まずttOptSetFlag('ShowJoinOrder', 1)を使用するか、ttIsqlのShowJoinOrderコマンドをON (1)に設定します。これらのコマンドのいずれかを使用するときは、AUTOCOMMITをオフにしておいてください。結合順序は、表の名前の順序によって表されます。
結果セット
ttOptShowJoinOrderは次の結果を返します。
| 列 | データ型 | 説明 |
|---|---|---|
joinOrder |
TT VARCHAR (4096) NOT NULL |
表名(指定されている場合は、所有者名の修飾子および各表の相関名が含まれます)。表名は、カッコで囲まれて返されます。
表名の指定にシノニムは使用できません。 |
例
>AUTOCOMMIT 0;
> CALL ttOptSetFlag ('ShowJoinOrder', 1);
>PREPARE SELECT * FROM t1;
>CALL ttOptShowJoinOrder();
>( T1 )
注意
このプロシージャを使用する前に、ttOptSetFlag('ShowJoinOrder', 1)をコールするか、ttIsqlのShowJoinOrderコマンドをON (1)に設定する必要があります。
このプロシージャは、1つのトランザクション内で正しく動作します。複数のトランザクション間では正しく動作しません。
説明
このプロシージャは、表の統計を現在の状態にリストアするために必要な一連の文を返します。表が指定されていない場合は、コールするユーザーがアクセス権を持つすべてのユーザー表の表統計をリストアするために必要な一連の文を返します。
パラメータ
ttOptStatsExportには次のパラメータがあります。
| パラメータ | データ型 | 説明 |
|---|---|---|
tblName |
TT_CHAR(61) NOT NULL |
統計情報が返される表の名前です。NULLが渡された場合、すべての表の値が返されます。
表名の指定にシノニムは使用できません。 |
説明
このプロシージャは、指定した表の統計を更新します。TimesTenは表に格納されているデータを参照して、システム表TBL_STATSおよびCOL_STATSを更新します。表が大きい場合、このプロセスには多少時間がかかる可能性があります。行が更新されても統計は自動的に計算されないため、このプロシージャをコールすることによって、アプリケーションで明示的に統計を計算する必要があります。
tblNameが指定されていない場合、このプロシージャは現在のユーザーのすべての表に対して操作されます。
必要な権限
ユーザーが表の所有者である場合、またはtblNameが指定されていない場合、このプロシージャに権限は必要ありません。ユーザーが表の所有者でない場合、このプロシージャにはALTER ANY TABLE権限が必要です。
パラメータ
ttOptUpdateStatsには、次のパラメータがあります。
| パラメータ | データ型 | 説明 |
|---|---|---|
tblName |
TT_CHAR(61) |
アプリケーション表の名前。表の所有者を含めることができます。NULLまたは空の文字列を値として指定すると、現在のユーザーのすべての表の統計が更新されます。
表名の指定にシノニムは使用できません。 |
invalidate |
TT_INTEGER |
0(いいえ)または1(はい)。invalidateが1の場合、ALTER TABLE DROP TABLE文とALTER TABLE ADD COLUMN FOR SELECT * FROM TABLE文以外のすべてのコマンドが、次の実行時に再準備するようにマークされます。これらの例外については、手動で再準備する必要があります。invalidateが0の場合、統計は変更されたとはみなされず、既存のコマンドは再準備されません。
|
option |
TT_INTEGER |
完全な時間隔の統計情報の収集をするかどうかを指定します。このオプションに有効な値は、次のとおりです。
1 - 完全な時間隔統計を収集しません。単一の時間隔統計のみが収集されます。
詳細は、次の注意を参照してください。 |
例
CALL ttOptUpdateStats ( 'ACCTS', 1 );
ACCTS表を更新し、ACCTS表を参照するすべてのコマンドを次回の実行時に再準備します。
CALL ttOptUpdateStats('', 1);
現在のユーザーのすべての表を更新し、その表に対するコマンドを次回の実行時に再準備します。
CALL ttOptUpdateStats('ACCTS', 0, 1);
単一の時間隔統計を収集します。
注意
指定した表名が空の文字列である場合、統計は現在のユーザーのすべての表について更新されます。
完全な時間隔統計を収集する場合、表の列の総数は20以下の時間隔に分割され、各時間隔の配分が統計に記録されます。新しい統計には、次の情報が含まれます。
時間隔の数
列のNULL値の総数
列のNON NULL UNIQUE値の総数
表の行の総数
時間隔情報(各時間隔には次の情報が含まれます)
最小値
最大値
最大頻度の値
最大頻度の値の数
最大頻度の値と異なる値の行の数
最大頻度の値以外の一意値の数
完全な時間隔統計を収集するには、データをソートする必要があります。
完全な時間隔統計を選択しない場合、全体の配分を単一の時間隔として処理することにより、統計が収集されます。
TimesTenでは、パフォーマンス上の理由から、統計の計算時に表ロックおよび行ロックは保持されません。ただし、統計の計算をそのように行った場合でも、パフォーマンスが低下する可能性があります。統計は、正確に計算するよりも推定した方が一般にパフォーマンスは向上します。統計の推定については、「ttOptEstimateStats」を参照してください。
システム表を更新する権限がある場合、空の表リストを指定して統計を見積もり、または更新すると、システム表の統計も更新されます。
説明
このプロシージャは、アプリケーションで、TimesTen問合せオプティマイザによる実行計画の生成を変更できるようにします。アプリケーションはこのプロシージャをコールして、一連の索引の使用を無効にしたり、問合せで使用する各相関関係のために一連の索引のみの使用を有効にすることができます。索引の使用を有効にしても、生成された計画がその索引を使用するとはかぎりません。オプティマイザは、推定されたコストに応じて、指定した索引を使用する計画より優れた計画が得られる場合、シリアライズ・スキャンまたはマテリアライズ・スキャンを使用して、関連する相関関係にアクセスすることを選択する場合があります。
このコールによって加えられた変更はただちに有効になり、アプリケーションがこれを消去するコールを明示的に発行するまで、現在のトランザクションでのODBC関数SQLPrepareおよびSQLExecDirectへの後続のすべてのコール、JDBCメソッドConnection.prepareCallおよびStatement.executeへの後続のすべてのコールに影響します。新しいトランザクションが開始されるたびに、設定は消去されます。
この組込みプロシージャの実行中は、AutoCommitをOFFに設定する必要があります。
パラメータ
ttOptUseIndexには、次の構成要素を持つTT_VARCHAR(1024)型の単一のカンマで区切られた文字列パラメータindOptionがあります。
| 構成要素 | 説明 |
|---|---|
IndexName |
ユーザー定義索引の名前(一時的な範囲索引の場合は「_TMPRANGE」、一時的なハッシュ索引の場合は「_TMPHASH」)。索引名を省略すると、指定した相関関係のすべての索引に設定が適用されます。 |
CorrelationName |
表の相関名。表がFROM句の相関名によって定義されている場合、この表の索引ヒントを指定する際は、表名のかわりにこの相関名を使用します。相関名を省略すると、この設定は、指定した索引名を持つすべての表に影響します。 |
0 | 1 |
IndexNameで指定した索引の使用を無効(0)または有効(1)にします。 |
結果セット
ttPLSQLMemoryStatsは、次の列に結果を返します。
| 列 | データ型 | 説明 |
|---|---|---|
paramName |
TT_VARCHAR (30) NOT NULL |
この行に返された結果統計の名前。 |
paramValue |
BINARY_FLOAT NOT NULL |
この行に返された結果統計の値。 |
次の統計が返されます。
Gets: PL/SQLオブジェクトに対してロックがリクエストされた回数。
GetHits: PL/SQLオブジェクトのハンドルがメモリーで検出された回数。
GetHitRatio: Getsに対するGetHitsの比率。
Pins: PL/SQLオブジェクトに対してPINがリクエストされた回数。
PinHits: ライブラリ・オブジェクトのすべてのメタデータ・ピースがメモリーで検出された回数。
PinHitRatio: Pinsに対するPinHitsの比率。
Reloads: オブジェクトのPINのうち、オブジェクト・ハンドルの作成後初めて実行されたPINではなく、データベースからのオブジェクトのロードを必要とするPIN。
Invalidations: 依存オブジェクトが変更されたためにこのネームスペースのオブジェクトが無効とマークされた合計回数。
CurrentConnectionMemory: このデータベース接続でPL/SQLに割り当てられるヒープ・メモリーの総量(MB単位)。
DeferredCleanups: 遅延クリーンアップが発生した合計回数。
例
connect "DSN=sample";
Connection successful:
DSN=sample;UID=timesten;DataStore=/scratch/timesten/sample;
DatabaseCharacterSet=AL32UTF8;ConnectionCharacterSet=AL32UTF8;
PermSize=128;TypeMode=0;PLSQL_MEMORY_SIZE=32;
PLSQL_MEMORY_ADDRESS=20000000;PLSQL=1;(Default setting AutoCommit=1)
Command> create procedure hello is begin
dbms_output.put_line('Hello, World!');
end;
> /
Procedure created.
Command> call ttPlsqlMemoryStats;
< Gets, 485.00000 >
< GetHits, 444.000000 >
< GetHitRatio, .9154639 >
< Pins, 260.00000 >
< PinHits, 178.000000 >
< PinHitRatio, .6846154 >
< Reloads, 4.000000 >
< Invalidations, 0.000000e+00 >
< CurrentConnectionMemory, 56.00000 >
9 rows found.
説明
このプロシージャは、無効化の後、データベースがRAMにリロードされるかどうかを判断するために使用するRAM自動リロード・ポリシーを返します。ポリシーは、autoreloadまたはnoautoreloadのいずれかです。
パラメータ
ttRamPolicyAutoReloadSetには、次のパラメータがあります。
| パラメータ | データ型 | 説明 |
|---|---|---|
flag |
TT_INTEGERNOT NULL |
無効化の後、データベースがRAMにリロードされるかどうかを判断するために使用するポリシー。有効な値は、次のとおりです。
|
結果セット
ttRamPolicyGetは次の結果を返します。
| 列 | データ型 | 説明 |
|---|---|---|
ramPolicy |
TT_VARCHAR (10) |
データベースをシステムRAMにロードするタイミングを決定するために使用するポリシーです。有効な値は、次のとおりです。
|
ramGrace |
TT_INTEGER |
このフィールドは、ramPolicyがinUseの場合に、最後のアプリケーションが切断されてから何秒後までデータベースがRAMに保持されるかをレポートします。これ以外の場合、このフィールドはNULLです。 |
パラメータ
ttRamPolicySetには、次のパラメータがあります。
| パラメータ | データ型 | 説明 |
|---|---|---|
ramPolicy |
TT_VARCHAR (10) NOT NULL |
データベースをシステムRAMにロードするタイミングを決定するために使用するポリシーです。有効な値は、次のとおりです。
|
ramGrace |
TT_INTEGER |
最後のアプリケーションが切断されてから何秒後までデータベースをRAMに保持するかを設定します。この値は、ramPoliyがinUseの場合にのみ有効です。このパラメータはオプションであり、省略するか、NULLを設定した場合、既存のramGrace期間は、変更されません。 |
パラメータ
ttRedundantIndexCheckには、次のパラメータがあります。
| パラメータ | データ型 | 説明 |
|---|---|---|
tblName |
TT_CHAR(61) |
アプリケーション表の名前。表の所有者を含めることができます。NULLまたは空の文字列を値として指定すると、現在のユーザーのすべての表の冗長索引がスキャンされます。
表名の指定にシノニムは使用できません。 |
結果セット
ttRedundantIndexCheckは次の結果を返します。
| 列 | データ型 | 説明 |
|---|---|---|
redundancy |
TT_VARCHAR (1024) NOT NULL |
冗長索引の名前および削除する索引に関するアドバイス。 |
例
主キーを持つ表yを作成します。次に、索引iを作成します。冗長索引が作成されているという警告が返されます。別の索引i1を作成します。コマンドは失敗し、エラーが返されます。このプロシージャをコールして、警告を表示します。
CREATE TABLE y (ID tt_integer primary key);
CREATE INDEX i ON y (id);
Warning 2240: New non-unique index I has the same key
columns as existing unique index Y; consider dropping index I
CREATE INDEX i1 ON y (id);
2231: New index I1 would be identical to existing index I
The command failed.
CALL ttredundantindexcheck ('y');
< Non-unique index SCOTT.Y.I has the same key columns
as unique index SCOTT.Y.Y;
consider dropping index SCOTT.Y.I >
1 row found.
説明
このプロシージャは、アクティブ・スタンバイ・ペアのアクティブ・データベースの状態をACTIVEからIDLEに変更します。アクティブ・スタンバイ・ペアのマスター・データベースのロールを元に戻す場合に、このプロシージャを使用します。
関連項目
ttRepTransmitGetttRepTransmitSetttReplicationStatusttRepPolicySetttRepStateSavettRepStateSetttRepStopttRepSubscriberStateSetttRepSubscriberWaitパラメータ
ttReplicationStatusには、次のオプションのパラメータがあります。
| パラメータ | データ型 | 説明 |
|---|---|---|
subscriber |
TT_VARCHAR(200) |
関係するサブスクライバ(すべてのサブスクライバの場合はNULL)。パラメータを指定すると、情報を収集するレプリケーション・サブスクライバが指定されます。パラメータを指定しないと、現在のデータベースに定義されているレプリケーション・サブスクライバに関する情報が返されます。 |
hostname |
TT_VARCHAR(200) |
実行中のデータ・ストアから更新を受信するように構成された、1つ以上のデータ・ストアのホスト名(NULLの場合、受信側のデータ・ストアはサブスクライバのみによって識別されます)。レシーバおよびホスト名の両方がNULLの場合、受信側のすべてのデータ・ストアが選択されます。 |
結果セット
ttReplicationStatusは次の結果セットを返します。
| 列 | データ型 | 説明 |
|---|---|---|
subscriber |
TT_VARCHAR (200) NOT NULL |
サブスクライバ名。 |
hostName |
TT_VARCHAR (200) NOT NULL |
サブスクライバをホスティングするシステムの名前。 |
port |
TT_INTEGERNOT NULL |
マスターからの更新を受信するサブスクライバ・エージェントで使用されるTCP/IPポート。値が0(ゼロ)の場合は、レプリケーションでポートが自動的に割り当てられたことを示します。 |
pState |
TT_CHAR (10) NOT NULL |
マスター・データベースに対するサブスクライバの現在のレプリケーションの状態。結果列の値は次のとおりです。
|
logs |
TT_INTEGERNOT NULL |
マスター・データベースがサブスクライバのために保持しているトランザクション・ログ・ファイルの数。 |
lastMsg |
TT_INTEGER |
最後の対話以降の秒数またはNULL。 |
replicationName |
TT_CHAR (30) NOT NULL |
レプリケーション・スキームの名前。 |
replicationOwner |
TT_CHAR (30) NOT NULL |
レプリケーション・スキームの所有者。 |
例
Command> call ttReplicationStatus();
< MASTER2, HOST1, 0, start , 1, 257142, \
_ACTIVESTANDBY , TTREP >
1 row found.
Command> call ttReplicationStatus('master2', 'host1');
< MASTER2, HOST1, 0, start , 1, 266439, \
_ACTIVESTANDBY , TTREP >
1 row found.
注意
receiverパラメータがNULLでない場合、指定されたレシーバの状態のみが返されます。receiverパラメータがNULLである場合、すべてのサブスクライバの状態が返されます。
このプロシージャはTimesTen Data Manager ODBCアプリケーションでのみサポートされています。TimesTen ClientまたはJDBCアプリケーションではサポートされていません。
関連項目
ttRepDeactivatettRepPolicySetttRepStopttRepSubscriberStateSetttRepSyncGetttRepSyncSetttRepTransmitSet説明
このプロシージャは、接続されたデータベースに対してTimesTenを実行するタイミングを決定するレプリケーションの再起動ポリシーを返します。ポリシーは、always、manual、norestartのいずれかです。
結果セット
ttRepPolicyGetは次の結果を返します。
| 列 | データ型 | 説明 |
|---|---|---|
repPolicy |
TT_VARCHAR (10) |
データベースに対してTimesTenレプリケーション・エージェントを実行するタイミングを決定するために使用するポリシー。有効な値は、次のとおりです。
|
関連項目
ttRepDeactivatettRepTransmitSetttReplicationStatusttRepPolicySetttRepStartttRepStopttRepSubscriberStateSetttRepSubscriberWaitttRepSyncGetttRepSyncSet説明
このプロシージャは、接続されたデータベースに対してTimesTenを実行するタイミングを決定するレプリケーションの再起動ポリシーを定義します。ポリシーは、always、manual、norestartのいずれかです。
パラメータ
ttRepPolicySetには、次のパラメータがあります。
| パラメータ | データ型 | 説明 |
|---|---|---|
repPolicy |
TT_VARCHAR (10) NOT NULL |
データベースに対してTimesTenレプリケーション・エージェントを実行するタイミングを決定するために使用するポリシーを指定します。有効な値は、次のとおりです。
|
関連項目
ttRepDeactivatettRepTransmitSetttReplicationStatusttRepPolicyGetttRepStartttRepStopttRepSubscriberStateSetttRepSubscriberWaitttRepSyncGetttRepSyncSet説明
このプロシージャは、レプリケーション・エージェントの問合せしきい値として最後に指定された秒数を返します。返された秒数は、有効な問合せしきい値と同じでない場合があります。問合せしきい値に新たに設定した値は、次回レプリケーション・エージェントが起動されたときに有効になります。
結果セット
ttRepQueryThresholdGetは次の結果を返します。
| 列 | データ型 | 説明 |
|---|---|---|
repQueryThreshold |
TT_INTEGER |
レプリケーション問合せの最大実行秒数(この秒数を超えるとエラーが返されます)。 |
関連項目
ttRepDeactivatettReplicationStatusttRepPolicyGetttRepQueryThresholdSetttRepStartttRepStopttRepSubscriberStateSetttRepSubscriberWaitttRepSyncGetttRepSyncSetttRepTransmitSet説明
このプロシージャは、レプリケーション・エージェントが問合せを実行できる最大秒数を指定し、この秒数を超えると、警告がサポート・ログに書き込まれ、SNMPトラップがスローされます。指定された値は、レプリケーション・エージェントを次に起動したときに有効になります。レプリケーション・エージェントの問合せしきい値は、マテリアライズド・ビューのディテール表に対するSQL実行、ON DELETE CASCADE処理、およびSQL文を実行する一部の内部処理に適用されます。
パラメータ
ttRepQueryThresholdSetには、次のパラメータがあります。
| パラメータ | データ型 | 説明 |
|---|---|---|
seconds |
TT_INTEGERNOT NULL |
レプリケーション・エージェントがSQL文を実行できる最大秒数(この秒数を超えると、警告がサポート・ログに書き込まれ、SNMPトラップがスローされます)。0以上の値を指定する必要があります。デフォルトは0で、TimesTenが警告を書き込まないことを示します。 |
関連項目
ttRepDeactivatettReplicationStatusttRepPolicyGetttRepQueryThresholdGetttRepStartttRepStopttRepSubscriberStateSetttRepSubscriberWaitttRepSyncGetttRepSyncSetttRepTransmitSet注意
いずれのレプリケーション・スキームにもデータベースが存在しない場合、レプリケーション・エージェントは起動しません。
このプロシージャを使用する場合、コールを実行するアプリケーションを含めたすべてのアプリケーションは、データベース・レベルのロック(LockLevel=1)を指定する接続を保持することができません。
関連項目
ttRepDeactivatettRepTransmitGetttRepTransmitSetttReplicationStatusttRepPolicySetttRepStopttRepSubscriberStateSetttRepSubscriberWaitttRepSyncSetttRepSyncGet結果セット
ttRepStateGetは次の結果を返します。
| 列 | データ型 | 説明 |
|---|---|---|
state |
TT_VARCHAR (20) NOT NULL |
データベースの現在のレプリケーションの状態。次のいずれかです。
|
gridState |
TT_VARCHAR (20) NOT NULL |
データベースの現在のグリッドの状態。次のいずれかです。
|
例
アクティブ・スタンバイ・ペアのレプリケーションとグリッド状態を決定するには、次のコマンドを使用します。
Call ttRepStateGet(); <STANDBY, NO GRID> Call ttRepStateGet(); <ACTIVE, NO GRID> Call ttRepStateGet(); <ACTIVE, AVAILABLE> Call ttRepStateGet(); <ACTIVE, UNAVAILABLE>
関連項目
ttRepDeactivatettRepTransmitSetttReplicationStatusttRepPolicySetttRepStateSavettRepStateSetttRepStopttRepSubscriberStateSetttRepSubscriberWait説明
アクティブ・スタンバイ・ペアのリモート・ピア・データベースの状態を現在接続されているデータベースに保存します。現在、スタンバイ・データベース(hostName上のstoreName)で障害が発生したこと、およびアクティブ・データベースに対するすべての更新を読取り専用サブスクライバに直接レプリケートする必要があることをアクティブ・データベースに通知するためにのみ使用されます。
パラメータ
ttRepStateSaveには、次のパラメータがあります。
| パラメータ | データ型 | 説明 |
|---|---|---|
state |
TT_VARCHAR (20) NOT NULL |
データベースのレプリケーションの状態。このリリースでは、FAILEDとしてのみ指定できます。スタンバイ・データベースで障害が発生したことを記録すると、レプリケートされたすべての更新が、アクティブ・データベースから読取り専用サブスクライバに直接送信されるように指定されます。 |
storeName |
TT_VARCHAR (200) NOT NULL |
状態が示されるデータベース名。 |
hostName |
TT_VARCHAR (200) |
データベースが存在するホスト名。 |
例
backup1というホスト上のスタンバイ・データベースstandbyで障害が発生したことをアクティブ・データベースに通知するには、次のように実行します。
ttRepStateSave('FAILED', 'standby', 'backup1');
関連項目
ttRepDeactivatettRepTransmitSetttReplicationStatusttRepPolicySetttRepStateGetttRepStateSetttRepStopttRepSubscriberStateSetttRepSubscriberWaitttRepSyncGetttRepSyncSet説明
このプロシージャは、アクティブ・スタンバイ・ペアのデータベースのレプリケーション・スキームの状態を設定します。現在、ttRepStateSetは、データベースの状態をACTIVEにするためにのみ使用でき、ACTIVEは、データベースがアクティブ・スタンバイ・ペアでアクティブな役割を果たすことを示します。ttRepStateSetは、次の状況でのみ使用できます。
データベースで、CREATE ACTIVE STANDBY PAIRコマンドが実行され、それ以降、障害が発生していない場合。
データベースが現在STANDBY状態で、アクティブ・スタンバイ・ペアの他のデータベースでttRepDeactivateプロシージャが使用されてその状態がACTIVEからIDLEに変更された場合。
データベースがローカル・トランザクション・ログからリカバリした直後で、停止前はACTIVE状態であった場合。
パラメータ
ttRepStateSetには、次のパラメータがあります。
| パラメータ | データ型 | 説明 |
|---|---|---|
state |
TT_VARCHAR (20) NOT NULL |
データベースのレプリケーションの状態。このリリースでは、ACTIVEと設定する必要があります。ストアをACTIVEに設定すると、アクティブ・スタンバイ・ペアのアクティブ・データベースとして指定されます。 |
関連項目
ttRepDeactivatettRepTransmitSetttReplicationStatusttRepPolicySetttRepStateGetttRepStateSavettRepStopttRepSubscriberStateSetttRepSubscriberWaitttRepSyncGetttRepSyncSet注意
このプロシージャを使用する場合、コールを実行するアプリケーションを含めたすべてのアプリケーションは、データベース・レベルのロック(LockLevel=1)を指定する接続を保持することができません。
関連項目
ttRepDeactivatettRepTransmitSetttReplicationStatusttRepPolicySetttRepStartttRepSubscriberStateSetttRepSubscriberWaitttRepSyncGetttRepSyncSet構文
ttRepSubscriberStateSet('replicationName', 'replicationOwner',
'subscriberStoreName', 'subscriberHostName', newStateCode)
パラメータ
ttRepSubscriberStateSetには、次のパラメータがあります。
| パラメータ | データ型 | 説明 |
|---|---|---|
replicationName |
TT_CHAR (30) |
処理対象のレプリケーション・スキーム名です。NULLは、すべてのレプリケーション・スキームを示します。 |
replicationOwner |
TT_CHAR (30) |
レプリケーション・スキームの所有者です。NULLは、すべてのレプリケーション・スキーム所有者を示します。 |
subscriberStoreName |
TT_VARCHAR (200) |
状態を設定するサブスクライバのデータベース名です。NULLは、subscriberHostNameホスト上のすべてのストアを示します。 |
subscriberHostName |
TT_VARCHAR (200) |
サブスクライバのホストです。NULLは、サブスクライバのピアのすべてのホストを示します。 |
newStateCode |
TT_INTEGER |
指定されたサブスクライバの新しい状態を表す整数コードです。
その他のすべての状態コードは許可されません。(このプロシージャでは、サブスクライバの状態を「failed」に設定することはできません。)詳細は、『Oracle TimesTen In-Memory Database開発者および管理者ガイド』のサブスクライバのレプリケーション状態の設定に関する説明を参照してください。 |
例
次の例では、REPL.REPSCHEMEというレプリケーション・スキームについて、サブスクライバ・データベース(SUBSCRIBERDS ON SYSTEM1)の状態を停止(2)に設定するようにマスター・データベースに指示します。
CALL ttRepSubscriberStateSet('REPSCHEME', 'REPL',
'SUBSCRIBERDS','SYSTEM1', 2);
すべてのサブスクライバの状態を一時停止(1)に設定するようマスター・データベースに指示するには、次のように実行します。
CALL ttRepSubscriberStateSet( , , , , 1 );
パラメータを指定しない場合の動作は、NULLを使用した場合と同じです。
関連項目
ttRepDeactivatettRepTransmitSetttReplicationStatusttRepPolicySetttRepStartttRepStopttRepSubscriberWaitttRepTransmitGetttRepTransmitSet説明
このプロシージャでは、コール元は、コール前にコミットされたすべてのトランザクションがサブスクライバsubscriberStoreNameに送信されるまで待機します。さらに、サブスクライバ・データベースで更新が永続的にコミットされたことをこのサブスクライバが認識するまで待機します。
他に保留中のトランザクションがアクティブ・データベースにない場合は、別のトランザクションでこのプロシージャをコールします。アクティブ・データベース上で開かれているトランザクションがある場合、このコールはエラーを返します。
waitTimeパラメータを-1に、subscriberStoreNameパラメータをNULLに設定した場合、プロシージャのコール時点までにコミットされたすべての更新がすべてのサブスクライバに送信され、更新が永続的にコミットされたことをすべてのサブスクライバが認識するまで、ttRepSubscriberWaitプロシージャは結果を返しません。
緊急レスポンスが必要な場合は、ttRepSubscriberWaitプロシージャを使用しないでください。RETURN RECEIPTサービスを使用してください。
|
注意: すべての書込みトランザクション・アクティビティがストアで静止された後にこのプロシージャがコールされた場合(アクティブなトランザクション、起動されているトランザクションがない状態)、すべての更新がサブスクライバで永続的にコミットされていることを示す応答をサブスクライバが送信するまでに60秒以上かかる可能性があります。 |
構文
ttRepSubscriberWait('replicationName', 'replicationOwner',
'subscriberStoreName', 'subscriberHostName', waitTime)
パラメータ
ttRepSubscriberWaitには、次のパラメータがあります。
| パラメータ | データ型 | 説明 |
|---|---|---|
replicationName |
TT_CHAR (30) |
処理対象のレプリケーション・スキーム名です。NULLは、すべてのレプリケーション・スキームを示します。 |
replicationOwner |
TT_CHAR (30) |
レプリケーション・スキームの所有者です。NULLは、すべてのレプリケーション・スキーム所有者を示します。 |
subscriberStoreName |
TT_VARCHAR (200) |
状態を設定するサブスクライバのデータベース名です。NULLは、subscriberHostNameホスト上のすべてのストアを示します。 |
subscriberHostName |
TT_VARCHAR(200) |
サブスクライバのホストです。NULLは、サブスクライバのピアのすべてのホストを示します。 |
waitTime |
TT_INTEGERNOT NULL |
指定したサブスクライバを待機する時間(秒)。-1は永久に待機することを表します。このパラメータは必須で、NULLは使用できません。 |
結果セット
ttRepSubscriberWaitは次の結果セットを返します。
| 列 | データ型 | 説明 |
|---|---|---|
timeOut |
BINARY(1) |
0x00: 指定されたwaitTime内で待機は成功し、指定されたサブスクライバは、このプロシージャがコールされた時点の最新状態になっています。十分な時間が割り当てられていない場合、TimesTenは0x01を返します。 |
例
定義済レプリケーション・スキームREPOWNER.REPSCHEMEが1つある場合に、SERVER2上のサブスクライバREP2が追いつくまで送信側データ・ストアを10分待機させるには、次のように実行します。
CALL ttRepSubscriberWait('REPSCHEME','REPOWNER',
'REP2', 'SERVER2', 600);
関連項目
ttRepDeactivatettRepTransmitSetttReplicationStatusttRepPolicySetttRepStartttRepStopttRepSubscriberStateSetttRepSyncGetttRepSyncSet説明
このプロシージャは、コール元でのレプリケーション・ベースのRETURNサービスの使用状況に関連付けられた静的属性を返します。このプロシージャは、RETURN RECEIPTサービスまたはRETURN TWOSAFEサービスのいずれかとともに動作します。
結果セット
ttRepSyncGetは次の結果セットを返します。
| 列 | データ型 | 説明 |
|---|---|---|
requestReturn |
BINARY(1)descr |
0(デフォルト): RETURN RECEIPT BY REQUESTまたはRETURN TWOSAFE BY REQUESTオプションによって設定されるリターン通知を待機しません。
|
returnWait |
TT_INTEGER |
RETURNサービスの応答を待機する秒数を指定します。デフォルト値は10秒です。0は待機時間がないことを意味します。この属性はトランザクションをまたいで動作し、BY REQUESTオプションとは独立して、すべてのRETURNサービスに適用されます。 |
localAction |
TT_INTEGER |
RETURNサービスの現在のLOCAL ACTION構成です。
|
例
コール元のrequestReturn値を取得するには、次のように実行します。
SQLCHAR requestReturn[1];
SQLINTEGER len;
rc = SQLExecDirect ( hstmt
, (SQLCHAR *) "{CALL ttRepSyncGet( NULL )}"
, SQL_NTS )
rc = SQLBindCol ( hstmt
, /* ColumnNumber */ 1
, /* TargetType */ SQL_C_BINARY )
, /* TargetValuePtr */ requestReturn
,./* BufferLength */ sizeof requestReturn
, /* StrLen_ */ &len );
rc = SQLFetch( hstmt );
if ( requestReturn[0] ) {
...
}
注意
スタンドアロンのトランザクション内でコールすると、ttRepSyncGetは常に、requestReturnのデフォルト値を返します。
アプリケーションはトランザクション内のどの時点でもttRepSyncGetをコールすることができ、そのトランザクションに対するBY REQUESTを指定したRETURNサービスをリクエストするために使用できます。
RETURN RECEIPT BY REQUESTまたはRETURN TWOSAFE BY REQUESTレプリケーション要素の更新を行わないトランザクションでttRepSyncGetをコールしても、外部的な影響はありません。
関連項目
ttRepDeactivatettRepTransmitSetttReplicationStatusttRepPolicySetttRepStartttRepStopttRepSubscriberStateSetttRepSubscriberWaitttRepSyncSet説明
このプロシージャは、コール元でのレプリケーション・ベースのRETURNサービスの使用状況に関連付けられた静的属性を設定します。このプロシージャは、RETURN RECEIPTサービスまたはRETURN TWOSAFEサービスのいずれかとともに動作します。
パラメータ
ttRepSyncSetには、次のオプションのパラメータがあります。
| パラメータ | データ型 | 説明 |
|---|---|---|
requestReturn |
BINARY(1) |
0x00: 現在のトランザクションのRETURNサービスを無効にします。
レプリケーション・サブスクライバが |
returnWait |
TT_INTEGER |
RETURNサービスの応答を待機する秒数を指定します。デフォルト値は10です。0は待機時間がないことを意味します。
このタイムアウト値は、 このパラメータによって設定されたタイムアウトはトランザクションをまたいで動作し、 |
localAction |
TT_INTEGER |
returnWaitによって指定されたタイムアウト時間内に、サブスクライバがトランザクションのコミットを認識できない場合に実行されるアクションです。このパラメータは、RETURN TWOSAFEトランザクションに対してのみ使用できます。RETURNサービスの使用時はNULLに設定します。
|
例
RETURN RECEIPT BY REQUESTまたはRETURN TWOSAFE BY REQUESTで構成されたすべてのレプリケーション要素に対する現在のトランザクションでRETURN RECEIPTサービスを有効にするには、次のように実行します。
rc = SQLExecDirect ( hstmt,
(SQLCHAR *)"{CALL ttRepSyncSet( 0x01 )}",
SQL_NTS )
関連項目
ttRepDeactivatettRepTransmitSetttReplicationStatusttRepPolicySetttRepStartttRepStopttRepSubscriberStateSetttRepSubscriberWaitttRepSyncGet説明
このプロシージャは、RETURNサービス、およびサブスクライバに対するRETURNサービス・ブロッキングが障害ポリシーによって無効になっているかどうかを判断するRETURN DISABLE障害ポリシーで構成されているレプリケーション・スキームのサブスクライバ・データベースへの問合せを行います。
ttRepSyncSubscriberStatusプロシージャは、指定のホスト上にあり、指定した名前を持つサブスクライバ・データベースの障害状態を返します。storeNameのみを指定できます。ただし、レプリケーション・スキームで、異なるホスト上に同じ名前を持つサブスクライバが複数含まれる場合は、エラーが生成されます。
パラメータ
ttRepSyncSubscriberStatusには、次のパラメータがあります。
| パラメータ | データ型 | 説明 |
|---|---|---|
subscriber |
TT_VARCHAR (200) NOT NULL |
問合せを行うサブスクライバ・データベースの名前。 |
hostName |
TT_VARCHAR (200) |
実行中のデータ・ストアから更新を受信するように構成された、1つ以上のデータ・ストアのホスト名(NULLの場合、受信側のデータ・ストアはレシーバのみによって識別されます)。レシーバおよびホスト名の両方がNULLの場合、受信側のすべてのデータ・ストアが選択されます。 |
説明
このプロシージャは、現在のトランザクションについて、サブスクライバへの更新データの転送状態を返します。対応するttRepSyncSet組込みプロシージャを使用すると、サブスクライバへの更新の転送をトランザクションが終わるまで停止できます。
結果セット
ttRepTransmitGetは次の結果を返します。
| 列 | データ型 | 説明 |
|---|---|---|
transmit |
TT_INTEGER |
0: 更新は、この接続のトランザクションが終了するまで、サブスクライバに転送されません。
|
関連項目
ttRepDeactivatettReplicationStatusttRepPolicySetttRepStateSavettRepStateSetttRepStopttRepSubscriberStateSetttRepSubscriberWaitttRepTransmitSet説明
このプロシージャは、実行されている接続に対する後続の更新データを、サブスクライバにレプリケートしないようにします。トランザクションを部分的にレプリケートした場合には、トランザクションの不整合がリモート・ストアで発生しやすくなるため、このプロシージャは、注意して使用してください。更新データのレプリケーションが許可されない場合、サブスクライバのストアはマスター・ストアから分岐します。
パラメータ
ttRepTransmitSetには、次のパラメータがあります。
| パラメータ | データ型 | 説明 |
|---|---|---|
transmit |
TT_INTEGERNOT NULL |
1に設定すると、この組込みプロシージャを実行した後で、更新が接続されているサブスクライバに転送されます。(これがデフォルトです。)
0 (ゼロ)に設定すると、このコールを発行した接続でコールが発行されたトランザクションが終了するまで、更新はどのサブスクライバにも転送されません。 |
例
アクティブ・スタンバイ・ペアのアクティブ・データベースを有効にするには、次のコマンドを使用します。
CALL ttRepTransmitSet(1);
アクティブ・スタンバイ・ペアのアクティブ・データベースを無効にするには、次のコマンドを使用します。
CALL ttRepTransmitSet(0);
関連項目
ttRepDeactivatettReplicationStatusttRepPolicySetttRepStateSavettRepStateSetttRepStopttRepSubscriberStateSetttRepSubscriberWaitttRepTransmitGet説明
このプロシージャは、RETURN RECEIPTまたはRETURN TWOSAFEレプリケーション・トランザクションの状態を確認します。組込みプロシージャttRepXactTokenGetを使用すると、RETURN RECEIPTまたはRETURN TWOSAFEトランザクションのトークンを受信できます。このトークンは、その後、入力パラメータとして、この組込みプロシージャへ渡されます。ここで使用されるのは、ttRepXactTokenGetから受信したトークンのみです。このプロシージャは、3つのパラメータ、サブスクライバ名、サブスクライバに関連するレプリケーション状態、およびRETURN TWOSAFEレプリケーション・トランザクションがコミット処理を開始し、完了していない場合にのみ返されるエラー文字列が含まれる行のリストを返します。
|
注意: errorパラメータはRETURN TWOSAFEトランザクションでのみ返されます。 |
パラメータ
ttRepXactStatusには、次のパラメータがあります。
| パラメータ | データ型 | 説明 |
|---|---|---|
xactID |
VARBINARY (10000) |
パラメータが指定されていない場合、次のいずれかのステータスが返されます。
|
結果セット
ttRepXactStatusは、次の結果セットを返します。
| 列 | データ型 | 説明 |
|---|---|---|
subscriberName |
TT_CHAR (61) |
トランザクションで更新された表をサブスクライブするデータベース名。名前はstore_name@host_nameという形式で返されます。 |
state |
TT_CHAR (2) |
サブスクライバ・データベースに関連するトランザクションの状態。戻り値は、次のいずれかです。
|
errorString |
TT_VARCHAR (2000) |
TWOSAFEトランザクションの適用時に発生したエラーを説明するサブスクライバ・エージェントによって返されたエラー文字列。エラーが発生していない場合、このパラメータはNULLです。コミット処理を開始し、まだ完了していないTWOSAFEレプリケーション・トランザクション内でこのプロシージャがコールされた場合のみ、NULL以外の値が返されます。 |
関連項目
ttRepDeactivatettRepTransmitSetttReplicationStatusttRepPolicySetttRepStartttRepStopttRepSubscriberStateSetttRepSubscriberWaitttRepSyncGetttRepSyncSetttRepXactTokenGet説明
このプロシージャは、RETURN RECEIPTまたはRETURN TWOSAFEレプリケーション・トランザクションにトークンを返します。入力パラメータtypeによって、次のいずれかが返されます。
トランザクションが呼び出された接続ハンドルで最後にコミットされたRETURN RECEIPTトランザクションへのトークン。
トランザクションが呼び出された接続ハンドルにおける最新のトランザクションへのトークン。RETURN TWOSAFEモードのトランザクションでコミット処理が開始されている。
このプロシージャは、RETURN TWOSAFEレプリケーションのトランザクションに対してコミット処理が開始された後に、後続のトランザクションまたは同じトランザクションで実行できます。
パラメータ
ttRepXactTokenGetには、次のパラメータがあります。
| パラメータ | データ型 | 説明 |
|---|---|---|
type |
TT_CHAR (2) NOT NULL |
希望するトランザクションのタイプ。
|
結果セット
ttRepXactTokenGetは、次の結果セットを返します。
| 列 | データ型 | 説明 |
|---|---|---|
token |
VARBINARY (10000) |
希望するトランザクションを表すVARBINARYトークン。 |
関連項目
ttRepDeactivatettRepTransmitSetttReplicationStatusttRepPolicySetttRepStartttRepStopttRepSubscriberStateSetttRepSubscriberWaitttRepSyncGetttRepSyncSetttRepXactStatus説明
このプロシージャは、ユーザー指定の列IDを明示的に設定します。トランザクション・ログAPIによってアプリケーションに渡された更新には、表の列に関する情報が含まれることがあります。この列情報には、システム指定の列番号とユーザー指定の列識別子が含まれます。ユーザー指定の列IDは、このコールによって明示的に設定されるまで、値は0です。
システムは、CREATE TABLE処理またはALTER TABLE処理で各列にIDを割り当てます。ユーザーによって割り当てられた値を列IDに設定すると、データベース全体にわたり一意の列番号セットを設定したり、指定された表に対して固有の列番号方式を設定することができます。
説明
このプロシージャは、ユーザー表IDの値を明示的に設定します。各行が関連付けられている表は、アプリケーションが提供するユーザー表IDのコードと、システムが提供するシステム表IDのコードの、2つのコードによって表現されます。更新は、完全な行の形でトランザクション・ログAPIによってアプリケーションに渡されます。ユーザー表IDは、プロシージャttSetUserTableIDによって明示的に設定されるまで、値は0です。
説明
このプロシージャは、表またはビューのサイズおよび索引のサイズを推定します。表の推定バイト数が単一のDOUBLE列を持つ単一行として返されます。表は、表名または完全修飾された表名のいずれかとして指定できます。nrowsパラメータがNULL以外の場合、現在の表の統計が指定した行数まで拡大したものと想定して表のサイズが推定されます。nrowsパラメータがNULLの場合、表のサイズは現在の行数を使用して推定されます。
現在の表のコンテンツをスキャンして、VARBINARYおよびVARCHAR列の平均サイズが判断されます。表が空の場合、VARBINARY列とVARCHAR列の平均サイズは、宣言されている最大サイズの半分になるように推定されます。ttSizeによって計算される推定値には、表、VARBINARY列とVARCHAR列、およびその表に定義された索引の記憶域が含まれます。
この組込みプロシージャをコールすると表がスキャンされます。NULL以外のfrac(0と1の間)を指定することによって、表のスキャンを回避できます。この値は、可変長列の平均サイズを推定します。fracを各可変長列の最大サイズに掛けて、VARBINARY列またはVARCHAR列の推定平均サイズを計算します。fracパラメータを指定しないと、表内の既存の行がスキャンされ、既存の行における可変長列の平均長が使用されます。fracを省略した場合、表に行が存在しないと、fracの値は0.5であると想定されます。
パラメータ
ttSizeには、次のパラメータがあります。
| パラメータ | データ型 | 説明 |
|---|---|---|
tblName |
TT_CHAR (61) NOT NULL |
アプリケーション表の名前。表の所有者を含めることができます。このパラメータは必須です。
表名の指定にシノニムは使用できません。 |
nRows |
TT_INTEGER |
推定される表内の行数。このパラメータはオプションです。 |
frac |
BINARY_DOUBLE |
VARBINARY列またはVARCHAR列のサイズの推定される平均端数。このパラメータはオプションです。 |
例
CALL ttSize('ACCTS', 1000000, NULL);
CALL ttSize('ACCTS', 30000, 0.8);
CALL ttSize('SALES.FORECAST', NULL, NULL);
ttSizeを使用する場合、コマンドを実行した後、結果をフェッチする必要があります。次に例を示します。
ODBC
double size;
SQLLEN len;
rc = SQLExecDirect(hstmt, "call ttSize('SalesData', 250000,
0.75)", SQL_NTS);
rc = SQLBindColumn(hstmt, 1, SQL_C_DOUBLE, &size, sizeof double,
&len);
rc = SQLFetch(hstmt);
rc = SQLFreeStmt(hstmt, SQL_CLOSE);
JDBC
. . . . . .
String URL="jdbc:timesten:MyDataStore";
Connection con;
double tblSize=0;
. . . . . .
con = DriverManager.getConnection(URL);
CallableStatement cStmt = con.prepareCall("
{CALL ttSize('SalesData', 250000, 0.75) }");
if( cStmt.execute() )
{
rs=cStmt.getResultSet();
if (rs.next()) {
tblSize=rs.getDouble(1);
}
rs.close();
}
cStmt.close();
con.close();
. . . . . .
パラメータ
ttSQLCmdCacheInfoには、次のオプションのパラメータがあります。
| パラメータ | データ型 | 説明 |
|---|---|---|
sqlCmdID |
32-bitシステムの場合はTT_INTEGER
64-bitシステムの場合は |
TimesTenコマンド・キャッシュでのSQLコマンドの一意の識別子。値が指定しない場合、すべてのコマンドに関する情報が表示されます。 |
結果セット
ttSQLCmdCacheInfoは次の結果セットを返します。
| 列 | データ型 | 説明 |
|---|---|---|
sqlCmdID |
32-bitシステムの場合はTT_INTEGER NOT NULL
64-bitシステムの場合は |
コマンドの一意の識別子。 |
privateCommandConnectionID |
TT_INTEGER |
コマンドがプライベートの場合、これは準備された場所の接続の接続IDです。プライベート・コマンドでない場合、この値は2048です。 |
executions |
TT_BIGINT
|
コマンドの実行回数をカウントします。 |
prepares |
TT_BIGINTNOT NULL |
コマンドの準備の数をカウントします。 |
reprepares |
TT_BIGINT NOT NULL |
コマンドの再準備の数をカウントします。 |
freeable |
TT_TINYINT NOT NULL |
このコマンドがサブデーモンによってガベージ収集可能かどうかを示します。
|
size |
TT_INTEGERNOT NULL |
コマンド・キャッシュでこのコマンドに割り当てられた領域の合計(バイト)。 |
owner |
TT_CHAR (31) NOT NULL |
コマンドを作成したユーザー。 |
queryText |
TT_VARCHAR (409600) NOT NULL |
現在のコマンドの完全なSQLテキスト。 |
例
現在有効なすべてのコマンドに関する情報をttIsqlに表示するには、次のように実行します。
Command> call ttsqlcmdcacheinfo;
< 51635464, 2048, 12, 12, 0, 1, 3056, SYS , delete fr
om sys.idl_sb4$ where obj#=:1 and part=:2 >
< 43437072, 2048, 5, 5, 0, 1, 1960, SYS , select obj#
from sys.objerror$ >
< 51620736, 2048, 4, 4, 0, 1, 2736, SYS , delete from
sys.obj$ where obj# = :1 >
< 51680216, 2048, 1, 1, 0, 1, 3592, BWAF4EVR , call ttsqlc
mdcacheinfo(51623232) >
< 51676856, 2048, 2, 2, 0, 0, 3552, BWAF4EVR , call ttsqlc
mdcacheinfo >
< 43438936, 2048, 5, 5, 0, 1, 3200, SYS , select obj#
from sys.syn$ where owner=:1 and name=:2 >
< 44066504, 2048, 0, 14, 0, 1, 5640, SYS , select nul
l from sys.obj$ where obj#=:1 and type#=:2 and obj# not in (select p_obj# from d
ependency$ where p_obj# = sys.obj$.obj#) >
< 51649488, 2048, 1, 1, 0, 1, 2344, BWAF4EVR , create tabl
e tab1 (c1 number primary key not null, c2 number) >
< 51671608, 2048, 1, 1, 0, 1, 4656, BWAF4EVR , call ttSQLC
mdCacheInfo2(51635464) >
< 51666232, 2048, 1, 1, 0, 1, 2048, BWAF4EVR , call ttSQLC
mdCacheInfoGet >
< 51612064, 2048, 4, 4, 0, 1, 8424, SYS , select o.ow
ner#, o.name, o.namespace, o.obj#, d.d_timestamp, nvl(d.property,0), o.type#,
d.d_attrs from sys.dependency$ d, sys.obj$ o where d.p_obj#=:1 and (d.p_ti
mestamp=nvl(:2,d.p_timestamp) or d.property=2) and o.owner#=nvl(:3,o.owner#)
and d.d_obj#=o.obj# order by o.obj# >
< 43415648, 2048, 4, 4, 0, 1, 4544, BWAF4EVR , create acti
ve standby pair sampledb_1122, bwaf4evr_dummy1 subscriber bwaf4evr_dummy2 >
< 43431912, 2048, 5, 5, 0, 1, 4720, SYS , select owne
r#,name,namespace,obj#,type#,ctime,mtime,stime,status,flags from sys.obj$ where
obj#=:1 >
< 51657712, 2048, 4, 4, 0, 1, 3552, BWAF4EVR , call ttSQLC
mdCacheInfo >
< 51653200, 2048, 1, 1, 0, 1, 1816, BWAF4EVR , call ttxlab
ookmarkcreate('mybookmark', 0x01) >
< 43420768, 2048, 1, 1, 0, 1, 2064, BWAF4EVR , create tabl
e tab1 (c1 number, c2 number) >
< 44058168, 2048, 14, 14, 0, 1, 7760, SYS , select o.
owner#,o.obj#,u.name,o.name,o.namespace from sys.user$ u, sys.obj$ o where u.use
r#=o.owner# and o.type#=:1 and not exists (select p_obj# from sys.dependen
cy$ where p_obj# = o.obj#) order by o.obj# for update >
< 49370616, 2048, 1, 1, 0, 0, 4024, SYS , select u.us
er#, u.password, u.identification, u.astatus from sys.user$ u where u.name = :na
me and u.type# = 1 >
< 51655376, 2048, 2, 2, 0, 1, 2528, BWAF4EVR , select * fr
om tab1 >
< 51638280, 2048, 4, 4, 0, 1, 2544, SYS , delete from
sys.objauth$ where obj#=:1 >
< 43423200, 2048, 14, 14, 0, 1, 5520, SYS , select ow
ner#,name,namespace,obj#,type#,ctime,mtime,stime,status,flags from sys.obj$ wher
e owner#=:1 and name=:2 and namespace=:3 >
< 51668216, 2048, 1, 1, 0, 1, 3592, BWAF4EVR , call ttSQLC
mdCacheInfo(51635464) >
< 51661208, 2048, 3, 3, 0, 1, 4640, BWAF4EVR , call ttSQLC
mdCacheInfo2 >
< 43428992, 2048, 5, 5, 0, 1, 2800, SYS , select sys.
objectSequence.nextval from dual >
< 51629120, 2048, 12, 12, 0, 1, 3040, SYS , delete fr
om sys.idl_char$ where obj#=:1 and part=:2 >
< 51641192, 2048, 2, 2, 0, 1, 2112, BWAF4EVR , create tabl
e tab1 (c1 number not null, c2 number) >
< 43442488, 2048, 5, 5, 0, 1, 4616, SYS , insert into
sys.obj$(owner#,name,namespace,obj#,type#,ctime,mtime,stime,status,flags) value
s(:1,:2,:3,:4,:5,:6,:7,:8,:9,:10) >
< 51632072, 2048, 12, 12, 0, 1, 3040, SYS , delete fr
om sys.idl_ub2$ where obj#=:1 and part=:2 >
< 49375216, 2048, 0, 1, 0, 0, 4232, SYS , select 1 fr
om sys.sysauth$ s where (s.grantee# = :userid or s.grantee# = 1) and (s.privileg
e# = :priv or s.privilege# = 67) >
< 51626304, 2048, 12, 12, 0, 1, 3040, SYS , delete fr
om sys.idl_ub1$ where obj#=:1 and part=:2 >
< 51645776, 2048, 1, 1, 0, 1, 2344, BWAF4EVR , create tabl
e tab1 (c1 number primary key not null, col2 number) >
< 51623232, 2048, 4, 4, 0, 1, 2704, SYS , delete from
sys.source$ where obj#=:1 >
32 rows found.
sqlCmdID 527973892のコマンド情報をttIsqlに表示するには、次のように実行します。
Command> call ttSQLCmdCacheInfo(527973892); < 527973892, 2048, 0, 1, 0, 1, 2872, TTUSER, select * from t1 where x1 in (select x2 from t2) or x1 in (select x3 from t3) order by 1, 2, 3 > 1 row found.
ttIsqlで情報を垂直形式で表示するには、次のように実行します。
Command> vertical call ttSQLCmdCacheInfo; ...
sqlCmdID 51623232の情報をttIsqlで垂直形式で表示するには、次のように実行します。
Command> vertical call ttsqlcmdcacheinfo(51623232); SQLCMDID: 51623232 PRIVATE_COMMAND_CONNECTION_ID: 2048 EXECUTIONS: 4 PREPARES: 4 REPREPARES: 0 FREEABLE: 1 SIZE: 2704 OWNER: SYS QUERYTEXT: delete from sys.source$ where obj#=:1 1 row found.
説明
このプロシージャは、TimesTen SQLコマンド・キャッシュのすべての準備されたSQL文に関する情報を返します。
これはttSQLCmdCacheInfoと似ていますが、結果セットの説明に示すとおり、追加の列が返されます。
パラメータ
ttSQLCmdCacheInfo2には、次のオプションのパラメータがあります。
| パラメータ | データ型 | 説明 |
|---|---|---|
sqlCmdID |
32-bitシステムの場合はTT_INTEGER
64-bitシステムの場合は |
TimesTenコマンド・キャッシュでのSQLコマンドの一意の識別子。値が指定しない場合、すべてのコマンドに関する情報が表示されます。 |
結果セット
ttSQLCmdCacheInfo2は次の結果セットを返します。
| 列 | データ型 | 説明 |
|---|---|---|
sqlCmdID |
32-bitシステムの場合はTT_INTEGER NOT NULL
64-bitシステムの場合は |
コマンドの一意の識別子。 |
privateCommandConnectionID |
TT_INTEGER |
コマンドがプライベートの場合、これは準備された場所の接続の接続IDです。プライベート・コマンドでない場合、この値は2048です。 |
executions |
TT_BIGINT
|
コマンドの実行回数をカウントします。 |
prepares |
TT_BIGINTNOT NULL |
コマンドの準備の数をカウントします。 |
reprepares |
TT_BIGINT NOT NULL |
コマンドの再準備の数をカウントします。 |
freeable |
TT_TINYINT NOT NULL |
このコマンドがサブデーモンによってガベージ収集可能かどうかを示します。
|
size |
TT_INTEGERNOT NULL |
コマンド・キャッシュでこのコマンドに割り当てられた領域の合計(バイト)。 |
owner |
TT_CHAR (31) NOT NULL |
コマンドを作成したユーザー。 |
queryText |
TT_VARCHAR (409600) NOT NULL |
現在のコマンドの完全なSQLテキスト。 |
fetchCount |
TT_BIGINT |
この文のために行われたフェッチ実行の合計数。フェッチ数はTT_PREFETCH_COUNTによって決まります。プリフェッチ数には、コミット読取り分離モードのデフォルト値5およびシリアライズ可能なモードのデフォルト値128があります。 |
startTime |
TT_TIMESTAMP |
文が最後に実行された時刻。値の形式はYYYY-MM-DD HH:MI:SS.FFFです。 |
maxExecuteTime |
NUMBER |
この文の最大ウォール・クロック実行時間が秒単位で表示されます。 |
lastExecuteTime |
NUMBER |
コマンドの最後に測定された実行時間が秒単位で表示されます。 |
minExecuteTime |
NUMBER |
SqlCmdSampleFactor > 0の場合、秒単位の最小実行時間となり、それ以外は0.0となります。 |
例
現在有効なすべてのコマンドに関する情報をttIsqlに表示するには、次のように実行します。
Command> call ttSQLCmdCacheInfo2; ...
ttSQLCmdCacheInfoとttSQLCmdCacheInfo2の出力の違いを次の例に示します。
Command> call ttSQLCmdCacheInfo; ... < 51635464, 2048, 12, 12, 0, 1, 3056, SYS , delete from sys.idl_sb4$ where obj#=:1 and part=:2 > ... Command> call ttSQLCmdCacheInfo2; ... < 51635464, 2048, 12, 12, 0, 1, 3056, SYS, delete from sys.idl_sb4$ where obj#=:1 and part=:2, 0, 2013-10-28 16:47:09.173000, 0, 0, 0 > ...
結果セット
ttSQLCmdCacheInfoGetは次の結果セットを返します。
| 列 | データ型 | 説明 |
|---|---|---|
cmdCount |
TT_INTEGERNOT NULL |
キャッシュ内のコマンドの数。 |
freeableCount |
TT_INTEGERNOT NULL |
その時点でサブデーモンによってガベージ収集される解放可能なコマンドの数。この数は、コマンド情報を調べることによって取得されます。 |
size |
TT_BIGINTNOT NULL |
キャッシュされたすべてのコマンドを格納するために割り当てられた現在の領域の合計(バイト単位)。 |
説明
このプロシージャは、TimesTen SQLコマンド・キャッシュのSQL文のすべての詳細なランタイム問合せ計画を返します。引数を指定しないと、このプロシージャはTimesTenキャッシュのすべての有効なコマンドの問合せ計画を表示します。コマンドが無効である場合には、エラーが返され、問合せおよび構文の問題を指摘するテキストが表示されます。
パラメータ
ttSQLCmdQueryPlanには、次のオプションのパラメータがあります。
| パラメータ | データ型 | 説明 |
|---|---|---|
sqlCmdID |
32-bitシステムの場合はTT_INTEGER
64-bitシステムの場合は |
TimesTenコマンド・キャッシュでのSQLコマンドの一意の識別子。値が指定されない場合、TimesTenキャッシュのすべての有効なコマンドの問合せ計画を表示します。 |
結果セット
ttSQLCmdQueryPlanは次の結果セットを返します。
| 列 | データ型 | 説明 |
|---|---|---|
sqlCmdID |
32-bitシステムの場合はTT_INTEGER NOT NULL
64-bitシステムの場合は |
TimesTenコマンド・キャッシュでのコマンドの一意の識別子。 |
queryText |
TT_VARCHAR(409600) |
現在のコマンドのSQLテキストの最初の1024文字。 |
step |
TT_INTEGER |
このランタイム問合せ計画の現在の処理のステップ数。 |
level |
TT_INTEGER |
このランタイム問合せ計画の現在の処理のレベル数。 |
operation |
TT_CHAR(31) |
このランタイム問合せ計画の現在のステップの処理名。 |
tblName |
TT_CHAR(31) |
このステップに使用されている表の名前(存在する場合)。
表名の指定にシノニムは使用できません。 |
tblOwnerName |
TT_CHAR(31) |
このステップに使用されている表の所有者の名前(存在する場合)。 |
indexName |
TT_CHAR(31) |
このステップに使用されている索引の名前(存在する場合)。 |
indexedPred |
TTVARCHAR(1024) |
このステップでは、索引が使用される場合、索引付けされた条件が出力されます(使用可能な場合)。式をすべて出力できないため、出力が断片化および切り捨てられる可能性があります。"..."は、式の未終了の部分を表します。 |
nonIndexedPred |
TT_VARCHAR(1024) |
このステップでは、索引付けされていない条件が使用される場合、その索引付けされていない条件が出力されます(使用可能な場合)。式をすべて出力できないため、出力が断片化および切り捨てられる可能性があります。"..."は、式の未終了の部分を表します。 |
例
SQLCmdID 528078576の問合せ計画を表示するには、次のコマンドを実行します。
Command> call ttSqlCmdQueryPlan(528078576); < 528078576, select * from t1 where 1=2 or (x1 in (select x2 from t2, t5 where y2 in (select y3 from t3)) and y1 in (select x4 from t4)), <NULL>, <NULL>, <NULL>, <NULL>, <NULL>, <NULL>, <NULL>, <NULL> > < 528078576, <NULL>, 0, 4, RowLkSerialScan , T1 , TTUSER , , , > < 528078576, <NULL>, 1, 7, RowLkRangeScan , T2 , TTUSER , I2 , , > < 528078576, <NULL>, 2, 7, RowLkRangeScan , T5 , TTUSER , I2 , , > < 528078576, <NULL>, 3, 6, NestedLoop , , , , , > < 528078576, <NULL>, 4, 6, RowLkRangeScan , T3 , TTUSER , I1 , ( (Y3=Y2; ) ) , > < 528078576, <NULL>, 5, 5, NestedLoop , , , , , > < 528078576, <NULL>, 6, 4, Filter , , , , , X1 = X2; > < 528078576, <NULL>, 7, 3, NestedLoop(Left OuterJoin) , , , , , > < 528078576, <NULL>, 8, 2, Filter , , , , , > < 528078576, <NULL>, 9, 2, RowLkRangeScan , T4 , TTUSER , I2 , , Y1 = X4; > < 528078576, <NULL>, 10, 1, NestedLoop(Left OuterJoin) , , , , , > < 528078576, <NULL>, 11, 0, Filter , , , , , > 13 rows found.
すべての有効な問合せの問合せ計画を表示するには、次のようにttSqlCmdQueryPlanの引数を省略します。
< 528079360, select * from t7 where x7 is not null
or exists (select 1 from t2,t3 where not 'tuf' like 'abc'),
<NULL>, <NULL>, <NULL>, <NULL>, <NULL>, <NULL>, <NULL>, <NULL> >
< 528079360, <NULL>, 1, 3, RowLkRangeScan , T2
, TTUSER , I2 , , NOT(LIKE( tuf ,abc ,NULL )) >
< 528079360, <NULL>, 2, 3, RowLkRangeScan , T3 , TTUSER ,
I2 , , >
< 528079360, <NULL>, 3, 2, NestedLoop , , , , , >
< 528079360, <NULL>, 4, 1, NestedLoop(Left OuterJoin) , , , , , >
< 528079360, <NULL>, 5, 0, Filter , , , , , X7 >
< 527576540, call ttSqlCmdQueryPlan(527973892), <NULL>, <NULL>,
<NULL>, <NULL>, <NULL>, <NULL>, <NULL>, <NULL> >
< 527576540, <NULL>, 0, 0, Procedure Call , , , , , >
< 528054656, create table t2(x2 int,y2 int, z2 int), <NULL>,
<NULL>, <NULL>, <NULL>, <NULL>, <NULL>, <NULL>, <NULL> >
< 528066648, insert into t2 select * from t1, <NULL>, <NULL>,
<NULL>, <NULL>, <NULL>, <NULL>, <NULL>, <NULL> >
< 528066648, <NULL>, 0, 0, Insert , T2 , TTUSER , , , >
< 528013192, select * from t1 where exists (
select * from t2 where x1=x2) or y1=1,
<NULL>, <NULL>, <NULL>, <NULL>, <NULL>, <NULL>, <NULL>, <NULL> >
< 528061248, create index i1 on t3(y3), <NULL>, <NULL>, <NULL>,
<NULL>, <NULL>, <NULL>, <NULL>, <NULL> >
< 528070368, call ttOptSetOrder('t3 t4 t2 t1'), <NULL>, <NULL>,
<NULL>, <NULL>, <NULL>, <NULL>, <NULL>, <NULL> >
< 528070368, <NULL>, 0, 0, Procedure Call , , , , , >
< 528018856, insert into t2 select * from t1, <NULL>, <NULL>,
<NULL>, <NULL>, <NULL>, <NULL>, <NULL>, <NULL> >
< 527573452, call ttsqlCmdCacheInfo(527973892), <NULL>, <NULL>,
<NULL>, <NULL>, <NULL>, <NULL>, <NULL>, <NULL> >
< 527573452, <NULL>, 0, 0, Procedure Call , , , , , >
….. /* more rows here */
説明
ttSQLExecutionTimeHistogram組込みプロシージャは、単一のSQLコマンド、またはコマンド・キャッシュでサンプリングを有効にしている場合はすべてのSQLコマンドのいずれかのSQL実行時間のヒストグラムを返します。
パラメータ
ttSQLExecutionTimeHistogramには、次のオプション・パラメータがあります。
| パラメータ | データ型 | 説明 |
|---|---|---|
sqlCommandID |
32-bitシステムの場合はTT_INTEGER
64-bitシステムの場合は |
TimesTenコマンド・キャッシュでのSQLコマンドの一意の識別子。値が指定されない場合、TimesTenコマンド・キャッシュの現在のすべてのコマンドに関する情報を表示します。 |
結果セット
ttSQLExecutionTimeHistogramは、次の結果セットを返します。
| 列 | データ型 | 説明 |
|---|---|---|
histogramSamples |
TT_BIGINT |
データベースが起動されてからまたはttStatsConfig組込みプロシージャを使用して統計がリセットされてからの、SQLコマンド実行時間操作が測定された回数。 |
totalExecuteTime |
NUMBER |
サンプリング時の蓄積された実実行時間(秒)。 |
bucketUpperBound |
NUMBER |
実行時間の上限(秒)。 |
count |
TT_BIGINT |
ExecutionTimeLimit以下であり、前の行または0からのExecutionTimeLimitを超える時間でのSQLコマンドの数。 |
例
次の例では、ttSQLExecutionTimeHistogram組込みプロシージャの出力を示しています。
次のttSQLExecutionTimeHistogram組込みプロシージャの例は、合計1919文が実行されていることを示しています。1919すべての文の実行にかかった合計時間は、1.090751秒でした。この例ではSQL文が次の時間枠で実行されたことを示しています。
278文が.00001562秒以下の時間枠の間に実行された。
1484文が.00001562秒を超え.000125以下の時間枠の間に実行された。
35文が.000125秒を超え.001以下の時間枠の間に実行された。
62文が.001秒を超え.008以下の時間枠の間に実行された。
60文が.008秒を超え.064以下の時間枠の間に実行された。
Command> call ttSQLExecutionTimeHistogram; < 1919, 1.090751, .00001562, 278 > < 1919, 1.090751, .000125, 1484 > < 1919, 1.090751, .001, 35 > < 1919, 1.090751, .008, 62 > < 1919, 1.090751, .064, 60 > < 1919, 1.090751, .512, 0 > < 1919, 1.090751, 4.096, 0 > < 1919, 1.090751, 32.768, 0 > < 1919, 1.090751, 262.144, 0 > < 1919, 1.090751, 9.999999999E+125, 0 > 10 rows found.
説明
ttStatsConfig組込みプロシージャは、統計収集およびパラメータを制御します。このプロシージャは、名前と値のペアを入力として取り、名前と値のペアのパラメータに対応する単一行の結果セットを出力します。
パラメータ
ttStatsConfigには、次のパラメータがあります。
| パラメータ | データ型 | 説明 |
|---|---|---|
param |
VARCHAR2(50) NOT NULL |
TimesTenコマンド・キャッシュでのSQLコマンドの一意の識別子。 |
value |
VARCHAR2(200) |
指定したコマンドの値。値が指定されない場合、TimesTenキャッシュのすべての有効なコマンドの問合せ計画を表示します。 |
結果セット
ttStatsConfigは、次の結果セットを返します。
| 列 | データ型 | 説明 |
|---|---|---|
param |
VARCHAR2(50) NOT NULL |
TimesTenコマンド・キャッシュでのSQLコマンドの一意の識別子。 |
value |
VARCHAR2(200) |
指定したコマンドの値。値を指定しなかった場合、コマンドの現在の値になります。 |
パラメータ/値のペア
次の名前/値のペアが結果セットで返されます。
| 名前 | 値 | 説明 |
|---|---|---|
SQLCmdSampleFactor |
0 <= value <= 60000 |
SQLコマンドのサンプルが取られる頻度。デフォルトは0です。値0は、サンプリングがオフになっていることを示します。0を超える値は、SQL文の間隔でサンプルが取られることを示します。たとえば、値10は、10番目のSQL文の実行ごとに実行の実時間が取得されます。 |
ConnSampleFactor |
C,S
|
TimesTenコマンド・キャッシュでのSQLコマンドの一意の識別子。値を指定しない場合、TimesTenではコマンドの現在の値が表示されます。 |
SQLCmdHistogramReset |
0または0以外 |
指定された値が0(ゼロ)以外の場合、既存のSQL実行時間統計がリセットされます。 |
StatsLevel |
NONE
|
データベースおよびオペレーティング・システム統計の収集レベルを指定します。TimesTenでは、これらの統計を自己管理の意思決定を含む様々な目的で収集します。
デフォルト設定の
StatsLevelパラメータを |
例
各コマンドをサンプリングします。
Command> call ttStatsConfig('SqlCmdSampleFactor',1);
< SQLCMDSAMPLEFACTOR, 1 >
1 row found.
サンプリングをチェックします。
Command> call ttStatsConfig('SqlCmdSampleFactor');
< SQLCMDSAMPLEFACTOR, 1 >
1 row found.
接続1で5文ごとにサンプリングします。
Command> call ttStatsConfig('ConnSampleFactor', '1,5');
< CONNSAMPLEFACTOR, 1,5 >
1 row found.
接続1でのサンプリングをオフにします。
Command> call ttStatsConfig('ConnSampleFactor', '1,0');
< CONNSAMPLEFACTOR, 1,0 >
1 row found.
データ・ストア統計の収集レベルをチェックします。
Command> call ttstatsconfig('StatsLevel');
< STATSLEVEL, TYPICAL >
1 row found.
データ・ストア統計の収集をオフにします。
Command> call ttstatsconfig('StatsLevel','None');
< STATSLEVEL, NONE >
1 row found.
説明
この組込みプロシージャはOracle Databaseの表に対するSELECT問合せを評価し、実行を選択できるCREATE TABLE SQL文を生成します。TimesTen CREATE TABLE文は結果セットの列名とタイプを突き合せます。
このプロシージャはTimesTen表を作成しません。表スキーマを識別する文のみを返します。
詳細と使用法の情報については、『Oracle TimesTen In-Memory Databaseオペレーション・ガイド』のOracle DatabaseからTimesTen表へのデータのロードに関する説明を参照してください。
パラメータ
ttTableSchemaFromOraQueryGetには、次のパラメータがあります。
| パラメータ | データ型 | 説明 |
|---|---|---|
tblOwner |
TT_CHAR (30) |
TimesTen表の所有者(オプション)。指定しない場合は、接続IDが使用されます。 |
tblName |
TT_CHAR(30) NOT NULL |
CREATE TABLE文の表名。
指定するTimesTen表はシステム表、シノニム、ビュー、マテリアライズド・ビューまたはマテリアライズド・ビューの詳細表、グローバル一時表、キャッシュ・グループ表とすることはできません。 |
Query |
TT_VARCHAR (409600) NOT NULL |
表の列定義を導出する、Oracle Databaseに対するSELECT問合せ。
|
結果セット
ttTableSchemaFromOraQueryGetは次の結果セットを返します。
| 列 | データ型 | 説明 |
|---|---|---|
createSQL |
TT_VARCHAR (409600) NOT NULL |
Oracle DatabaseのSELECT問合せの結果セットを突き合せるCREATE TABLE文。 |
例
次の例ではCREATE TABLE文が返され、TimesTen HR.EMPLOYEES表が作成されます。この表のすべての列はOracle DatabaseのHR.EMPLOYEES表にあります。
Command> call ttTableSchemaFromOraQueryGet('hr','employees',
'SELECT * FROM hr.employees');
< CREATE TABLE "HR"."EMPLOYEES" (
"EMPLOYEE_ID" number(6,0) NOT NULL,
"FIRST_NAME" varchar2(20 byte),
"LAST_NAME" varchar2(25 byte) NOT NULL,
"EMAIL" varchar2(25 byte) NOT NULL,
"PHONE_NUMBER" varchar2(20 byte),
"HIRE_DATE" date NOT NULL,
"JOB_ID" varchar2(10 byte) NOT NULL,
"SALARY" number(8,2),
"COMMISSION_PCT" number(2,2),
"MANAGER_ID" number(6,0),
"DEPARTMENT_ID" number(4,0)
) >
1 row found.
注意
Oracle Databaseに対する問合せはパラメータ・バインディングを持つことができません。
問合せにOracle Databaseに関する記述がない場合(構文エラーなど)、TimesTenはエラーを返します。
出力列タイプにTimesTenの一致タイプがない場合、TimesTenは警告および列定義の次の行を出力します。>>>>column_name column_type /* reason */
Oracle Databaseへの問合せでTimesTenでサポートされていないタイプが出力された場合、TimesTenがサポートするタイプに出力を明示的に変更するために、SELECTリストでCAST句を追加できます。SELECTリストの式について、それぞれ列別名を指定できます。
Oracle Databaseに対する問合せにLOB出力がある場合、VAR型にマップされます。
説明
ttVersionユーティリティは、リリース番号、プラットフォーム、インスタンス名、インスタンス管理者、インスタンス・ホーム・ディレクトリ、デーモン・ホーム・ディレクトリ、ポート番号およびビルド・タイムスタンプなどの、TimesTenリリース情報を表示します。次のように様々な出力レベルを指定できます。
出力を簡略形式で表示するには、オプションなしでttVersionを指定します。
出力を拡張形式で表示するには、-mオプションを指定します。
特定の属性の出力のみを表示するには、属性を指定します。
結果セット
ttVersionは次の結果セットを返します。
| 列 | データ型 | 説明 |
|---|---|---|
major1 |
TT_INTEGERNOT NULL |
メジャー・リリース番号。インフラストラクチャおよび機能に重要な変更が加えられたリリースであることを示します。 |
major2 |
TT_INTEGERNOT NULL |
2番目のメジャー・リリース番号。新たな機能変更が加えられたものの、インフラストラクチャには変更がないバージョンであることを示します。 |
minor |
TT_INTEGERNOT NULL |
マイナー・リリース番号。前回のメンテナンス・リリース以降のすべてのバグ修正を含むリリースであることを示します。 |
patch |
TT_INTEGERNOT NULL |
マイナーなバグ修正を施したリリースであることを示します。 |
portpatch |
TT_INTEGERNOT NULL |
特定のプラットフォームに対してパッチ修正を施したリリースであることを示します。 |
説明
このプロシージャを使用すると、現在の接続で実行された処理で割り当てられたメモリーが少ない場合に警告が返されるようにアプリケーションで指定できます。値を設定した場合、メモリーが割り当てられる処理で、総メモリーの使用量が接続のしきい値(接続属性PermWarnThresholdおよびTempWarnThresholdで指定)を超えると、警告が返されます。
説明
このプロシージャは、ロック・メッセージを解釈するためのトランザクションID情報を返します。ttXactIdGetの2つの結果列を組み合せて使用すると、データベースのトランザクションを一意に識別できます。個々に使用される列は対象になりません。結果は、トランザクション情報の他のソースと相関させる目的にのみ使用します。数値に厳密なパターンはありません。
結果セット
ttXactIdGetは次の結果セットを返します。
| 列 | データ型 | 説明 |
|---|---|---|
xactID |
TT_INTEGER |
接続ID。 |
counter |
TT_BIGINT |
同じトランザクションIDの連続するトランザクションを区別するために使用される、累増する数値。 |
パラメータ
ttXlaBookmarkCreateには、次のパラメータがあります。
| パラメータ | データ型 | 説明 |
|---|---|---|
bookmark |
TT_CHAR(31) NOT NULL |
作成するブックマークの名前。 |
replicated |
BINARY(1) |
レプリケートされないブックマークの場合は0x00またはNULL(同等の値)(デフォルト設定)。
レプリケートされるブックマークの場合は
|
または
Command> call ttxlabookmarkcreate('mybkmk2',0x00);
レプリケートされるブックマークの場合は、次のコマンドを実行します。
Command > call ttXlaBookmarkCreate('mybookmark', 0x01);
レプリケートされるXLAブックマークなどXLAブックマークの詳細は、『Oracle TimesTen In-Memory Database C開発者ガイド』のXLAブックマークに関する説明を参照してください。
パラメータ
ttXlaSubscribeには、次のパラメータがあります。
| パラメータ | データ型 | 説明 |
|---|---|---|
tblName |
TT_CHAR(61) NOT NULL |
追跡する表の名前。
表名の指定にシノニムは使用できません。 |
bookmark |
TT_CHAR(31) NOT NULL |
アプリケーションがこの表を追跡するために使用するブックマークの名前。 |