데이터베이스에서 매일 실행되는 배치 쿼리가 있습니다. 그러나 유휴 상태에 빠진 것처럼 보이며 진행 상황을 디버깅하는 데 많은 어려움이 있습니다.
쿼리는 동시에 삽입되는 테이블에 대한 집계이므로 문제와 관련이 있다고 생각합니다. 집계는 이전 날짜 데이터에 있으므로 삽입이 결과에 영향을 미치지 않아야합니다.
단서
sqlalchemy를 사용하여 파이썬 스크립트 내에서 이것을 실행하고 있습니다. 그러나 트랜잭션 수준을 자동 커밋으로 설정했기 때문에 트랜잭션 안에 물건이 포장되어 있다고 생각하지 않습니다. 반면에 SQL 터미널에서 수동으로 쿼리를 실행할 때 쿼리가 중단되는 것을 볼 수 없습니다.
쿼리
pg_stat_activity
를하면 쿼리는 처음에 데이터베이스로 들어옵니다state='active'
. 15 초 후에 상태가 '유휴'로 변경되고 또한가로xact_start
설정됩니다NULL
. 대기 플래그는 true로 설정되지 않습니다.내가 SQLAlchemy의에 대한 트랜잭션 수준의 자동 커밋을 파악하기 전에, 대신 상태에 걸어 것
'idle in transaction'
보다는'idle'
. 그리고 그 변경을 한 후 약간 덜 매달릴 가능성이 있습니까?
나는 내가 가지고있는 것보다 더 깊이 파낼 준비가되어 있지 않은 것처럼 느낍니다. 명확한 답변을 제공하지 않고 다른 주 및 관련 postgres 내부에 대해 더 설명하는 모든 의견은 크게 감사하겠습니다.
COMMIT
트랜잭션 종료를 위해 발행 된 것이 없음을 의미 합니다. 문제는 다른 곳에 dB보다 수 것처럼 .. 소리