쿼리 중단
다음과 같은 이유로 쿼리가 중단되거나 응답이 중지될 수 있습니다. 먼저 다음 문제 해결 접근 방식을 따르는 것이 좋습니다.
데이터베이스 연결 해제
최대 전송 단위(MTU)의 크기를 줄이세요. 단일 이더넷 프레임으로 네트워크 연결을 통해 전송할 수 있는 패킷의 최대 크기(바이트)는 MTU의 크기에 따라 결정됩니다. 자세한 내용은 Amazon Redshift 관리 가이드의 데이터베이스 연결이 끊어짐 섹션을 참조하세요.
데이터베이스 연결 시간 초과
COPY 명령 같은 긴 쿼리를 실행할 때는 데이터베이스에 대한 클라이언트 연결이 멈추거나 제한 시간에 걸릴 수 있습니다. 이런 경우 Amazon Redshift 콘솔에서 쿼리의 완료 여부를 관찰할 수 있지만 클라이언트 도구에는 쿼리가 여전히 실행 중인 것으로 표시됩니다. 쿼리 결과는 연결 중단 시점에 따라 누락되거나 불완전할 수도 있습니다. 이러한 문제는 중간 네트워크 구성 요소에서 유휴 상태의 연결을 종료할 때 발생합니다. 자세한 내용은 Amazon Redshift 관리 가이드의 방화벽 시간 제한 문제 섹션을 참조하세요.
ODBC에 클라이언트 측 메모리 부족 오류 발생
클라이언트 애플리케이션이 ODBC 연결을 사용하고 쿼리가 메모리에 비해 너무 큰 결과 집합을 생성하는 경우, 커서를 사용하여 결과 집합을 클라이언트 애플리케이션으로 스트리밍할 수 있습니다. 자세한 내용은 DECLARE 및 커서 사용 시 성능 고려사항 섹션을 참조하세요.
JDBC에 클라이언트 측 메모리 부족 오류 발생
JDBC 연결을 통해 대용량의 결과 집합을 가져오려고 하면 클라이언트 측 메모리 부족 오류가 발생할 수 있습니다. 자세한 내용은 JDBC Fetch Size 파라미터 설정 섹션을 참조하세요.
잠재적 교착 발생
잠재적 교착 상황이 발생하면 다음과 같이 시도하세요.
-
STV_LOCKS 및 STL_TR_CONFLICT 시스템 테이블을 살펴보면서 테이블을 1개 이상 업데이트하는 데 따른 충돌 유무를 확인하세요.
-
PG_CANCEL_BACKEND 함수를 사용하여 충돌하는 쿼리를 1개 이상 취소하세요.
-
PG_TERMINATE_BACKEND 함수를 사용하여 세션을 종료하세요. 그러면 종료된 세션에서 실행 중이던 트랜잭션이 모든 잠금을 강제로 해제하여 트랜잭션을 롤백시킵니다.
-
주의하여 동시 쓰기 작업을 예약하세요. 자세한 내용은 동시 쓰기 작업 관리 섹션을 참조하세요.