2009-05-06 7 views

답변

7

"아니오"또는 "나는 그렇게 생각하지 않습니다"라고 대답하려는 유감이지만이 질문에 대한 답을 알고있는 유일한 방법은 입니다. 직접 가서 측정하십시오. 알아 내려면 JetBrains dotTrace와 TOAD의 프로파일 러와 같은 프로파일 러를 사용하십시오.

다른 모든 대답은 추측입니다.

2

저장된 procs (PL/SQL 패키지)를 빌드하면 데이터베이스와 클라이언트간에 더 적은 데이터가 전송되는 방식이 더 빠릅니다.

4

해야합니다. 인라인 SQL을 데이터베이스에 보내면 엔진은이를 구문 분석하고 실행해야합니다. 저장 프로 시저가 생성 될 때 구문 분석 (및 컴파일)됩니다. 그래서 최소한 파싱 시간을 얻고 있습니다.

+2

응용 프로그램에서 제출 된 SQL은 바인드 변수를 사용하기 때문에 반복 실행은 하드 구문 분석이되지 않습니다. PL/SQL을 바인딩하지 않는 것보다 훨씬 쉽기 때문에 바인딩 변수가 PL/SQL에서 승격되므로 더 나은 실행이 촉진된다고 말하는 것이 적절할 수 있습니다. –

3

거의 모든 경우에 저장 프로 시저가 더 빨라질 것으로 예상됩니다.
하지만 주로 코드에 따라 다릅니다.
예를 들어 데이터베이스에서 결과 집합을 가져온 다음이 데이터를 사용하여 다른 쿼리를 수행하면 네트워크 트래픽에 많은 오버 헤드가 발생하게됩니다. 요청에 대해 단일 연결을 사용하는 것을 잊어 버린 경우 특히 그렇습니다.
그렇다면 단일 저장 프로 시저를 사용하여 복잡한 데이터를 반환하는 것이 더 효율적일 수 있습니다 (물론 가능한 경우).

0

Jon Limjap : "다른 모든 대답은 추측입니다."

이 진술에는 많은 진실이 있습니다. 매우 많은 요소가 있습니다 : DB 서버는 어떻게 구성되어 있습니까? 네트워크 속도/안정성은 어떻습니까? SQL은 어떻습니까? PL/SQL은 어떻습니까? 필자가 원한다면 정말 느린 SQL 및/또는 PL/SQL을 작성할 수 있습니다. 그래서 할 수 있다면, 두 가지 방법을 시도해보십시오.