1.SQL 작성시 유의사항
1.컬럼 가공으로 인한 비효율
2.확인자/제공자 역할의 SubQuery
3.최소,최대값(최초,최종) 구하기
4.함수 수행횟수 비효율
5.빈번한 OCI CALL과 LOOP QUERY
6.부분범위 처리
7.인덱스 부재
주의사항
1.컬럼을 가공하지 않고 SQL작성
(불가피하게 컬럼을 가공해야 하는 경우 극희 희박)
2.컬럼과 동일한 데이터 타입으로 상수값을 비교하고 변수 바인딩
주의사항
1.SubQuery가 제공자 역할을 하려면 메인쿼리 컬럼이 SubQuery에 없어야 함.즉, 제공자 역할을 기대한 SubQuery가 확인자 역할을 하게 되면 심각한 오버헤드 발생
2.SubQuery 사용시 M:M 연결은 M:1로 연결된 결과 생성
3.KEY1 LIKE, KEY2 IN 형태의 인덱스 KEY1+KEY2일 경우 KEY2가 IN으로 제공되더라도 인덱스 선두 컬럼이 ‘=’ 이 아니므로 KEY2는 단지 체크 기능만 담당
주의 사항
1.최소 또는 최초는 인덱스를 오름차순으로 읽어 조건에 맞는 첫 번째 로우에서 멈춘다.
2.최대 또는 최종은 인덱스를 내림차순으로 읽어 조건에 맞는 첫 번째 로우에서 멈춘다.
( INDEX_DESC 힌트 이용)
주의사항
1)프로그램 또는 프로시져에서 여러 개의 조각 SQL로 나뉘어 수행되고 있는 SQL들을 최대한 통합
2)LOOP QUERY 는 OCI CALL부하를 비롯한 비효율을 유발하므로 지양하고, ONE SQL을 구사