機械翻訳について

セルフサービス最適化のユーザーのパーティション化

セルフサービス最適化ユーザー移行に使用可能な関数を使用し、一度に2000人を超えるユーザーを移行しないことをお薦めします。

2000を超えるセルフサービス・ユーザーを移行する必要がある場合、ユーザーをバッチにパーティション化する必要があります。 このタスクは、担当者パーティID値に基づいてユーザーをパーティション化する方法を示しています。 ユーザーはバッチにパーティション化され、バッチ内の最初の担当者および最後の担当者のパーティIDが示されます。 この移行方式は、ユーザーが移行されていないことを前提としています。 一部のユーザーがすでに移行されている場合も、このタスクは機能しますが、多数のユーザーがすでに移行されている場合、このパーティション化方法は期待どおりに動作しない可能性があります。

ノート: 次の問合せの実行方法の詳細は、カスタム問合せからのデータ・モデルの作成の項を参照してください。

まず、情報のみのために、次のクエリを使用してユーザーの合計数を調べます。

SELECT  count(*)
FROM fusion.svc_self_service_roles
WHERE relationship_type_cd = 'ORA_CSS_USER'
    AND delete_flag = 'N'
    AND current_idp_cd != 'ORA_CSS_IDP_IDCS'

次に、DENSE_RANK分析関数を使用する次のクエリを使用して、ユーザーをバッチにパーティション化します。 この例ではバッチ・サイズは2000です。

SELECT
    batch_num,
    MIN(contact_party_id) first_contact_party_id,
    MAX(contact_party_id) last_contact_party_id,
    COUNT(*) batch_size
FROM
    (
        SELECT
            contact_party_id,
            floor((rank - 1) / 2000) batch_num
        FROM
            (
                SELECT
                    DISTINCT contact_party_id,
                    DENSE_RANK() OVER(
                        ORDER BY
                            contact_party_id
                    ) AS rank
                FROM fusion.svc_self_service_roles
                WHERE
                    relationship_type_cd = 'ORA_CSS_USER'
                    AND delete_flag = 'N'
                    AND current_idp_cd != 'ORA_CSS_IDP_IDCS'
                ORDER BY contact_party_id
            )
    )
GROUP BY batch_num
ORDER BY batch_num

出力には、各バッチの最初と最後の担当者のパーティIDが表示されます