プライマリ・コンテンツに移動

Oracle® SQL Developerユーザーズ・ガイド リリース17.4 E94576-01 |
| 目次 | 索引

前 | 次 |

# 7 SQL Developer: TimesTenのサポート

Oracle TimesTen In-Memory Databaseに接続する場合、SQL Developer内で多くのTimesTen特有の操作を実行できます。

このトピックは、SQL Developerドキュメント・ライブラリにある『Oracle SQL Developer Oracle TimesTen In-Memory Databaseサポート・ユーザーズ・ガイド』から選択した資料を反映しています。

- 新規TimesTen接続の作成

- キャッシュ管理者のユーザー名およびパスワードの設定

- キャッシュ・エージェントの起動および停止

- キャッシュ・グループの作成

- キャッシュ・グループの削除

- キャッシュ・グループのロードまたはリフレッシュ

- キャッシュ・グループのフラッシュ

- キャッシュ・グループのアンロード

- キャッシュ・グループの自動リフレッシュ属性の変更

- LOBデータ型の指定および表示

- 列へのINLINE属性の指定

- 表サイズの計算

- OUTPUTパラメータとしてのREF CURSORの使用

- TimesTen表での索引の作成

- 主キー制約の作成

- 主キーの属性の変更

- 外部キー制約の作成

- 制約の削除

- 表へのエージング・ポリシーの追加

- 表からのエージング・ポリシーの削除

- 表のエージング・ポリシーのエージング状態の変更

- メモリー使用量のしきい値およびLRUエージング・サイクルの変更

- 表の時間ベースのエージング・ポリシーの存続期間とサイクルの変更

- TimesTenデータベース要素へのオブジェクト権限の付与

- TimesTenデータベース要素からのオブジェクト権限の取消し

- 表へのデータのロード

- TimesTenレプリケーション・エージェントの起動および停止

- TimesTen問合せオプティマイザにより使用される表および列の統計の更新

- TimesTen問合せオプティマイザにより使用される表および列の統計のエクスポート

- TimesTenパフォーマンス・メトリック・スナップショットの作成

- TimesTenパフォーマンス・メトリック・スナップショットの削除

- TimesTenパフォーマンス・メトリック構成の編集

- TimesTenパフォーマンス・メトリック・レポートの作成

- 接続レベルでのTimesTen索引アドバイザ用データの取得

- データベース・レベルでのTimesTen索引アドバイザ用データの取得

- TimesTen索引アドバイザの取得状況の表示

- OracleデータベースからTimesTenデータベースへのデータのロード

- Oracleデータベース表から既存のTimesTen表へのデータのロード

## 7.1 新規TimesTen接続の作成

TimesTenデータベースへの名前付き接続を作成するには、SQL Developerのメイン・ページで作業を行う必要があります。

1. 「接続」ノードを右クリックし、「新規接続」を選択します。

   「データベース接続の作成/選択」ダイアログが表示されます。

2. 「TimesTen」タブを選択します。

   接続の情報を入力できます。

3. 「接続名」フィールドに、接続名を入力します。

4. 「ユーザー名」フィールドに、TimesTenユーザーを入力します。TimesTenデータベースを使用してOracle Databaseからデータをキャッシュする場合は、TimesTenキャッシュ・マネージャのユーザー名を入力します。TimesTenデータベースを使用してOracle Databaseからデータをロードする場合は、ロードするOracleデータベース表で`SELECT`権限を持つTimesTenユーザー名を入力します。

5. 「パスワード」フィールドに、TimesTenユーザーのパスワードを入力します。

   パスワードを保存するには、「パスワードの保存」を選択します。パスワードを保存すると、以降のTimesTenデータベースへの接続時に、パスワードを要求されなくなります。

6. TimesTenに、DML文の後で暗黙的コミットの実行を許可するには、「自動コミット」チェック・ボックスを選択します。デフォルトでは、自動コミットチェック・ボックスは選択されています。

7. 「接続タイプ」ドロップダウン・リストから接続タイプを選択します。次のタイプの接続を使用できます。

   - DSN

   - 簡易クライアント/サーバー

   - 拡張

   新規接続を定義する準備ができました。

関連項目

- DSN
- 簡易クライアント/サーバー
- 拡張

### 7.1.1 DSN

DSN接続タイプで、DSNを指定してデータベースに接続することができます。DSNは、UNIX上の`.ODBC.INI`およびWindows上のODBC Data Source Administratorに存在する必要があります。

1. 「DSN」ドロップダウン・リストで、TimesTenデータベースを参照する事前定義済のDSNを選択します。Data Manager DSNを選択して直接接続を確立するか、クライアントDSNを選択してクライアント/サーバー接続を確立することができます。

2. 「接続の属性」フィールドにDSNの属性を入力します。接続の属性フィールドに入力する必要はありません。各属性設定をセミコロンで区切る必要があります。接続属性を指定しない場合は、DSNで指定した属性が使用されます。

3. OracleデータベースからTimesTenデータベースにデータをキャッシュまたはロードするには、「Oracleデータベースからの表のキャッシュ/ロードの有効化」チェック・ボックスを選択します。

4. 「Oracle Databaseパスワード」フィールドにOracleデータベース・ユーザーのOracleデータベース・パスワードを入力します。Oracleデータベース・ユーザーは、「ユーザー名」フィールドで指定したTimesTenユーザーと同じである必要があります。このテキスト・フィールドは、「Oracleデータベースからの表のキャッシュ/ロードの有効化」チェック・ボックスを選択した場合のみ使用可能です。

5. 「保存」をクリックして、「接続」ノードの下に接続名を保存します。

   接続は保存されました。名前付き接続の設定を使用して、データベース接続の作成/選択ダイアログ・ボックスのフィールドに値を再び指定しないでも、データベースへの接続を確立できます。

6. 「接続」をクリックします。

   SQL Developerが、TimesTenデータベースに接続します。

関連項目

- TimesTenデータベースを識別するためのデータソース名の指定
- 接続属性
- データベース接続

### 7.1.2 簡易クライアント/サーバー

簡易クライアント/サーバー接続タイプにより、DSNを定義する必要なく、ローカルおよびリモート・データベースに接続できます。

1. 「サーバーのホスト名」フィールドに、TimesTenサーバーのホスト名またはIPアドレスを入力します。

2. 「サーバーDSN」フィールドに、TimesTenサーバーのDSNを入力します。

3. 「サーバー・ポート」フィールドに、TimesTenサーバーのTCPポートを入力します。`ttStatus`ユーティリティを使用して、TimesTenサーバーのTCPポートを検索できます。

   次の例では、サーバーのポート番号は53396です。次に、`ttStatus`ユーティリティの出力例の一部を示します。

       TimesTen server pid 24379 started on port 53396

   `ttStatus`ユーティリティの詳細は、『Oracle TimesTen In-Memory Databaseリファレンス』のttStatusに関する項を参照してください。

4. OracleデータベースからTimesTenデータベースにデータをキャッシュまたはロードするには、「Oracleデータベースからの表のキャッシュ/ロードの有効化」チェック・ボックスを選択します。

5. 「Oracle Databaseパスワード」フィールドにOracleデータベース・ユーザーのOracleデータベース・パスワードを入力します。Oracleデータベース・ユーザーは、「ユーザー名」フィールドで指定したTimesTenユーザーと同じである必要があります。このテキスト・フィールドは、「Oracleデータベースからの表のキャッシュ/ロードの有効化」チェック・ボックスを選択した場合のみ使用可能です。

6. Oracle Net Service名フィールドにOracleデータベースのネット・サービス名を入力します。このテキスト・フィールドは、「Oracleデータベースからの表のキャッシュ/ロードの有効化」チェック・ボックスを選択した場合のみ使用可能です。

7. 「保存」をクリックして、「接続」ノードの下に接続名を保存します。

   接続は保存されました。名前付き接続の設定を使用して、データベース接続の作成/選択ダイアログ・ボックスのフィールドに値を再び指定しないでも、データベースへの接続を確立できます。

8. 「接続」をクリックします。

   SQL Developerが、TimesTenデータベースに接続します。

関連項目

- データベース接続

### 7.1.3 拡張

拡張接続タイプで、TimesTenデータベースに接続するための接続文字列を定義できます。

1. 「ドライバ・タイプ」オプションでTimesTenデータベースのドライバ・タイプを選択します。クライアント/サーバー接続を確立するために「クライアント/サーバー」を選択するか、直接接続を確立するために「ダイレクト」を選択します。

2. 「接続文字列」フィールドに、DSNを定義するための接続文字列を入力し、DSNの属性を設定します。「ドライバ・タイプ」に「クライアント/サーバー」を選択する場合は、サーバー・ホスト、サーバー・ポートおよびDSNを指定します。各属性設定をセミコロンで区切る必要があります。接続文字列を二重引用符で区切らないでください。

3. OracleデータベースからTimesTenデータベースにデータをキャッシュまたはロードするには、「Oracleデータベースからの表のキャッシュ/ロードの有効化」チェック・ボックスを選択します。

4. 「Oracle Databaseパスワード」フィールドにOracleデータベース・ユーザーのOracleデータベース・パスワードを入力します。Oracleデータベース・ユーザーは、「ユーザー名」フィールドで指定したTimesTenユーザーと同じである必要があります。このテキスト・フィールドは、「Oracleデータベースからの表のキャッシュ/ロードの有効化」チェック・ボックスを選択した場合のみ使用可能です。

5. 「保存」をクリックして、「接続」ノードの下に接続名を保存します。

   接続は保存されました。名前付き接続の設定を使用して、データベース接続の作成/選択ダイアログ・ボックスのフィールドに値を再び指定しないでも、データベースへの接続を確立できます。

6. 「接続」をクリックします。

   SQL Developerが、TimesTenデータベースに接続します。

関連項目

- 接続文字列を使用したデータベース接続
- データベース接続

## 7.2 キャッシュ管理者のユーザー名およびパスワードの設定

Oracle Databaseでキャッシュ管理ユーザーを作成する必要があります。このユーザーは、特定のキャッシュ・グリッドの管理に使用する情報を格納するOracleオブジェクトを作成、所有および保持します。また、このユーザーは、キャッシュ・グループの定義済動作を実行します。

Oracle Databaseでキャッシュ管理ユーザーを作成した後、TimesTenデータベースでそのユーザーに名前およびパスワードを設定する必要があります。

キャッシュ管理ユーザーの名前およびパスワードを設定するには、TimesTenデータベースの接続名のノードを右クリックして、「キャッシュ管理ユーザーの設定」を選択します。

「キャッシュ管理者ユーザーを設定中」ダイアログが表示されます。「プロンプト」タブの「キャッシュ管理者ユーザーID」フィールドで、キャッシュ管理ユーザー名を入力します。「キャッシュ管理者ユーザー・パスワード」フィールドで、キャッシュ管理ユーザーのOracleパスワードを入力します。

「適用」をクリックします。

OracleをキャッシュするTimesTenデータベースごとに、キャッシュ管理ユーザー名およびパスワードを設定する必要があります。TimesTenデータベースを削除して再作成する場合、または Oracle Databaseでキャッシュ管理ユーザーを削除して再作成する場合は、TimesTenデータベースでキャッシュ管理ユーザー名およびパスワードをリセットする必要があります。

関連項目

- キャッシュ管理ユーザーの名前およびパスワードの設定

## 7.3 キャッシュ・エージェントの起動および停止

キャッシュ管理ユーザーの名前およびパスワードを設定し、キャッシュ・グリッドを作成して、そのキャッシュ・グリッドにTimesTenデータベースを関連付けた後に、TimesTenキャッシュ・エージェント・プロセスを起動する必要があります。キャッシュ・エージェント・プロセスでは、キャッシュ・グループのロードや自動リフレッシュなどの操作をキャッシュします。

キャッシュ・エージェントを起動するには、TimesTenデータベースの接続名のノードを右クリックして、「キャッシュ・エージェントの開始/停止」を選択します。

「キャッシュ・エージェントを開始中/停止中」ダイアログ・ボックスで、「プロンプト」タブの「エージェントの開始」を選択します。次に、「適用」をクリックして、キャッシュ・エージェントを起動します。

