SODAによるシャーディングに関する追加情報

パフォーマンス・チューニング

メタデータおよび文キャッシング

すべての実装について、文キャッシュを接続プールでオンにする必要があります。これにより、データベースへの不要なラウンド・トリップを回避できます。

SODAメタデータ・キャッシュを有効にするには:

  • Javaの場合:

    Properties props = new Properties();
    props.put("oracle.soda.sharedMetadataCache", "true");
    OracleRDBMSClient cl = new OracleRDBMSClient(props);

    詳細は、SODAコレクションのメタデータ・キャッシュに関する項を参照してください。

  • Pythonの場合:

    # Create the session pool
    pool = cx_Oracle.SessionPool(user="hr", password=userpwd,
                   dsn="dbhost.example.com/orclpdb1",soda_metadata_cache=True)

    詳細は、SODAメタデータ・キャッシュの使用に関する項を参照してください

スレッド

リソースの最適な使用のために、OracleClientのインスタンス化はスレッド間で共有されるため、1回のみ必要です。

これから取得したオブジェクト(OracleDatabaseなど)および結果としてOracleCollectionはスレッドセーフではなく、新規リクエストの作成時にインスタンス化する必要があります。

索引の作成と管理

シャード・キーは主キーの一部である必要があります。追加の索引の作成に制限はありません。

索引の作成および管理に関するSODAドキュメントで提供されるすべてのガイドラインは引き続き適用されます。

シャードのスケール・アウト

データベース構成に新しいシャードを追加すると、SODAメタデータおよびトリガーを含むすべてのDDLが新しいシャードで自動的に使用可能になります。

SODA/JSONシャーディングに追加構成は必要ありません。