2009-08-21 7 views
6

쿼리가 너무 오래 걸리는 경우 PDO 개체가 오류를 발생시킬 수있는 방법이 있습니까? PDO :: ATTR_TIMEOUT을 적용하지 않았습니다.PDO에서 긴 쿼리를 방지 할 수 있습니까?

특정 시간보다 오래 실행되는 경우 쿼리에서 오류가 발생하도록하고 싶습니다. 이것은 데이터베이스에서 할 수있는 것이 아닙니다. 즉, db 또는 아무것도 실행중인 유지 관리 작업이 없습니다.

답변

3

"이 작업은 데이터베이스에서 수행 할 수있는 작업이 아닙니다."라는 것이 확실하지 않지만 데이터베이스 관리 담당자에게 Oracle 프로필을 설정하여 데이터베이스에서이를 제한하도록 제안합니다. 측면. 쿼리를 제한 할 수있는 CPU_PER_CALL 및 LOGICAL_READS_PER_CALL 같은 매개 변수가 있습니다. 원하는 경우 프로필을 특정 사용자에게만 적용 할 수 있습니다.

+0

일반적으로 긴 쿼리는 아니지만 데이터베이스를 모니터링하는 데 사용되는이 쿼리 만 중지하려고합니다. –

+0

아, 알겠습니다. 클라이언트 측 솔루션이없는 경우 프로필을 사용하는 다소 복잡한 방식은 특정 사용자가이 쿼리를 실행 한 다음 해당 사용자 만 프로필을 적용하도록 응용 프로그램을 다시 구성하는 것입니다. – dpbradley

2

오라클에서이 작업을 수행 할 수 있는지 확실하지 않지만 PHP에서 PHP를 실행하여 오라클에 쿼리를 실행 한 다음 오라클의 응답을 기다리고 있기 때문에 PHP에서이를 수행 할 수 없다고 말할 것입니다. . 이 기능을 지원하기 위해 PDO 확장을 수정할 수도 있지만 확장 코드 (실제 C 코드)를 수정해야 할 수 있습니다. PHP에서이 작업을 수행 할 수있는 방법이 없을 수도 있기 때문입니다.

관련 문제