実行中のキャッシュ・エージェント・プロセスを停止するには、TimesTenデータベースの接続名のノードを右クリックして、キャッシュ・エージェントを起動したときと同じ方法で「キャッシュ・エージェントの開始/停止」を選択します。

「キャッシュ・エージェントを開始中/停止中」ダイアログ・ボックスで、「プロンプト」タブの「エージェントの停止」を選択します。次に、「適用」をクリックして、キャッシュ・エージェントを停止します。

関連項目

- キャッシュ・エージェントの管理

## 7.4 キャッシュ・グループの作成

TimesTenデータベースにキャッシュする一連のOracleデータは、キャッシュ・グループによって定義されます。キャッシュ・グループを作成すると、キャッシュされたOracle表に対応するキャッシュ表がTimesTenデータベースに作成されます。

キャッシュ・グループを作成するには、TimesTenデータベースの接続名のノードの下の「キャッシュ・グループ」ノードを右クリックして、「新規のキャッシュ・グループ」を選択します。

「キャッシュ・グループの作成」ダイアログで、「キャッシュ・グループ属性」タブの「名前」フィールドでキャッシュ・グループの名前を指定します。「タイプ」で、キャッシュ・グループ・タイプ(読取り専用、非同期ライトスルー、同期ライトスルーまたはユーザー管理)を選択します。

キャッシュ・グループは、明示的にロードされるキャッシュ・グループまたは動的キャッシュ・グループのいずれかに分類されます。動的キャッシュ・グループを作成する場合は、「型」セクションで「動的」を選択します。

明示的にロードされるキャッシュ・グループでは、ロードまたはリフレッシュ操作を使用して手動で、または自動リフレッシュ操作を使用して自動で、対応するOracle表からキャッシュ表にデータをロードします。動的キャッシュ・グループでは、動的ロード操作を使用するか、ロード操作を使用して手動で、必要時に対応するOracle表からキャッシュ表へデータをロードします。

読取り専用、非同期ライトスルー(AWT)または同期ライトスルー(SWT)キャッシュ・グループは、動的キャッシュ・グループとして定義できます。ユーザー管理キャッシュ・グループに次のすべての特性が含まれない場合は、動的キャッシュ・グループとして定義できます。

- 自動リフレッシュが定義されている

- キャッシュ表の1つ以上が更新可能

- 1つ以上の更新可能キャッシュ表でコミットされた更新が対応するOracle表に伝播される

キャッシュ・グループは、ローカルまたはグローバルのいずれかとして分類されます。グローバル・キャッシュ・グループを作成する場合は、「タイプ」セクションで「グローバル」を選択します。

ローカル・キャッシュ・グループでは、キャッシュ表のデータは、TimesTenデータベースが同じキャッシュ・グリッドのメンバーであってもTimesTenデータベース間で共有されません。グローバル・キャッシュ・グループでは、キャッシュ表のデータが、同じキャッシュ・グリッドのメンバーであるTimesTenデータベース間で共有されます。

グローバル・キャッシュ・グループとして定義できるのは、AWTキャッシュ・グループのみです。

関連項目

- キャッシュ・グループおよびキャッシュ表属性の定義
- ルート表の定義
- 子表の定義
- キャッシュ・グループへのデータのロード: 明示的にロードされるキャッシュ・グループおよび動的キャッシュ・グループ
- キャッシュ・グリッド間でのデータの共有: ローカル・キャッシュ・グループおよびグローバル・キャッシュ・グループ

### 7.4.1 キャッシュ・グループおよびキャッシュ表属性の定義

「キャッシュ・グループの作成」ダイアログの「キャッシュ・グループ属性」タブ内で、ユーザー管理キャッシュ・グループを作成し、「表の属性」セクションで「自動リフレッシュ」を選択して、「すべての表が読取り専用」または「すべての表の伝播」が選択されたときに、自動リフレッシュを有効化する場合、または読取り専用キャッシュ・グループを作成する場合は、自動リフレッシュの特性は次のようになります。

- 「モード」フィールドに「完全」または「インクリメンタル」のいずれかを選択して、自動リフレッシュ・モードを設定します。デフォルトの自動リフレッシュ・モードは「インクリメンタル」です。

- 「リフレッシュ間隔」フィールドで、数値と、分、秒またはミリ秒の時間単位を指定して、自動リフレッシュ間隔を設定します。デフォルトの自動リフレッシュ間隔は5分です。

- 「リフレッシュ状態」フィールドで、「一時休止」、「オン」または「オフ」のいずれかを選択して、自動リフレッシュ状態を設定します。デフォルトの自動リフレッシュ状態は「一時休止」です。

ユーザー管理キャッシュ・グループを作成する場合は、「キャッシュ・グループの作成」ダイアログの「キャッシュ・グループ属性」タブにある「表の属性」セクションから、次のいずれかを選択します。

- すべての表が読取り専用: すべてのキャッシュ表は読取り専用です。

- すべての表の伝播: すべてのキャッシュ表が更新可能で、キャッシュ表でコミットされた更新が対応するOracle表に伝播されます。

- 表によって異なる: 一部のキャッシュ表は読取り専用であり、その他のキャッシュ表は更新可能で、キャッシュ表でコミットされた更新が対応するOracle表に伝播される可能性があります。

関連項目

- AUTOREFRESHキャッシュ・グループ属性
- 読取り専用キャッシュ・グループ
- ユーザー管理キャッシュ・グループ

### 7.4.2 ルート表の定義

「キャッシュ・グループの作成」ダイアログで、「表」タブをクリックします。「表」パネルを右クリックして、「ルート表の追加」を選択します。

「ルート表の選択」ダイアログが表示されます。キャッシュ・グループのルート表として指定するために選択できるOracle表およびOracleシノニムのリストが表示されます。主キーを持つOracle表およびNULLでない一意の索引を持つOracle表を選択できます。

表を選択し、「OK」をクリックします。

現在の接続ユーザーが所有するOracle表のみを表示するには、「自分の表のみ表示」を選択します。

関連項目

- Oracleシノニムのキャッシュ

#### 7.4.2.1 キャッシュする列の選択

「キャッシュ・グループの作成」ダイアログの「表」タブ内の「列」タブで、「インライン」フィールドの下のチェック・ボックスを選択して、列に`INLINE`属性を指定します。`VARCHAR2`、`NVARCHAR2`および`VARBINARY`型の列に、`INLINE`属性を指定できます。

キャッシュ済の列ごとに、「NULL値を許可」フィールドの下のチェック・ボックスを選択して、NULL値を受け入れます。デフォルトでは、キャッシュ表の列にNULL値を指定できるかどうかは、対応するOracle表の列にNULL値を指定できるかどうかと同じです。

キャッシュする列ごとに、「キャッシュ済」フィールドの下のチェック・ボックスを選択します。デフォルトでは、表のすべての列が選択され、キャッシュされます。Oracle表の一意識別列(主キー、一意索引または一意制約)は、TimesTenキャッシュ表に含まれている必要があり、キャッシュ表の主キーを構成します。

Oracle表の一意識別列以外のすべての列を選択または選択解除する場合、NULL値を受け入れる場合またはキャッシュする場合は、「NULL値を許可」フィールドおよび「キャッシュ済」フィールドの左側に表示されるチェック・ボックスをそれぞれ選択または選択解除します。

互換性があるTimesTenデータ型を複数持つOracleデータ型があります。複数のTimesTenデータ型をマップできるデータ型を持つOracle表の列の場合、「TimesTenのデータ型」フィールドの下にメニューが表示されます。キャッシュ表の列に必要なデータ型を選択します。Oracleデータ型と互換性のあるデフォルトのTimesTenデータ型は斜体で表示されます。

更新可能なキャッシュ表に対して、キャッシュ済の各列の「デフォルト値」フィールドの下でデフォルトの列値を指定して、デフォルト値を定義できます。デフォルトでは、キャッシュ表の列のデフォルト値は、対応するOracle表の列のデフォルト値と同じです。

関連項目

- キャッシュ・グループおよびキャッシュ表
- Oracleデータ型とTimesTenデータ型の間のマッピング

#### 7.4.2.2 表属性の指定

デフォルトでは、TimesTenによってキャッシュ表の主キー列にレンジ索引が作成されます。主キー列にレンジ索引ではなくハッシュ索引を作成するには、「キャッシュ・グループの作成」の「表」タブ内の「表の属性」タブの「主キー」セクションで、「ハッシュの使用」を選択します。「ハッシュ・サイズ設定ポリシー」メニューおよびコロン(:)の後の近隣のフィールド(数値が必要)に、基礎となるキャッシュ表の予想される行の最大数または索引に割り当てるページ数のいずれかを指定して、ハッシュ索引のサイズを設定する必要があります。デフォルトの選択は、「現在の表の行数」です。

キャッシュ表の主キー列に自動的に作成される索引の詳細は、『Oracle TimesTen In-Memory Database SQLリファレンス』のCREATE CACHE GROUPに関する説明を参照してください。

ハッシュ索引の適切なサイズ設定の詳細は、『Oracle TimesTen In-Memory Database SQLリファレンス』のCREATE TABLEに関する説明を参照してください。

デフォルトでは、キャッシュ表の主キー列は、対応するOracleデータベース表の主キー列と同じです。異なる列または一連の列をキャッシュ表の主キーとして定義することができます。

「キャッシュ・グループの作成」ダイアログの「表」タブ内の「表の属性」タブにある「手動表管理」セクションで、「主キーの再定義」をクリックします。

「主キーの定義」ダイアログで、「NULLではない一意の列」リストに、対応するOracle表のNULLを許可しない一意の列が表示されます。キャッシュ表の主キーの列を選択してから、「>>」を選択して、これらの列を「主キー」リストに移動します。列にレンジ索引が作成される場合は、コンポジット主キーの列の順序が重要になります。「OK」をクリックして、キャッシュ表の代替主キーを定義します。

キャッシュ表の主キーが対応するOracle表の主キーと異なる列セットで構成されている場合、キャッシュ表または対応するOracle表でコミットされた更新が実行されると、表が非同期化になる場合があります。次の場合に、一意制約違反が発生します。

- キャッシュ表でコミットされた更新が対応するOracle表に伝播される場合

- Oracle表でコミットされた更新が対応するキャッシュ表にリフレッシュされる場合

「キャッシュ・グループの作成」の「表」タブ内の「表の属性」タブにある「WHERE句」フィールドで、キャッシュ表にオプションのWHERE句を指定できます。WHERE句は、自動リフレッシュが定義されている読取り専用キャッシュ・グループまたはユーザー管理キャッシュ・グループの表定義でのみ使用できます。

キャッシュ表がユーザー管理キャッシュ・グループにあり、「キャッシュ・グループの作成」ダイアログの「キャッシュ・グループ属性」タブ内の「表の属性」セクションで「表によって異なる」が選択されている場合、キャッシュ表に表属性を指定する必要があります。

「キャッシュ・グループの作成」の「表」タブ内の「表の属性」タブにある「伝播タイプ」セクションで、次を選択します。

- 読取り専用: キャッシュ表を読取り専用として定義します

- 伝播: キャッシュ表を更新可能として定義します(表での更新が対応するOracle表に伝播されます)

- 両方なし: キャッシュ表を更新可能として定義します(表での更新は対応するOracle表に伝播しない)

デフォルトでは、ユーザー管理キャッシュ・グループのキャッシュ表は更新可能で、表の更新は対応するOracle表には伝播されません。

関連項目

- WHERE句の使用

#### 7.4.2.3 エージング・ポリシーの指定

「キャッシュ・グループの作成」ダイアログの「経過」タブで、キャッシュ表にエージング・ポリシーを指定できます。エージング・ポリシーは、キャッシュ・グループのルート表で明示的に定義され、すべての子表に暗黙的に適用されます。

次のうちから選択します。

- 使用方法ベース: 最低使用頻度(LRU)エージング・ポリシーを定義します。

- 時間ベース: 時間ベースのエージング・ポリシーを定義します。

- 経過なしエージング・ポリシーを定義しません。

LRUエージング・ポリシーは、自動リフレッシュが定義されていない明示的にロードされるAWT、SWTまたはユーザー管理キャッシュ・グループの表に定義することができます。グローバルで明示的にロードされるキャッシュ・グループでは、デフォルトのエージング状態はOFFに設定されています。自動リフレッシュが定義されていない動的キャッシュ・グループでは、デフォルトのエージング状態はオンに設定されており、エージングのタイプは、使用方法ベースに設定されています。

