0

저는 집안의 비즈니스 측면에 있으며 Oracle 11g 데이터베이스에 대한 완전한 DBA 권한이 없습니다. 스토어드 프로 시저를 빌드하고 실행하는 데 필요한 권한이 있으며 무한정 걸려있는 권한이 있습니다.Oracle PL/SQL> 저장 프로 시저 무한정 매달다

우리는 새로운 시스템을 개발 중이며 몇 가지 수명주기가 있습니다. 내 코드는 이전 라이프 사이클 (AD라고 함)에서 100 % 정상적으로 작동하고 다음 라이프 사이클 (QA)에서 무한정 중단됩니다. 첫 번째 주요 SQL 끌어 오기 중지하고 결코 반환합니다.

스트레이트 SQL 끌어 오기 저장 프로 시저 안에있는 정확한 SQL을 실행하면 2.6 초 (동일한 입력 매개 변수와 동일한 QA 수명주기 서버 사용)로 돌아옵니다.

내 권한으로 인해 스토어드 프로 시저가 실행 중일 때 어떤 일이 발생하는지 제한적으로 볼 수 있으며, DBA는 디버그 나 문제 해결에 도움이되는 PL/SQL 코드에 대한 통찰력이 없습니다.

내 자유로운 질문입니다. 무엇이 잘못 될 수 있습니까 ?? 나는 이것이 모호하다는 것을 안다. ,

  • 데이터베이스는 내가 입력 매개 변수의 모든 좋은 것을 확인했지만 내가
  • 에서 당겨있어 테이블의 데이터를 가지고 있음을 그들은 작동하는 과정에서 전달되는 : 상황은 내가 확인했다 등 정확하게.
  • 나는 프로 시저 밖에서 같은 코드를 실행하고 신속하게 반환하고 올바른 데이터를 표시합니다.
  • 정확한 코드는 더 낮은 라이프 사이클에서 작동합니다 (문자 그대로 AD에서 QA로 복사/붙여 넣기 만 함).
  • DBA는 서버 환경이 정확히 동일하다고 말합니다. (나는 그를 믿을 지 모르겠지만 직접 확인할 수단은 없습니다).

제공 할 수있는 도움이 무엇이든 제공됩니다. 코드를 게시 할 수는 있지만 길이는 2-3K 정도이므로 도움이 될지 확신 할 수 없습니다. 코드가 잘 작동하고 그대로 복사/붙여 넣기가되었지만 코딩 문제는 아니지만 시스템/환경 문제라고 생각합니다.

어떤 아이디어라도 도움이 될 것입니다.

미리 감사드립니다.

+4

너무 넓기 때문에 문제가 될 가능성이 너무 많습니다. 문제가 너무 많습니다. 코드가 "첫 번째 주요 SQL 끌어 오기에서 멈추는"것을 어떻게 알 수 있습니까? 코드가 기다리고있는 것을 볼 수있는 권한이 있습니까 (최소한'v $ session'을 쿼리 할 수 ​​있습니까?)? 코드가 기다리고있는 것을 진단 할 수 있도록 DBA를 등록시킬 수 있습니까? 프로 시저 외부에서 실행중인 코드가 실제로 동일합니까? 프로 시저 외부에서 리터럴을 사용하고 있습니까 (예 : 내부 변수를 바인드합니까?). –

+0

내가 proc을 자체 종료하면 같은 주요 항목 인 첫 번째 주요 SQL 끌어 오기의 시작 부분에서 중지됩니다. 나는 그것이 무엇을 기다리고 있는지를 알기 위해 prives가 없으며 더 많은 것을 볼 수 있도록 DBA로부터 디버그 privs를 얻으려고 노력하고있다. (거기에는 몇몇 학부 간 학사가있다.) proc 내부의 SQL에 대해 proc 외부의 SQL을 두 번 확인하고 실패한 부분을 좁히려 고합니다. 네가 다시 말한대로 나는 리터럴을 검사하고있다 ... 나는 전에 이것들을 검사했지만 아마도 뭔가를 놓쳤을 것이다. 나는 그것이 광범위하다는 것을 알고 있습니다. 비록 DBA에게 점검을 요청할 것인지에 대한 아이디어를 얻을 수 있다고해도 도움이됩니다. – rcfmonarch

+0

여기에서 정보를 충분히 얻을 수 있습니다. '[oracle] v \ $ session' ('$'char를 이스케이프 처리해야 함)을 검색하여 오라클을 디버깅하는 방법에 대해 설명합니다. 행운을 빕니다. – shellter

답변

0

이 문제는 저장 프로 시저와 관련이없는 것으로 보입니다. 모든 의견에 감사드립니다. :)