ここでの要件は、特定の工場または部品番号の予測の詳細をユーザーに提示することです。予測の詳細は、いくつかのソース テーブルから取得され、1 つの VIEW によって UNIONed されています。データ アクセスを高速化するために、このビューにマテリアライズド ビュー (MV) が作成されます。この MV で記録的なカウントを行った後、500K+ に到達します。
ユーザーがプラントを選択するか、部品を入力し、上記の MV からこれらのフィルターのデータを要求する DOTNET アプリケーション Web ページがあります。パーツ フィルターは正常に動作していますが、プラント フィルターは特定のプラントのデータを取得するのに約 20 分かかります。
さらに分析したところ、MV に 50K 行を超えるプラントはほとんどないことがわかりました。50K+ レコードの取得は問題ですか??
以下は、Executed が迅速に実行されるクエリですが、同時に Execute Script オプションを使用して実行されると、行を返すのに 5 ~ 6 分かかります。
SELECT /*+ hint first_rows(1000) */
PLANT,MATERIAL_NBR,SOLD_TO_CODE,SHIP_TO_CODE,SHIP_TO_NAME,SHIP_TO_PLANT,SHIP_TO_LABEL_FMT,ORD_QTY,ALLOC_QTY,
due_date, PRIME_CNTR,PRIME_UOI,SEC_CNTR,BASE_UOM,ORDER_TYPE,SHIP_POINT,REC_TYPE
FROM GTCPDBA.VW_FORECAST_REQMNTS_DET
Where PLANT ='FR10';
いくつかの入力を提案してください。