私は関数を3回呼び出す選択クエリを持っています。私は実行時間[複数行]は、私が関数を一度呼び出すと3秒の8秒であることに気づいている。作業負荷が3倍になるので理にかなっています。選択クエリでマルチスレッドを強制しますか? [Oracle or Sql-Server]
はASK:
それは彼らが異なる3つの独立した列であるため、マルチスレッドを強制的にDBサーバをヒントすることは可能ですか?
結果を別々に抽出して結合しようとしました。 SQL ServerやOracleでは、どのようなタイプの並列処理も作成していないようです。以下のSS構文を使用します。上記
select top 200 dbo.CALC_DURATION (Col1, Col2 , 'PP', 553, '', 'N', 'H'),
dbo.CALC_DURATION (Col3, Col4 , 'PP', 553, '', 'N', 'H'),
dbo.CALC_DURATION (Col5, Col6 , 'PP', 553, '', 'N', 'H')
from NNMP265_ISS;
CALC_DURATIONはスカラー関数である可能性はありますか? https://dba.stackexchange.com/questions/134453/sql-not-engaging-parallelism-for-extremely-large-queryを参照してください。 – Serg
機能のコードを含めることはできますか?並列性を妨げないような方法で他の方法でどのように実行できるか考えている人もいます。 –
確かに、thx。この機能は、2セットのデータに優先順位をつけて勤務時間を計算し、開始時間と終了時間の間の労働時間を正確に計算します。私はここでプログラムに合っていないので、メインの質問にスクリーンショットを添付してください。 – rsreji