-3

パラレルヒントを使用して指定したパーティションテーブルをクエリすると機能しますか?ここで並列ヒントを使用すると、テーブルの指定されたパーティションでクエリのパフォーマンスが向上する可能性がありますか?

SELECT /*+ PARALLEL(A,5)*/ 
    A.USER_ID 
    , A.RES_TYPE 
    , A.RES_ID 
    , A.LIMIT_TAG 
    , A.FEEPOLICY_INS_ID 
    , A.FEEPOLICY_ID 
    , TO_NUMBER(TO_CHAR(A.START_DATE, 'YYYYMMDDHH24MISS')) AS START_DATE 
    , TO_NUMBER(TO_CHAR(A.END_DATE, 'YYYYMMDDHH24MISS')) AS END_DATE 
FROM TF_B_USER_FREECDR_HASH PARTITION(PAR_TF_B_USER_FREECDR_0) A 
ORDER BY A.USER_ID 

が実行計画である:

picture of the explain plan

+0

どこがあなたの質問ですか? –

+0

@Praveen Kumarは、並列文を使用してパフォーマンスを低下させることができますが、 –

+0

ですが、私は指定されたパーティションテーブル –

答えて

-1

はい "のSQL文は、パラレルを使用してパフォーマンスをimporveすることができます"。またはいいえ。実際、パフォーマンスが低下する可能性があります。それは本当に多くの要因に依存します。

たとえば、サーバーにはいくつのプロセッサ(CPUコア)がありますか?使用可能なものはいくつですか?使用可能なCPUがない場合、並列ヒントを使用する利点はありません。実際、並列実行を管理するオーバーヘッドは、結果がより遅くなる可能性があります。

なぜあなたは並列度5を選択しましたか?使用可能な5つのCPUが5つのスレッドを同時に実行できることを保証できない限り、他のスレッドが実行されている間は何もしないでスレッドをハングアップさせます。 2のべき乗はより意味をなさない(2,4,8など)。

あなたが使用することができるかもしれないどのように多くのですそれ

"CPU数は120です"。実際の作業負荷によっては、必要なときに5つを取得できない場合があります。しかし、オッズはかなり良いです。

ここで、実際に照会とパラレルに何か違いがあるかどうかについては、わかりやすく伝えます。 Explainプランは、オプティマイザがパラレル実行を試みるが、その利点が得られるかどうかを示していないことを示しています。

明らかに、大きな仕事を複数のストリームに分割して同時に実行すると、合計経過時間が短縮されるはずです。物事は常にそのように働くわけではありません。したがって、並列ヒントの有無にかかわらず、ステートメントのベンチマークを試してみてください。クエリV$PQ_TQSTATを参照してください。そのビューに対する権限を与えるには、フレンドリーなDBAが必要な場合があります)。

+0

ありがとう、あなたは素晴らしいです –

+0

CPU数は120です –

関連する問題