202 DBMS_XMLINDEX
DBMS_XMLINDEX
パッケージは、非同期の索引付けを実装するインタフェースを提供します。
この章のトピックは、次のとおりです:
参照:
XMLIndexの詳細は、『Oracle XML DB開発者ガイド』を参照してください。
202.1 DBMS_XMLINDEXの概要
DBMS_XMLINDEX
は、非同期の索引メンテナンスのメカニズムを提供します。
非同期索引のメンテナンス
基本のXMLIndexは、すべてのDML操作でメンテナンスされます。ただし、計算のコストを考慮すると、多くの場合、失効した結果には十分な可用性があります。そのような場合、データベースのロードが少ないときなど、より適切なときまで索引の更新を延期することが得策です。DBMS_XMLINDEX
は、このメカニズムを提供します。
202.2 DBMS_XMLINDEXのセキュリティ・モデル
DBMS_XMLINDEX
パッケージは、XDB
が所有しているため、SYS
またはXDB
によって作成される必要があります。EXECUTE
権限は、PUBLIC
に付与されます。
このパッケージ内のサブプログラムは、現行のユーザーの権限を使用して実行されます。
202.3 DBMS_XMLINDEXサブプログラムの要約
この表は、DBMS_XMLINDEX
サブプログラムを示し、簡単に説明しています。
表202-1 DBMS_XMLINDEXパッケージのサブプログラム
サブプログラム | 説明 |
---|---|
|
|
|
|
指定したパラメータ識別子に関連付けられている |
|
指定したパラメータ名に関連付けられている |
|
|
|
パラメータ文字列と |
|
索引を手動で同期化します。 |
202.3.1 CREATEDATEINDEXプロシージャ
このプロシージャは、XMLIndex
の記憶表であるPATH
TABLE
のVALUE
列に、日付値の2次索引を作成します。プロシージャの2番目の形式を使用すると、date_index_clause
を空の文字列に設定できます。
構文
DBMS_XMLINDEX.CREATEDATEINDEX ( xml_index_schema IN VARCHAR2, xml_index_name IN VARCHAR2, date_index_name IN VARCHAR2, xmltypename IN VARCHAR2, date_index_clause IN VARCHAR2); DBMS_XMLINDEX.CREATEDATEINDEX ( xml_index_schema IN VARCHAR2 xml_index_name IN VARCHAR2, date_index_name IN VARCHAR2, xmltypename IN VARCHAR2);
パラメータ
表202-2 CREATEDATEINDEXプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
|
|
|
|
|
|
パス表の |
|
作成時に日付索引に適用するSTORAGE句。日付索引を作成するために |
202.3.2 CREATENUMBERINDEXプロシージャ
このプロシージャは、XMLIndex
の記憶表であるPATH
TABLE
のVALUE
列に、数値の2次索引を作成します。
構文
DBMS_XMLINDEX.CREATENUMBERINDEX ( xml_index_schema IN VARCHAR2, xml_index_name IN VARCHAR2, num_index_name IN VARCHAR2, num_index_clause IN VARCHAR2, xmltypename IN VARCHAR2);
パラメータ
表202-3 CREATENUMBERINDEXプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
|
|
|
|
|
|
作成時に数値索引に適用するSTORAGE句。数値索引を作成するために |
|
パス表の |
202.3.3 DROPPARAMETERプロシージャ
このプロシージャは、指定したパラメータ識別子に関連付けられているXMLIndex
パラメータ文字列を削除します。
構文
DBMS_XMLINDEX.DROPPARAMETER ( name IN VARCHAR2);
パラメータ
表202-4 DROPPARAMETERプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
パラメータ文字列の識別子 |
例
DBMS_XMLINDEX.DROPPARAMETER ( 'myIndexParam');
202.3.4 MODIFYPARAMETERプロシージャ
このプロシージャは、指定したパラメータ識別子に関連付けられているXMLIndex
パラメータ文字列を変更します。
構文
DBMS_XMLINDEX.MODIFYPARAMETER ( name IN VARCHAR2, parameter IN CLOB);
パラメータ
表202-5 MODIFYPARAMETERプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
パラメータ文字列の識別子 |
|
|
例
DBMS_XMLINDEX.MODIFYPARAMETER ( 'myIndexParam', 'PATH TABLE po_ptab PATH ID INDEX po_pidx ORDER KEY INDEX po_oidx VALUE INDEX po_vidx');
202.3.5 PROCESS_PENDINGプロシージャ
このプロシージャのプロセスは、XMLIndex
でのNONBLOCKING ALTER INDEX ADD_GROUP/ADD_COLUMN
操作の完了に必要なDMLを実行します。
構文
DBMS_XMLINDEX.PROCESS_PENDING ( xml_index_schema IN VARCHAR2, xml_index_name IN VARCHAR2, pending_row_count OUT BINARY_INTEGER, error_row_count OUT BINARY_INTEGER);
パラメータ
表202-6 PROCESS_PENDINGプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
|
|
|
|
処理される保留中の行数。 |
|
エラーのために索引付けが失敗した可能性のある行数。 |
使用上のノート
-
このプロシージャは、ロックされた行とエラーのために索引メンテナンスが失敗した行をスキップしながら、必要なすべての行の索引付けを小さいバッチで繰り返し試行します。したがって、保留中の行がすべて処理されるまで、XMLIndexに対して複数回実行する必要がある場合があります。保留中の行がすべて処理されたら、
NONBLOCKING
ALTER
INDEX
OPERATION
を完了できます。 -
何度か試みた後でも保留中のすべての行が処理できない場合は、
SYS_AIXSXI_######_PENDINGTAB
で未処理の行を調べた後、SYS_AIXSXI_#####_ERRORTAB
でエラーを確認して、ロックおよびエラーの問題を手動でトリアージする必要があります。行とエラーを追跡しておくと、問題のトリアージを行う場合に役立ちます。
例
EXEC DBMS_XMLINDEX.PROCESS_PENDING( 'SCOTT', 'PO_XMLINDEX_IX', out_param1, out_param2);
202.3.6 REGISTERPARAMETERプロシージャ
このプロシージャは、パラメータ識別子とXMLIndex
パラメータ文字列のペアをXDBに登録します。
構文
DBMS_XMLINDEX.REGISTERPARAMETER ( name IN VARCHAR2, parameter IN CLOB);
パラメータ
表202-7 REGISTERPARAMETERプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
パラメータ文字列の識別子 |
|
|
例
DBMS_XMLINDEX.REGISTERPARAMETER ( 'myIndexParam', 'PATH TABLE po_ptab PATH ID INDEX po_pidx ORDER KEY INDEX po_oidx VALUE INDEX po_vidx PATHS(NAMESPACE MAPPING(xmlns:p="http://www.example.com/IPO")) GROUP MASTERGROUP XMLTABLE PO_TAB (''/p:PurchaseOrder'' COLUMNS REFERENCE VARCHAR2(30) PATH ''p:Reference'', REQUESTOR VARCHAR2(30) PATH ''p:Requestor'' ) GROUP ITEMGROUP XMLTABLE ITEMGROUP_TAB (''/p:PurchaseOrder/p:LineItems/p:LineItem'' COLUMNS LINENUMBER NUMBER(38) PATH ''@p:ItemNumber'', QUANTITY NUMBER(38) PATH ''@p:Quantity'', DESCRIPTION VARCHAR2(256) PATH ''p:Description'''));
202.3.7 SYNCINDEXプロシージャ
このファンクションは、非同期にメンテナンスされたXMLIndexを同期化します。
これは、保留中の表に記録されるXMLIndex変更に適用され、ベースXMLTYPE
列を含むパス表を最新にします。
構文
DBMS_XMLINDEX.SYNCINDEX ( xml_index_schema IN VARCHAR2, xml_index_name IN VARCHAR2, partition_name IN VARCHAR2 DEFAULT NULL, reindex IN BOOLEAN DEFAULT FALSE);
パラメータ
表202-8 SYNCINDEXプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
XMLIndexの所有者の名前。 |
|
XMLIndexの名前。 |
|
現在サポートされていません。 |
|
デフォルトは |
例
EXEC DBMS_XMLINDEX.SYNCINDEX('USER1', 'SS_TAB_XMLI', REINDEX=>TRUE);