ヘッダーをスキップ
Oracle Databaseデータ・カートリッジ開発者ガイド
11
g
リリース1(11.1)
E05688-02
索引
次へ
目次
例一覧
図一覧
表一覧
タイトルおよび著作権情報
はじめに
対象読者
ドキュメントのアクセシビリティについて
表記規則
サポートおよびサービス
データ・カートリッジの新機能
Oracle 11
g
リリース1(11.1)の新機能
第I部 概要
1
データ・カートリッジの概要
データ・カートリッジの概要
データ・カートリッジの使用
データ・カートリッジのドメイン
サーバーの拡張: サービスおよびインタフェース
拡張可能サービス
拡張可能型システム
拡張可能サーバー実行環境
拡張可能索引付け
拡張可能オプティマイザ
拡張可能インタフェース
DBMSインタフェース
カートリッジ基本サービス・インタフェース
データ・カートリッジ・インタフェース
2
データ・カートリッジ作成の概要
データ・カートリッジ開発プロセス
目的の把握
対象ユーザーの把握
プロジェクトの計画作成
プロジェクトの実施
テストとインストール
カートリッジのインストールと使用
データ・カートリッジ・コンポーネントの要件とガイドライン
カートリッジのスキーマ
カートリッジのグローバル名
カートリッジのエラー・メッセージ名またはエラー・コード
カートリッジ・インストール・ディレクトリ
カートリッジ・ファイル
外部プロシージャの共有ライブラリ名
データ・カートリッジ・デプロイメント・チェックリスト
データ・カートリッジのネーミング規則
ネーミング規則の必要性
一意の名前書式
カートリッジの登録
カートリッジのディレクトリ構造と標準
カートリッジのアップグレード
カートリッジ・オブジェクトのインポートとエクスポート
カートリッジのバージョニング
内部バージョニング
外部バージョニング
カートリッジの国際化
カートリッジの管理
カートリッジ・アクセスの管理
実行者権限
構成
開発アプローチの提示
第II部 データ・カートリッジの作成
3
オブジェクト型の定義
オブジェクトとオブジェクト型
オブジェクト型へのオブジェクト識別子の割当て
コンストラクタ・メソッド
オブジェクトの比較
4
PL/SQLによるデータ・カートリッジの実装
メソッド
メソッドの実装
メソッドのコール
メソッドでの属性の参照
PL/SQLパッケージ
プラグマRESTRICT_REFERENCES
プロシージャとファンクションの作成に必要な権限
PL/SQLコードのデバッグ
CおよびC++プログラマのための注意事項
共通の潜在的エラー
シグネチャの不一致
RPCのタイムアウト
パッケージの破損
5
C、C++およびJavaによるデータ・カートリッジの実装
外部プロシージャの使用
共有ライブラリの使用
外部プロシージャの登録
PL/SQLによる外部プロシージャのコール方法
外部プロシージャの構成ファイル
外部プロシージャへのパラメータの受渡し
データ型の指定
PARAMETERS句の使用
WITH CONTEXT句の使用
コールバックの実行
コールバックの制限事項
共通の潜在的エラー
外部ファンクションのコール
RPCのタイムアウト
外部プロシージャのデバッグ
パッケージDEBUG_EXTPROCの使用
Windows NTシステム上のDLL内のCコードのデバッグ
データ・カートリッジで外部プロシージャを使用するためのガイドライン
Javaメソッド
6
マルチメディア・データ型での作業
カートリッジとマルチメディア・データ型の概要
LOBのDDL
LOBロケータ
EMPTY_BLOBおよびEMPTY_CLOBファンクション
OCIによるLOBの操作
DBMS_LOBによるLOBの操作
外部プロシージャ内のLOB
LOBとトリガー
パフォーマンス向上のためのカッコとしてのOpen/Closeの使用
Open/Close操作に関するエラーと制限
7
拡張可能索引付けの使用
拡張可能索引付けの概要
索引の目的
拡張可能索引付けの目的
拡張可能索引付けを使用する場合
索引構造
Bツリー
ハッシュ
k-dツリー
点quadtree
拡張可能索引付け
Text索引タイプの使用
索引タイプの定義
索引ベースでないファンクション実装
索引ベースのファンクション実装
索引タイプの使用
8
ドメイン索引の作成
索引タイプとドメイン索引の概要
ODCIIndexインタフェース
索引定義メソッド
ODCIIndexCreate()
ODCIIndexAlter()
ODCIIndexDrop()
索引メンテナンス・メソッド
ODCIIndexInsert()
ODCIIndexDelete()
ODCIIndexUpdate()
索引スキャン・メソッド
ODCIIndexStart()
ODCIIndexFetch()
ODCIIndexClose()
索引メタデータ・メソッド
索引メソッド実行時のトランザクションのセマンティクス
索引定義ルーチンのトランザクションのセマンティクス
索引メソッド実行時の一貫性のセマンティクス
索引メソッド実行時の権限
索引タイプの作成、削除およびコメント化
索引タイプの作成
索引タイプの削除
索引タイプのコメント化
ドメイン索引
ドメイン索引の操作
ドメイン索引の作成
ドメイン索引の変更
ドメイン索引の切捨て
ドメイン索引の削除
索引構成表のドメイン索引
UROWID列へのROWIDの格納
索引記憶表に対するDML
索引記憶表に対する開始、フェッチおよびクローズ操作
一意でない列の索引
ドメイン索引のメタデータ
エクスポート/インポートを使用したドメイン索引の移動
トランスポータブル表領域を使用したドメイン索引の移動
ドメイン索引のビュー
オブジェクトの依存性、削除のセマンティクスおよび検証
オブジェクトの依存性
オブジェクトの削除のセマンティクス
オブジェクトの検証
索引タイプ、ドメイン索引および演算子の権限
パーティション・ドメイン索引
ローカル・ドメイン索引の削除
ローカル・ドメイン索引の変更
索引の状態の概要
ローカル・ドメイン索引とDML操作
索引に影響する表操作
ドメイン索引のパーティション化に使用するODCIIndexインタフェース
ドメイン索引およびSQL*Loader
システム・パーティション化の使用
システム・パーティション表のメリット
システムのパーティション化の実装
システム・パーティション表の作成
システム・パーティション表へのデータの挿入
システム・パーティション表でのデータの削除および更新
システム・パーティション表でのサポート操作
パーティション・メンテナンス操作の実行
索引を含む表交換パーティションの変更
システム管理ドメイン索引の使用
システム管理ドメイン索引の設計
ローカル・ドメイン索引の作成
INSERT、DELETEおよびUPDATEでのローカル・ドメイン索引のメンテナンス
ローカル・ドメイン索引の問合せ
システム管理ドメイン索引付けの制限事項
非パーティション索引の移行
ローカル・パーティション索引の移行
9
演算子の定義
ユーザー定義演算子
演算子バインディング
演算子の権限
演算子の作成
演算子の削除
演算子の変更
演算子のコメント付け
演算子の起動
演算子と索引タイプ
WHERE句の中にある演算子
演算子述語
演算子の解決
索引スキャンの設定
索引スキャン・メソッドの実行モデル
WHERE句の外にある演算子の使用
索引ベースのファンクション実装の作成
演算子の解決
演算子の実行
補助データを戻す演算子
補助データを計算する演算子バインディング
補助データをモデル化する演算子バインディング
演算子の解決
演算子の実行
10
拡張可能オプティマイザの使用
問合せ最適化の概念
統計
ユーザー定義統計
パーティション・オブジェクトのユーザー定義統計
選択性
ユーザー定義の選択性
コスト
ユーザー定義のコスト
統計、選択性およびコスト・ファンクションの定義
ユーザー定義の統計ファンクション
ユーザー定義の選択性ファンクション
ファンクション用のユーザー定義のコスト・ファンクション
ドメイン索引用のユーザー定義のコスト・ファンクション
システム管理ドメイン索引の統計の生成
ユーザー定義統計、選択性およびコストの使用
ユーザー定義統計
列統計
ドメイン索引統計
ユーザー定義の選択性
ユーザー定義演算子
スタンドアロン・ファンクション
パッケージ・ファンクション
型のメソッド
デフォルトの選択性
ユーザー定義のコスト
ユーザー定義演算子
スタンドアロン・ファンクション
パッケージ・ファンクション
型のメソッド
デフォルトのコスト
索引または列のNULL関連の宣言
統計のDDL操作による影響
述語の順序付け
依存性モデル
制限事項と提案事項
分散実行
システム管理記憶域表および関連統計
オブジェクト・レベル統計の集計
システム管理ドメイン索引付け
パフォーマンス
11
ユーザー定義集計関数の使用
ユーザー定義集計関数の概要
ユーザー定義集計の作成
ユーザー定義集計の使用
ユーザー定義集計のパラレル評価
大規模な集計コンテキストの処理
外部コンテキストとパラレル集計
ユーザー定義集計と分析関数
分析関数への集計コンテキストの再利用
外部コンテキストとユーザー定義分析関数
マテリアライズド・ビューとユーザー定義集計の使用
ユーザー定義集計関数の作成と使用
12
カートリッジ・サービスの使用
カートリッジ・サービスの概要
カートリッジ・ハンドル
クライアント側での使用
カートリッジ側での使用
サービス・コール
エラー処理
メモリー・サービス
コンテキストの維持
期間
グローバリゼーション・サポート
グローバリゼーション・サポートの言語情報検索
文字列操作
パラメータ・マネージャ・インタフェース
入力処理
パラメータ・マネージャの動作フラグ
キーの登録
パラメータの格納と取出し
パラメータ・マネージャのコンテキスト
ファイルI/O
文字列の書式設定
13
パイプライン・テーブル・ファンクションとパラレル・テーブル・ファンクションの使用
テーブル・ファンクションの概要
テーブル・ファンクションの概念
テーブル・ファンクション
パイプライン・テーブル・ファンクション
パイプライン・テーブル・ファンクションとREF CURSOR引数
エラーおよび制限事項
テーブル・ファンクションのパラレル実行
パイプライン・テーブル・ファンクション
パイプライン・テーブル・ファンクションの実装の選択肢
パイプライン・テーブル・ファンクションの宣言
ネイティブPL/SQLアプローチの実装
PL/SQLテーブル・ファンクション間のパイプライン化
PIPE ROWとAUTONOMOUS_TRANSACTIONの併用
インタフェース・アプローチの実装
スキャン・コンテキスト
開始ルーチン
フェッチ・ルーチン
クローズ・ルーチン
記述メソッド
準備メソッド
テーブル・ファンクションの問合せ
テーブル・ファンクションへの複数コール
PL/SQL
テーブル・ファンクション内でのDML操作の実行
テーブル・ファンクションに対するDML操作の実行
テーブル・ファンクションの例外の処理
パラレル・テーブル・ファンクション
カーソル変数を使用したデータの入力
複数のREF CURSOR入力変数の使用
問合せのREF CURSORの明示的なオープン
JavaおよびC/C++ファンクションに対するPL/SQL REF CURSOR引数
入力データのパーティション化
リーフ・レベルのテーブル・ファンクションのパラレル実行
テーブル・ファンクションの入力データ・ストリーム
パラレル実行: パーティション化とクラスタ化
ドメイン索引のパラレル作成
一時型と汎用型
14
データ・カートリッジの設計
プログラミング言語の選択
実行者権限
コールアウトとLOB
状態の保存と受渡し
索引の設計
ドメイン索引のパフォーマンス
ドメイン索引のコンポーネント名
索引構成表を使用する場合
LOBへの索引構造の格納
外部索引構造
複数行フェッチ
演算子の設計
拡張可能オプティマイザを考慮した設計
コストと選択性の重み付け
ファンクションのコスト
ファンクションの選択性
表の統計
索引の統計
メンテナンスを考慮した設計
カートリッジのインストールの有効化
移植性を考慮した設計
第III部 使用例と例
15
電力需要カートリッジの例
機能の要件
アプリケーション・モデルの作成
サンプル問合せ
問合せと拡張可能索引付け
拡張可能索引付けのメリットが得られない問合せ
拡張可能索引のメリットが得られる問合せ
ドメイン索引の作成
索引を所有するスキーマの作成
オブジェクト型PowerDemand_Typの作成
オブジェクト型のメソッドの定義
ファンクションと演算子の作成
索引タイプ実装メソッドの作成
型定義
ODCIGetInterfaces()メソッド
ODCIIndexCreate()メソッド
ODCIIndexDrop()メソッド
ODCIIndexStart()メソッド(
Specific
問合せの場合)
ODCIIndexStart()メソッド(
Any
問合せの場合)
ODCIIndexFetch()メソッド
ODCIIndexClose()メソッド
ODCIIndexInsert()メソッド
ODCIIndexDelete()メソッド
ODCIIndexUpdate()メソッド
ODCIIndexGetMetadata()メソッド
索引タイプの作成
拡張可能最適化に使用する型とメソッドの定義
統計表PowerCartUserStatsの作成
拡張可能オプティマイザ・メソッドの作成
型定義
ODCIGetInterfaces()メソッド
PowerDemand_Typ
列のODCIStatsCollect()メソッド
PowerDemand_Typ
列のODCIStatsDelete()メソッド
power_idxtype
ドメイン索引のODCIStatsCollect()メソッド
power_idxtype
ドメイン索引のODCIStatsDelete()メソッド
ODCIStatsSelectivity()メソッド(
Specific
問合せの場合)
ODCIStatsIndexCost()メソッド(
Specific
問合せの場合)
ODCIStatsIndexCost()メソッド(
Any
問合せの場合)
ODCIStatsFunctionCost()メソッド
拡張可能オプティマイザ・メソッドとデータベース・オブジェクトの関連付け
データベース・オブジェクトの分析
ドメイン索引のテスト
電力需要表の作成と移入
索引を使用しない問合せ
索引の作成
索引を使用した問合せ
16
PSBTREE: 拡張可能索引付けの例
PSBTREEの例の概要
索引タイプの設計
演算子の実装
ファンクション実装の作成
演算子の作成
ODCIIndexインタフェースの実装
PSBTREEの実装タイプの定義
実装タイプ本体の作成
実装本体でのPL/SQLルーチンの定義
ODCIIndex
XXX
()メソッドのC実装の登録
C実装の追加の構造の定義
実装本体でのCメソッドの定義
索引タイプの実装
PSBTREEの使用
17
パイプライン・テーブル・ファンクション: インタフェース・アプローチの例
パイプライン・テーブル・ファンクションの例: C実装
C実装のためのSQL宣言方法
CにおけるODCITableメソッドの実装
パイプライン・テーブル・ファンクションの例: Java実装
Java実装のためのSQL宣言方法
JavaにおけるODCITableメソッドの実装
第IV部 リファレンス
18
C、C++およびJavaを使用したカートリッジ・サービス
外部プロシージャ用のOCIアクセス・ファンクション
OCIExtProcAllocCallMemory
OCIExtProcRaiseExcp
OCIExtProcRaiseExcpWithMsg
OCIExtProcGetEnv
Javaカートリッジ・サービス・ファイルのインストール
カートリッジ・サービス: コンテキストのメンテナンス
ContextManager
CountException()
CountException(String)
InvalidKeyException()
InvalidKeyException(String)
19
拡張性の定数、型およびマッピング
システム定義定数
システム定義型
ODCIArgDesc
ODCIArgDescList
ODCIRidList
ODCIColInfo
ODCIColInfoList
ODCICost
ODCIEnv
ODCIFuncInfo
ODCIIndexInfo
ODCIIndexCtx
ODCIObject
ODCIObjectList
ODCIPartInfo
ODCIPartInfoリスト
ODCIPredInfo
ODCIQueryInfo
ODCIStatsOptions
ODCITabFuncStats
ODCITabStats
ODCIBFileList
ODCITabFuncInfo
ODCIDateList
ODCINumberList
ODCIRawList
ODCIVarchar2List
ODCIFuncCallInfo
定数および型のマッピング
PL/SQLのマッピング
Cのマッピング
20
拡張可能索引付けインタフェース
拡張可能索引付け : システム定義のインタフェース・ルーチン
ODCIGetInterfaces()
ODCIIndexAlter()
ODCIIndexClose()
ODCIIndexCreate()
ODCIIndexDelete()
ODCIIndexDrop()
ODCIIndexExchangePartition()
ODCIIndexFetch()
ODCIIndexGetMetadata()
ODCIIndexInsert()
ODCIIndexStart()
ODCIIndexUpdate()
ODCIIndexUpdPartMetadata()
ODCIIndexUtilCleanup()
ODCIIndexUtilGetTableNames()
21
拡張可能オプティマイザ・インタフェース
拡張可能オプティマイザ・インタフェース
EXPLAIN PLAN
INDEXヒント
ORDERED_PREDICATESヒント
ユーザー定義ODCIStatsファンクション
ODCIGetInterfaces()
ODCIStatsCollect()
ODCIStatsDelete()
ODCIStatsFunctionCost()
ODCIStatsExchangePartition()
ODCIStatsIndexCost()
ODCIStatsSelectivity()
ODCIStatsTableFunction()
ODCIStatsUpdPartStatistics()
22
ユーザー定義集計関数インタフェース
ユーザー定義集計関数
ODCIAggregateDelete()
ODCIAggregateInitialize()
ODCIAggregateIterate()
ODCIAggregateMerge()
ODCIAggregateTerminate()
ODCIAggregateWrapContext()
23
パイプライン・テーブル・ファンクションおよびパラレル・テーブル・ファンクション
Cにおけるパイプライン・テーブル・ファンクションとパラレル・テーブル・ファンクションのルーチン
ODCITableClose()
ODCITableDescribe()
ODCITableFetch()
ODCITablePrepare()
ODCITableStart()
A
ユーザー管理ドメイン索引
ユーザー管理ドメイン索引とシステム管理ドメイン索引の比較
ドメイン索引の切捨て
索引タイプの作成
索引タイプに対するドメイン索引の使用
ドメイン索引のパーティション化
ユーザー管理ドメイン索引に対するAPI
ODCIIndexTruncate()
ODCIIndexMergePartition()
ODCIIndexSplitPartition()
索引