「使用方法ベース」を選択すると、LRUエージングが適用される表からのデータの削除を開始および停止するタイミングを決定する、TimesTenデータベースのメモリー使用量のしきい値が表示されます。表からのデータの削除が開始されるタイミングを決定するデフォルトの使用量しきい値は90%です。表からのデータの削除を停止するタイミングを決定するデフォルトの使用量しきい値は80%です。デフォルトのLRUエージングのサイクルは1分です。

時間ベースのエージング・ポリシーは、NULLを許可しないDATE列またはTIMESTAMP列が含まれるキャッシュ表に定義できます。これらのデータ型の表の列は、「時間ベース」が選択されると、「キャッシュ・グループの作成」ダイアログの「経過」タブ内の「列」に表示されます。各行が挿入された時間または最新の更新時間を示すタイムスタンプ値を格納する列を選択します。

「存続期間」フィールドで、数値と、ドロップダウン・メニュー・リストから分、時間または日の時間単位を指定して、更新されたデータが表で保持される期間を指定します。

「サイクル」フィールドで、数値と、ドロップダウン・メニュー・リストから分、時間または日の時間単位を指定して、データが表からエージ・アウトされる頻度を指定します。デフォルトの時間ベースのエージング・サイクルは5分です。

「オン」または「オフ」を選択して、エージング状態を指定します。

関連項目

- LRUエージング
- メモリー使用量のしきい値およびLRUエージング・サイクルの変更
- 時間ベースのエージング

#### 7.4.2.4 ルート表定義の検証

キャッシュする表および列、主キー列に作成する索引のタイプ、オプションのWHERE句を含む表属性およびルート表のオプションのエージング・ポリシーを定義した後、「キャッシュ・グループの作成」ダイアログの「DDL」タブで、キャッシュ・グループおよびそのキャッシュ表の作成に使用するCREATE CACHE GROUP文を表示することができます。

キャッシュ・グループに子表を追加しない場合は、「適用」をクリックして、キャッシュ・グループおよびそのキャッシュ表を作成します。

関連項目

- CREATE CACHE GROUP

### 7.4.3 子表の定義

「キャッシュ・グループの作成」ダイアログの「表」タブで、「表」パネル内を右クリックして、「子表の追加」を選択します。

「1つ以上の子表を選択します」ダイアログが表示されます。このダイアログには、キャッシュ・グループの子表として指定するために選択できるOracle表およびOracleシノニムのリストが表示されます。主キーを持つOracle表およびNULLでない一意の索引を持つOracle表を選択できます。

キャッシュ・グループの子表として指定する表を選択して、「OK」をクリックします。

複数の子表を選択するには、[Ctrl]キーを押したまま必要な表をクリックします。適切な親表の下に子表が表示されます。特定の子表をドラッグ・アンド・ドロップして、目的の親表の下に表示することもできます。

現在の接続ユーザーが所有するOracle表のみを表示するには、「自分の表のみ表示」を選択します。

関連項目

- Oracleシノニムのキャッシュ

#### 7.4.3.1 キャッシュする列の選択

子表をクリックして、「キャッシュ・グループの作成」ダイアログの「表」タブ内の「列」タブで、キャッシュされる各列の「NULL値を許可」フィールドの下のチェック・ボックスを選択して、NULL値を受け入れます。デフォルトでは、キャッシュ表の列にNULL値を指定できるかどうかは、対応するOracle表の列にNULL値を指定できるかどうかと同じです。

キャッシュする列ごとに、「キャッシュ済」フィールドの下のチェック・ボックスを選択します。デフォルトでは、表のすべての列が選択され、キャッシュされます。Oracle表の一意識別列は、TimesTenキャッシュ表に含まれている必要があり、キャッシュ表の主キーを構成します。また、親表を参照するOracle表の外部キー列もキャッシュ表に含まれている必要があります。

Oracle表の一意識別列および親表を参照する外部キー列以外のすべての列を選択または選択解除する場合、NULL値を受け入れる場合またはキャッシュする場合は、「NULL値を許可」フィールドおよび「キャッシュ」フィールドの左側に表示されるチェック・ボックスを選択または選択解除します。

データ型を複数のTimesTenデータ型にマップできるOracle表の列の「TimesTenのデータ型」フィールドの下にドロップダウン選択リストが表示されます。子キャッシュ表の列に必要なデータ型を選択します。

更新可能なキャッシュ表で、デフォルト値を定義する子キャッシュ表のキャッシュされる各列の「デフォルト値」フィールドにデフォルトの列値を指定できます。

#### 7.4.3.2 表属性の指定

「キャッシュ・グループの作成」ダイアログの「表」タブ内の「表の属性」タブで、ルート表に指定したときと同じ形式で子キャッシュ表の主キー列にレンジ索引またはハッシュ索引を作成するかどうかを選択します。ルート表に指定したときと同じ形式で、キャッシュ表の主キーとして、対応するOracle表の列とは異なる列または列セットを定義することができます。また、ルート表に指定したときと同じ形式で、キャッシュ表にオプションのWHERE句を指定することもできます。WHERE句は、自動リフレッシュが定義されている読取り専用キャッシュ・グループまたはユーザー管理キャッシュ・グループの表定義でのみ使用できます。

参照キー値を含む行が親表から削除されると、依存する外部キー値を持つ子表の行も削除されるように、子表の外部キー列でカスケード削除を有効にする場合は、「外部キーのカスケード削除」を選択します。

デフォルトでは、子キャッシュ表の外部キー列は、対応するOracle表の外部キー列と同じです。キャッシュ表の外部キーとして異なる列または列セットを定義することができます。

「キャッシュ・グループの作成」ダイアログの「表」タブ内の「表の属性」タブにある「手動表管理」セクションで、「外部キーの再定義」を選択します。

「外部キーの定義」ダイアログで、「外部キー」ドロップダウン・リストに親表の主キー列と互換性のあるデータ型の子表の列が表示されます。キャッシュ表の外部キーに列を選択します。「OK」をクリックして、キャッシュ表の代替外部キーを定義します。

子キャッシュ表が、「キャッシュ・グループの作成」ダイアログの「キャッシュ・グループ属性」タブ内の「表の属性」セクションで「表によって異なる」を選択したユーザー管理キャッシュ・グループにある場合は、キャッシュ表の属性をルート表と同じ形式で指定します。キャッシュ表が更新可能である場合に、表の更新が対応するOracle表に伝播されるかどうかを指定します。

関連項目

- 複数表のキャッシュ・グループ

#### 7.4.3.3 子表の定義の完了

キャッシュする列、主キー列に作成する索引のタイプ、外部キー列のカスケード削除の設定および残りの子表に対するオプションのWHERE句を含む表属性を定義します。

#### 7.4.3.4 キャッシュ・グループ定義の検証

「キャッシュ・グループの作成」ダイアログの「DDL」タブで、キャッシュ・グループおよびそのキャッシュ表の作成に使用するCREATE CACHE GROUP文を表示できます。

「適用」をクリックして、キャッシュ・グループおよびそのキャッシュ表を作成します。

AWTキャッシュ・グループを作成した場合は、そのキャッシュ表でコミットされた更新用にレプリケーション・エージェントを起動して、対応するOracle表に非同期的に伝播する必要があります。

グローバル・キャッシュ・グループを作成した場合、キャッシュ・グループまたはそのキャッシュ表に操作を実行する前に、関連付けられているキャッシュ・グリッドにTimesTenデータベースをアタッチする必要があります。このタスクは、SQL Developerの外部で`ttIsql`ユーティリティなどのコマンドライン・インタフェースを使用するか、SQL Developer内部でSQLワークシートを使用して実行する必要があります。

関連項目

- TimesTenレプリケーション・エージェントの起動および停止
- キャッシュ・グリッドへのTimesTenデータベースのアタッチ

## 7.5 キャッシュ・グループの削除

キャッシュ・グループを削除すると、そのキャッシュ表も削除されます。

TimesTenデータベースの接続名のノード内の「キャッシュ・グループ」ノードの下で、削除対象のキャッシュ・グループの名前を右クリックして、「削除」を選択します。

「適用」をクリックして、キャッシュ・グループを削除します。

関連項目

- キャッシュ・グループの削除

## 7.6 キャッシュ・グループのロードまたはリフレッシュ

「キャッシュ・グループ」ノードの左側にある「+」をクリックして、キャッシュ・グループのリストを表示します。次に、ロードまたはリフレッシュ対象のキャッシュ・グループの名前を右クリックします。「ロード」をクリックしてキャッシュ・グループをロードするか、「リフレッシュ」をクリックしてキャッシュ・グループをリフレッシュします。

キャッシュ・グループをロードまたはリフレッシュするには、キャッシュ・エージェントが実行中である必要があります。

自動リフレッシュが定義された読取り専用キャッシュ・グループまたはユーザー管理キャッシュ・グループでは、キャッシュ・グループをロードまたはリフレッシュする前に、自動リフレッシュ状態を一時休止に設定する必要があります。

「ロード」または「リフレッシュ」ダイアログの「プロンプト」タブで、「n行ごとにコミット」フィールドに数値を指定して、キャッシュ・グループにロードまたはリフレッシュされる行の数に基づいて、ロードまたはリフレッシュ操作中にコミットが発行される頻度を示します。デフォルトでは、キャッシュ・グループで256行がロードまたはリフレッシュされるたびに、トランザクションがコミットされます。

「ロード」または「リフレッシュ」ダイアログ・ボックスの「プロンプト」タブにある「パラレルに実行するスレッドの数」フィールドで、ロードまたはリフレッシュ操作で生成または使用するキャッシュ・エージェント・プロセス・スレッドの数を指定します。ロードまたはリフレッシュ操作のパラレル処理によって、操作のスループットが向上する場合があります。このフィールドに10を超える値は指定できず、パラレルのロードまたはリフレッシュ操作専用のシステムのCPUの数を超えないようにする必要があります。デフォルト値1は、ロード操作またはリフレッシュ操作が順次処理されることを示します。

「ロード」または「リフレッシュ」ダイアログの「プロンプト」タブにある「WHERE句」フィールドで、ロードまたはリフレッシュ操作にオプションのWHERE句を指定できます。AWT、SWT、または自動リフレッシュが定義されていないユーザー管理キャッシュ・グループでのロードまたはリフレッシュ操作にWHERE句を使用できます。

「適用」をクリックして、キャッシュ・グループをロードまたはリフレッシュします。

関連項目

- キャッシュ・エージェントの起動および停止
- キャッシュ・グループの自動リフレッシュ属性の変更
- 数多くのキャッシュ・インスタンスのロードまたはリフレッシュにおけるパフォーマンスの向上
- キャッシュ・グループのロードおよびリフレッシュ

## 7.7 キャッシュ・グループのフラッシュ

すべてが読取り専用または更新可能(表の更新は対応するOracle表に伝播される)ではないキャッシュ表が含まれるユーザー管理キャッシュ・グループのみフラッシュできます。

「キャッシュ・グループ」ノードの左側にある「+」をクリックして、キャッシュ・グループのリストを表示します。次に、フラッシュ対象のキャッシュ・グループの名前を右クリックします。「フラッシュ」を選択して、キャッシュ・グループをフラッシュします。

「フラッシュ」ダイアログの「プロンプト」タブにある「WHERE句」フィールドで、フラッシュ操作にオプションのWHERE句を指定します。

「適用」をクリックして、キャッシュ・グループをフラッシュします。

関連項目

- ユーザー管理キャッシュ・グループのフラッシュ

## 7.8 キャッシュ・グループのアンロード

「キャッシュ・グループ」ノードの左側にある「+」をクリックして、キャッシュ・グループのリストを表示します。次に、アンロード対象のキャッシュ・グループの名前を右クリックします。「アンロード」を選択して、キャッシュ・グループをアンロードします。

「アンロード」ダイアログの「プロンプト」タブにある「WHERE句」フィールドで、アンロード操作にオプションのWHERE句を指定します。AWT、SWT、または自動リフレッシュが定義されていないユーザー管理キャッシュ・グループでのアンロード操作にWHERE句を使用できます。

