1

レコードのリストを取得し、各レコードの系統をトレースするこのクエリがありますが、永久に実行されます。パフォーマンスの向上を手伝ってくれる人はいますか?

  WITH root_nodes AS
  (SELECT distinct dlot.dim_lot_key AS lot_key, facility, lot
    FROM pedwroot.dim_lot dlot
    JOIN AT_LOT a
    ON (a.at_lot = dlot.lot AND a.at_facility = dlot.facility)
   WHERE (dlot.has_test_lpt = 'Y'
      or dlot.has_post_test_lpt = 'Y') and a.at_facility = 'MLA'),

    upstream_genealogy AS
    (SELECT /*+ INDEX(fact_link_lot IX_R_FLLOT_DLOT_2)*/DISTINCT CONNECT_BY_ROOT         
           fllot.dst_lot_key AS root_lot_key,
           fllot.src_lot_key
     FROM pedwroot.fact_link_lot fllot
     CONNECT BY NOCYCLE PRIOR fllot.src_lot_key = fllot.dst_lot_key
     START WITH fllot.dst_lot_key IN (SELECT lot_key FROM root_nodes)),

   at_lst AS
    (Select *
      FROM pedwroot.dim_lot dlot_lst
       JOIN upstream_genealogy upgen
        ON (upgen.src_lot_key = dlot_lst.dim_lot_key)
        where dlot_lst.has_assembly_lpt = 'Y')

      SELECT distinct dlot_root.lot         AS AT_LOT,
            dlot_root.facility    AS AT_FACILITY,
            dfac_root.common_name AS AT_SITE,
            dlot_root.LTC         AS AT_LTC,
            al.lot                AS AT_LST,
            dlot_src.lot          AS FAB_LOT,
            dlot_src.facility     AS FAB_FACILITY,
            dfac_src.common_name  AS FAB_SITE
       FROM upstream_genealogy upgen
       JOIN at_lst al
       ON (upgen.root_lot_key = al.root_lot_key)
       JOIN pedwroot.dim_lot dlot_src
       ON (upgen.src_lot_key = dlot_src.dim_lot_key)
       JOIN pedwroot.dim_lot dlot_root
       ON (upgen.root_lot_key = dlot_root.dim_lot_key)
       JOIN pedwroot.fact_lot flot
       ON (dlot_root.dim_lot_key = flot.lot_key)
       JOIN pedwroot.dim_facility dfac_root
       ON (flot.facility_key = dfac_root.dim_facility_key)
       JOIN pedwroot.dim_facility dfac_src
      ON (flot.fab_facility_key = dfac_src.dim_facility_key)
       WHERE dlot_src.has_fab_lpt = 'Y';

以下は、このクエリの説明計画です ここに画像の説明を入力

ここに画像の説明を入力

4

1 に答える 1

0

カーディナリティが 1,100 万から 1 に突然変化したことは、問題のように見えます。見積もりが不十分な原因が正確にわかるまで、クエリからテーブルと述語を削除します。

ほとんどの場合、これらの問題は不適切な統計が原因です。関連するすべてのテーブルの統計を収集してみてください。(他にも潜在的な問題はたくさん考えられますが、問題を少し縮小できるまでは、おそらく推測する価値はありません。)

于 2011-10-20T06:02:48.197 に答える