쿼리가 스크립트에 비해 너무 느림Query Builder를 사용하여 여러 쿼리를 스크립팅했습니다. 그런 다음이 스크립트를 연속적으로 배치했습니다. 다음으로 쿼리에서 형성된 새 데이터 테이블로 작업하려고 합니다.
내 문제는 쿼리 중 하나를 실행하는 데 >10초가 걸리고 쿼리 다음의 JSL이 "to-be-formed" 테이블(스크립트가 코드의 해당 부분에 도달할 때 존재하지 않음) 작업을 시도한다는 것입니다. . 이로 인해 분명히 오류가 발생하고 스크립트가 종료됩니다.
"배경 실행" 명령을 사용해 보았지만 스크립트가 모두 함께 종료된 것 같습니다.
쿼리를 실행하고 나머지 스크립트(해당 테이블에서 작동하는)를 실행하기 전에 모든 쿼리가 해당 테이블을 반환할 때까지 WAIT를 강제 실행하는 방법에 대한 아이디어가 있습니까?
감사합니다,
남자 이름
Re: 스크립트에 비해 쿼리가 너무 느림늦어서 죄송합니다 - Brian의 사용 제안 전경 실행 JSL의 쿼리에서 JSL의 다음 줄이 실행되기 전에 쿼리가 완료되도록 하는 방법입니다. 다시 쓸 필요가 없습니다!
에릭
Re: 스크립트에 비해 쿼리가 너무 느림실제로 Run Foreground를 사용하는 것이 더 좋습니다.이 내용을 바로 확인하지 못해 죄송합니다. 하지만 다음과 같습니다.
Query1 = 새 SQL 쿼리 (
연결 ( ...
) ,
주문 ( ) ,
PostQueryScript ( ...
)
) ;
쿼리1 << 전경 실행;
작동해야 합니다.
브라이언
Re: 스크립트에 비해 쿼리가 너무 느림안녕 마틴,
쿼리에 대한 백그라운드 작업을 해제할 수도 있습니다.이것은 나를 위해 일했습니다."기본 설정->쿼리 작성기->ODBC->가능한 경우 백그라운드에서 쿼리 실행"으로 이동하여 선택을 취소하거나 스크립트에서 다음과 같이 할 수 있습니다.
쿼리 작성기 설정( 백그라운드 쿼리( 0 ) )
스크립트 상단에 있습니다.
브라이언 코코란
JMP 개발
Re: 스크립트에 비해 쿼리가 너무 느림정말 감사합니다, pmroz!!!! 약간의 재작성이 필요하지만 매력처럼 작동합니다!
Re: 스크립트에 비해 쿼리가 너무 느림나는 그것을 시도하고 그것이 어떻게되는지 알려줄 것입니다.
감사해요
Re: 스크립트에 비해 쿼리가 너무 느림나는 의심한다 쿼리 << 실행 즉시 반환합니다. 어떻게 동기화할 수 있는지 잘 모르겠습니다.
나는 사용한다 SQL 실행 대신 스크립트에서 진행하기 전에 완료될 때까지 기다리는 것 같습니다. 예를 들어 실행할 SQL 문이 4개 있는 경우:
dbc = create database connection(<CONNECTION-STRING>);
dt1 = execute sql(dbc, sql1);
dt2 = execute sql(dbc, sql2);
dt3 = execute sql(dbc, sql3);
dt4 = execute sql(dbc, sql4);
close database connection(dbc);</CONNECTION-STRING>
Re: 스크립트에 비해 쿼리가 너무 느림예. Wait(0)은 실제로 제안한 대로 수행하지 않습니다. 쿼리는 크기와 복잡성에 따라 실제로 무작위 순서로 반환됩니다. 7개의 쿼리가 있고 시간이 오래 걸리는 4번째 쿼리입니다. 해당 쿼리를 스크립트의 첫 번째에 넣으려고 했지만 다른 쿼리가 너무 빨리 실행되어 스크립트의 나머지 코드가 실행될 때 이 쿼리가 아직 완료되지 않았습니다.
다음은 내가 사용하고 있는 코드의 일부이며 소스를 보호하기 위해 많은 부분이 제거되었습니다. 그러나 일반적인 구조를 제공합니다. 간결함을 위해 끝에서 쿼리 4-7과 마지막 4개의 Join 문을 제거했습니다.
Query1 = 새 SQL 쿼리 (
연결 ( ...
) ,
주문 ( ) ,
PostQueryScript ( ...
)
) ;
쿼리1 << 달리다 ;
기다리다 ( 0 ) ;
Query2 = 새 SQL 쿼리 (
연결 ( ...
) ,
주문 ( ) ,
PostQueryScript ( ...
)
) ;
쿼리2 << 달리다 ;
기다리다 ( 0 ) ;
Query3 = 새 SQL 쿼리 (
연결 ( ...
) ,
주문 ( ) ,
PostQueryScript ( ...
)
) ;
쿼리3 << 달리다 ;
기다리다 ( 0 ) ;
//테이블 조인
표12 = 데이터 표 ( "01" ) << 가입하다 (
와 함께 ( 데이터 테이블 ( "02" ) ) ,
같은 이름 열 병합,
일치 플래그 ( 0 ) ,
일치하는 열 기준 (
:
) ,
배수 삭제 ( 0 , 0 ) ,
불일치 포함 ( 0 , 0 ) ,
기본 테이블 순서 유지 ( 1 ) ,
출력 테이블 ( "12" )
) ;
Table123 = 데이터 테이블 ( "12" ) << 가입하다 (
와 함께 ( 데이터 테이블 ( "03" ) ) ,
같은 이름 열 병합,
일치 플래그 ( 0 ) ,
일치하는 열 기준 (
:
) ,
배수 삭제 ( 0 , 0 ) ,
불일치 포함 ( 0 , 0 ) ,
기본 테이블 순서 유지 ( 1 ) ,
출력 테이블 ( "123" )
) ;
Re: 스크립트에 비해 쿼리가 너무 느림wait(0)을 넣었습니까? 각 검색 후 명령? 이렇게 하면 JMP가 이전 명령이 완료될 때까지 기다려야 합니다.