この章では、SQL DeveloperでのTimesTenオブジェクトの使用について説明します。
内容は次のとおりです。
データベース・オブジェクトが見つからない場合、オブジェクト・タイプに対応するノードを右クリックし、「リフレッシュ」を選択して、そのタイプのオブジェクトのリストをリフレッシュします。
たとえば、キャッシュ・グループを検索するには、「キャッシュ・グループ」ノードを右クリックし、「リフレッシュ」を選択して、キャッシュ・グループのリストをリフレッシュします。
また、「他のユーザー」ノードの下にオブジェクトが表示されたかどうかを確認できます。「他のユーザー」ノードの左側にある「+」をクリックして、ノードを展開します。その後、ユーザーのいずれかのノードの左側にある「+」をクリックして、そのユーザーのノードを展開します。
オブジェクト・タイプに対応するノードの左側にある「+」をクリックして、ユーザーが所有するそのタイプのオブジェクトのリストを表示します。
たとえば、表を検索するには、ユーザーの「表」ノードの左側にある「+」をクリックして、そのユーザーが所有する表のリストを表示します。
TimesTenリリース11.2.2以上を使用している場合は、表定義でLOBデータ型を指定および表示できます。
LOBデータ型の表を作成する場合は、「表の作成」ダイアログで、「型」列ヘッダーを展開します。有効なデータ型は、CLOB
、NCLOB
およびBLOB
です。
列のデータ型を表示するには、表を選択してから、「列」タブを選択します。列がLOBデータ型であることを確認します。
列を追加し、LOBデータ型を指定する場合、「列の追加」ダイアログで、「データ型」を展開します。選択肢には、CLOB
、NCLOB
およびBLOB
があります。
PL/SQLオブジェクトに、IN
、OUT
およびIN OUT
パラメータとしてLOBデータ型を指定できます。PL/SQL編集ダイアログで、パラメータ・タイプにCLOB
、NCLOB
またはBLOB
を選択します。
VARCHAR2
、NVARCHAR2
およびVARBINARY
型の列に、INLINE
属性を指定できます。
「表の作成」ダイアログで、Inlineという名前の列ヘッダーを検索します。チェック・ボックスをクリックして、列にINLINE
属性を定義します。
表へ列を追加する際にINLINE
属性を指定することもできます。表を右クリックして、「列」 > 「追加」を選択します。「列の追加」ダイアログが表示されます。VARCHAR2
型、NVARCHAR2
型およびVARBINARY
型の列で、「インライン」チェック・ボックスを選択して、INLINE
属性の列を追加します。
TimesTenリリース11.2.2以上を使用している場合は、表サイズ情報を計算できます。
表サイズ情報を表示するには、まず表サイズを計算する必要があります。
「表」ノードの左側にある「+」を選択して、表のリストを表示します。
表の名前を右クリックして、表サイズ情報を計算します。
「表」 > 「サイズの計算」を選択します。
「サイズの計算」ダイアログが表示されます。表の所有者および名前が表示されます。
表外サイズを計算する場合は、チェック・ボックスをクリックします。
「適用」を選択します。
「確認」ダイアログが表示されます。
「OK」を選択します。
表の表サイズ統計が計算されます。
表サイズの計算用のSQLを表示するには、「サイズの計算」ダイアログの「SQL」タブを選択します。ttComputeTabSizes
というTimesTen組込みプロシージャが実行されたことが確認できます。この組込みプロシージャの実行後、表の表サイズ情報を表示できます。この表サイズ情報は、表単位であることに注意してください。
マテリアライズド・ビュー、システム表およびキャッシュ・グループの一部である表を含むデータベース内のすべての表の表サイズを計算するには、「SQLワークシート」を使用して、コマンドCall ttComputeTabSizes (NULL,0);
を実行し、アウトライン・データを含めるには、Call ttComputeTabSizes (NULL,1)
;
を実行します。
1つ以上の表の表サイズの計算後、表サイズ情報を表示できます。
「表」ノードの左側にある「+」を選択して、表のリストを表示します。
表サイズ情報を確認する表を選択します。
表の属性を表示するタブ内にある「サイズ」タブを選択します。
表サイズ情報が表示されます。具体的には、INLINE BYTES
、OUT OF LINE BYTES
およびMETADATA BYTES
の値が表示されます。
「アクション」メニューを選択して、表サイズを生成または再生成できます。「アクション」メニューを選択した場合は、「表」 > 「サイズの計算」を選択します。「サイズの計算」ダイアログが表示され、表サイズ情報を計算することができます。
「リフレッシュ」を選択して、表示された表サイズ・データをリフレッシュします。
表サイズを計算したすべての表の表サイズ情報を表示できます。このような情報を表示するには、「TimesTenレポート」 > 「表」 > 「表サイズ」レポートを選択します。TimesTenレポートの詳細は、「TimesTenレポートの生成」を参照してください。
ttComputeTabSizes
組込みプロシージャの詳細は、『Oracle TimesTen In-Memory Databaseリファレンス』のttComputeTabSizesに関する説明を参照してください。
PL/SQLファンクション、プロシージャまたはパッケージでOUT
パラメータとしてREF CURSOR
を定義して、PL/SQLファンクション、プロシージャまたはパッケージをテストできます。REF CURSOR
を定義した後、PL/SQLファンクション、プロシージャまたはパッケージをコンパイルおよび実行します。「実行」ダイアログが表示され、「OK」を選択すると、実行の詳細が表示され、「出力変数」タブにファンクション、プロシージャまたはパッケージの実行からの出力が表示されます。
次の例では、get_emp_pkg
というパッケージを作成します。get_emp_pkg
パッケージは、OUT
パラメータとしてREF CURSOR
を定義し、OUT
パラメータとしてREF CURSOR
を使用するプロシージャを定義します。
次に、プロシージャget_emp
を定義するパッケージ本体を作成します。プロシージャget_emp
は、REF CURSOR
変数を開き、employees表で問合せを実行します。
パッケージおよびパッケージ本体をコンパイルします。get_emp_pkg
を右クリックして、「実行」を選択します。「PL/SQLの実行」ダイアログが表示され、テスト・ラッパーを実行できます。「OK」を選択して、テスト・ラッパーを実行します。
IdeConnections: 発生したエラーを含む実行ステータスを表示します。
出力変数: ファンクション、プロシージャまたはパッケージの実行結果を表示します。
通常の表、グローバル一時表またはキャッシュ表を作成した後、表の列、索引、エージング・ポリシーなどの表の特性を表示できます。
「表」ノードの左側にある「+」をクリックして、表のリストを表示します。表示する表の名前をクリックします。
検索している表が見つからない場合は、「TimesTenデータベース・オブジェクトの検索」を参照してください。
表のタブ内にある「列」タブには、表の列に関する情報が表示されます。列の名前、データ型、NULL可能性プロパティおよびデフォルト値が表示されます。
表の列のリストを表示するには、「表」ノードを検索します。表の名前が含まれるノードの左側にある「+」をクリックします。
表のタブ内にある「エージング属性」タブには、表のエージング属性に関する情報が表示されます。エージング・ポリシーのタイプ、エージング・サイクルおよびエージング状態が表示されます。
LRUエージング・ポリシーが定義されている表では、TimesTenデータベースのメモリー使用量のしきい値が表示されます。これらのしきい値およびエージング・サイクルの変更の詳細は、「エージング・ポリシーの指定」を参照してください。
時間ベースのエージング・ポリシーが定義された表では、タイムスタンプ値(各行が追加された日時または最新更新の日時を示す)、および更新されていないデータが表から削除されない期間を格納する、NULL値を許可しないDATEまたはTIMESTAMP列の名前が表示されます。
表のタブ内にある「SQL」タブには、通常の表またはグローバル一時表の作成に使用したCREATE TABLE文が表示されます。
付随するキャッシュ・グループが作成されると、キャッシュ表が作成されるため、そのキャッシュ・グループ定義を表示すると、キャッシュ表の定義を表示できます。「キャッシュ・グループ定義の表示」を参照してください。
通常の表またはキャッシュ表で、レンジ索引またはビットマップ索引を作成できます。
索引を作成するには、「表」ノードの左側にある「+」をクリックして、表のリストを表示します。次に、索引を作成する表の名前を右クリックし、「索引」 > 「索引の作成」を選択します。
また、「索引」ノードを右クリックして、「新規索引作成」を選択することもできます。
「索引の作成」ダイアログの「プロパティ」タブで、「表」ドロップダウン・メニューを検索します。このメニューから、索引に表を選択します。
「タイプ」の場合:
一意でないレンジ索引を作成する場合は、「一意でない」を選択します
一意のレンジ索引を作成する場合は、「一意」を選択します
ビットマップ索引を作成する場合は、「ビットマップ」を選択します
TimesTenでサポートされる索引のタイプの詳細は、『Oracle TimesTen In-Memory Database SQLリファレンス』のCREATE INDEXに関する説明を参照してください。
「索引」セクションで、索引に列を指定します。列は、「列名または式」ドロップダウン選択リストから選択できます。各索引列に対して、「順序」選択リストから、列を昇順にソートするか降順にソートするかを指定できます。デフォルトのソート順序は昇順です。
コンポジット索引を作成するには、「+」をクリックして、索引定義に列を追加します。「X」をクリックすると、索引定義から列が削除されます。
「索引の作成」ダイアログの「DDL」タブで、索引の作成に使用したCREATE INDEX文を表示できます。
「OK」をクリックして索引を作成します。
主キーが定義されていない表に主キー制約を作成できます。次の手順を実行します。
「表」ノードの左側にある「+」をクリックして、表のリストを表示します。主キー制約を作成する表の名前を右クリックします。
「制約」 > 「主キーの追加」を選択します。
「主キーの追加」ダイアログが表示されます。
「キー索引タイプ」フィールドで、「範囲の使用」を選択して、レンジ索引を使用して主キーを作成するか、「ハッシュの使用」を選択して、ハッシュ索引を使用して主キーを作成します。
「ハッシュの使用」を選択すると、テキスト「数を指定」とその後ろに「行」または「ページ」のドロップダウン・リストが表示されます。「行」または「ページ」のいずれかを選択して、コロン(:)の後ろのボックスに、行またはページの数を入力します。デフォルトでは「行」が選択されています。
ハッシュ索引のサイズ設定の詳細は、『Oracle TimesTen In-Memory Database SQLリファレンス』の列定義に関する説明を参照してください。
「制約名」フィールドに、制約名を入力します。30文字を超える名前を指定することはできません。
「列」フィールドに列名のドロップダウン・リストが表示されます。主キーに使用する列名を選択します。
「適用」をクリックします。
主キー制約が追加されたことを示す「確認」ダイアログが表示されます。
「OK」をクリックします。
主キー制約は正常に追加されました。
主キー制約の作成に使用したSQL文を表示するには、「主キーの追加」ダイアログ・ボックスの「SQL」タブを選択します。
主キー制約の作成の詳細は、『Oracle TimesTen In-Memory Database SQLリファレンス』のCREATE TABLEに関する説明、または『Oracle TimesTen In-Memory Database SQLリファレンス』のALTER TABLEに関する説明を参照してください。
表で主キーを定義した後に、主キー制約の属性を変更できます。次の手順を実行します。
「表」ノードの左側にある「+」をクリックして、表のリストを表示します。次に、主キー属性を変更する表の名前を右クリックします。
「制約」 > 「主キー・パラメータの変更」を選択します。
「主キーのパラメータの変更」ダイアログが表示されます。
「キー索引タイプ」フィールドで、「範囲の使用」を選択して、主キー制約をハッシュ索引の使用からレンジ索引の使用に変更するか、「ハッシュの使用」を選択して、主キー制約をレンジ索引の使用からハッシュ索引の使用に変更します。
「ハッシュの使用」を選択すると、テキスト「数を指定」とその後ろに「行」または「ページ」のドロップダウン・リストが表示されます。「行」または「ページ」のいずれかを選択して、コロン(:)の後ろのボックスに、行またはページの数を入力します。デフォルトでは「行」が選択されています。
ハッシュ索引のサイズ設定の詳細は、『Oracle TimesTen In-Memory Database SQLリファレンス』の列定義に関する説明を参照してください。
「適用」をクリックします。
主キー制約の索引が変更されたことを示す「確認」ダイアログが表示されます。
「OK」をクリックします。
主キー制約の索引は正常に変更されました。
主キー制約の属性の変更に使用したSQL文を表示するには、「主キーのパラメータの変更」ダイアログの「SQL」タブを選択します。
主キー制約の属性の変更の詳細は、『Oracle TimesTen In-Memory Database SQLリファレンス』のALTER TABLEに関する説明を参照してください。
通常の表またはキャッシュ表にエージング・ポリシーを追加または削除できます。また、表の既存のエージング・ポリシーのエージング状態を変更すること、または既存の時間ベースのエージング・ポリシーの存続期間およびサイクルを変更することもできます。
通常の表またはキャッシュ表にエージング・ポリシーを追加するには、「表」ノードの下で、エージング・ポリシーを追加する表の名前を右クリックし、「経過」 > 「用法ベースで追加」を選択して、LRUエージング・ポリシーを追加するか、「経過」 > 「時間ベースで追加」を選択して、時間ベースのエージング・ポリシーを追加します。キャッシュ表がキャッシュ・グループのルート表である場合のみ、そのキャッシュ表にエージング・ポリシーを追加できます。
検索している表が見つからない場合は、「TimesTenデータベース・オブジェクトの検索」を参照してください。
表にLRUエージング・ポリシーを追加するには、「用法ベースで追加」ダイアログ・ボックスの「プロンプト」タブの「用法ベースの経過」フィールドで、「オン」または「オフ」のいずれかを選択して、エージング状態を指定します。デフォルトのエージング状態はオンです。「適用」をクリックして、表にLRUエージング・ポリシーを追加します。
TimesTenデータベースのメモリー使用量のしきい値によって、表からのデータの削除を開始および停止するタイミングが決定されます。表からのデータの削除が開始されるタイミングを決定するデフォルトのメモリー使用量のしきい値は90%です。表からのデータの削除が停止されるタイミングを決定するデフォルトのメモリー使用量のしきい値は80%です。デフォルトのLRUエージングのサイクルは1分です。これらのしきい値およびエージング・サイクルの変更の詳細は、「エージング・ポリシーの指定」を参照してください。
LRUエージング・ポリシーは通常の表すべて、およびAWT、SWTまたは自動リフレッシュが定義されていないユーザー管理キャッシュ・グループの表に追加できます。
表に時間ベースのエージング・ポリシーを追加するには、「時間ベースで追加」ダイアログ・ボックスの「プロンプト」タブで、「列」から、各行が追加された日時および最新更新の日時を示すタイムスタンプ値を格納する行の名前を選択します。
「存続期間」フィールドで、数値と、ドロップダウン・リストから分、時間または日の単位を指定して、更新されていないデータが表で保持される期間を示します。
「サイクル」フィールドで、数値と、分、時間または日の単位を指定して、データが表からエージ・アウトされる頻度を示します。デフォルトの時間ベースのエージング・サイクルは5分です。
「時間ベースの経過」フィールドで、「オン」または「オフ」のいずれかを選択して、エージング状態を指定します。デフォルトのエージング状態はオンです。「適用」をクリックして、表に時間ベースのエージング・ポリシーを追加します。
時間ベースのエージング・ポリシーは、NULL値を許可しないDATE列またはTIMESTAMP列が含まれる表にのみ追加できます。
通常の表またはキャッシュ表から既存のエージング・ポリシーを削除するには、「表」ノードの下で、エージング・ポリシーを削除する表の名前を右クリックして、「経過」 > 「削除」を選択します。図6-20「エージング属性」を参照してください。
検索している表が見つからない場合は、「TimesTenデータベース・オブジェクトの検索」を参照してください。
「適用」をクリックして、表からエージング・ポリシーを削除します。
通常の表またはキャッシュ表の既存のエージング・ポリシーのエージング状態を変更するには、「表」ノードの下で、エージング状態を変更する表の名前を右クリックして、「経過」 > 「状態オン/オフの変更」を選択します。図6-20「エージング属性」を参照してください。
検索している表が見つからない場合は、「TimesTenデータベース・オブジェクトの検索」を参照してください。
「状態オン/オフの変更」ダイアログの「プロンプト」タブの「経過状態の変更」フィールドで、「オン」または「オフ」のいずれかを選択して、エージング状態を変更します。「適用」をクリックして、表のエージング状態を変更します。
メモリー使用量のしきい値およびLRUエージング・サイクルを変更するには、TimesTenデータベースの接続名のノードを右クリックして、「用法ベースの経過属性の変更」を選択します。
「用法ベースのしきい値を変更中」ダイアログ・ボックスの「プロンプト」タブにある「用法の高しきい値」フィールドで、表からのデータの削除が開始されるタイミングを決定するしきい値を指定します。「用法の低しきい値」フィールドで、表からのデータの削除が停止されるタイミングを決定するしきい値を指定します。「頻度の更新」フィールドで、LRUエージング・サイクルを指定します。「適用」をクリックして、メモリー使用量のしきい値およびLRUエージング・サイクルを変更します。
LRUエージング・ポリシーが定義されているすべての表に新しい設定が適用されます。
通常の表またはキャッシュ表の既存の時間ベースのエージング・ポリシーの存続期間およびサイクルを変更するには、「表」ノードの下で、存続期間およびサイクルを変更する表の名前を右クリックして、「経過」 > 「存続期間とサイクルの変更」を選択します。図6-20「エージング属性」を参照してください。
検索している表が見つからない場合は、「TimesTenデータベース・オブジェクトの検索」を参照してください。
「存続期間とサイクルの変更」ダイアログ・ボックスの「プロンプト」タブ内の「存続期間」フィールドで、数値と、分、時間または日の単位を指定して、更新されていないデータを保持する期間を変更します。
「サイクル」フィールドで、数値と、分、時間または日の単位を指定して、データが表からエージ・アウトされる頻度を変更します。
「適用」をクリックして、表の存続期間およびサイクルを変更します。
次のデータベース・オブジェクトに対し、権限の追加および取消しができます。
通常の表およびキャッシュ表
通常のビューおよびマテリアライズド・ビュー
順序
PL/SQLパッケージ、プロシージャおよびファンクション
オブジェクトに権限を付与するには、オブジェクトの名前を右クリックして、「権限」 > 「付与」を選択します。
「付与」ダイアログ・ボックスの「ユーザー」ドロップダウン・メニューで、オブジェクトにオブジェクト権限を付与するユーザーを選択します。「権限」セクションで、「すべて」チェック・ボックスを選択するか、「>>」をクリックして、オブジェクトの使用可能なすべてのオブジェクト権限を選択したユーザーに付与します。それ以外の場合は、「使用可能な権限」リストから、選択したユーザーに付与する個々の権限を選択してから、「>」をクリックして、これらの権限を「選択した権限」リストに移動します。複数の権限を選択するには、[Ctrl]キーを押したまま必要な権限をクリックします。「適用」をクリックして、オブジェクトの選択されたオブジェクト権限を選択されたユーザーに付与します。
特定のオブジェクトタイプでは、使用できるオブジェクト権限のみが表示されます。たとえば、DELETE
、INDEX
、INSERT
、REFERENCES
、SELECT
およびUPDATE
権限を表に付与できます。ただし、マテリアライズド・ビューに付与できる権限は、INDEX
、REFERENCES
およびSELECT
権限のみです。
ADMIN
システム権限を持つユーザーまたはオブジェクトの所有者のみが、そのオブジェクトでオブジェクト権限を付与できます。
オブジェクトの各タイプで使用できる権限セットの詳細は、『Oracle TimesTen In-Memory Database SQLリファレンス』のオブジェクト権限に関する説明を参照してください。
オブジェクトから権限を取り消すには、オブジェクトの名前を右クリックして、「権限」 > 「取消」を選択します。図6-28「権限の付与および取消し」を参照してください。
「取消」ダイアログ・ボックスの「ユーザー」ドロップダウン・メニューで、オブジェクトからオブジェクト権限を取り消すユーザーを選択します。「権限」セクションで、「すべて」チェック・ボックスを選択するか、「>>」をクリックして、選択したユーザーから、オブジェクトに付与されたすべてのオブジェクト権限を取り消します。それ以外の場合は、「使用可能な権限」リストから、選択したユーザーから取り消す個々の権限を選択してから、「>」をクリックして、これらの権限を「選択した権限」リストに移動します。複数の権限を選択するには、[Ctrl]キーを押したまま必要な権限をクリックします。「適用」をクリックして、選択したユーザーから、オブジェクトの選択したオブジェクト権限を取り消します。
「ユーザー」ドロップダウン・メニューには、オブジェクトにオブジェクト権限が付与されたユーザーのみが表示されます。特定のユーザーでは、付与されたオブジェクト権限のみが表示されます。
ADMIN
システム権限を持つユーザーまたはオブジェクトの所有者のみが、オブジェクトからオブジェクト権限を取り消すことができます。
通常の表またはキャッシュ表、通常のビューまたはマテリアライズド・ビュー、順序またはPL/SQLパッケージ、プロシージャまたはファンクションなどの特定のオブジェクトのすべてのユーザーに付与されたオブジェクト権限を表示できます。
たとえば、通常の表に付与された権限を表示するには、ユーザーの「表」ノードの左側にある「+」をクリックして、そのユーザーが所有する表のリストを表示して、目的の表の名前をクリックします。
表のタブ内にある「権限」タブには、表で権限が付与されたユーザー、そのユーザーに付与された権限および権限を付与したユーザーが表示されます。
「データのインポート」を使用して、表にデータをロードします。データをロードするには、ファイルにデータをエクスポートする必要があります。データをエクスポートするには、表の名前で右クリックして、「エクスポート」を選択します。データを正常にエクスポートした後、データをインポートできます。
「表」ノードの左側にある「+」を選択して、表のリストを表示します。
表の名前を右クリックします。
「表」 > 「データのインポート」を選択します。
「開く」ダイアログが表示されます。インポートするデータ・ファイルを特定します。このファイルは、前にエクスポートしたファイルです。
「開く」を選択します。
表にデータがロードされます。