PostgreSQL
용 JDBC 드라이버에 위임 한 라이브러리를 사용하고 있으며 일부 쿼리는 매우 복잡하며 더 많은 메모리가 필요합니다. work_mem
을 모든 검색어에 대해 큰 것으로 설정하고 싶지는 않지만이 하위 집합 만특정 쿼리에 대한 Postgres에서 work_mem 설정
set work_mem = 102400;
결과를 반환하지 않습니다 :이 프로그램을 실행할 때
// pseudo-code for what is happening
String sql = "set work_mem = 102400;";
sql += "SELECT * FROM expensive_query";
ResultSet rs = DatabaseDriver.execute(sql);
나는 오류가 발생합니다 : 문제는 다음 코드를 실행하면 오류가 발생을 실행하는 것입니다.
pgAdmin
에서 작동하는 이유는 여러 쿼리를 한 번에 실행할 수 있기 때문입니다. 이 작업을 수행하는 더 좋은 방법이 있습니까? 아니면 임의의 SQL을 실행하고 원하는 결과 집합을 추출해야합니까?
... 그리고; '이후. 또한'SET LOCAL work_mem'을 처음부터 권장합니다. 그런 식으로'RESET'을 잊어 버리면 트랜잭션 스코프가됩니다. –
@CraigRinger : 좋은 지적, 고마워. –