2016-08-11 7 views
0

特定の日付範囲のMFG/PRO請求書テーブル 'idh_hist'を検索するクエリを作成しようとしています。日付条件を追加すると非常に遅くなります。しかし、私は日付の条件を延期すると、それは非常に高速です。 idh_histのクエリを書く方法を提案してください。続きidh_histクエリは日付が検索中に非常に遅い

は私のクエリです:事前に

for each idh_hist no-lock where idh_domain = "d0002" 
          and idh_due_date = TODAY: 

    /* display code here... */ 

end. 

ありがとう!

データベースランキング:

Flags Index Name    Cnt Field Name 
----- --------------------- ---- --------------------- 
     idh_fsm_type    4 + idh_domain 
            + idh_fsm_type 
            + idh_nbr 
            + idh_line 

pu idh_invln    4 + idh_domain 
            + idh_inv_nbr 
            + idh_nbr 
            + idh_line 

     idh_part     4 + idh_domain 
            + idh_part 
            + idh_inv_nbr 
            + idh_line 

u  oid_idh_hist    1 + oid_idh_hist 
+0

idh_histテーブルのインデックス定義を私たちと共有できますか? –

+0

こんにちは@MikeFechner、私はここでインデックスを追加しました。ありがとう。 –

答えて

1

あなたはidh_due_dateを使用してインデックスを持っているように見えません。そのようなインデックスを追加する必要があります。

4glは、WHERE句に基づいてインデックスを選択するためにルールを使用します。最も重要なルールは、等価一致を持つ索引の主成分が使用されることです。

あなたが表示したクエリは、idh_domainに1つしか一致しません。したがって、タイ・ブレーカーのルールが適用されます。これにより、idh_invln索引が選択されます。

これは、「idh_domain」フィールドに一致するすべてのレコードを検索する必要があるためです。 (テーブルスキャンを実行することを意味するドメインが1つしかない場合)

idh_domainおよびidh_due_dateにインデックスを追加することをお勧めします。それはあなたの質問に完全にマッチします。

+0

ありがとう@トム。ところで、QAD標準テーブルにカスタムインデックスを追加できますか? –

+0

これには技術的な障壁はありません。 FUDだけがあなたを妨げるでしょう。 –

関連する問題