「適用」をクリックして、キャッシュ・グループをアンロードします。

関連項目

- キャッシュ・グループのアンロード

## 7.9 キャッシュ・グループの自動リフレッシュ属性の変更

自動リフレッシュが定義されている読取り専用キャッシュ・グループまたはユーザー管理キャッシュ・グループの自動リフレッシュ属性を変更できます。

「キャッシュ・グループ」ノードの下で、キャッシュ・グループの名前を右クリックして、「自動リフレッシュ」を選択します。

「自動リフレッシュ」ダイアログの「プロンプト」タブで、次の自動リフレッシュ属性を変更できます。

- 自動リフレッシュ・モードを変更するには、「モード」フィードで、「インクリメンタル」または「完全」のいずれかを選択します。

- 自動リフレッシュ間隔を変更するには、「リフレッシュ間隔」フィールドで、数値間隔と、分、秒またはミリ秒の時間単位を指定します。

- 自動リフレッシュ状態を変更するには、「リフレッシュ状態」フィールドで、「一時休止」、「オン」または「オフ」を選択します。

「適用」をクリックします。

関連項目

- AUTOREFRESHキャッシュ・グループ属性

## 7.10 LOBデータ型の指定および表示

TimesTenリリース11.2.2.2.0以上を使用している場合は、表定義でLOBデータ型を指定および表示できます。

LOBデータ型の表を作成する場合は、「表の作成」ダイアログで、「型」列ヘッダーを展開します。有効なデータ型は、`CLOB`、`NCLOB`および`BLOB`です。

列のデータ型を表示するには、表を選択してから、「列」タブを選択します。列がLOBデータ型であることを確認します。

列を追加し、LOBデータ型を指定する場合、「列の追加」ダイアログで、「データ型」を展開します。選択肢には、`CLOB`、`NCLOB`および`BLOB`があります。

PL/SQLオブジェクトに、`IN`、`OUT`および`IN OUT`パラメータとしてLOBデータ型を指定できます。PL/SQL編集ダイアログで、パラメータ・タイプに`CLOB`、`NCLOB`または`BLOB`を選択します。

## 7.11 列へのINLINE属性の指定

`VARCHAR2`、`NVARCHAR2`および`VARBINARY`型の列に、`INLINE`属性を指定できます。

「表の作成」ダイアログで、Inlineという名前の列ヘッダーを検索します。チェック・ボックスをクリックして、列に`INLINE`属性を定義します。

表へ列を追加する際に`INLINE`属性を指定することもできます。表を右クリックし、「列」を選択して、「追加」を選択します。「列の追加」ダイアログが表示されます。`VARCHAR2`型、`NVARCHAR2`型および`VARBINARY`型の列で、「インライン」チェック・ボックスを選択して、`INLINE`属性の列を追加します。

## 7.12 表サイズの計算

TimesTenリリース11.2.2.0以上を使用している場合は、表サイズ情報を計算できます。

表サイズ情報を表示するには、まず表サイズを計算する必要があります。

1. 「表」ノードの左側にある「+」を選択して、表のリストを表示します。

2. 表の名前を右クリックして、表サイズ情報を計算します。

3. 「表」を選択して、「サイズの計算」を選択します。

   「サイズの計算」ダイアログが表示されます。表の所有者および名前が表示されます。

4. 表外サイズを計算する場合は、チェック・ボックスをクリックします。

5. 「適用」を選択します。

   「確認」ダイアログが表示されます。

6. 「OK」を選択します。

   表の表サイズ統計が計算されます。

表サイズの計算用のSQLを表示するには、「サイズの計算」ダイアログの「SQL」タブを選択します。`ttComputeTabSizes`というTimesTen組込みプロシージャが実行されたことが確認できます。この組込みプロシージャの実行後、表の表サイズ情報を表示できます。この表サイズ情報は、表単位であることに注意してください。

マテリアライズド・ビュー、システム表およびキャッシュ・グループの一部である表を含むデータベース内のすべての表の表サイズを計算するには、「SQLワークシート」を使用して、コマンド`Call ttComputeTabSizes (NULL,0);`を実行し、アウトライン・データを含めるには、`Call ttComputeTabSizes (NULL,1)``;`を実行します。

1つ以上の表の表サイズの計算後、表サイズ情報を表示できます。

1. 「表」ノードの左側にある「+」を選択して、表のリストを表示します。

2. 表サイズ情報を確認する表を選択します。

3. 表の属性を表示するタブ内にある「サイズ」タブを選択します。

   表サイズ情報が表示されます。具体的には、`INLINE BYTES`、`OUT OF LINE BYTES`および`METADATA BYTES`の値が表示されます。

「アクション」メニューを選択して、表サイズを生成または再生成できます。「アクション」メニューを選択した場合は、「表」→「サイズの計算」を選択します。「サイズの計算」ダイアログが表示され、表サイズ情報を計算することができます。

「リフレッシュ」を選択して、表示された表サイズ・データをリフレッシュします。

表サイズを計算したすべての表の表サイズ情報を表示できます。このような情報を表示するには、「TimesTenレポート」を選択し、「表」→「表サイズ」を選択します。

`ttComputeTabSizes`組込みプロシージャの詳細は、『Oracle TimesTen In-Memory Databaseリファレンス』のttComputeTabSizesに関する説明を参照してください。

## 7.13 OUTPUTパラメータとしてのREF CURSORの使用

PL/SQLファンクション、プロシージャまたはパッケージで`OUTPUT`パラメータとして`REF CURSOR`を定義して、PL/SQLファンクション、プロシージャまたはパッケージをテストできます。`REF CURSOR`を定義した後、PL/SQLファンクション、プロシージャまたはパッケージをコンパイルおよび実行します。「実行」ダイアログが表示されます。「OK」を選択します。

「PL/SQLの実行」ダイアログ・ボックスで「OK」を選択すると、2つのタブに実行詳細が表示されます。

1. IdeConnections: 発生したエラーを含む実行ステータスを表示します。

2. 出力変数: ファンクション、プロシージャまたはパッケージの実行結果を表示します。

## 7.14 TimesTen表での索引の作成

通常の表またはキャッシュ表で、レンジ索引またはビットマップ索引を作成できます。

索引を作成するには、「表」ノードの左側にある「+」をクリックして、表のリストを表示します。次に、索引を作成する表の名前を右クリックし、「索引」を選択して、「索引の作成」を選択します。

また、「索引」ノードを右クリックして、「新規索引作成」を選択することもできます。

「索引の作成」ダイアログの「プロパティ」タブで、「表」ドロップダウン・メニューを検索します。このメニューから、索引に表を選択します。

「タイプ」の場合:

- 一意でないレンジ索引を作成する場合は、「一意でない」を選択します

- 一意のレンジ索引を作成する場合は、「一意」を選択します

- ビットマップ索引を作成する場合は、「ビットマップ」を選択します

TimesTenでサポートされる索引のタイプの詳細は、『Oracle TimesTen In-Memory Database SQLリファレンス』のCREATE INDEXに関する説明を参照してください。

「索引」セクションで、索引に列を指定します。列は、「列名または式」ドロップダウン選択リストから選択できます。各索引列に対して、「順序」選択リストから、列を昇順にソートするか降順にソートするかを指定できます。デフォルトのソート順序は昇順です。

コンポジット索引を作成するには、「+」をクリックして、索引定義に列を追加します。「X」をクリックすると、索引定義から列が削除されます。

「索引の作成」ダイアログの「DDL」タブで、索引の作成に使用したCREATE INDEX文を表示できます。

「OK」をクリックして索引を作成します。

## 7.15 主キー制約の作成

主キーが定義されていない表に主キー制約を作成できます。次の手順を実行します。

1. 「表」ノードの左側にある「+」をクリックして、表のリストを表示します。主キー制約を作成する表の名前を右クリックします。

2. 「制約」を選択して、「主キーの追加」を選択します。

   「主キーの追加」ダイアログが表示されます。

3. 「キー索引タイプ」フィールドで、「範囲の使用」を選択して、レンジ索引を使用して主キーを作成するか、「ハッシュの使用」を選択して、ハッシュ索引を使用して主キーを作成します。

   「ハッシュの使用」を選択すると、テキスト「数を指定」とその後ろに「行」または「ページ」のドロップダウン・リストが表示されます。「行」または「ページ」のいずれかを選択して、コロン(:)の後ろのボックスに、行またはページの数を入力します。デフォルトでは「行」が選択されています。

4. 「制約名」フィールドに、制約名を入力します。30文字を超える名前を指定することはできません。

5. 「列」フィールドに列名のドロップダウン・リストが表示されます。主キーに使用する列名を選択します。

6. 「適用」をクリックします。

   主キー制約が追加されたことを示す「確認」ダイアログが表示されます。

7. 「OK」をクリックします。

   主キー制約は正常に追加されました。

主キー制約の作成に使用したSQL文を表示するには、「主キーの追加」ダイアログ・ボックスの「SQL」タブを選択します。

関連項目:

- ハッシュ索引のサイズ設定の詳細は、Oracle TimesTen In-Memory Database SQLリファレンスの列定義を参照してください。

- 主キー制約の作成の詳細は、Oracle TimesTen In-Memory Database SQLリファレンスのCREATE TABLEまたはALTER TABLEを参照してください

## 7.16 主キーの属性の変更

表で主キーを定義した後に、主キー制約の属性を変更できます。次の手順を実行します。

1. 「表」ノードの左側にある「+」をクリックして、表のリストを表示します。次に、主キー属性を変更する表の名前を右クリックします。

2. 「制約」を選択して、「主キー・パラメータの変更」を選択します。

   「主キーのパラメータの変更」ダイアログが表示されます。

3. 「キー索引タイプ」フィールドで、「範囲の使用」を選択して、主キー制約をハッシュ索引の使用からレンジ索引の使用に変更するか、「ハッシュの使用」を選択して、主キー制約をレンジ索引の使用からハッシュ索引の使用に変更します。

   「ハッシュの使用」を選択すると、テキスト「数を指定」とその後ろに「行」または「ページ」のドロップダウン・リストが表示されます。「行」または「ページ」のいずれかを選択して、コロン(:)の後ろのボックスに、行またはページの数を入力します。デフォルトでは「行」が選択されています。

4. 「適用」をクリックします。

   主キー制約の索引が変更されたことを示す「確認」ダイアログが表示されます。

5. 「OK」をクリックします。

   主キー制約の索引は正常に変更されました。

主キー制約の属性の変更に使用したSQL文を表示するには、「主キーのパラメータの変更」ダイアログの「SQL」タブを選択します。

関連項目:

- ハッシュ索引のサイズ設定の詳細は、Oracle TimesTen In-Memory Database SQLリファレンスの列定義を参照してください。

- 主キー制約の属性の変更の詳細は、『Oracle TimesTen In-Memory Database SQLリファレンス』のALTER TABLEに関する説明を参照してください

## 7.17 外部キー制約の作成

表で、外部キー制約を作成できます。SQL Developerのメイン・ページで作業していること、および、TimesTen接続が拡張されていることを確認してください。

1. 「表」ノードの左の+をクリックして、表のリストを展開します。

2. 表名を右クリックして「制約」を選択し、「外部キーの追加」を選択します。

   「外部キーの追加」ダイアログが表示されます。「所有者」および「名前」フィールドは自動で入力され、編集できません。制約名の入力を準備します。

3. `「削除時にカスケード」`参照アクションを有効化するには、「外部キーのカスケード削除」チェック・ボックスを選択します。これを指定した場合、参照キー値を含む行を親表から削除すると、依存外部キー値を持つ子表の行も削除されます。

4. 「制約名」フィールドに、外部キーの名前を入力します。

5. 外部キー制約を適用する列を、「列名」ドロップダウン・リストから選択します。

6. 外部キーが参照する表名を、「参照表の名前」ドロップダウン・リストから選択します。

7. 外部キーが参照する列を、「参照先の列」ドロップダウン・リストから選択します。

   外部キー制約の作成に使用するSQL文を表示するには、「外部キーの追加」ダイアログ・ボックスの「SQL」タブを選択します。

8. 「適用」をクリックします。

   外部キー制約が追加されたことを示す「確認」ダイアログ・ボックスが表示されます。

9. 「OK」をクリックします。

   外部キー制約は正常に追加されました。

