Oracle AI Vector Searchに関する制限事項
Oracle Database 23aiでのOracle AI Vector Searchに関する制限事項を次に示します。
- Open Neural Network Exchange (ONNX)機能は、x86-64 LinuxおよびLinux for Arm (aarch64)プラットフォームでのみサポートされています。ONNXはMicrosoft Windowsではサポートされていません。
- ベクトル・プールのサイズを手動で設定するには、
VECTOR_MEMORY_SIZE
初期化パラメータを使用します。このパラメータは、次のレベルで動的に変更できます。- マルチテナント・コンテナ・データベース(CDB)レベルでは、
VECTOR_MEMORY_SIZE
により、ベクトル・プールの現在のサイズを指定します。パラメータ値を小さくすると、新しいサイズを超えるベクトルを使用できなくなります。 - プラガブル・データベース(PDB)レベルでは、
VECTOR_MEMORY_SIZE
により、PDBで許可される最大ベクトル・プール使用量を指定します。パラメータ値を小さくすると、新しい割当てを超えるベクトルを使用できなくなります。
ノート:
CDBの初期化時にVECTOR_MEMORY_SIZE
が1に設定され、sga_target
が0より大きい場合、HNSW索引の作成により、新しい索引を満たすようにベクトル・メモリー・プールが自動的に拡張されます。この構成では、PDBのVECTOR_MEMORY_SIZE
値は0にデフォルト設定され、ALTER SYSTEM
コマンドを使用して変更することはできません。 - マルチテナント・コンテナ・データベース(CDB)レベルでは、
-
表レベルのサポート
-
表の切捨てまたは移動の操作はサポートされていますが、その操作によりグローバル・ベクトル索引が使用不可としてマークされます。
-
パーティション管理(PMOP)操作(たとえば、
DROP
、TRUNCATE
、EXCHANGE
、MERGE
、MOVE
、COALESCE
およびSPLIT
)はサポートされていますが、その操作によりグローバル・ベクトル索引が使用不可としてマークされます。 -
ハッシュ・パーティションの追加によっても、グローバル・ベクトル索引が使用不可とマークされます。ただし、レンジまたはリスト・パーティションの追加では、グローバル・ベクトル索引は使用不可としてマークされません。
-
ベクトル列は、次のどれにおいてもサポートされていません:
- 索引構成表(IOT) (主キーとしても非キー列としても)
- クラスタまたはクラスタ表
- グローバル一時表
- ブロックチェーン表
- 不変表
- パーティション化キーとサブパーティション化キー
- 主キーと外部キー
- 一意制約とチェック制約
- デフォルト値
- 列の変更
- 手動セグメント領域管理(MSSM)表領域(SYSユーザーのみがMSSM表領域にBasicFilesとしてベクトルを作成できる)
- 連続問合せ通知(CQN)問合せ
- Bツリー、ビットマップ、逆キー、テキスト、空間索引などの非ベクトル索引
- ローカルのInverted Flat File (IVF)索引の場合:
- 非ハッシュ・ベクトル索引の
ADD
はサポートされますが、ベクトル索引が使用不可としてマークされます。 - その他のすべてのPMOP操作はサポートされておらず、試行するとエラーが返されます。
- 非ハッシュ・ベクトル索引の
-
-
型レベルのサポート
ベクトル列指定では、次のものはサポートされていません:
- Encryption句
- SecureFiles storage句
-
問合せレベルのサポート
-
パーティション行制限句では、ベクトル索引は使用されません。
-
ベクトル索引に対するコストベースの最適化のサポートは制限されています。
-
ベクトル列を含むSQL構文では、次のものはサポートされていません:
- Distinct、Count Distinct
- Order By、Group By
- 結合条件
- 比較演算子(たとえば、>、<、=)
-
-
索引レベルのサポート
-
ベクトル索引では、次のものはサポートされていません:
- 外部表
- IOT
- クラスタまたはクラスタ表
- グローバル一時表
- ブロックチェーン表
- 不変表
- マテリアライズド・ビュー
-
次のものはサポートされていません。
- 関数ベースのベクトル索引
- ベクトル索引に対するAlter index DDL
- ベクトル索引のオンライン作成
-
- 最新のpython-oracledb、node-oracledb、JDBC、ODP.NETおよびOCIドライバでは、ネイティブ・バインドが有効になります。
- その他すべてのSQLドライバでは、バインドおよびベクトル定義にCLOBまたはVARCHAR2を使用する必要があります。
- リリース19cおよびリリース21c以降のOracleクライアントでは、ベクトルがCLOBとして認識されます。
- 次のものとの統合はサポートされていません:
- トランスポータブル表領域を含むベクトル索引は、Oracle Data Pumpではサポートされていません。
- Oracle Databaseアドバンスト・キューイング
- Oracle Database Gateway
- 最大65535個のディメンションがサポートされています。
- データ・リダクションは、
VECTOR
データ型ではサポートされていません。具体的には、次のことができません:- ベクトル列にデータ・リダクション・ポリシーを追加する。
- 列にリダクション・ポリシーが定義されている場合に、表を変更して列を
VECTOR
データ型に変更する。