FireBird Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
파이어버드 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
IBPhoenix
FireBird Main site
볼랜드포럼 광고 모집

FireBird 팁&트릭
[38] 사용할 Index 강제 지정하기.
까막 [ggamagui] 14872 읽음    2007-07-26 11:52
안녕하세요. 까막입니다.

사용할 Index 강제 지정법을 몰라서 질답란에 올렸다가 찾았는데요.
나름대로 유용한 정보라고 판단이 되어서 여기에 다시 올립니다.
다른 분들도 저처럼 이런게 필요할 수 있으시니까요. ^^

Demand 청구테이블.
__CustomerId  고객번호.
__DMonth  청구월
__DemandAmt 청구금액
__...
뭐 이런식으로 테이블이 있다고 하고요.

Primary Key -> CustomerId,DMonth : Demand_PK. Ascending.
Index -> DMonth : Demand_Idx. Descending.
Primary Key 랑 Index 가 이렇게 구성되어 있읍니다.

Query 실행시
SELECT SUM(D.DemandAmt)
FROM    Demand  D
WHERE  D.CustomerId  = '00020041027'
AND       D.DMonth     <= '200902'

이렇게 조건을 주고, 실행을 하니 Demand_Idx 를 사용해서 실행을 하더군요.
덕분에 결과값 도출에 오랜 시간이 걸리고요.
Demand_PK 를 사용하면 빠른 시간에 결과 도출이 가능한데 말이죠.

해서 사용할 Index 를 강제로 지정할 방법을 찾았읍니다.

SELECT SUM(D.DemandAmt)
FROM    Demand  D
WHERE  D.CustomerId  = '00020041027'
AND       D.DMonth     <= '200902'
PLAN    (D INDEX (Demand_PK))

이렇게 실행을 하니, 원하는대로 Demand_PK 를 사용해서 실행을 하는군요.

Index 를 강제로 지정을 하고 싶으시면 위처럼 PLAN (....) 하시면 강제로 지정이 가능합니다.



위대한 단군혼이 살아있는 나라.... 대한민국.

+ -

관련 글 리스트
38 사용할 Index 강제 지정하기. 까막 14872 2007-07-26
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.