Oracle 9iPL/SQL 프로 그래 밍 경험 소결
DECLAREv_delaytime CONSTANT INTEGER := 100; v_starttime INTEGER ; v_endtime INTEGER ;BEGINV_starttime := DBMS_UTILITY.get_time;V_endtime := DBMS_UTILITY.get_time;While abs(V_endtime- V_starttime)< v_delaytime loop/*빈 순환 또는 간단 한 시간 소모 실행 문*/End loop;END;/또한 세 션(session)간 의 시간 이 다 르 면 DBMS 를 사용 해 야 합 니 다.PIPE 패키지 의 함 수 는 세 션 간 의 메시지 전달 을 실현 합 니 다.4.PL/SQL 이 데이터 세트 를 되 돌려 줄 때 집합 을 사용 해 야 합 니까?커서 를 사용 해 야 합 니까?일반적으로 다음 과 같은 두 가지 근거 가 있다.1)PL/SQL 프로그램 이 여러 줄 의 데 이 터 를 다른 PL/SQL 프로그램 에 되 돌려 주면 집합 을 사용 하 는 것 을 권장 한다.이 는 집합 적 인 일괄 수집(bulk collection)을 이용 하여 데이터 베이스 에서 수량 을 추출 하 는 속 도 를 높 일 수 있 기 때문이다.2)PL/SQL 프로그램의 환경 에서 데 이 터 를 숙주 언어 환경 으로 되 돌려 야 한다 면(예 를 들 어 Sql*plus,c,delphi 등),이 때 는 커서 변 수 를 사용 하여 이 데 이 터 를 되 돌려 야 합 니 다.거의 모든 숙주 언어 가 커서 변 수 를 지원 하지만 모든 숙주 언어 가 집합 을 지원 하 는 것 은 아 닙 니 다.이렇게 하면 프로그램의 이식 성 을 강화 할 수 있다.5.어떻게 하면 PL/SQL 에서 커서 를 더욱 효과적으로 사용 할 수 있 습 니까?커서 는 PL/SQL 에서 매우 중요 한 개념 으로 데이터 베 이 스 를 검색 할 때 주로 커서 에 의 해 작 동 된다.PL/SQL 에는 두 가지 커서 가 있 는데 하 나 는 암시 적 커서 입 니 다.예 를 들 어 select clno into vclno from table_detail.다른 하 나 는 cursor v 와 같은 명시 적 커서 입 니 다.cur is select clno from table_detail。커서 사용 에 대해 다음 과 같은 몇 가지 제안 을 드 립 니 다.1)가능 한 한 bulk collection 을 사용 하 십시오.이 는 운영 성능 을 크게 향상 시 킬 수 있 습 니 다.오 라 클 9i 의 2 판 에 서 는 bulk collection 을 사용 하여 데 이 터 를 기록 표 2 에 직접 기록 할 수 있 습 니 다)가능 한 한 명시 적 커서 로 처리 할 수 있 습 니 다.암시 적 커서 에 비해 명시 적 커서 의 속도 가 빠 르 기 때 문 입 니 다.3)조회 한 시계 가 작 거나 정적 이면 이 시 계 를 패키지 급 집합 에 캐 시 할 수 있 습 니 다.이렇게 하면 검색 함 수 는 시스템 전역(SGA)에서 데 이 터 를 가 져 오 는 것 이 아니 라 집합(즉,프로 세 스 전역,PGA cache)에서 직접 데 이 터 를 가 져 옵 니 다.이러한 처리 속 도 는 많이 향상 될 것 입 니 다.