関連項目:

外部キー制約の作成の詳細は、Oracle TimesTen In-Memory Database SQLリファレンスのCREATE TABLEまたはALTER TABLEを参照してください

## 7.18 制約の削除

TimesTen表から制約を削除できます。SQL Developerのメイン・ページで作業していること、および、TimesTen接続が拡張されていることを確認してください。

1. 「表」ノードの左の+をクリックして、表のリストを展開します。

2. 表名を右クリックして「制約」を選択し、「削除」を選択します。

   「削除」ダイアログが表示されます。「所有者」および「名前」フィールドは自動で入力され、編集できません。制約を選択する準備をします。

3. 「制約」ドロップダウン・リストから削除する制約を選択します。

   制約の削除に使用するSQL文を表示するには、「削除」ダイアログ・ボックスの「SQL」タブを選択します。

4. 「適用」をクリックします。

   制約が削除されたことを示す「確認」ダイアログ・ボックスが表示されます。

5. 「OK」をクリックします。

   制約は正常に削除されました。

## 7.19 表へのエージング・ポリシーの追加

通常の表またはキャッシュ表にエージング・ポリシーを追加するには、「表」ノードの下で、エージング・ポリシーを追加する表の名前を右クリックし、「経過」→「用法ベースで追加」を選択して、LRUエージング・ポリシーを追加します。時間ペースのエージング・ポリシーを追加するには、「経過」を選択し、「時間ベースで追加」を選択します。キャッシュ表がキャッシュ・グループのルート表である場合のみ、そのキャッシュ表にエージング・ポリシーを追加できます。

表にLRUエージング・ポリシーを追加するには、「用法ベースで追加」ダイアログ・ボックスの「プロンプト」タブの「用法ベースの経過」フィールドで、「オン」または「オフ」のいずれかを選択して、エージング状態を指定します。デフォルトのエージング状態はオンです。「適用」をクリックして、表にLRUエージング・ポリシーを追加します。

TimesTenデータベースのメモリー使用量のしきい値によって、表からのデータの削除を開始および停止するタイミングが決定されます。表からのデータの削除が開始されるタイミングを決定するデフォルトのメモリー使用量のしきい値は90%です。表からのデータの削除が停止されるタイミングを決定するデフォルトのメモリー使用量のしきい値は80%です。デフォルトのLRUエージングのサイクルは1分です。

LRUエージング・ポリシーは通常の表すべて、およびAWT、SWTまたは自動リフレッシュが定義されていないユーザー管理キャッシュ・グループの表に追加できます。

表に時間ベースのエージング・ポリシーを追加するには、「時間ベースで追加」ダイアログ・ボックスの「プロンプト」タブで、「列」から、各行が追加された日時および最新更新の日時を示すタイムスタンプ値を格納する行の名前を選択します。

「存続期間」フィールドで、数値と、ドロップダウン・リストから分、時間または日の単位を指定して、更新されていないデータが表で保持される期間を示します。

「サイクル」フィールドで、数値と、分、時間または日の単位を指定して、データが表からエージ・アウトされる頻度を示します。デフォルトの時間ベースのエージング・サイクルは5分です。

「時間ベースの経過」フィールドで、「オン」または「オフ」のいずれかを選択して、エージング状態を指定します。デフォルトのエージング状態はオンです。「適用」をクリックして、表に時間ベースのエージング・ポリシーを追加します。

時間ベースのエージング・ポリシーは、NULL値を許可しないDATE列またはTIMESTAMP列が含まれる表にのみ追加できます。

関連項目

- メモリー使用量のしきい値およびLRUエージング・サイクルの変更

## 7.20 表からのエージング・ポリシーの削除

通常の表またはキャッシュ表から既存のエージング・ポリシーを削除するには、「表」ノードの下で、エージング・ポリシーを削除する表の名前を右クリックして、「経過」→「削除」を選択します。

「適用」をクリックして、表からエージング・ポリシーを削除します。

## 7.21 表のエージング・ポリシーのエージング状態の変更

通常の表またはキャッシュ表の既存のエージング・ポリシーのエージング状態を変更するには、「表」ノードの下で、エージング状態を変更する表の名前を右クリックして、「経過」→「状態オン/オフの変更」を選択します。

「状態オン/オフの変更」ダイアログの「プロンプト」タブの「経過状態の変更」フィールドで、「オン」または「オフ」のいずれかを選択して、エージング状態を変更します。「適用」をクリックして、表のエージング状態を変更します。

## 7.22 メモリー使用量のしきい値およびLRUエージング・サイクルの変更

メモリー使用量のしきい値およびLRUエージング・サイクルを変更するには、TimesTenデータベースの接続名のノードを右クリックして、「用法ベースの経過属性の変更」を選択します。

「用法ベースのしきい値を変更中」ダイアログ・ボックスの「プロンプト」タブにある「用法の高しきい値」フィールドで、表からのデータの削除が開始されるタイミングを決定するしきい値を指定します。「用法の低しきい値」フィールドで、表からのデータの削除が停止されるタイミングを決定するしきい値を指定します。「頻度の更新」フィールドで、LRUエージング・サイクルを指定します。「適用」をクリックして、メモリー使用量のしきい値およびLRUエージング・サイクルを変更します。

LRUエージング・ポリシーが定義されているすべての表に新しい設定が適用されます。

## 7.23 表の時間ベースのエージング・ポリシーの存続期間とサイクルの変更

通常の表またはキャッシュ表の既存の時間ベースのエージング・ポリシーの存続期間およびサイクルを変更するには、「表」ノードの下で、存続期間およびサイクルを変更する表の名前を右クリックして、「経過」→「存続期間とサイクルの変更」を選択します。

「存続期間とサイクルの変更」ダイアログ・ボックスの「プロンプト」タブ内の「存続期間」フィールドで、数値と、分、時間または日の単位を指定して、更新されていないデータを保持する期間を変更します。

「サイクル」フィールドで、数値と、分、時間または日の単位を指定して、データが表からエージ・アウトされる頻度を変更します。

「適用」をクリックして、表の存続期間およびサイクルを変更します。

## 7.24 TimesTenデータベース要素へのオブジェクト権限の付与

次のデータベース・オブジェクトに対し、権限の追加および取消しができます。

- 通常の表およびキャッシュ表

- 通常のビューおよびマテリアライズド・ビュー

- 順序

- PL/SQLパッケージ、プロシージャおよびファンクション

オブジェクトに権限を付与するには、オブジェクトの名前を右クリックして、「権限」→「付与」を選択します。

「付与」ダイアログ・ボックスの「ユーザー」ドロップダウン・メニューで、オブジェクトにオブジェクト権限を付与するユーザーを選択します。「権限」セクションで、「すべて」チェック・ボックスを選択するか、「>>」をクリックして、オブジェクトの使用可能なすべてのオブジェクト権限を選択したユーザーに付与します。それ以外の場合は、「使用可能な権限」リストから、選択したユーザーに付与する個々の権限を選択してから、「>」をクリックして、これらの権限を「選択した権限」リストに移動します。複数の権限を選択するには、[Ctrl]キーを押したまま必要な権限をクリックします。「適用」をクリックして、オブジェクトの選択されたオブジェクト権限を選択されたユーザーに付与します。

特定のオブジェクト・タイプでは、使用できるオブジェクト権限のみが表示されます。たとえば、DELETE、INDEX、INSERT、REFERENCES、SELECTおよびUPDATE権限を表に付与できます。ただし、マテリアライズド・ビューに付与できる権限は、INDEX、REFERENCESおよびSELECT権限のみです。

ADMINシステム権限を持つユーザーまたはオブジェクトの所有者のみが、そのオブジェクトでオブジェクト権限を付与できます。

関連項目

- オブジェクト権限

## 7.25 TimesTenデータベース要素からのオブジェクト権限の取消し

オブジェクトから権限を取り消すには、オブジェクトの名前を右クリックして、「権限」→「取消」を選択します。

「取消」ダイアログ・ボックスの「ユーザー」ドロップダウン・メニューで、オブジェクトからオブジェクト権限を取り消すユーザーを選択します。「権限」セクションで、「すべて」チェック・ボックスを選択するか、「>>」をクリックして、選択したユーザーから、オブジェクトに付与されたすべてのオブジェクト権限を取り消します。それ以外の場合は、「使用可能な権限」リストから、選択したユーザーから取り消す個々の権限を選択してから、「>」をクリックして、これらの権限を「選択した権限」リストに移動します。複数の権限を選択するには、[Ctrl]キーを押したまま必要な権限をクリックします。「適用」をクリックして、選択したユーザーから、オブジェクトの選択したオブジェクト権限を取り消します。

「ユーザー」ドロップダウン・メニューには、オブジェクトにオブジェクト権限が付与されたユーザーのみが表示されます。特定のユーザーでは、付与されたオブジェクト権限のみが表示されます。

`ADMIN`システム権限を持つユーザーまたはオブジェクトの所有者のみが、オブジェクトからオブジェクト権限を取り消すことができます。

## 7.26 表へのデータのロード

「データのインポート」を使用して、表にデータをロードします。データをロードするには、ファイルにデータをエクスポートする必要があります。データをエクスポートするには、表の名前で右クリックして、「エクスポート」を選択します。データを正常にエクスポートした後、データをインポートできます。

1. 「表」ノードの左側にある「+」を選択して、表のリストを表示します。

2. 表の名前を右クリックします。

3. 「表」→「データのインポート」を選択します。

   「開く」ダイアログが表示されます。インポートするデータ・ファイルを特定します。このファイルは、前にエクスポートしたファイルです。

4. 「開く」を選択します。

   表にデータがロードされます。

## 7.27 TimesTenレプリケーション・エージェントの起動および停止

レプリケーション・エージェント・プロセスでは、マスターTimesTenデータベースのレプリケート表でコミットされた更新をサブスクライバTimesTenデータベースの対応するレプリケート表に転送します。また、レプリケーション・エージェントは、AWTキャッシュ・グループのキャッシュ表でコミットされた更新を対応するOracle表に非同期的に伝播します。レプリケーション・スキームまたはAWTキャッシュ・グループの作成後、レプリケーション・エージェントが実行していない場合は、起動する必要があります。

レプリケーション・エージェントを起動するには、TimesTenデータベースの接続名のノードを右クリックして、「レプリケーション・エージェントの開始/停止」を選択します。

「レプリケーション・エージェントの開始中/停止中」ダイアログが表示されます。「プロンプト」タブで、「エージェントの開始」を選択します。「適用」をクリックします。

TimesTen接続にレプリケーション・スキームまたはAWTキャッシュ・グループがない場合、レプリケーション・エージェントは起動されません。

実行中のレプリケーション・エージェント・プロセスを停止するには、TimesTenデータベースの接続名のノードを右クリックして、「レプリケーション・エージェントの開始/停止」を選択します。

「レプリケーション・エージェントの開始中/停止中」ダイアログが表示されます。「プロンプト」タブで、「エージェントの停止」を選択します。「適用」をクリックします。

関連項目

- レプリケーション・エージェントの起動および停止
- レプリケーション・エージェントの管理

## 7.28 TimesTen問合せオプティマイザにより使用される表および列の統計の更新

問合せオプティマイザは、TimesTenデータベースのシステム表に格納されている統計を使用して、文の最適な実行計画を決定します。TimesTenでは、表レベルの統計を`SYS.TBL_STATS`表に格納します。列の最小値と最大値および一意の値の数など列レベルの統計は、`SYS.COL_STATS`表に格納されています。

通常の表およびキャッシュ表で更新が発生した場合、表および列の統計は計算されません。かわりに、明示的なリクエストが発生した場合に統計が更新されます。

ユーザーが所有するすべての表またはユーザーが所有する特定の表の統計が更新できます。

すべての表の統計を更新するには、「表」ノードを右クリックして、「統計」→「更新」を選択します。

特定の表の統計を更新するには、「表」ノードの左側にある「+」をクリックします。表の名前を右クリックして、「統計」→「更新」を選択します。

「統計の更新」ダイアログの「プロンプト」タブで、「参照したコマンドの無効化」を選択して、統計が更新された表を参照する文の実行計画を無効化します。文の実行計画を無効化する場合は、次回の実行時にその文が再コンパイルまたは再準備されます。

