2012-08-06 2 views
0

Windows 9.2 용 SAS를 사용하여 Oracle 데이터베이스에 대해 상당히 큰 쿼리를 실행하고 있습니다. 이 쿼리는 WITH 절에 하위 쿼리를 작성한 후 4 번 사용했을 때 상당히 큽니다. 이것은 SQL PLUS 및 SQL Developer에서 제대로 실행되지만, SAS를 사용하여 실행하면 20 분 후에 프로그램이 멈추고 로그 창이 표시되지 않습니다. 나는 SAS와 함께 일한 적이 없으며 다음과 같은 옵션을 시도해 보았습니다.Oracle 쿼리를 무기한 실행하는 SAS 9.2

  • SAS 코드 파일을 생성하여 Windows 파일 시스템에 기록 된 로그를 얻으 려하지만 실행됩니다 in-definitely 그리고 로그 파일에 아무 것도 쓰지 않습니다.

어떤 사람이 나를 안내 할 수 있습니까? 어떻게하면 정확한 오류 메시지를 이해할 수 있도록 Windows 파일 시스템에 기록 된 로그 파일을 얻으려면 ALTLOG 명령을 사용할 수 있습니다. 그런데 DBA는 쿼리가 잘 실행되고 행이 서버 측에서 반환되지만 SAS 프로그램에서는이 데이터를 표시 할 수 없다고 언급했습니다. 나는 쿼리에서 약 45,000 레코드를 얻는다.

감사

+1

기존의 SAS 프로그램 (PROC SQL 부분)을 게시하십시오. 아래의 귀하의 의견에 따르면 귀하는 Oracle에 대한 SAS/Access 라이센스가 없으므로 아마도 ODBC 액세스 방법을 사용하고 있다고 말합니다. – BellevueBob

+0

Vasja의 의견에도 유의하십시오. SELECT를 수행하는 중 출력이 출력 창으로 이동하는 경우 SAS가 메시지를 표시 할 수 있습니다. – BellevueBob

답변

1

나는이 점에 그것을 깰 수있을 : 지금까지 SAS를 사용하지 않고

1) SAS에서 기존 오라클 SQL 쿼리를 실행 : 당신을위한 가장 좋은 방법은 당신의 오라클 SQL 코드를 포함하는 것입니다 소위 PROC의 SQL 명시 적으로 통과가 :

proc sql; 
    connect to oracle as db1 (user=user1 pw=pasw1 path=DB1); 
    create table test_table as 
    select * 
    from connection to db1 
     (/* here we're in oracle */ 
        select * from test.table1 where rownum <20 
       ) 
    ; 
    disconnect from db1; 
quit; 

요점은 당신이 트라이 경우 모르는 SAS SQL (로 번역하려고하지 않는 것입니다 (다른 질문 Limiting results in PROC SQL에 내 대답에서 차용) d).

또한 SAS OUTPUT 창에 쓰지 않고 쿼리 결과에서 SAS 테이블을 생성해야합니다 (예에서와 같이).

2) 로그 가져 오기 관련 작업 : 일반적으로 작업에 대한 로그는 완료되면 작성되므로 일반적으로 쿼리가 오랫동안 실행 중이면 중간 로그가 표시되지 않습니다. 어쨌든 로그 버퍼링은 배치 작업의 기본 설정이므로 버퍼가 꽉 차면 로그 메시지가 기록됩니다. 로그 파일 설정 LOGPARM 옵션에 즉시 기록 된 로그 메시지를 효율적으로 활용하려면 다음

-LOGPARM= “WRITE=IMMEDIATE” 

반대 옵션은 버퍼링된다.

은 SAS 세션에서 다음과 같은 구성 파일 (들)를 사용 실행을 확인하는 방법은 다음과 같습니다

proc options option=config;run; 

그런 다음 config 파일에서 별도의 줄에 위의 옵션을 입력합니다.

+0

예, proc sql을 사용하고 oralce ODBC 연결을 사용하여 쿼리를 실행하고 있습니다. 그리고 도구 -> Otions -> 시스템을 사용하여 LOGPARM 값을 변경하려고했지만 어떤 이유로 값 수정을 선택할 때 아무 일도 일어나지 않습니다. – Phoenix

+0

SAS 프로그램을 시작할 때만 LOGPARM 옵션을 정의 할 수 있습니다. 구성 파일이나 명령 행 옵션으로 설정해야합니다. – BellevueBob

+0

@BobDuell LOGPARM 옵션 설정에 대해 자세히 설명해 주시겠습니까?구성 파일에이 옵션이 표시되지 않습니다. SAS 명령 줄을 사용하여 어떻게 설정합니까? 너 내게 알려주 길 바래. – Phoenix

관련 문제