SELECT /* DSBIO4OS DSTAXCALZIROLIST51 */
/*+ push_suubq index(세금계산 세금계산_PK ) */
세금계산.번호,
세금계산,발행일자,
세금계산,총액,
세금계산,세액
decode(세금계산.CHOICE1, '고객', TO_CHAR(세금계산.고객_번호),
세금계산.대리점_번호||TOCHAR(세금계산.기타업체_번호)) 고객번호,
세금계산.고객상호
FROM 세금계산
WHERE 세금계산.번호
in (select /*+ user_nl(지로지급, 세금계산_지로입금) */
세금계산_지로집금.세금계산_번호
from 지로지급,세금계산_지로집금
where 세금계산_지로집금. 지로집금_번호 = 지르ㅗ집금.번호
and 지로집금.일자 BETWEEN '&&1_FROM_DATE' AND '&&1_TO_DATE')
AND EXISTS ( select 1 from 고객
where 세금계산.CHOICE1 = '고객'
and 고객.번호 = 세금계산.고객번호
and 고객.지로대상여부 = 'Y'
and 고객.청구사원_번호 = '&&1_SABUN' --19950113
union all
select 1 FROM DUAL
and 세금계산.CHOICE1 = '대리점');
집중사항
1. 데이타는 한번만 Select 해 온다. 죽어도 한번만 select 해 온다.
2. 범위를 일단 줄이는 쪽을 찾아라.
3. 조회할 테이블만 From절에 넣는다.
/*+ push_suubq index(세금계산 세금계산_PK ) */
세금계산.번호,
세금계산,발행일자,
세금계산,총액,
세금계산,세액
decode(세금계산.CHOICE1, '고객', TO_CHAR(세금계산.고객_번호),
세금계산.대리점_번호||TOCHAR(세금계산.기타업체_번호)) 고객번호,
세금계산.고객상호
FROM 세금계산
WHERE 세금계산.번호
in (select /*+ user_nl(지로지급, 세금계산_지로입금) */
세금계산_지로집금.세금계산_번호
from 지로지급,세금계산_지로집금
where 세금계산_지로집금. 지로집금_번호 = 지르ㅗ집금.번호
and 지로집금.일자 BETWEEN '&&1_FROM_DATE' AND '&&1_TO_DATE')
AND EXISTS ( select 1 from 고객
where 세금계산.CHOICE1 = '고객'
and 고객.번호 = 세금계산.고객번호
and 고객.지로대상여부 = 'Y'
and 고객.청구사원_번호 = '&&1_SABUN' --19950113
union all
select 1 FROM DUAL
and 세금계산.CHOICE1 = '대리점');
집중사항
1. 데이타는 한번만 Select 해 온다. 죽어도 한번만 select 해 온다.
2. 범위를 일단 줄이는 쪽을 찾아라.
3. 조회할 테이블만 From절에 넣는다.