「表統計の間隔タイプ」で、完全な間隔を選択して、表の行を2つ以上の間隔に区切り、各間隔で統計を計算するか、単一の間隔を選択して、一連の行全体を単一の間隔として統計を計算します。表でレンジ索引を定義して、完全な間隔の統計を計算する必要があります。

「適用」をクリックします。

表のオプティマイザの統計を表示するには、表の名前をクリックします。

表のタブ内の「統計」タブの上部のセクションには、次のような表の統計が表示されます。

- 表内の行数

- 表の統計の最新の更新を示すタイムスタンプ

下部のセクションには、列統計が表示されます。各列に次の情報が表示されます。

- 列の名前。

- 統計を計算するためにデータを区切る間隔の数

- NULL値の合計数

- NULL値を許可しない一意の値の合計数

- 各間隔の行の合計数

SQL Developerにより、各列の各間隔の次の値が表示されます。

- 最も頻繁に発生する値以外の一意の値の数

- 最も頻繁に発生する値以外の値を含む行の数

- 最も頻繁に発生する値が含まれる行の数

- 最小値

- 最大値

- 最大頻度の値

関連項目

- 統計
- 最適化を実行するタイミング
- ttOptUpdateStats

## 7.29 TimesTen問合せオプティマイザにより使用される表および列の統計のエクスポート

一連のSQL文を生成して、表の統計を現在の状態にリストアできます。SQL文は、単一の表用に、または、接続ユーザーがアクセス権限を持つ複数のユーザー表用に生成できます。表の統計を.sqlファイルにエクスポートした後で、SQL Developerの.sqlファイルを開き、スクリプト・ファイルを実行することによって、表の統計をインポートできます。

現在のTimesTen表の統計をエクスポートするには、SQL Developerのメイン・ページで作業する必要があります。

1. 単一の表の統計を保存するには、表の名前を右クリックして、「統計」→「エクスポート」を選択します。すべてのユーザー表の統計を保存するには、「表」を右クリックして、「統計」→「エクスポート」を選択します。

   「オプティマイザ統計のエクスポート」ダイアログが表示されます。ダイアログの右下にある「保存」ボタンを確認します。

2. 「保存」をクリックします。

   「オプティマイザ統計エクスポート・コマンドの保存」ダイアログが表示されます。

3. 現行のTimesTen表の統計を保存するディレクトリを選択します。

4. 「ファイル名」フィールドに、現行のTimesTen表の統計の名前を定義します。

   現行のTimesTen表の統計のデフォルトのファイル名は、接続名が`connection_name```の場合は、`connection_name``-exportstatistics-``YYYYMMDDMISS``.sql`です。`YYYYMMDDHHMISS`は、推奨項目が作成された時点のタイムスタンプで、`YYYY`は年、`MM`は月、`DD` は日、`HH`は時、`MI`は分、`SS`は秒を表します。

5. 「保存」をクリックします。

   現行のTimesTen表の統計が保存されます。

## 7.30 TimesTenパフォーマンス・メトリック・スナップショットの作成

スナップショットは、データベースのパフォーマンス・メトリックの収集です。2つのスナップショットを比較したレポートを作成して、データベースのパフォーマンスを分析できます。

データベースの新しいスナップショットを作成するには、SQL Developerのメイン・ページで作業を行っていること、および、接続ナビゲータでTimesTen接続を展開していることを確認してください。

1. データベースの名前を右クリックして、「TimesTenパフォーマンス・メトリック」→「スナップショットの作成」を選択します。

   「新規TimesTenメトリック・スナップショット」ダイアログが表示されます。

2. 「新規TimesTenメトリック・スナップショット」ダイアログの「プロンプト」タブで、「取得レベル」ドロップダウン・リストから目的の取得レベルを選択します。

   - 標準: 標準セットのメトリック向け。このレベルはほとんどの用途に適しています。これはデフォルトの取得レベルです。

   - なし: `SYS.SYSTEMSTATS`以外のメトリック専用。

   - 基本: 最小限の基本セットのメトリック向け。

   - すべて: すべての使用可能なメトリック向け。

   レポートで使用する2つのスナップショットには、同じ取得レベルを使用してください。取得レベルの異なる2つのスナップショットを比較するレポートを生成しようとすると、エラー・ダイアログが表示されます。

   新規スナップショットを作成する準備が整いました。

3. 「適用」をクリックして、スナップショットを作成します。

   確認ダイアログにスナップショットのID番号が表示されます。スナップショットIDが生成されます。

4. 「OK」をクリックします。

   特定のスナップショットIDを持つスナップショットが作成されます。スナップショットIDは、TimesTenメトリック・レポートを作成する場合に有用です。

## 7.31 TimesTenパフォーマンス・メトリック・スナップショットの削除

永続スペースを開放するために、不要なスナップショットの削除を検討してください。多くのスナップショットを保存する必要がある場合は、TimesTenパフォーマンス・メトリック構成の編集を検討してください。Oracle SQL Developer Oracle TimesTen In-Memory Databaseサポート・ユーザーズ・ガイドのTimesTenパフォーマンス・メトリック構成の編集に関する項を参照してください。

データベースから新規スナップショットを削除するには、SQL Developerのメイン・ページで作業を行ってください。

1. データベースの名前を右クリックして、「TimesTenパフォーマンス・メトリック」→「スナップショットの削除」を選択します。

2. デフォルトでは、「TimesTenメトリック・スナップショットの削除」ダイアログの「Prompts」タブが選択されています。「セレクタ」列で、削除するスナップショットを選択します。

   また、列のヘッダーをクリックすると、その列に基づいて表がソートされます。各列の説明は次のとおりです。

   - セレクタ

     削除するスナップショットを決定するために選択するチェック・ボックス。

   - スナップショット

     スナップショットのスナップショットID。

   - タイムスタンプ

     スナップショットが取得された時点のタイムスタンプ。

   - 取得レベル

     スナップショットの取得レベル。この値は、「標準」、「なし」、「基本」または「すべて」です。

   すべてのスナップショットを選択するには、「すべて選択」チェック・ボックスを選択します。

3. 削除するスナップショットを選択した後に、「適用」ボタンをクリックします。

   「確認」ダイアログが表示されて、選択したスナップショットの削除を続行するかどうかを確認されます。

4. 「はい」をクリックします。

   確認ダイアログに、1つまたは複数のTimesTenメトリックのスナップショットが削除されたことを示すメッセージが表示されます。

5. 「OK」をクリックします。

   TimesTenメトリックのスナップショットが正常に削除されました。

## 7.32 TimesTenパフォーマンス・メトリック構成の編集

TimesTenパフォーマンス・メトリック構成で、最大スナップショット数および最大スナップショット保存サイズを変更できます。これらの構成設定は、データベースの永続スペースの不足を防ぎ、より多くのスナップショットを保存するために有用です。

最大スナップショット数または最大スナップショット保存サイズに達すると、永続スペースを開放するために最も古いスナップショットが削除されます。デフォルトでは、最大スナップショット数は256で、最大スナップショット保存サイズは256MBです。

データベースのTimesTenパフォーマンス・メトリック構成を編集するには、SQL Developerのメイン・ページで作業してください。

1. データベースの名前を右クリックして、「TimesTenパフォーマンス・メトリック」→「構成の編集」を選択します。

   「TimesTenメトリック構成」ダイアログが表示されて、TimesTenメトリックの現在の構成が示されます。

2. 「TimesTenメトリック構成」ダイアログの「プロンプト」タブが選択されています。「最大スナップショット数」フィールドにスナップショットの最大数を示す数値を指定します。デフォルトでは、スナップショットの最大数は256です。

3. 「最大スナップショット保存サイズ」(MB)フィールドに、格納するすべてのスナップショットの最大合計サイズをメガバイト単位で指定します。デフォルトでは、最大スナップショット保存サイズは256MBです。

4. 「適用」をクリックします。

   新しいTimesTenメトリック構成の設定が適用されました。

## 7.33 TimesTenパフォーマンス・メトリック・レポートの作成

TimesTenパフォーマンス・メトリック・レポートでは、TimesTenメトリックの特定の2つのスナップショットのデータを使用してHTML形式のレポートを作成します。TimesTenメトリック・レポートには、各メトリック用の情報が含まれます。レポートに表示される様々なメトリックの詳細は、『Oracle TimesTen In-Memory Databaseリファレンス』の「レポート例」に関する項を参照してください。

データベースの新規レポートを生成するには、SQL Developerのメイン・ページで作業してください。

1. データベースの名前を右クリックして、「TimesTenパフォーマンス・メトリック」→「レポート」を選択します。

   「TimesTenメトリック・レポートを作成します」ダイアログが表示されます。

2. デフォルトでは、「TimesTenメトリック・レポートを作成します」ダイアログの「レポート・ジェネレータ」タブが選択されています。「セレクタ」列で、比較する2つのスナップショットを選択します。

   また、列のヘッダーをクリックすると、その列に基づいて表がソートされます。各列の説明は次のとおりです。

   - セレクタ

     メトリック・レポートで比較するスナップショットを決定するチェックボックス。同じ取得レベルのスナップショットのみを2つ選択してください。3つ以上のスナップショットを比較するレポートを生成しようとすると、エラー・ダイアログが表示されます。

   - スナップショット

     スナップショットのスナップショットID。

   - タイムスタンプ

     スナップショットが取得された時点のタイムスタンプ。

   - 取得レベル

     スナップショットの取得レベル。この値は、「標準」、「なし」、「基本」または「すべて」です。

3. 同じ取得レベルのスナップショットを2つ選択した後に「レポートの生成」ボタンをクリックします。取得レベルの異なるスナップショットを比較するレポートを生成しようとすると、エラー・ダイアログが表示されます。

   TimesTenメトリック・レポートが作成されます。「レポートの生成」ボタンの下のペインに、生成されたTimesTenメトリック・レポートを表示できます。

   レポートを保存しない場合は、「閉じる」をクリックします。レポートを保存する場合は、「レポートの保存」を参照してください。

### 7.33.1 レポートの保存

今後の参照のためにレポートを保存するには、次の手順を実行します。

1. 「保存」をクリックします。

   「保存」ダイアログが表示されます。

2. TimesTenメトリック・レポートを保存するディレクトリを選択します。

3. 「ファイル名」フィールドに、TimesTenメトリック・レポートの名前を定義します。

   TimesTenメトリック・レポートのデフォルトのファイル名は、`ttstats-``snapshot_id_1`-`snapshot_id_2``-``YYYYMMDDHHMISS``.html`で、`snapshot_id_1`および`snapshot_id_2`は、レポートで比較する2つのスナップショットのスナップショットIDです。`YYYYMMDDHHMISS`は、レポートが生成された時点のタイムスタンプで、`YYYY`は年、`MM`は月、`DD` は日、`HH`は時、`MI`は分、`SS`は秒を表します。

4. 「保存」をクリックします。

   SQL Developerにより、レポートが保存されます。

## 7.34 接続レベルでのTimesTen索引アドバイザ用データの取得

TimesTen索引アドバイザでデータを取得する前に、表の統計が過去24時間以内に更新されていることを確認してください。最新の表の統計によってデータ収集のための最新の統計が得られ、最適化された問合せ計画に基づく文を準備できます。

ここでは次のオプションを指定できます。

- SQLワークシートからのデータの取得

- SQLワークシート・スクリプトからのデータの取得

関連項目

- 問合せオプティマイザで使用される表および列の統計の更新

### 7.34.1 SQLワークシートからのデータの取得

SQL Developer SQLワークシートにより、接続レベルでTimesTen索引アドバイザ用データを取得できます。SQLワークシートが、SQL Developer SQLワークシート内にあることを確認してください。

1. SQLワークシートのメニューバーで、「TimesTen索引アドバイザ」ボタンをクリックします。

   - 表の統計が期限切れの場合は、情報ダイアログに期限切れの表についての情報が表示されます。TimesTenによって表の統計の更新が推奨されます。

   - 表の統計が更新されると、「索引アドバイザの構成」ダイアログが表示されます。

2. 表統計を更新するには、「取消」をクリックして、Oracle SQL Developer Oracle TimesTen In-Memory Databaseサポート・ユーザーズ・ガイドの問合せオプティマイザにより使用される表および列統計の更新に関する項に従ってください。表の統計を更新しないで続行するには、「OK」をクリックします。

   「索引アドバイザの構成」ダイアログが表示されます。

