2016-08-11 3 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에서 일치하는 검색어가 하나뿐입니다. 그러면 타이 브레이커 규칙이 적용됩니다. 그러면 idh_invln 색인이 선택됩니다.

그렇듯이 "idh_domain"필드와 일치하는 모든 레코드를 검색해야합니다. 테이블 스캔을 수행한다는 의미의 도메인이 하나 뿐인 경우

idh_domain 및 idh_due_date에 인덱스를 추가하려고합니다. 그것은 당신의 질문에 완벽한 일치가 될 것입니다.

+0

감사합니다 @ 톰. BTW, QAD 표준 테이블에 맞춤 색인을 추가 할 수 있습니까? –

+0

이렇게하는 것에 기술적 인 장벽이 없습니다. FUD만이 당신을 막을 것입니다. –

관련 문제