내 api 메소드 중 하나에서 데이터베이스에 작은 (그러나 빈번한) 조작을 수행해야합니다. 매번 "withSession"으로 그들을 래핑하려고하면 끔찍한 성능을 얻습니다.ScalaQuery에서 세션 재사용?
db withSession {
SomeTable.insert(a,b)
}
위의 예를 100 번 실행하면 22 초가 걸립니다. 단일 세션에서 이들을 모두 실행하는 것은 즉각적입니다.
이후의 함수 호출에서 세션을 다시 사용할 수 있습니까?
연결 풀링이 없다고 생각합니다. 단지 메모리 내 hsql 데이터베이스에 액세스합니다. 그건 그렇고 - 그 연결에는 "만료"시간이 있습니까? 어쩌면 하나의 연결을 열어서 항상 열어 둘 수 있을까요? – Rogach
100 초 삽입에 22 초를 사용하면 hsql 데이터베이스에 연결 인스턴스 생성에 엄청난 오버 헤드가 발생하는 것 같습니다. 만료 시간은 서버에 달려 있습니다. 이것은 종종 연결 풀의 문제점을 나타냅니다. 문제를 해결하는 한 가지 방법은 'select 1'과 같이 연결을 나눠주기 전에 테스트 쿼리를 실행하는 것입니다. – thoredge