3. 「取得モード」ドロップダウン・リストで目的の取得モードを選択します。

   - SQLの準備: SQLワークシートでSQLコマンドが準備されますが、実行はされません。算出された統計および問合せ計画の分析に基づいて推奨が行われます。これがデフォルトの取得モードです。

   - SQLの実行: SQLワークシートでSQLコマンドが実行されます。実際のSQLコマンドの実行に基づいて推奨が行われます。このモードではSQLの実行を完了する必要があるため、「SQLの準備」モードよりも時間がかかります。

   オプティマイザ・ヒントを使用する場合、選択する準備は整っています。

4. 「Oracle BIサーバーのオプティマイザ・ヒントを含める」チェックボックスによって、TimesTen問合せオプティマイザに特定の実行計画を生成するよう指示するオプティマイザ・ヒントを使用できます。オプティマイザ・ヒントは、Oracle BIサーバーの生成する推奨問合せです。オプティマイザ・ヒントを使用しない場合は、「開始」をクリックします。

   「索引アドバイザの構成」ダイアログが閉じます。SQLワークシートの下部に「TimesTen索引アドバイザ」ペインが表示されます。

5. 「セレクタ」列で、作成する索引推奨項目を選択します。

   また、列のヘッダーをクリックすると、その列に基づいて表がソートされます。各列の説明は次のとおりです。

   - セレクタ

     作成する索引推奨項目を決定するために選択するチェック・ボックス。

   - 「索引推奨項目」

     TimesTen索引アドバイザの推奨する`CREATE INDEX`文。

   - 「影響を受ける文の数」

     推奨の効果を得られる文の数。

   - 「作成済」

     索引推奨項目を作成済かどうかを示します。この値は、「はい」または「いいえ」です。

   すべての索引推奨項目を選択するには、「すべて選択」チェック・ボックスを選択します。

   TimesTen索引アドバイザに評価されているSQLコマンドを表示するには、「SQL」タブをクリックします。「SQL」タブは、「TimesTen索引アドバイザ」ペインの上部にあります。

6. 作成する索引推奨項目を選択した後、「選択した索引を作成」ボタンをクリックします。

   「選択した索引を作成」ダイアログが表示されます。「詳細 >>」ボタンを確認します。

7. 「詳細 >>」をクリックします。

   選択した索引の作成の進捗情報を表示する詳細ペインが開きます。ダイアログの下にある「閉じる」ボタンを確認します。

8. 「閉じる」をクリックします。

   「選択した索引を作成」ダイアログが閉じます。TimesTenによって索引が作成されます。

関連項目

- SQLワークシートの索引推奨項目の保存
- Oracle BIサーバーのオプティマイザ・ヒントをSQLワークシートに含める

#### 7.34.1.1 SQLワークシートの索引推奨項目の保存

今後の参照のために索引推奨項目を保存するには、次の手順を実行します。

1. 「索引を保存」をクリックします。すべての索引推奨項目が保存されます。索引推奨項目は個別に保存されません。

   「索引を保存」ダイアログが表示されます。

2. TimesTen索引推奨項目を保存するディレクトリを選択します。

3. 「ファイル名」フィールドに、TimesTen索引推奨項目のファイル名を定義します。

   デフォルトのTimesTen索引推奨項目のファイル名は、接続名が`connection_name```の場合は、`connection_name``-indexadvice-``YYYYMMDDMISS``.sql`です。`YYYYMMDDHHMISS`は、推奨項目が作成された時点のタイムスタンプで、`YYYY`は年、`MM`は月、`DD` は日、`HH`は時、`MI`は分、`SS`は秒を表します。

4. 「保存」をクリックします。

   索引推奨項目が保存されます。

   保存したファイルのヘッダーには、次の情報が含まれます。

   - TimesTenによってレポートが作成された時点のタイムスタンプ。

   - SQL Developerのバージョン。

   - TimesTenデータベースのバージョン。

   - TimesTen接続の名前。

   次に例を示します。

       -- This file was generated by SQL Developer at 2013-04-29 11:08:45
       -- SQL Developer version 4.0.0.11.51
       -- Database version: 11.02.02.0005 Oracle TimesTen IMDB version 11.2.2.5.0
       -- Connection name: sampledb_1122

### 7.34.2 SQLワークシート・スクリプトからのデータの取得

SQLワークロード・スクリプト・ファイルのSQL問合せを使用して、接続レベルでTimesTen索引アドバイザ用データを取得できます。SQL Developerのメイン・ページで作業していること、および、TimesTen接続が拡張されていることを確認してください。

1. データベースの名前を右クリックして、「索引アドバイザ」を選択し、次に「接続レベル取得」を選択します。

   - 表の統計が期限切れの場合は、情報ダイアログに期限切れの表についての情報が表示されます。TimesTenによって表の統計の更新が推奨されます。

   - 表の統計が更新されると、「索引アドバイザの構成」ダイアログが表示されます。

2. 表統計を更新するには、「取消」をクリックして、Oracle SQL Developer Oracle TimesTen In-Memory Databaseサポート・ユーザーズ・ガイドの問合せオプティマイザにより使用される表および列統計の更新に関する項に従ってください。表の統計を更新しないで続行するには、「OK」をクリックします。

   「索引アドバイザ - 接続レベル取得」ダイアログが表示されます。

3. 「索引アドバイザ - 接続レベル取得」ダイアログ・ボックスの「構成」タブで、「取得モード」ドロップダウン・リストから目的の取得モードを選択します。

   - SQLの準備: ワークロード・スクリプトでSQLコマンドが準備されますが、実行はされません。算出された統計および問合せ計画の分析に基づいて推奨が行われます。これがデフォルトの取得モードです。

   - SQLの実行: ワークロード・シートでSQLコマンドが実行されます。実際のワークロード・スクリプトの実行に基づいて推奨が行われます。このモードではSQLの実行を完了する必要があるため、「SQLの準備」モードよりも時間がかかります。

   SQLワークロード・スクリプトを指定する準備ができました。「ワークロード・スクリプト」フィールドの右側にある「参照」ボタンを確認します。

4. 「参照」をクリックします。

   「開く」ダイアログが表示されます。

5. SQLワークロード・スクリプトを保存したディレクトリを選択します。

6. 索引推奨項目を生成するSQLワークロード・スクリプトを選択します。

7. 「開く」をクリックします。

   SQL ワークロード用データを収集する準備ができました。「開始」ボタンを確認します。

   TimesTen索引アドバイザに評価されているSQLコマンドを表示するには、「SQL」タブをクリックします。「SQL」タブは、「索引アドバイザ - 接続レベル取得」ダイアログの上部にあります。

8. 「Oracle BIサーバーのオプティマイザ・ヒントを含める」チェックボックスによって、TimesTen問合せオプティマイザに特定の実行計画を生成するよう指示するオプティマイザ・ヒントを使用できます。オプティマイザ・ヒントは、Oracle BIサーバーの生成する推奨問合せです。オプティマイザ・ヒントを使用しない場合は、「開始」をクリックします。

   「索引アドバイザ・アシスタントの進捗状況」ダイアログが表示されます。「詳細 >>」ボタンを確認します。

   TimesTen索引アドバイザに推奨項目がない場合は、「索引推奨項目のフィードバック」ダイアログが表示されます。ダイアログを閉じて、SQL Developerのメイン・ページに戻ります。

9. 「詳細 >>」をクリックします。

   索引アドバイザの接続レベル取得の進捗情報を表示する詳細ペインが開きます。ダイアログの下にある「閉じる」ボタンを確認します。

10. 「閉じる」をクリックします。

    「索引アドバイザ・アシスタントの進捗状況」ダイアログが閉じます。「索引推奨項目」タブを確認します。

11. 「索引推奨項目」タブをクリックします。

    「索引アドバイザ - 接続レベル取得」ダイアログの「索引推奨項目」タブが表示されます。

12. 「セレクタ」列で、作成する索引推奨項目を選択します。

    また、列のヘッダーをクリックすると、その列に基づいて表がソートされます。各列の説明は次のとおりです。

    - セレクタ

      作成する索引推奨項目を決定するために選択するチェック・ボックス。

    - 「索引推奨項目」

      TimesTen索引アドバイザの推奨する`CREATE INDEX`文。

    - 「影響を受ける文の数」

      推奨の効果を得られる文の数。

    - 「作成済」

      索引推奨項目を作成済かどうかを示します。この値は、「はい」または「いいえ」です。

    すべての索引推奨項目を選択するには、「すべて選択」チェック・ボックスを選択します。

13. 適用する索引推奨項目を選択した後、「選択した索引を作成」ボタンをクリックします。

    「選択した索引を作成しています」ダイアログが表示されます。「詳細 >>」ボタンを確認します。

14. 「詳細 >>」をクリックします。

    選択した索引の作成の進捗情報を表示する詳細ペインが開きます。ダイアログの下にある「閉じる」ボタンを確認します。

15. 「閉じる」をクリックします。

    「選択した索引を作成しています」ダイアログが閉じます。TimesTenによって索引が作成されます。索引推奨項目を保存するには、Oracle SQL Developer Oracle TimesTen In-Memory Databaseサポート・ユーザーズ・ガイドの索引推奨項目の保存に関する項を参照してください。

関連項目

- Oracle BIサーバーのオプティマイザ・ヒントをSQLワークロード・スクリプトに含める

## 7.35 データベース・レベルでのTimesTen索引アドバイザ用データの取得

TimesTen索引アドバイザでデータを取得する前に、表の統計が過去24時間以内に更新されていることを確認してください。最新の表の統計によってデータ収集のための最新の統計が得られ、最適化された問合せ計画に基づく文を準備できます。

データベース・レベルでTimesTen索引アドバイザ用のデータを収集するには、SQL Developerのメイン・ページで作業していること、および、TimesTen接続が拡張されていることを確認してください。

1. データベースの名前を右クリックして、「索引アドバイザ」を選択し、次に「データベース・レベル取得」を選択します。

   - 表の統計が期限切れの場合は、情報ダイアログに期限切れの表についての情報が表示されます。表の統計を最新の状態に更新することをお薦めします。

   - 表の統計が更新されると、「索引アドバイザ - データベース・レベル取得」ダイアログが表示されます。

2. 表統計を更新するには、「取消」をクリックして、Oracle SQL Developer Oracle TimesTen In-Memory Databaseサポート・ユーザーズ・ガイドの問合せオプティマイザにより使用される表および列統計の更新に関する項に従ってください。表の統計を更新しないで続行するには、「OK」をクリックします。

   「索引アドバイザ - データベース取得」ダイアログが表示されます。ダイアログの下にある「開始」ボタンを確認します。

3. 「索引アドバイザ - 接続レベル取得」ダイアログの「制御」タブで、「開始」をクリックします。

   「索引アドバイザによるデータベース取得が進行中」ダイアログが表示されます。「詳細 >>」ボタンを確認します。

4. 「詳細 >>」をクリックします。

   索引アドバイザのデータベース・レベルの取得の進捗情報を表示する詳細ペインが開きます。ダイアログの下にある「閉じる」ボタンを確認します。

5. 「閉じる」をクリックします。

   「索引アドバイザによるデータベース取得が進行中」ダイアログが閉じます。

6. 目的のSQLワークロードを取得したら、「停止」をクリックします。

   TimesTen索引アドバイザに推奨項目がある場合は、「索引アドバイザによるデータベース取得が進行中」ダイアログが表示されます。

   TimesTen索引アドバイザに推奨項目がない場合は、「索引推奨項目のフィードバック」ダイアログが表示されます。ダイアログを閉じて、SQL Developerのメイン・ページに戻ります。

7. TimesTen索引アドバイザに推奨項目がある場合、「詳細>>」をクリックします。

   索引アドバイザのデータベース取得の進捗情報を表示する詳細ペインが開きます。ダイアログの下にある「閉じる」ボタンを確認します。

8. 「閉じる」をクリックします。

   「索引アドバイザによるデータベース取得が進行中」ダイアログが閉じます。「索引アドバイザ - データベース取得」ダイアログに、完了したデータベース取得についての情報が表示されます。ダイアログの上にある「索引推奨項目」タブを確認します。

9. 「索引推奨項目」タブをクリックします。

   「索引アドバイザ - データベース取得」ダイアログの「索引推奨項目」タブが表示されます。

10. 「セレクタ」列で、作成する索引推奨項目を選択します。

    また、列のヘッダーをクリックすると、その列に基づいて表がソートされます。各列の説明は次のとおりです。

    - セレクタ

      作成する索引推奨項目を決定するために選択するチェック・ボックス。

    - 「索引推奨項目」

      TimesTen索引アドバイザの推奨する`CREATE INDEX`文。

    - 「影響を受ける文の数」

      推奨の効果を得られる文の数。

    - 「作成済」

      索引推奨項目を作成済かどうかを示します。この値は、「はい」または「いいえ」です。

    すべての索引推奨項目を選択するには、「すべて選択」チェック・ボックスを選択します。

11. 適用する索引推奨項目を選択した後、「選択した索引を作成」ボタンをクリックします。

    「選択した索引を作成しています」ダイアログが表示されます。「詳細 >>」ボタンを確認します。

12. 「詳細 >>」をクリックします。

    選択した索引の作成の進捗情報を表示する詳細ペインが開きます。ダイアログの下にある「閉じる」ボタンを確認します。

13. 「閉じる」をクリックします。

    「選択した索引を作成しています」ダイアログが閉じます。索引が作成されました。索引推奨項目を保存するには、Oracle SQL Developer Oracle TimesTen In-Memory Databaseサポート・ユーザーズ・ガイドの索引推奨項目の保存に関する項を参照してください。

関連項目

- 問合せオプティマイザで使用される表および列の統計の更新

## 7.36 TimesTen索引アドバイザの取得状況の表示

TimesTen索引アドバイザの取得状況によって、接続レベルおよびデータベースレベルの取得状況が表示できます。TimesTen索引アドバイザによるデータベースの取得状況を表示するには、SQL Developerのメイン・ページで作業する必要があります。

1. データベースの名前を右クリックして、「索引アドバイザ」を選択し、次に「索引アドバイザの取得状態」を選択します。

   「索引アドバイザの取得状態」ダイアログが表示され、接続レベルおよびデータベース・レベルの現在の取得状況が詐称できます。

   また、列のヘッダーをクリックすると、その列に基づいて表がソートされます。各列の説明は次のとおりです。

   - 接続ID

     TimesTen索引アドバイザによる取得を開始した接続の接続ID。

   - 取得レベル

     TimesTen索引アドバイザの取得レベル。この値は、「接続」または「データベース」です。

   - 取得モード

     TimesTen索引アドバイザの取得モード。この値は、「SQLの実行」または「SQLの準備」です。

   - 取得状態

     TimesTen索引アドバイザの取得状態。この値は、「進行中」または「完了」です。

   - 準備済数

     取得期間に準備済のSQL文の数。

   - 実行数

     取得期間に実行済のSQL文の数。

   - 開始時間

     索引アドバイザによる取得が開始した時点のタイムスタンプ。タイムスタンプの書式は、`YYYY``-``MM``-``DD` `HH``:``MI``:``SS``.``FF`であり、`YYYY`は年、`MM`は月、`DD`は日、`HH`は時、`MI`は分、`SS`は秒で、`FF`がミリ秒です。

   - 終了時間

     索引アドバイザによる取得が終了した時点のタイムスタンプ。タイムスタンプの書式は、`YYYY``-``MM``-``DD` `HH``:``MI``:``SS``.``FF`であり、`YYYY`は年、`MM`は月、`DD`は日、`HH`は時、`MI`は分、`SS`は秒で、`FF`がミリ秒です。「取得状態」が、「進行中」の場合、この値は空です。

2. TimesTen索引アドバイザの取得した最新の情報で表を更新するには、「リフレッシュ」をクリックします。

   「索引アドバイザの取得状態」ダイアログが、最新の取得状況の情報でリフレッシュされます。

## 7.37 OracleデータベースからTimesTenデータベースへのデータのロード

SQL Developerでは、キャッシュ・グリッド、キャッシュ・グループまたはキャッシュ表を作成することなく、OracleデータベースからTimesTenデータベースにデータをロードできます。

OracleデータベースからTimesTenデータベースにデータをロードする前に次を確認します。

- Oracle TimesTen In-Memory Databaseリリース11.2.2.4 (以上)を使用していること。

- TimesTen SQL developer接続に対しOracle接続情報(Oracle DatabaseパスワードおよびOracle Net Service名)を指定していること。

OracleデータベースからTimesTenデータベースにデータをロードするには、SQL Developerのメイン・ページで作業していること、および、TimesTen接続が拡張されていることを確認してください。

1. 「表」オプションを右クリックして、Oracleデータベース表からのロードを選択します。

   「Oracleデータベース表からのロード」ダイアログが表示されます。「Oracleデータベース表からのロード」ダイアログの左のナビゲーション・ツリーでOracleデータベース・スキーマ名を確認します。

2. Oracleデータベース・スキーマ名の隣の「+」をクリックして、Oracleデータベース表のリストを展開します。

   Oracleデータベース・スキーマが展開して、使用可能なOracleデータベース表が表示されます。TimesTenデータベースにロードするOracleデータベース表を確認します。

3. TimesTenデータベースにロードするOracleデータベース表の名前を右クリックして、「ロード」を選択します。この手順を繰返して、同一のOracleデータベース表に複数のOracleデータベース表をロードできます。

   Oracleデータベース表のすべてをロードするには、Oracleデータベース・スキーマ名を右クリックし、「すべてロード」を選択します。「TimesTenユーザー名」ダイアログが表示されます。表を作成するTimesTenユーザーを入力して、「OK」をクリックします。

   選択した表は右ペインに追加され、表の形式で表示されます。

4. Oracleデータベース表をレビューして、必要に応じてフィールドを編集します。フィールドを編集するにはダブルクリックします。各列の説明は次のとおりです。

   - TimesTenユーザー名

     作成するTimesTen表の所有者。デフォルトでは、TimesTen接続ユーザーです。この列は編集できます。指定した表の所有者が存在しない場合、または、TimesTen接続ユーザーに指定した表の所有者にアクセスする権限がない場合は、エラー・メッセージが表示されます。

   - TimesTen表名

     作成するTimesTen表の名前。デフォルトでは、Oracleデータベース表と同じ名前です。この列は編集できます。

   - 「Oracleデータベースで実行する問合せ」

     Oracleデータベースで目的の結果セットを生成するために実行されるSQL問合せ。デフォルトでは、`SELECT * FROM` `oracledb_tbl`問合せで、`oracledb_tbl`はデータのロード元のOracleデータベース表です。この列は編集できます。

   - 行カウント

     TimesTenがOracleデータベース表からロードする行数。「Oracleデータベースで実行する問合せ」フィールドの結果セットの行カウントです。デフォルトでは、この値はカウントされません。

     特定のOracleデータベース表の「行カウント」に移入するには、表の「行カウント」フィールドを右クリックして「件数」を選択します。

     選択したすべてのOracleデータベース表の「行カウント」にフィールドに移入するには、いずれかの表の「行カウント」フィールドを右クリックして「すべてカウント」を選択します。確認ダイアログが表示されます。「Yes」をクリックして、前に選択したすべてのOracleデータベース表の行カウントに進みます。

   - Create Table文

     Oracleデータベースのデータをロードする表の作成に使用するSQL文。この列は編集できません。`CREATE TABLE`文をレビューするには、「Create Table文」フィールドをダブルクリックします。

     同名のTimesTen表がすでにTimesTenデータベースに存在する場合は、そのOracleデータベース表のデータが既存のTimesTen表に追加されます。Oracleデータベース表の表制約は、TimesTenにロードされません。同名で表構造の異なるTimesTen表がすでにTimesTenデータベースに存在する場合は、エラー・ダイアログが表示されます。

   - 「パラレル・ロード数」

     Oracleデータベース表をTimesTenデータベースにロードするために使用されるパラレル・ロード数。表に含まれる行数が500, 000未満の場合、デフォルト値は1です。表に含まれる行数が500, 000を超える場合、デフォルト値は2です。この列は編集できます。

     多数の行をロードする場合は、複数のパラレル・ロードを使用することをお薦めします。複数のパラレル・ロードを使用すると、各パラレル・ロードで行のサブセットがOracleデータベース表からTimesTenデータベースにインポートされることにより、行のロード処理が高速化されます。

   - 「パラレル・ロードごとのスレッド数」

     Oracleデータベース表をTimesTenデータベースにロードするために使用されるパラレル・スレッド数。デフォルトでは、この値は4です。この列は編集できます。2未満のパラレル・スレッド数を使用しようとすると、エラー・ダイアログが表示されます。

   - ステータス

     OracleデータベースからTimesTenデータベースへのデータ・ロード操作のステータス。この値は、ロード操作を開始する前は空です。Oracleデータベースから表のロード操作を開始すると、この値は「進行中」、「完了」または「失敗」になります。

   「Oracleデータベース表からのロード」ダイアログの下部の「索引作成ポリシー」を確認します。

5. 「索引作成ポリシー」ドロップダウン・リストで目的の索引作成ポリシーを選択します。

   - ピアOracleデータベース表からすべての索引をコピーする: ピアOracleデータベース表に存在しているすべての索引を、TimesTenで作成します。これが、デフォルトの索引作成ポリシーです。

   - ピアOracleデータベース表から一意の索引のみコピーする: ピアOracleデータベース表に存在している一意の索引すべてを、TimesTenで作成します。

   - ピアOracleデータベース表から索引をコピーしない: TimesTenでは索引が作成されません。

   「Oracleデータベース表からのロード」ダイアログの右下にある「ロード」ボタンを確認します。

6. 目的のフィールドをすべて編集したら、「ロード」ボタンをクリックします。

   進捗ダイアログが表示されます。「Oracleデータベース表からのロード」ダイアログの「ステータス」列の各フィールドが「完了」になっていることを確認します。

   「完了」以外になっている「ステータス」フィールドがある場合は、入力したすべてのデータが正しいことを確認してください。「完了」になっていないステータスは、エラーが発生したことを示しています。

   すべての「Status」フィールドが「DONE」になっている場合は、TimesTen表が作成され、Oracleデータベース表からデータが移入されています。「完了」ステータスをダブル・クリックして、インポート済の索引に関する詳細情報を表示します。

   「Oracleデータベース表からのロード」ダイアログの右下にある「閉じる」ボタンを確認します。

7. 「閉じる」をクリックします。

   データが、OracleデータベースからTimesTenデータベースに正常にロードされました。

関連項目

- Oracle Database SQL言語リファレンス
- TimesTenデータベースの名前付き接続の定義

## 7.38 Oracleデータベース表から既存のTimesTen表へのデータのロード

Oracleデータベース表から既存のTimesTen表にデータをロードするには、次の手順を実行してください。SQL Developerのメイン・ページで作業していること、および、TimesTen接続が拡張されていることを確認してください。

1. 「表」の隣の「+」をクリックして、TimesTen表のリストを展開します。

   TimesTen表のリストが展開します。

2. 表の名前を右クリックして「表」オプションを選択し、「Oracleからロード」オプションを選択します。

   「Oracleから表をロード」ダイアログが表示されます。「スキーマ名」、「TimesTenユーザー名」および「TimesTen表名」のフィールドは自動で入力され、編集できません。次に、SQL問合せおよびパラレル・スレッド件数を入力します。

3. 「選択問合せ」フィールドに、Oracleデータベースで実行するSQL問合せを入力します。SQL問合せの結果は、TimesTen表にロードされます。

4. 「パラレル・スレッド件数」フィールドに、Oracleデータベース表をTimesTenデータベースにロードするために使用されるパラレル・スレッド数を入力します。2未満のパラレル・スレッド数を使用しようとすると、エラー・ダイアログが表示されます。

5. 「ロード」をクリックします。

   進捗ダイアログが表示されます。Oracleデータベース表からTimesTenにデータがロードされると、進捗ダイアログが閉じます。小さなOracleデータベース表で問合せを実行すると、進捗ダイアログはほぼ瞬時に閉じます。

関連項目

- Oracle Database SQL言語リファレンス